Repository navigation
xlog-relcomp-probe: execute on ndarray::simd; bind through lance-graph-dt64; pin the Epi5 reading - #1884
Conversation
…n the Epi5 reading tests/dto_binding.rs now routes the answer positions with BindStore::route, seals frames with lance_graph_dt64::dr::FrameStore, labels R and S through Resolved::field_view and admits the count by MethodRef (Population::Bag). The count's steps name two words of one lab polyfill lens by position: mask-risc's keyed count twice, then checked_binary_i64(Mul). Execution has no production home; the admitted population is carried into the lab register, which still refuses it (BagNeedsMultiplicity). tests/epi5_reading.rs states how an XLOG result reads in CausalEdge64 bits 59..63: Direct x Open for a base fact, IndirectKnown x Open for a composed edge with Y retained. A join certifies nothing. An unstamped composed edge reads as Direct, and an undeclared lens or V1Legacy provenance is refused. Plan Amendment A records the vocabulary rule (addenda 8 and 9) and the open questions. STATUS_BOARD: D-XLOG-NATIVE-0 shipped (#1866), D-XLOG-NATIVE-5 in PR. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
src/native.rs answers the admitted chain query with ndarray::simd functions: eq_u32_to_mask for a bound end, mask_scatter_or_u32 onto Y and mask_and for the support, and masked_group_count_u32 twice plus checked_binary_i64(Mul) for the bag count. The Y domain is DR's lance_graph_dt64::dr::LocalMap, so the native path is not limited to one 64-slot tile. admit_count admits XLOG's compiled count rule (Count keyed by the answer column) and refuses any other aggregate. The DR64 register path stays as the differential: every Gate B answer now asserts that native forward, backward and answer masks equal the register's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF
…simd Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5fc23270a6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
XLOG's fact loader (load_grouped_facts_into_store at the pinned revision) skips a row it has already seen, so a base relation is a set and a repeated fact is not a second witness. facts() now drops repeats, so the native bag count, the register and both oracles all read the same set. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF
A mapping file names each concern's sole owner, its basis, the symbols only the owner names and what everyone else reaches it through. A syn-based symbol fence and a cargo-metadata dependency fence report uses outside it; a two-way ratchet baseline holds known violations. Report-only first, blocking once the baseline is committed. Board rows D-SOC-FENCE-0..4. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF
…SQL endgame (plan only) DuckDB's selection vector made explicit (mask + LocalMap pointer table, tile width from survivor count), relations read per semiring on one address (B for presence, N for bag multiplicity), the bag-op polyfill table with each word's status, N-compose via ndarray::simd::matmul_i8_to_i32 as the candidate home for the many-to-many join, frontends (XLOG, SQL, Cypher, Mistaber), the PostgreSQL and Iceberg scoreboard protocol, waves D-DYNBAG-0..7. D-SOC-FENCE gains the tuple-template concern. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF
…TIVE Amendment C D-DYNBAG §17 adopts the operator's architecture (Quack/relalg describe, mask-risc evaluates, ndarray::simd computes under mask-risc), diagrams the merged #1884 flow against the target, lists the exact existing APIs, labels seven missing integrations, and states the D-DYNBAG-0 gates. D-XLOG-NATIVE's direct-ndarray rule is struck in place and superseded by Amendment C. Docs only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF
board: record #1884 (PR_ARC, LATEST_STATE, D-XLOG-NATIVE-5/6 shipped)
Summary
The XLOG probe now runs its admitted query on the
ndarray::simdpolyfill and binds it through the production bind store (lance-graph-dt64). A new test states how XLOG results read inCausalEdge64bits 59..63 (Epi5).Execution on
ndarray::simd(src/native.rs, new)X == x,Z == z)eq_u32_to_maskmask_scatter_or_u32, as the demanded result onlymask_andmasked_group_count_u32checked_binary_i64(I64Op::Mul), from ndarray #407; an overflow is refusedlance_graph_dt64::dr::LocalMap, 64 or 256 wide. A 200-Y fixture is answered that the 64-slot register refuses.admit_countaccepts XLOG's compiledcountrule and refuses any other aggregate (UnsupportedAggregate).Binding through
lance-graph-dt64(tests/dto_binding.rs, rewritten)BindStore::routeand seals frames withdt64::dr::FrameStore.field_viewand admits the count byMethodRef(Population::Bag).MapChanged) and a retracted position (Unrouted).bind_dr64still refuses Bag in the lab register. The native path is what answers it now.Epi5 (
tests/epi5_reading.rs, new)Direct × OpenIndirectKnown × OpenDirect, becauseraw5 == 0meansDirect × Open.V1Legacyprovenance.Docs and board
d-xlog-native-v1.md:ndarray::simd. The projected two-atom chain moves from NATIVE to INLINE.New probe dependencies (the probe is its own workspace):
ndarray(gitmaster,std, the coordinatelance-graph-onnxuses) andlance-graph-dt64;causal-edge.CubeCL was not needed as an intermediary: every function above is on the
ndarray::simdfacade.Behaviour change: none outside the lab probe.
Validation
cargo test --release --manifest-path crates/xlog-relcomp-probe/Cargo.toml: all suites green.gate_b: 18litho: 11, plus 1 ignored (the register still carries no counts)dto_binding: 4epi5_reading: 4gate_g: 3cargo clippy --release --all-targets -- -D warningsandcargo fmtclean.mask_and(answer = forward)gate_blithogate_b, 1 inlithothe_native_path_refuses_other_aggregatesbinddt64_does_not_bind_against_a_stale_frameexecuting_the_admitted_bag_method_is_refused_in_the_lab_registerDirectbase_facts_and_composed_edges_carry_different_topologies,an_unstamped_composed_edge_reads_as_directi64.Open (other owners)
MethodSignature,MethodRefor Tract'sMethodKey(EXO-50).🤖 Generated with Claude Code
https://claude.ai/code/session_01XAqKMNZqKXSaeb9g2ypywF