i am now deep diving into the way spack handles modifications to the build environment
@navi the problem of representing env modifications for package builds that (unlike nix/guix) intentionally share state, in precise coordinates, is very interesting to compare/contrast against the other problem you've been working on with openrc env var visibility across services with dependency relationships
your problem seems like ridiculously more difficult (i'm not hating)
the isolation boundaries you have to achieve between openrc service processes however seem extremely analogous to the isolation needed for package builds
except in this one very specific aspect: that package builds are supposed to operate strictly upon the filesystem contents visible to them, and their output is auditable at every single stage
it is not bad. it is thoughtful. python works very hard to obscure the structure we build, as usual, since it is a demonic hell language that hates its users
i am employing a demonic hell feature that will make our very simple structure more clear and more performant
@hipsterelectron i am also piecing together a python codebase and by FUCK do i want this godforsaken thing to have an image or a listener that can query things at runtime. the app doesnt have it to so i am executing inside the venv its deployed as
i am fighting demons for the common good of all of us
@hipsterelectron Thank you for your service!
metaclasses are easily the worst experience i have ever had in my entire life attempting to institute a very specific level of type safety + runtime layout guarantees. they are intentionally awful to make you mad
why? because if you can metaprogram, you can build your own type system. this is the worst conceivable result to the owners and maintainers of cpython
fucking incredible https://docs.python.org/3/reference/datamodel.html#uses-for-metaclasses they have removed the critical fucking information that you are supposed to overload __new__ in a metaclass
best language ever