Skip to content

v0.3.0 — persistent SWI-Prolog engine, Unicode atoms

Choose a tag to compare

@meob meob released this 12 Aug 06:53
· 67 commits to main since this release

0.3.0

Persistent engine & performance

  • Persistent SWI-Prolog engine: single long-lived swipl process, JSON-lines pipe protocol, workspace reloaded per request instead of booting Prolog per call. Same API, identical solution ordering.
  • Streaming query results: solutions written straight to the engine output via json_write/3 — no double serialization, low memory on large result sets.
  • Benchmark: benchmarks/persistent_engine_benchmark.py — ~3×–42× steady-state speedup (mean ~14×).

Language (Euclid-IR)

  • Unicode atoms (\p{L}): CJK, Cyrillic, Greek… names, arguments and rule IDs, e.g. 父(张三), Бог(Иван). Case folding is ASCII-only.
  • Canonical rule-ID marker is now # RULE: (parser stays case-insensitive).

Docs

  • README "Scalability" section; IDEAS/CHANGELOG updates.

Requires SWI-Prolog system package (local / install server, not in-browser).