Just pushed a few changes to the DWScript repository for compatibility with the just released Delphi 11 Alexandria.
The only change required was related to a fix of the Delphi compiler, which now properly has integer overflow checks controlled by $OVERFLOWCHECKS while they were previously controlled by $RANGECHECKS.
I also added support for the Delphi 11 dialect for binary literals (starting with %). DWScript already supported binary literals with the “0b” prefix since 2012 (as in C), I had been hoping the % symbol would not be sacrificed for this purpose, but oh well. (more…)
Just a word of warning about a recent commit that added support for nested types in DWScript.
This support is at the moment only enabled in class declarations, and very minimally tested, a lot more testing is required – and welcome 🙂 – before it can be considered safe to use, and extended to other type declarations.
The related code should only kickoff if a “type” keyword is encountered in a class declaration (which would previously be reported as an error), so the change should be innocuous to existing code.
SQLite offers through its JSON1 extension a lot of capability. Generating JSON outputs from SQL, even complex structured, multi-level JSON is very straightforward.
But what about the opposite use case ? When you have store data as JSON in an SQLite database, and you want to search or filter it ? This is a short exploration of what to expect.
We all need more battery life, and for quad-core i7 & i5, a simple way to gain more battery is to simply turn off extra cores.
This little setting for Windows 10 made a whole world of difference in my experience, with battery life literally doubled on my core i7, and almost 50% gains on another i5 laptop.
Disclaimer: instructions that follow are for advanced users: if you do not understand the instructions, best give up than mess your machine. For all I know, if you misstep, you may end up blowing up a hole in reality and destroy the universe. You’ve been warned.
cefHtmlSnapshot v0.5.90 is now available in the Github repository.
This version is based on CEF4Delphi with CEF 90.6.5 (Chromium 90.0.4430.93). It also includes the updated libjpeg-turbo v2.1.0 which was recently released.
The first phase of dynamic arrays refactoring mentioned previously is now complete, with dedicated implementations in place for all the base types. A single interface (IScriptDynArray) is now the only common ground.
- Memory usage is reduced to 1/3 on average, performance is improved up to 2x (without JIT)
- Array indexes have thus been bumped from Integer to NativeInt, as arrays of more than 2 billions elements have become more practical
The current state has been frozen in Release snapshot DWScript v21.3.11 on the GitHub mirror.
cefHtmlSnapshot v0.2.88 has the sandbox mode active by default and introduces new security-oriented features:
- added no-sandbox option
- support specifying the URL through a .url file
- added ignore-certificate-errors option
- fixed handling of ‘-h’ to disambiguate between help and height
zip file contains only updated cefHtmlSnapshot.exe (overwrite the one from release v0.1.88)
After reaching initial stages of the x86-64 JIT, work on a long overdue enhancement of the DWScript engine has started: refactoring how dynamic arrays are implemented.
One of the goals when the 32bit JIT was introduced was to edge out the Delphi 32bits compiler, which was not too complicated as Delphi was using the FPU, so merely using SSE2 at the time was enough. But the Delphi 64bits compiler makes good use of SSE2, so the only way to edge it out would be to leverage AVX2 and vectorisation.
A new v0.1.88 pre-release has been posted on the cefHtmlSnapshot repository.
This version is based of latest DCEF4Delphi, and brings up the Chromium Embedded Version up to CEF 88.1.4 (Chromium 88.0.4324.96).
There are no other active changes changes at the moment. A version which bundles everything into a solid executable is under investigation, but this is not active/usable yet.
With the new year, work finally started on getting a Windows 64bit Just-In-Time compiler up and running for DWScript.
The repository on Bitbucket and the mirror on GitHub both already hold first working elements. At the moment unit tests are passing, though with effective JIT for only a smaller subset of features than for the 32 bit JIT.