Big week — the kind where most of the churn is invisible to end users but sets up things I’ve wanted working for months: compiling analyzers and knowledge bases on Windows, Linux, and Mac from the packaged engine repos, and a first cut at cloud compiling from VS Code.
Analyzer/KB compiling on all three platforms
For a while now the nlp-engine-windows, nlp-engine-linux, and nlp-engine-mac repos have just been drop targets for engine binaries. This week I added the actual scripts and submodule wiring so each platform repo can pull in analyzer-templates and run a real compile-of-the-analyzer-and-KB roundtrip:
- Added
analyzer-templatesas a submodule across all three platform repos, with GitHub Actions to keep it in sync automatically. - Added
test-compile-roundtrip.sh(Linux and Mac) so I can verify a compile actually produces a working analyzer, not just that the compiler doesn’t crash. - A string of “fixing compiling the KB,” “pushing through compiling analyzers” commits in the core engine — this was genuinely grinding through platform differences (path handling, library linking, ICU dependencies) until all three came out the other side compiling cleanly.
- Cleaned up READMEs on all three repos to actually explain what’s here and how the companion repos fit together.
This matters because it’s the plumbing behind offloading heavy compiles off a dev machine — which ties directly into the VS Code work below.
Cloud compile in VS Code
Added a cloud-compile path in the extension (VSCODE-NLP-561) so you can submit an analyzer/KB compile job instead of running it locally. Spent extra time this week making the UX not annoying:
- Progress reporting is quieter now, polls every 30 minutes instead of hammering the API, and completion notifications stick around instead of vanishing before you notice them.
- Added an elapsed-time counter so you’re not staring at a spinner wondering if it’s stuck.
- “Open Output” now reveals the panel container first — small fix, but it was genuinely broken before.
- Added a check that verifies the engine release actually exists before submitting a cloud job, so you get a real error instead of a silent failure.
- Also fixed the extension checking for
analyzer-templatesinstead of the oldanalyzersfolder name, following the repo reorg.
Engine internals
On the nlp-engine side, a batch of RFASem overload additions (30+ this week) for NLP++ builtins — attrtype, pnremoveval, pnvartype, and two dozen more — continuing to close gaps in what the transpiled C++ can call directly. Also fixed a segfault in nlp-source-file emission and a bug where per-rule provenance comments were swallowing a switch statement’s closing brace — nasty one, since it would silently break generated code rather than fail loudly.
Releases
vscode-nlp shipped six releases this week (v3.1.6 through v3.1.12), mostly fast-follow fixes: sequence-view search, marketplace description cleanup, the analyzer-templates check, a Linux path fix, and a security bump. nlp-engine itself bumped from 3.1.1 up through 3.1.21 across the week as the platform-compiling work landed piece by piece — each platform repo pulls the latest automatically via the sync workflow.
Next
With all three platforms now able to compile analyzers end-to-end, next week I want to push on making cloud compile the default path for anything bigger than a quick local test, and keep chipping away at RFASem coverage so fewer NLP++ builtins need special-casing in the generated code.