HN user

spacesuitman2

17 karma
Posts0
Comments34
View on HN
No posts found.

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.

Rarbg Is No More 3 years ago

I think he means that employees/contributors exist on both the Russian and Ukrainian side.

For all my searches so far, ripgrep is about 30-100x faster. Perhaps you're on some hardware which ripgrep isn't well suited for.

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.

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.

Dotfile madness 7 years ago

If only everyone would just put it in the `.config` dir and be done with it. Predictable. Simple. And without shrapnel in home.

The secret to staying slim is to not eat more calories than your body uses

This. There are too many people who do not understand that conservation of mass applies to the human body too. Nobody gains 1 kg by eating a single peanut, yet some people claim it's all genes.

However undesirable it appears at first, it does prevent the creation of an infinite number of new, incompatible languages. Config languages tend toward turing completeness and just become turing tarpits. That's why I'm asking about using a Lisp which is extendable to its problem domain.

Source on gdb disabling it? Just writing `gr` in gdb enters the guile repl.

I have to agree on you regarding OS threads, although there are places, but they're processes. For long names, most names have an abbreviation like call-with-current-continuation has call/cc, and in any case, you can make your own abbreviation using make-rename-transformer so this shouldn't be an issue

Racket is unlike many other programming languages, firstly it's a lisp. Secondly, it features a builtin language framework that allows you to seamlessly interop different languages through racket. Once you learn racket you realize that most other languages are just macros in racket, or a #lang in racket, and that their unique implementations are mostly quite wasteful, as they make interop hard.