
I am using Nix. Overall the racket package works well. You can install external packages and get everything up and running quickly with basically no configuration.
I did run into issues when trying to link docs of a local package (e.g. raco setup
throws some non critical error). Nix is overall very restrictive with it’s permission and that seems to mess with the linking. I haven’t dug too much into this as linking docs for a package I’m actively working on hasn’t been super important.

That backfired:

Note - racket’s dependencies aren’t part of nixpkgs
.

Uh. I mean raco’s packages.

It’s not a problem unique to Racket though; most language tooling doesn’t work well with Nix.

Is it a more general assessment you want to hear about?

Yeah, most languages that do work well with nix create specific nix packages for every language dependency. I honestly think it’s the part I like least about nix (especially for a language like racket that has good language tooling)

Now run it on CS Racket :slightly_smiling_face:

‘simpler’

That was in June, so with BC probably. @soegaard2 could you run the same program with CS then?

If it also fails, maybe there’s a possible optimisation to make?

Well, I wasn’t the one running the example. The question is here: https://stackoverflow.com/questions/50637524/why-define-syntax-of-or-in-scheme-need-consider-three-conditions

Thank you both! Yes, a more general assessment is welcome! :slightly_smiling_face:

Interesting that language tooling doesn’t work great with Nix, isn’t it supposed to do just that - replace the package managers of individual languages? (or was it only Guix?)

It does try to replace all package management. But making it able to do that requires an extra step.
Every language’s library authors will first off care about making the library work with that language and it’s tooling. Few, if any, will care about making work with nix. Therefore, a lot of the work to package and get things working falls on other people in the nix community.

Do people actively use this tooling in Nix?

I’ve seen it pop up here and there. Out of the corporate world, I only know of Target labs using it extensively, but they also employ 2 of the maintainers.
I use it at work a little bit to create reproducible environments without the overhead of a vm. But I also use escape hatches that don’t require me to use the nix language packages. For example python has a way to still using pip
inside of nix in a fairly reproducible way, but it’s considered impure.
Racket just doesn’t have an option for anything like that.

Thank you! :slightly_smiling_face:

That optimization is ok in scheme (see https://github.com/cisco/ChezScheme/issues/293) , but I think generally it is not allowed in racket (unless we can prove it is single-valued and don’t inspect continuation marks, probably).