Hi ryan (npub124t…2ca5)
« Package Managers à la Carte – A Formal Model of Dependency Resolution »
https://doi.org/10.1145/3828699
Cool, very nice and great paper! Well, to be honest, I’m not able to parse all in this paper; it’ll deserve a huge mug of coffee and some free time ahead. So maybe my question is already answered. 😁
🤔 What I’m missing is the definition of “package” and “version”.
2.1.1 « A package is a unit of software – source code, a compiled binary, or data – […] Packages are identified by a name, which refers to a package across its releases, and a version, distinguishing one release from another. »
The exact same source code – the exact same “name” and “version” – can produce two different compiled binaries depending on the compilation options for instance.
What seems lacking in this “Package Calculus“ is thus a third item defining a "package”: the “build script“, no?
Either it’s included in the “version” but the ordering seems lost, either the “Package Calculus“ would need to be updated, no?
Appendix D “Singular Dependencies” speaks about Nix/Guix. And from my understanding, that’s the point of this approach: define a “package” as a “name”, a “version” (= source code release) and a “build script”, no?