The engine underneath gets three thread fixes
The panel is unchanged. The parser and the plotting engine underneath it are not.
The panel computes curves on worker threads, and that is exactly the arrangement
the main fix is about: the floating point exception mask used to belong to
whichever thread created the parser, so a worker could raise EZeroDivide where
the library promises infinity. It now belongs to the evaluation and is handed
back when the evaluation returns.
Two more from the same release. The loop guard that stops a formula which never
finishes is now armed and disarmed in a pair. A spent budget no longer refuses
whatever runs next in the same thread. The lock around Deriv and Parse is
one per parser instead of one for the whole process, and Parse holds it only
while it compiles.
The pascal-mathparser release for 1.0.7 has the detail and the tests.
Download
GraphBuilder-npp-1.0.7-win64.zip - 1 443 849 bytes, sha256
42b8f422c21717783a43d86f4c87fa511703c808e4012204419533d80771ff54.
Unpack it into a folder named GraphBuilderLaz inside the Notepad++ plugins
folder, or let Plugins Admin do it. 64-bit Windows; it needs the WebView2
runtime, which Windows 11 already has. Built with Lazarus and Free Pascal.