DWScript 2.2 RC1

A 7zip for DWScript 2.2 RC1 (345 kB) has been posted, changes since the beta:

  • improved unit tests coverage to 90% overall, core compiler units now above 93%
  • packages separated into compile-time & design-time (thanks Stefan Glienke)
  • fixed several issues related to dynamic arrays of function pointers (thanks Alexey Kasantsev)
  • fixes to exposure of public methods through RTTI
  • Delphi 2009 compatibility changes (thanks Oliver)
  • implicit casts from enumerations to integers have been re-enabled
  • unit tests updated to compatibility with latest Delphi Chromium Embedded

If no major issues are uncovered, this version will become 2.2 final, and evolution for 2.3 will initiate.

DWScript 2.2 beta

Delphi Web Script 2.2 is now in “beta”, and a DWS 2.2 Beta zip (337 kb)  is available.

No new features are expected up to the next stage (RC), only improvements to unit tests, to reach the psychological 90% code coverage milestone.

Changes since 2.2 preview 4:

  • extended “for in” syntax to work on all array types
  • support dynamic arrays new pseudo-method “IndexOf(item[, fromIndex])”
  • extended “in” operator to test presence of an item in an array: “item in dynamicArray” & “item not in dynamicArray”
  • support scoped enumerations for Delphi compatibility (“TMyEnum.Enum1”)
  • support “@” operator for explicitly obtaining function pointers
  • added TdwsBreakpointableLines class, which provides info about all source lines upon which a breakpoint is possible (useful for IDE “blue dots” support f.i.)
  • optimizations for “var” parameters and passing var parameters as var parameters
  • introduced minor optimization for multiple string concatenation (str1+str2+str3+…)
  • fixed dynamic array’s pseudo-method “.Add()” for arrays of delegates
  • improved unit tests coverage, various fixes (thanks again to Alexey Kazantsev)

For the curious ones looking at the SVN, there are actually other improvements and additions, but those aren’t ready just yet, and won’t be part of 2.2, but of 2.3.

Happy {$EXCESSPRECISION OFF}!

Just a notice: I’ve updated the XE2 single-precision floating point article after using the (up to now) undocumented {$EXCESSPRECISION OFF} directive, thanks to Allen Bauer for chiming in!

Executive summary: this directives enables use of single-precision SSE floating point instruction by the compiler, and brings their performance in line with expectations, making Delphi XE2 64bit compiler the new King of the Delphi Hill.

(more…)