Release 1.2.0: exported name lists, bitemporal docs removal - #5
Merged
Conversation
Hosts that store rules outside `.l` files resolve references against their own catalogue, so `check` alone cannot tell a typo from a predicate defined elsewhere. They need the names Synalog has already taken, split by namespace: a call to `Substr` is compiled to SQL, and reading it as a relational reference reports a phantom missing table. `synalog.reserved_predicates()` returns the temporal built-ins plus every dialect library head; `synalog.builtin_functions()` returns the function and operator names. Both sorted, both derived from the lists the verifier already builds, so they cannot drift. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The bitemporal material was the longest section in the modeling guide and the least earned: two time axes, as-of vantage points, corrections and retractions, all for a modeling choice almost no rule base should make. It crowded out the temporal edges that do carry their weight. Removes the `Bitemporal graphs` section and its runnable example, trims the time-model table to snapshot / valid time / transaction time, and repoints the README, index, why and skill references at temporal graphs. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Three commits, one release.
reserved_predicates()/builtin_functions()— new Python API. Hosts that keep rules in a database rather than in.lfiles resolve references against their own catalogue, andcheckalone cannot tell a typo from a predicate defined elsewhere. These two lists say which names Synalog has already taken, split by namespace: a call toSubstrcompiles to SQL, so treating it as a relational reference reports a phantom missing table. Both are derived from the sets the verifier already builds, so they cannot drift from the compiler.Bitemporal docs removed. The
Bitemporal graphssection was the longest in the modeling guide and the least earned — two time axes, as-of vantage points, corrections and retractions, for a modeling choice almost no rule base should make. Gone, along withdocs/examples/bitemporal.{l,log}. The time-model table is now snapshot / valid time / transaction time, and the README, index, why-page, temporal reference and skill point at temporal graphs instead. Temporal edges (validity windows, interval closing, overlap, time-respecting traversal) are untouched.Version bumped 1.1.0 → 1.2.0 in
Cargo.toml,pyproject.tomland both lockfiles.Testing
cargo test— 34 passed, 0 faileduv run pytest tests— 343 passed, 643 skipped (engine-gated e2e)tests/cli/test_names.py(5 tests) and two Rust unit tests covering the namespace split and the built-in-call regression🤖 Generated with Claude Code