v0.4.1
Patch release: internal refactoring and build hardening on top of v0.4.0.
Changed
- the stream read/write builtins (
read/read_term,write-family,nl,flush_output, character/byte I/O,at_end_of_stream) moved fromio.lispinto the newio-streams.lisp, defined through a shared%define-io-dual-builtinmacro that derives the current-stream and explicit-stream variants from one specification; the macro validates its clause plist at macroexpansion time so a malformed definition fails the build instead of compiling a builtin that silently always fails %io-optionsand%io-read-optionsshare one option-list parser (%io-parse-option-list) instead of two divergent copiesquery-prologandquery-prolog-firstreuse the solution-mapping core ofmap-prolog-solutionsinstead of re-decoding their options through the public entry pointdeftest-table/deftest-unificationexpand each table spec into its own named cl-weave case, so a failing spec is reported individually
Added
- a regression test that
read_term/2rejects unsupported read options with an ISO domain error
See CHANGELOG.md for the full history, including the v0.4.0 notes (ISO built-in completion and the cl-weave test migration).