Digging into Julia's package system
Digging into Julia's package system
Posted Oct 23, 2021 22:12 UTC (Sat) by garrison (subscriber, #39220)Parent article: Digging into Julia's package system
One thing that might interest LWN readers is the great effort the Julia community has put into making packages that Just Work, even if they depend on code built in another language. Long ago, when a user would install a package, Julia would detect which Linux distribution it is running on, then run the suitable sudo apt-get install command (or equivalent) so that its dependencies would be available. This turned out to be brittle -- too much subtle breakage here and there, not to mention the requirement of root access.
Because of these issues, Julia 1.3 introduced an artifacts system that allows binary dependencies to be cross-compiled and distributed. The Yggdrasil repository contains recipes for cross compiling these binary dependencies -- the procedure is much like packaging a library for any other Linux distribution. While I was somewhat skeptical when this approach was introduced (their motivation sounds like a classic case of NIH to me), I must admit that it works remarkably well in practice. Years later, I rely on this system daily and it works flawlessly.
Posted Oct 23, 2021 22:18 UTC (Sat)
by garrison (subscriber, #39220)
[Link]
Digging into Julia's package system