Delphi for JavaScript

A while back, I posted of FireFox 4 JavaScript engine running around Delphi when it came to floating point performance on the Mandebrot set, since then, Chrome got updated to version 11, and further raised the bar by beating FireFox by about 20% in that benchmark. That’s no mean feat: current generation JavaScript engines run not just faster than Delphi, but also .Net and a slew of other compilers, native or not, when it comes to floating point. Only state of the art native compiler still resist.

The figures for Delphi 64 are still unknown, but it’ll face a challenge merely matching the floating point performance of JavaScript, and if the VCL’s TCanvas hasn’t been revamped from the ground up, chances are that out of the box, Delphi 64 won’t be able to beat the HTML5 Canvas on performance (not to mention in features, where HTML5 Canvas is also leading by a few miles).

(more…)

SynEdit DWS Highlighter, Unicode Identifiers, Type refactorings

Here is a summary of recent changes for DWScript SVN-side:

  • A syntax highlighter for SynEdit (Unicode version, available in SynEdit’s SVN) is now available, it introduces support for DWSScript specific features (keywords, string delimiters…). It is essentially a fork of the Pascal syntax highlighter.
  • Unicode identifiers are now supported, though as always with Unicode identifiers, it may not be too wise to use them too much if you want to keep the scripts maintainable. It allows to access exposed classes or libraries that use Unicode identifiers themselves.
  • The type system refactoring is in progress, most of the changes are purely internal, a handful of corner-case bugs were spotted and fixed in the process.
  • Compiler will now hint about variables that are never written to (when coSymbolDictionary option is set).
  • Inc/Dec/Succ/Pred are now magic functions, and will return the correct type when invoked on an enumeration.

Static classes, quote-delimited strings, final, hints/warnings

Here is a quick summary of recent changes SVN-side for DWScript:

  • static classes are now in DWS, like the Prism/C# variant, they are classes which cannot be instantiated and can only have class methods or properties, but as DWScript supports the concept of meta-classes, unlike in Prism/C#, they can be virtual and sub-classed (unless you mark them as “sealed” too, of course).
    type
       TStatic = class static
          class procedure Whatever;
       end;

    Note that a static class can only be subclassed to a static class, and can only inherit from a static class (or TObject).

  • quote-delimited strings can now be used as an alternative to apostrophe-delimited strings as in JavaScript and Prism, though they are still single-line strings, like in JS and unlike in Prism.
    var hello := "bonjour l'ami";
  • the final qualifier is now supported, it can be used to indicate that a method can no longer be overridden by subclasses.
  • the compiler will now warn about invoking constructors on instances (rather than classes) when outside of a constructor.
  • method override checks have been made stricter and compiler should now report all cases of incorrect overrides.
  • new directives {$HINTS ON|OFF} and {$WARNINGS ON|OFF} are now supported, and allow to turn on/off the hints and warnings respectively.

DWScript 2.2 preview 3

A source archive file for DWS 2.2 preview 3 (231 kB)  is now available. This is essentially just a zip file (7zip actually) for those not using the SVN.

Changes since the last post are rather limited:

  • built-in “QuotedStr” function now accepts a second quoteChar parameter.
  • improved compiler robustness (keeps parsing and reporting more errors in more cases), clarified some compile errors.
  • improved unit tests coverage (84.6%).

Further changes since the last archive (preview 2) are listed in the following posts:

 

Delphi 64 beta official after all

Did the attention that my little April 1st post drew help set things in motion a little earlier than planned?

It’ll be denied, it wasn’t seen, and it can’t be proven, it’s just that the slides and the video look a bit rushed, but anyway, on a just released Delphi 64 sneak preview page on the Embarcadero website, there  is a now a “join the beta” link, were you can apply for the beta. However the beta isn’t open, and Delphi XE users will apparently have priority.

As for the preview keypoints themselves, Marco Cantu has an executive summary.

It seems the beta will be under the usual NDA terms, so it may be some more time before more details filter out.

Delphi 64 open beta now available!

In a bold (or unintentional?) move, a Delphi 64 beta has been released on the Embarcadero servers, there is no official announce yet, so hit the link below while it’s still there, it may not last long!

Delphi 64 (maybe open?) beta download

..alas this was just for april’s fool… Let’s hope the next announcement about Delphi 64 availability will happen before April 2012!

edit 04/04: coincidence? They’ll deny it, no one saw them do it, and anyway no one can’t prove anything, but the following announces have just been made:
Delphi 64-bit Compiler Sneak Preview and Beta – Official Announcement
Delphi 64-bit Compiler Preview and Beta Program
And Marco Cantu has the exec summary: Delphi 64 bit Sneak Preview
With none other than David “let’s-have-a-drink” Intersimone as host for Embarcadero page for “Pulsar” beta being http://www.embarcadero.com/products/delphi/64-bit