Repository navigation
MORK / PathMap Schnellverschluss: source switch, typed backend switch, differential probe (D-MPS-0..7) - #1620
Conversation
An excluded probe crate (own workspace, results only, D-ASM-10) that answers
Q(x,y,z) :- R(x,y), S(y,z) through MORK (product-zipper and leapfrog builds)
and a PathMap read-zipper, against an independent nested-loop oracle.
- Source switch: pinned git revisions of the AdaWorldAPI forks plus one
[patch] that resolves MORK's out-of-repo `../PathMap` path to the same
PathMap revision (one package identity, no upstream file edited).
- Execution switch: Backend::{Mork, PathMapZipper, Native} with typed
refusals: SetOnly (both upstream indexes are sets), NoAdmittedNativeJoin
(no-gather ruling), Stale (generation witness).
- boundary.rs is the only module naming mork or pathmap; rows cross as
[u32; 2] in and [u32; 3] out, so no raw-pointer MORK Expr escapes.
- examples/cost.rs measures index build, query and amortization over
1/8/64 thoughts. CI job mork-pathmap-probe.yml runs both builds.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VyWZYKycy6MoYDxHRVnV5K
Plan with the verified source and type inventory, ownership and mapping design, fork/upstream switch specification, entropy ledger, measured cost, blockers and a short upstream proposal (PathMap dependency path, stable build, library allocator, generic join input). Board: STATUS_BOARD rows, plan index, ISS-MORK-LIBRARY-GLOBAL-ALLOCATOR, LATEST_STATE, an entry with the measurements; entries index regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VyWZYKycy6MoYDxHRVnV5K
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Warning Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The probe's bare u64 generation is enough for the in-probe Stale refusal, but outside the probe two datasets can share a version number. D-RMAP-1A §7 (#1619) replaces it with DurableRef + index seal + QueryReference::at(v, rung). The backend switch does not touch the witness. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VyWZYKycy6MoYDxHRVnV5K
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. |
…ork-pathmap # Conflicts: # .claude/board/entries/README.md
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0d73c1e911
ℹ️ 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".
The probe printed the shared cost per thought (build / 64 + query) next to the rebuilt cost as a 64-thought total (64 * (build + query)), and the plan read that as a 110x saving. It now prints both per thought and both as a 64-thought total. Re-run in release: a shared PathMap index over 64 thoughts costs 1 556 ms vs 2 487 ms rebuilt (1.6x; 24.3 vs 38.9 ms per thought) at n = 50 000. Sharing saves the build only; the query dominates. Plan §6 and the board entry now cite the re-run. Found by Codex review on #1620. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VyWZYKycy6MoYDxHRVnV5K
Merges main (#1620, dca8e7b) into the #1621 branch and resolves the LATEST_STATE conflict by keeping #1620's own section, now marked merged, under a new "main after #1620" section. Adds the PR_ARC_INVENTORY entry for #1620, including the corrected cost figure (1.6x shared vs rebuilt, not 110x). Entries index regenerated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VyWZYKycy6MoYDxHRVnV5K
This PR adds a results-only probe that runs MORK and PathMap behind a single replaceable boundary in lance-graph. It is independent of #1618 and #1619 (both merged).
mainhas been merged in.It adds no production executor and makes no CE64 change. Nothing is wired into Quack, R2IL or Mask-RISC, nothing lands in Lance storage, and no upstream file is modified.
What it adds
.claude/plans/mork-pathmap-schnellverschluss-v1.md:RelationView.generationis a stand-in for the binding witness defined in D-RMAP-1A §7. That witness isDurableRef+ index seal +QueryReference::at(v, rung).crates/mork-pathmap-probe:Q(x,y,z) :- R(x,y), S(y,z)through MORK and through a PathMap read zipper, and compares both against an independent nested-loop oracle;boundary.rsis the only module that namesmorkorpathmap. Rows go in as[u32; 2]and come out as[u32; 3], so no raw-pointer MORKExprleaves that module..github/workflows/mork-pathmap-probe.yml: fmt, clippy and tests, once with MORK's default (product-zipper) join and once with--features leapfrog.ISS-MORK-LIBRARY-GLOBAL-ALLOCATOR;2026-10-19-mork-pathmap-schnellverschluss.md;Source switch
pathmap = { path = "../PathMap/" }. That path is outside the MORK repository, so a git dependency on MORK fails to resolve:no matching package named pathmap.[patch."https://github.com/AdaWorldAPI/MORK"] pathmap = { git = …, rev = "ef02591" }, fixes this without editing MORK. The dependency graph then contains exactly onepathmappackage.mastermainvs upstreammainde9312enightlyfeature opt-in)mainon Rust 1.99E0554(nightly-only feature)de9312eon Rust 1.99Execution switch
Backend::{Mork, PathMapZipper, Native}.SetOnly: both upstream indexes store sets, so a request for bag multiplicities is refused rather than answered with every count collapsed to 1.NoAdmittedNativeJoin: this join readsSat positions chosen byR's values, which the no-gather ruling forbids. The native arm waits for a co-addressed producer. The quarantined feat(mask-risc): expose scoped outgoing graph-hop fold #1616 hop is not used.Stale: the generation witness refuses an index built from older generations.Tests
clippy -D warningsandfmt --checkare clean in both builds.Measured cost
Release build, one run per cell, re-run after the Codex review. Shared and rebuilt costs are now on the same basis.
Blockers and upstream proposals
None of these upstream changes is opened by this PR.
../PathMap.de9312e.jemallocin the library. Linking MORK currently replaces the binary's global allocator; a second one fails to link.query_multi_leapfrog/UnifyJoingeneric over a cursor provider.SubtermCursor<Z>is already generic over PathMap's public zipper traits.RelationOrdercannot be built yet, becauseRelationOrderitself does not exist yet.🤖 Generated with Claude Code
https://claude.ai/code/session_01VyWZYKycy6MoYDxHRVnV5K