Open topolarity opened 1 week ago
This also affects the "% re-compilation" metric reported in @timed
etc.
Yes, this is an implementation issue that "recompiled" is basically meaningless right now, since is_recompile
never actually checks if it was compiled before (invoke is set)
There are times (such as when inlining) when Julia will create a
CodeInstance
that has no code associated with it.For example:
This outputs:
which shows that
contractuser(::String)
was never invalidated (and in fact only has one CodeInstance). It just never had any code associated with it because it was only inferred and then inlined.However if you run with
--trace-compile=compile.log
you'll see:You can see we reported
precompile(Tuple{typeof(Base.Filesystem.contractuser), String}) # recompile