Skip to content

Release 1.2.0: exported name lists, bitemporal docs removal - #5

Merged
YoanSallami merged 3 commits into
mainfrom
feat/expose-builtin-names
Aug 21, 2026
Merged

Release 1.2.0: exported name lists, bitemporal docs removal#5
YoanSallami merged 3 commits into
mainfrom
feat/expose-builtin-names

Conversation

@YoanSallami

Copy link
Copy Markdown
Contributor

Summary

Three commits, one release.

reserved_predicates() / builtin_functions() — new Python API. Hosts that keep rules in a database rather than in .l files resolve references against their own catalogue, and check alone cannot tell a typo from a predicate defined elsewhere. These two lists say which names Synalog has already taken, split by namespace: a call to Substr compiles 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 graphs section 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 with docs/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.toml and both lockfiles.

Testing

  • cargo test — 34 passed, 0 failed
  • uv run pytest tests — 343 passed, 643 skipped (engine-gated e2e)
  • New: 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

YoanSallami and others added 3 commits August 15, 2026 22:02
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>
@YoanSallami
YoanSallami merged commit c21ab4a into main Aug 21, 2026
32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant