4 ms·
Yes, I've never really understood the complaint about python packaging - building native code is not something that is ever easy to guarantee across multiple di
by t43562 1y ago
Yes, I've never really understood the complaint about python packaging - building native code is not something that is ever easy to guarantee across multiple distributions and operating systems.
Those native packages can be in any language and require any odd combination of tools to build. Who has truly solved that problem?
- nikisweeting 1y agowheels, conda, docker, firecracker, unikernel, flatpak
- t43562 1y agoflatpak, docker ? i.e. include an almost complete distribution just to make one package work? but what if you want that package to work in the distribution you have now? What if you need 2 different packages that are in different flatpacks or different docker images?
- staunton 1y agoSet them up, each in its own container, and use GRPC to communicate between them... (Not even kidding, I've seen people do this)
- nikisweeting 1y agoobviously don't try those first I'm just saying there's a stack of options to work with for any level of isolation you desire. start with wheels if you just want pre-built binaries, move up to conda if you need arch and OS-specific C libs that depend on system packages, flatpack or docker if you dont want those to mess up your host, or unikernel/firecracker/VMs if you need kernel modules or hardware virtualization.
- Orygin 1y agoIf you don't need to link C lib, you can build any combination of arch and OS for a golang program. The default tooling allows you to do so easily. If you need to link a C lib, there are ways to set it up to compile other OS (and maybe other archs).
- est 1y agotake numpy as an example, it's gfortran mixed with C. How does cgo handle that? And there's ffmpeg....
- Orygin 1y agoIf you got object files you can compile whatever if you have the compiler toolset. I have made a go program that links ffmpeg and is built from linux to Windows and Macos. It was not super easy but it's doable.