Cross-platform analyzer compiling lands, plus a cloud compile path in VS Code

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-templates as 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-templates instead of the old analyzers folder 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.