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.
A first v0.1 preview of cefHtmlSnapshot is now available at https://github.com/EricGrange/cefHtmlSnapshot.
This is a command-line utility that aims to take image (PNG, JPG) or PDF snapshots of an HTML website or file, and fill in the “void” left by the abandon of Qt webkit tools like phantomjs or wkhtml2pdf. While those old utilities still work, they do not support modern web standards, and any tidbit of ECMA6 will have them stumble.
Units to support the TurboJPEG library is now available in the DWScript repository, you can find the relevant files in the Libraries\GraphicsLib folder, they have been tested with Delphi 10.3 in both Win32 and Win64. The DLLs are those of the latest 2.05 version.
The TurboJPEG library (aka “libjpeg-turbo”) provides a fast implementation of the libjpeg API, but the files here target the TurboJPEG core, rather than the libjpeg compatibility layer (see its documention).
The TurboJPEG API is less rich, but quite simple to use and very convenient.
Committed to daNeuralNet a first working version of a JIT for matrix-vector multiplication that relies on the FMA instruction set (Fused Multiply and Addition).
This version generates code that is up to twice faster than the OpenBLAS for matrix sizes up to CPU cache size (100×100 to 200×200 usually), and maintains a marginal lead for larger sizes, though those are bound by memory bandwidth. The performance profile is similar on both AMD and Intel CPUs.
A test version of SamplingProfiler 64bit is available here (3.2 MB).
It has only been tested with 64bit binaries compiled by Delphi 10.3 and detailed map files. It should work with other Delphi version, (TD32 and other debug information formats have not been tested yet).
There other known issues with stack traces from DLLs, so it is rough around the edges but should be functional.
Just create a new repository with a “LibCBLAS” unit meant to use the OpenBLAS library in its Windows 64bit incarnation from Delphi 10.3+
OpenBLAS is an optimized BLAS library (Basic Linear Algebra Subprograms), the DLL itself can be obtained from the “xianyi” repository where pre-compiled Windows DLL are maintained.
I recently dusted off an artificial neural network project, now published at https://bitbucket.org/egrange/daneuralnet/. This is a subject I’ve been dabbling on and off since the days of 8 bit CPUs.
The goals of the project are twofold: first experiment with neural networks that would be practical to run and train on current CPUs, and second experiment with JIT compilation of neural networks maths with Delphi.
TensorFlow and Python are cool, but they feel a bit too much like Minecraft, another sandbox of ready-made blocks 😉