Keeping track of 'trimming safe' packages

The page at System Image Building · The Julia Language states:

Package authors may wish to test that their package is “trimming safe”, however this is impossible in general. Trimming is only expected to work given concrete entry points such as main() and library entry points meant to be called from outside Julia. For generic packages, existing tests for type stability like @inferred and JET.@report_call are about as close as you can get to checking trim compatibility.

And:

We also plan to try to increase the set of programs that can be trimmed over time.

Now I am wondering if anyone is keeping track of packages that are ‘trimmable’. And if not, whether it might be worthwhile to do so.

I understand that this is in general a difficult thing to do, as trimmability depends on the entry point. But at least an attempt can be made by trying out the common entry points and see whether trimming succeeds for all of them, and if not keep track of issues (this is perfect task for AI assistance!). There are also packages that straight up fail to trim, regardless of the entry point, such as TimeZones.jl. I have ran into other packages with this problem, a good indicator seems to be the presence of an _init_ function which has some form of dynamic artifact resolution.

One of the biggest problems for trimmability seems the usage of FunctionWrappers.jl, which is untrimmable. Looking at https://platform.juliahub.com/ui/Packages/General/FunctionWrappers#dependents, we know that at least 688 are not safely trimmable. Indeed I’m hopeful that TypedCallable lands soon in Base, which would be the trimmable replacement to that. It is being worked out in Add `TypedCallable` (Part 1/2) - Pull Request #62559 - JuliaLang/julia - GitHub :collision: