Repository navigation
Conversation
Hash sets are unit Hashtbl.Make tables; adds keep the first key. Sort hard dependencies by a total order so ties no longer depend on hash order. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Christoph Knittel <ck@cca.io>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Christoph Knittel <ck@cca.io>
cknitt
added this pull request to stack #8788
October 10, 2026 18:50
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Christoph Knittel <ck@cca.io>
rescript
@rescript/belt
@rescript/darwin-arm64
@rescript/darwin-x64
@rescript/linux-arm64
@rescript/linux-x64
@rescript/runtime
@rescript/win32-x64
commit: |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## stdlib-hashtbl #8787 +/- ##
==================================================
- Coverage 80.66% 80.64% -0.03%
==================================================
Files 461 458 -3
Lines 62630 62523 -107
==================================================
- Hits 50520 50420 -100
+ Misses 12110 12103 -7
🚀 New features to boost your workflow:
|
This branch has not been deployed
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.
Second of four PRs moving the compiler's own collections onto the OCaml standard library, stacked on #8786. This one covers hash sets.
Hash_set_ident,Hash_set_stringandUsed_attributes.Attribute_name_setare nowunittables fromHashtbl.Make, using the same equality and hash functions as before.Lam_module_ident.Hash_setis an alias ofLam_module_ident.Hash.Hash_setandHash_set_genare removed, together with their ounit tests.mem, so the first key added is kept. This matters forLam_module_ident: two module ids can be equal while carrying differentids, and the first one decides the name the import is bound to.Lam_module_ident.set_adddoes this for the module sets.default. They are now broken by kind and thendefault. The one change in the generated output iskey_word_property.mjs. There the old order putdefaultfirst for one module and last for another; now the plain import always comes first.Output: byte-identical to #8786 on 627 of 628 files; the exception is
key_word_property.res, described above.Performance: neutral (CPU +0.2%, allocation −0.1% vs master). Earlier figures that suggested a speedup didn't reproduce.
🤖 Generated with Claude Code