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
We have been working in #53719 on a new mangling scheme that will be helpful for reducing the number of precompile failures in our codebase (see PR's description).
For purposes of reducing name changes in the types of anonymous functions and nested closures across different versions of our codebase (i.e. an anonymous function whose type name is #3#4 in one version of the codebase and #5#6 in another slightly different version), we are making the counters used for generating these symbols private to every pair of (module, top-level function name), instead of keeping it per-module as it is.
The issue here is that the name of the enclosing top-level function appears twice if we have a nested lambda in it. See explanation for why this is the case and an example below:
julia>functionfoo(x)
return y -> x + y
end
foo (generic function with 1 method)
julia> f =foo(42)
#foo##0 (generic function with 1 method)
julia>typeof(f)
var"#foo##0#foo##1"{Int64}
@topolarity and @NHDaly didn't consider this duplication of #foo a merge blocker, but still, the names could be a bit nicer.
Opening this issue to track discussions/progress on the matter.
The text was updated successfully, but these errors were encountered:
We have been working in #53719 on a new mangling scheme that will be helpful for reducing the number of precompile failures in our codebase (see PR's description).
For purposes of reducing name changes in the types of anonymous functions and nested closures across different versions of our codebase (i.e. an anonymous function whose type name is
#3#4
in one version of the codebase and#5#6
in another slightly different version), we are making the counters used for generating these symbols private to every pair of(module, top-level function name)
, instead of keeping it per-module as it is.The issue here is that the name of the enclosing top-level function appears twice if we have a nested lambda in it. See explanation for why this is the case and an example below:
@topolarity and @NHDaly didn't consider this duplication of
#foo
a merge blocker, but still, the names could be a bit nicer.Opening this issue to track discussions/progress on the matter.
The text was updated successfully, but these errors were encountered: