Skip to content

uw-resolve P3: Debian versions, Provides/alts, real Packages slice - #4217

Open
s243a wants to merge 3 commits into
claude/peerhailer-exploratory-docs-aodas5from
grok/pkg-resolver-debian
Open

uw-resolve P3: Debian versions, Provides/alts, real Packages slice#4217
s243a wants to merge 3 commits into
claude/peerhailer-exploratory-docs-aodas5from
grok/pkg-resolver-debian

Conversation

@s243a

@s243a s243a commented Sep 3, 2026

Copy link
Copy Markdown
Owner

P3 makes uw-resolve speak Debian: deb/3 version semantics (Policy §5.6.12), Provides/virtual packages, alternatives with genuine backtracking, and a real Debian Packages slice ingested into the D48/D56 store pipeline.

Design

  • Versions: v/3 stays fully supported (byte-identical sort/2 when all candidates are v/3). New deb(Epoch, UpSegs, RevSegs) with s(OrderCodes, DigitInt) pre-segmented at parse time. Comparison is list walking only.
  • Relations: >=→gte, <=→lte, >>→gt (strict), <<→lt (strict), =→eq.
  • Provides: unversioned provides(Name,Ver,Virtual) and versioned provides(...,Virtual,VirtualVer). Real package preferred; providers in catalog-list order. Virtual names are never selected.
  • Alternatives: ordered group; first satisfiable wins; backtrack on downstream conflict; layered already-satisfied wins.
  • Parser: debian/parse_packages.mjs. Slice: 500 bookworm stanzas from https://deb.debian.org/debian/dists/bookworm/main/binary-amd64/Packages.gz (Last-Modified 2026-07-11).

Gates (all green)

Gate Result
SWI plunit 50/50 (38 existing + 12 P3)
dump corpus 51 (39 + 12)
store-vs-term 51/51
curated version table green (20 pairs)
dpkg arm RAN — 20 curated + 2000 random, 0 mismatches
wamjs corpus 51/51
wamjs_store corpus 51/51
term differential 2600 / 0
store differential 503 / 0 (extended schema rebuild)
4 JS suites + JS conformance exit 0
cli_args 17/17 + 5067/0/0
cache_equiv + D48 lazy bytes-read bytes_read=10305 vs data_size=489135

Probe-pinned runtime

JS WAM was missing maplist/2,/3 (compiler emits BuiltinCall) and string_codes/2. Both added in templates/targets/javascript_wam/runtime.js.mustache. Store unpack of segs/alts is also recursive so it does not depend on maplist.

Guardrails

  • resolver.pl additive only; test_resolver.pl append-only.
  • Frozen: cli/, cljs/, rust/, go/, BENCHMARKS.md, examples/cli_args/, other targets, harness.

gates_summary.log
This is a log artifact (not a video); see the gates table above and /opt/cursor/artifacts/.

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

cursoragent and others added 2 commits September 3, 2026 23:46
Add deb/3 (pre-segmented Policy §5.6.12 compare) alongside unchanged v/3,
Provides/virtuals + alternatives with documented determinism, and ingest a
500-stanza bookworm Packages slice into the D48/D56 store pipeline.

Co-authored-by: johns243a <johns243a@gmail.com>
Probe-pinned: compiler emits BuiltinCall maplist/N but the JS WAM
runtime had no maplist, so store unpack of deb segments and
alternatives failed (5 wamjs_store divergences). Add maplist/2,/3,/4
and string_codes/2; unpack segs/alts recursively so the store path
does not depend on maplist. Restore catalog/10 accessors; pack
alternatives as ALTS/ (avoid @ in the cell).

Co-authored-by: johns243a <johns243a@gmail.com>
@cursor cursor Bot changed the title uw-resolve P3: Debian versions, provides/alts, real Packages slice uw-resolve P3: Debian versions, Provides/alts, real Packages slice Sep 3, 2026
Regenerate the term-catalog JS WAM project so string_codes and maplist
ship in the checked-in runtime. Extend the 5k scale generator with a
deb/provides/alts overlay (original 500 cases unchanged) so store
rebuilds exercise the extended D48 schema.

Co-authored-by: johns243a <johns243a@gmail.com>
@s243a
s243a marked this pull request as ready for review September 3, 2026 23:59
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.

2 participants