4 ms·
"All software exists in a graph of dependencies." And some of these graphs consist of a single node. Junk the jank!
by squid_demon 6y ago
"All software exists in a graph of dependencies."
And some of these graphs consist of a single node. Junk the jank!
- Gaelan 6y agoI mean, if you count the compiler/interpreter (which nix does), realistically that's a bare minimum of two.
- takeda 6y agoNix comes with its own glibc, so that's 3, although I guess while it is not the default you could compile statically.
- Gaelan 6y agoIf you compile statically, you've got musl, which is still a (build-time) dependency.
- takeda 6y agoThere's a confusion between build and runtime dependencies. From Nix point of view. Even if you compile statically your code still depends on libc, it's just that you include the libc in the resulting binary. With Nix all dependencies are listed for your application. Because if no compiled version is available in binary cache, Nix will get a compiler and build one. This is actually awesome, imagine there's a program in nixpkgs that you want to use, but you want to have it linked with different libraries. For example pgbouncer[1] can be linked with different DNS resolvers, which have their strengths and weaknesses (currently it is linked with c-ares which probably is what most people want, but until version 1.10 that wasn't true) you can override the derivation and use different dependency. Nix will build on the fly the new version that does do what you want, and this is awesome. [1] https://www.pgbouncer.org/install.html https://www.pgbouncer.org/install.html
- squid_demon 6y agoI use C but I never use the C standard library. It blows.
- takeda 6y agoMaybe I'm missing the joke, but even if you use printf() in C you are using C standard library.
- squid_demon 6y agoIt's not a joke. I don't use printf, scanf, malloc, etc...
- takeda 6y agoWhat do you do? I don't think you can make syscalls without embedding assembly into your C code.