Conversation
Alizter
force-pushed
the
push-krosrsyvkzsk
branch
4 times, most recently
from
August 17, 2026 11:50
c582f82 to
d531fe0
Compare
Alizter
force-pushed
the
push-krosrsyvkzsk
branch
7 times, most recently
from
August 17, 2026 23:06
c2d3131 to
3172785
Compare
Signed-off-by: Ali Caglayan <alizter@gmail.com>
Alizter
force-pushed
the
push-krosrsyvkzsk
branch
from
August 17, 2026 23:19
3172785 to
443b431
Compare
Build one SAT universe for every requested platform instead of solving each platform independently. Enforce one version per package name across platforms while allowing different package-name alternatives, evaluate availability and local-package constraints in each platform environment, and minimize distinct avoid-version package versions. Keep the single-platform SAT encoding unchanged, preserve each selected platform package when extracting lock data, and only copy extra files for selected package versions. Signed-off-by: Ali Caglayan <alizter@gmail.com>
Use the conditional lock-file representation for every newly generated lock directory and remove the portable-lock-dir feature flag and split code paths. Keep old lock directories readable: bare atom-form dependency fields decode as all-platform dependencies, and legacy bare build/install actions continue to run on every platform. Signed-off-by: Ali Caglayan <alizter@gmail.com>
Signed-off-by: Ali Caglayan <alizter@gmail.com>
Alizter
force-pushed
the
push-krosrsyvkzsk
branch
2 times, most recently
from
August 18, 2026 10:07
a114ad7 to
0ae5b8d
Compare
rev_store Entry.parse compiled a Re regex and ran Re.exec_opt per line of every git ls-tree -z --long listing. pkg lock lists the whole repository tree, putting this on the lock hot path. Replace it with index-based parsing of the fixed ls-tree shape (perm type hash<TAB>size<TAB>path). Re-verified with dune pkg lock on a 4-platform solve against the full opam-repository (5,983 SAT variables, 14,394 clauses): wall unchanged within noise (regex 259ms vs index 262ms, median of 10); the Re parse frames disappear from the perf profile (Re.Core.entry 0.5% -> gone); ~380K words of transient allocations removed (alloc-profiler measurement on the original ocaml-re benchmark). Signed-off-by: Ali Caglayan <alizter@gmail.com>
Alizter
force-pushed
the
push-krosrsyvkzsk
branch
from
August 18, 2026 10:42
0ae5b8d to
3b306a8
Compare
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.
Stacked on #15989. Only the final commit is new in this draft.
Summary
git ls-tree -z --longrecord shape with delimiter indices.Tests
dune runtest test/blackbox-tests/test-cases/pkg/git-repo.t test/blackbox-tests/test-cases/pkg/submodules.t test/expect-tests/dune_pkgdune build @fmt @check