Repository navigation
This release adds native negative numeric literals to the domain language, preserves their spelling in the debugger and improves diagnostics for malformed signed values.
(!remember -1.0 is_moving)
(= ?offset -0.5)
(== (+ -2 3) 1)
(== (- -2 3) -5)Highlights
- Negative integers and floats in task/callterm arguments, fact queries, assignments, comparisons, arithmetic, lists, axioms, deferred arguments and world-state files.
- Existing subtraction, unary negation and decrement keep their meaning:
(- 5 2),(- 1.0),(-- 1.5)and(- ?value 1). - Negative literals generate numeric atoms directly, without an extra runtime negation. The minimum signed 32-bit integer is emitted portably as
INT32_MIN. - Debugger labels retain numeric spelling, full decimal precision and trailing zeros in static lists.
- Located diagnostics for malformed signed values and numeric overflow.
Compatibility
No C runtime API/ABI, generated planner ABI, RuntimeBridge ABI or HTNAtom layout change from 2.2.0. Runtime integrations need no API migration.
Rebuild tools using the C++ compiler frontend because the owned AST layout now includes literal spelling. Translate domains adopting the new syntax with the updated translator, and regenerate instrumented domains to obtain the improved debugger labels. Existing generated modules do not require regeneration solely for ABI compatibility.
Windows x86_64 and Ubuntu 24.04 x86_64 SDKs are included. Linux is validated with GCC 14 and Clang 18/libstdc++; HTNEditor remains Windows-only and experimental. The project is under active development.
Validation
- Complete public-source suites: 354 Windows Debug and 345 Linux GCC Release tests passed; generated C11 checked with Clang 18.
- Windows SDK: eight variants, 24 external consumer executions, eight object/export checks, negative configuration checks and Natvis validation.
- Linux SDK: four variants with GCC/Clang consumers, 24 executions, eight ELF audits and eight incompatible-domain ABI checks, plus six expected configuration rejections.
- Windows engine integration, including native negative literals, confirmed by the maintainer. That external engine itself has not been tested on Linux.
Download the Windows ZIP or Linux tar.gz below together with its .sha256 file.