[1]With the end of the world [2] in a few days, it’s time to flush the what’s new log for DWScript [3].
There are two major items that will be discussed in future posts:
- the JSON [4] connector, which gives direct, JS-like access to JSON-based data objects
- the Gabelou, which aims to become to DWScripot what StyleCop [5] is to C#.
Also the old Indy-based webserver demo is being replaced by one based on Synopse [6] high-performance http server classes.
Language
- Support for var to do [7] loop syntax
- Support unit namespace [8] syntax
- Support Low/High/Length methods on strings
- Delphi compatibility: classic units (with interface/implementation) now treat private/protected visibility in the same way as Delphi, visibility rules are unchanged for scripts and consolidated units.
- Delphi compatibility: tolerate (and ignore) Delphi call conventions (safecall, cdecl, etc.), these will now trigger a “strict”-level hint rather than an error.
- Improved error messages when attempting to use instance methods in a class or static method
- Support nil for function pointer default parameters
- Fixes when using helpers on implicit Self reference inside methods
- Fixes for partial classes support
Scripting
- JSON Connector (mostly read-only at the moment, cf. future article)
- Improvements when using the compiler to compile/test a standalone unit rather than a script or program
- Support declaring internal static methods
- Added facilities for subclassing TdwsProgramExecution
- Fixed Guardian issue when guarded scripts are still running after the guardian is released
- HexToInt now throws an exception when value is invalid
- Improved unit tests coverage
Tools & Utilities
- Introduced Gabelou (cf. future article)
- Initial test server based on Synopse [6] high-performance http server
- Faster UnicodeCompareLen/UnicodeCompareText