You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Union-split on Expr, Symbol, and LineNumberNode when hashing Exprs (#59378)
```julia-repl
x@fedora:~/.julia/dev/julia$ julia +pr59378
o | Version 1.13.0-DEV.1043 (2025-09-07)
o o | lh/hash-expr-union-split/8a95cf82d3d (fork: 8 commits, 14 days)
julia> expr = Meta.parseall(read("base/show.jl", String));
julia> using ChairmarksExtras
julia> @Btime expr hash
395.753 μs (23358 allocs: 364.969 KiB)
0x8e1ffc47fe5dc80b
julia> @Btime :(sin(x^2) + cos(x^2)) hash
144.778 ns (15 allocs: 240 bytes)
0xc837adb769107933
julia>
x@fedora:~/.julia/dev/julia$ julia +nightly
o | Version 1.13.0-DEV.1096 (2025-09-07)
o o | Commit 8a384ab (0 days old master)
julia> expr = Meta.parseall(read("base/show.jl", String));
julia> using ChairmarksExtras
julia> @Btime expr hash
826.924 μs (22422 allocs: 350.344 KiB)
0xf4f9c5fc15a95298
julia> @Btime :(sin(x^2) + cos(x^2)) hash
275.557 ns (14 allocs: 224 bytes)
0xc837adb769107933
```
Notably, the hash of that big expressions changes between these versions because it contains global refs that have different `objectid`s on these two versions.
---------
Co-authored-by: Neven Sajko <4944410+nsajko@users.noreply.github.com>
Co-authored-by: Andy Dienes <51664769+adienes@users.noreply.github.com>
0 commit comments