Indeed, it would be useful to know why each of these points are not enabled by default (including a huge amount of non-free and less verified software is an obvious one). In particular the `sbin` one I assumed because it's stuff you'd only use as root and they already have it on their path. E.g. `reboot` might say "not found" but `sudo reboot` will work.
"use opam" is always the answer but in reality its the worst package manager ever. I've never seen so many packages fail to install, so many broken dependencies and miscompilations that resulted in segfaults due to wrong dependencies. I just gave up with Ocaml due to the crappy ecosystem, although I could have lived with the other idiosyncrasies.
And even if you do get opam working for a project, it's not at all reproducible and will just randomly break at some point in the future. For instance, I had this in a Dockerfile for one project:
RUN eval $(opam env) && opam install --yes dune=3.7.0
One day the build just randomly broke. Had to replace it with this:
RUN eval $(opam env) && opam install --yes dune=3.19.1
Not a big change, but the fact that this happens at all is just another part of building with OCaml feeling like building on a foundation of sand. Modern languages have at least learned how to make things reproducible with e.g. lockfiles, but OCaml has not.
Use "opam lock" and "opam pin". Additionally, Dune's lockdir feature uses opam's solver internally to generate a lock directory containing ".opam.locked" files for every dependency. This is Dune's way of having fully reproducible builds without relying on opam's switch state alone.
Yes, the opam repository has recently been working on an archival policy to reduce the size of the checkout and hopefully ease pressure on the dependency resolver by pruning 'obviously' wrong choices. However, the heuristic they chose seems to have mainly assumed that the things in the repository are libraries, and used dependencies for tracking usages. For executables like dune, this is obviously the wrong idea, and I think they're still deciding how to proceed while adding back most versions
[ERROR] Package dune has no known version 3.7.0 in the repositories
You're right that I could change it to grab directly from GitHub, but at that point I can also just change it to a different version of Dune, as I said above. None of this negates my original point.
Just FWIW, maybe it might work the way you wanted it to if you do not update the registry; worth a try. It should be able to fetch the correct tarball.
Dune is not a dependency manager, it is a build tool. Opam is the dependency manager. By default, Dune doesn't fetch dependencies, opam does that. That said, Dune does use opam, yeah.
I mean, it's quite clunky, but on Linux or WSL I've never had the broken experience you talk about. Could you share your setup? Was this maybe on bare macOS or Windows, in which case I totally believe it because they've been neglected?
I'd recommend "Ultra processed people" be van Tulleken. He references the relevant studies, doesn't try to convince you to change your diet but gives enough food for thought. ;)
The _real_ scandal in that horse meat thing wasn't so much the fact that it was horse, but the fact that, clearly, the traceability system had utterly broken down.
The article is abut "ultra-processed" food. It's fairly easy still to get non-UPF flour, mozzarella and tomato sauce at least in my country. Try the same with candy, ice cream, frozen pizza, cookies, fast food...
I was responding to a comment that said “highly processed”.
Regardless, the mozzarella and tomato sauce purchased from the local store inside of a package or jar with long shelf life is likely to be ultra-processed.
But discussing the best-case scenario where all ingredients are sourced perfectly is missing the point. When someone says pizza or hamburger they’re not talking about the theoretically optimal perfectly produced pizza to minimize processed food content, they’re talking about what people are really buying and eating.
> When someone says pizza or hamburger they’re not talking about the theoretically optimal perfectly produced pizza
I don't know what "garbawarb" meant with "basic pizza", a frozen one or pizza in general? I just argued that flour, mozzarella and simple tomato sauce are not the best examples for UPF.