Make uniqueName deterministic for shared constants#602
Open
nirmaltm26 wants to merge 1 commit intoleanprover:mainfrom
Open
Make uniqueName deterministic for shared constants#602nirmaltm26 wants to merge 1 commit intoleanprover:mainfrom
nirmaltm26 wants to merge 1 commit intoleanprover:mainfrom
Conversation
govereau
reviewed
Feb 24, 2026
KLR/Compile.lean
Outdated
| let gen := mkStdGen count | ||
| let (suffix, _) := RandomGen.next gen | ||
| let suffix := suffix % (2^64) | ||
| return s!"{base}_{suffix}" |
Collaborator
There was a problem hiding this comment.
Shouldn't we check if this file exists?
Unlikely, but catastrophic.
Collaborator
There was a problem hiding this comment.
Agreed. Note how original function is recursive. It's unlikely that you will hit the randomly existing file twice, but maybe keep original recursive logic?
Replace non-deterministic IO.rand suffix generation with a deterministic approach: count existing matching files in the directory and seed a StdGen RNG with that count. This ensures repeated compilations produce the same filenames for shared constants with duplicate base names. Also removes `partial` since the function is no longer recursive.
5c8d79d to
7b1bdba
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.
Replace non-deterministic IO.rand suffix generation with a deterministic approach: count existing matching files in the directory and seed a StdGen RNG with that count. This ensures repeated compilations produce the same filenames for shared constants with duplicate base names.