DWScript 2.2 preview 2: new debugger component
An SVN snapshot archive is now available as DWScript 2.2 preview 2 (218 kB).
It includes the changes listed there, as well as the following:
(more…)
DelphiTools, SamplingProfiler and General Delphi News
An SVN snapshot archive is now available as DWScript 2.2 preview 2 (218 kB).
It includes the changes listed there, as well as the following:
(more…)
There is also a new JSON support unit, which isn’t currently used by DWS, but has been introduced for testing and investigations. The strict JSON parser is AFAICT about twice faster than the current “fastest” Delphi JSON parser, with still some room for improvements.
*: the impact of those seem to be highly CPU-dependent, f.i. on the “Mandelbrot” demo, the speedup is a few percentage points on an AMD Phenom, but about 40% on my Intel Core i5.
edit: to be more accurate, it brings the Intel processor up to the level of the AMD cpu, the code must have been hitting a weakness in the Core i5 branch predictor.
Version 1.7.7 of Sampling Profiler has been released, you can grab it here (642 kB), this version fixes the following issues:
A DWS 2.2 preview zip (199 kB) has been posted, it is an SVN snapshot, and features recent additions to DWS:
A fair chunk of the error and exception code has been refactored, if you were relying on it, all the preexisting functionality is still there, though it has been shuffled around to (hopefully) more relevant locations.
You can now download SamplingProfiler 1.7.6 (642 kB), version highlights are:
Thanks goes to Dan Bartlett for the suggestion that led to the Win7 compatibility fix!
The SVN trunk version of DWS now supports threaded script execution.
Things went quite smoothly given that practically all classes got affected, yet all tests pass, including a special threaded torture test, so I’m reasonably confident ;-). The changes are however breaking backward compatibility, hopefully for the best.
Here are the major changes that will affect your code:
You can now have as many program executions for a given IdwsProgram as you wish, each execution will use memory for its heap & stack only, the compiled expression tree is shared. Both new interfaces use reference-counted memory management.
An IdwsProgramExecution is single threaded, but isn’t attached to any particular thread, meaning that it can be moved across threads freely, and re-run as many times as desired. A given TDelphiWebScript compiler component can still only compile one TdwsProgram at once. That said, you can have multiple TDelphiWebScript components, each compiling a different IdwsProgram in a different thread .
It goes without saying that of course, all the above is only valid if all the functions, classes and events you expose to the scripts are themselves thread-safe!
DWScript 2.1 RC2 has been promoted to stable 2.1.0 status, if you already have 2.1 RC2, you don’t need to download anything new.
If you use SVN, there is a now a “stable-2.1” branch which will see only fixes, evolutions and additions will now resume under “trunk”.
In addition to the previously listed goals, which are still part of the background work, there are a few specific goals for 2.2:
Thanks to all those who reported issues with RC1!
DWScript 2.1 RC2, available there (186 kB) or from DWScript SVN.
Unless anything major is uncovered, this should be it for 2.1, and a branch will be made in SVN before 2.2 begins.
Delphi Web Script 2.1 RC1 is now available from google code DWS page, you can also download it directly as a zip here (184kB).
Changes since the last SVN update are:
…and DWScript will likely enter RC phase before the year ends, as almost all of what I had in mind for 2.1 will be there!
Recent SVN additions since the last update: