-
Notifications
You must be signed in to change notification settings - Fork 414
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Review and reduce dependency list with package extensions? #1751
Comments
Julia packages often have a ton of small dependencies that make it look like they're "bigger" than they actually are. The only substantial dependency here is OpenSpecFun, a Fortran binary for special functions.
|
We already use package extensions for optional dependencies such as ChainRulesCore and DensityInterface. Both have almost only stdlibs as dependencies but it still avoids compilation and loading of quite a few definitions, both in Distributions and these packages. |
Note also that the print-out in the OP contains many dependencies multiple times and includes stdlibs such as Statistics, so IMO it looks worse than it is. |
I think that part of the issue is caused by the external binary dependencies coming from SpecialFunctions.jl Nowadays we have packages such as Bessels.jl that are purely written in Julia, are faster and support autodiff, but SpecialFunctions.jl is widespread. Any initiative to review the external binary dependencies and replace them with native Julia versions? |
No, I think this should be handled upstream first and not by Distributions. There are discussions in SpecialFunctions but there is no agreement on such changes yet (a while ago e.g. compilation times were much worse with Bessels). A large "part" of the SpecialFunctions dependency is also only indirectly via StatsFuns. |
Fair point. I will close the issue and hope that the upstream packages can replace these binaries at some point for a leaner ecosystem. |
Distributions.jl is one of the heaviest dependencies in my packages.
Is there an initiative to review and reduce the dependencies of the package? Maybe with package extensions?
The text was updated successfully, but these errors were encountered: