>Rather, it only checks for method names and where-clauses such as T: Trait. Types are only resolved in the confirm phase, at which point rustc would have already picked its method.
Not following here, the compiler iterates over the deref-chain and acquires a list of method names, but it also "checks for ... where-clauses", what does that mean? A quick look at the linked probe code indicates what we filter on Self traits and return value traits.
>I see words like “flakes” and “derivations,” and I currently don’t know what they mean.
>So far, I don’t get how it’s deterministic.
To make nix deterministic you can specify a hash in non-flakes (or a git rev) for your dependencies, but flakes make this easier. When you "run" a flake (be it nix build, nix shell, nix develop), nix pulls the latest (if no explicit rev given in the flake.nix already) version of whatever is specified in flake.nix that it can find, and creates a `flake.lock` file that specifies the exact version that was used. This file is very similar to cargo's Cargo.lock, and specifies the exact version that was captured by ref/hash. The next time nix is "run", it uses the lock file to get the exact same version as it had previously.
One can develop a flake.nix locally, install, check if everything works, and alternatively change the refs in the lock file to make everything work. When this is done you can move the nix and lock file to another machine and get the same exact build there (with the exception of architecture differences).
Because you can put flake.nix and flake.lock inside of git, you can also share the exact same dependencies with other people using a repository. Whenever I see a repository using these I know that building will be a breeze because I don't have to do any dependency hunting.
>I don't have any particular answers to why string templating has been enduringly popular so far (although I can come up with theories, including that string templating is naturally reusable to other contexts, such as plain text).
Perhaps it's the same advantage of living in a society like ants or humans. By keeping each other alive we stand stronger against other forces of nature and/or other species of trees or plants.
>I have not yet seen a compelling argument for Racket there vs. for instance a parser generator framework.
Racket allows for easy interop between the various languages, so for instance, you can use typed racket from untyped modules. You can import documentation modules in base racket and so on.
With other languages, you have to glue the infrastructure yourself, racket does it for you.
Thanks for making this reddit 2.0, I am laughing so incredibly hard at that insightful comment. Wow. How "punny" and fantastic these comments are! They're all the same.
You remind me of a snot-nosed idiot spitting at his computer screen laughing about these dumb memes. Go back to reddit, boomer.
It's not wasted at all - people are learning and configuring, tweaking and optimizing their use of a computer. I for one really like the fact that Manjaro is an easy Arch for me. Is it wasted creativity now that I can focus on non-distro work since I found my distro?
Besides, who is the author to tell people to not waste creativity. It's remarkable to have this audacity. Even the notion of "wasted" creativity is just not nuanced.
Not following here, the compiler iterates over the deref-chain and acquires a list of method names, but it also "checks for ... where-clauses", what does that mean? A quick look at the linked probe code indicates what we filter on Self traits and return value traits.