That is, if you use the static-link feature branch of racket2nix. Need to rebase it to have less "oops" and "omg" commits and more informative and one-improvement commits, then it'll go into master, and then maybe it's time for a #racket2nix v0.1.0 and publishing to the racket catalog!
Oops, the gimp toolbox snuck into the screenshot. Oh, whatever. 😀
... and that generates the nix expressions for the package and all its deps, then calls them and returns the result as a finished derivation to build the whole shebang.
@cwebber I have uncovered a bunch of potential improvements to racket during the course of this project. All of them stemming from the fact that it kindasorta supports having multiple system installation paths, but nobody ever does it, so there are a few, less than a handful but core, places in the code that think they can get away with (build-path (find-blah-path) "/somefile.rktd") rather that using the proper (blah-search-path) that even exists and is documented.
I think one is because it's in bootstrap and maybe not all variables have been configured yet, but another I think is just a mistake. But I'll have to examine them properly and write issues and patches.
This open files thing can probably be ameliorated if I set things up a bit differently. There's a whole bunch of improvements left to do on my side as well.
Harm reduction for developers: What should your fancy new package manager do to not inflict pain upon the world?
Makes an accurate-looking distinction between System Package Managers, Language Package Managers and Project Dependency Managers.
Of course guix/nix operates in all three domains simultaneously, and does so pretty neatly, but the post is from the perspective of someone wanting to make a language-specific PDM for Go.
Haven't finished reading the post. Will do so on the other side of some sleep.
I stopped reading because I realized I had a lot of thoughts on this, as I'm currently writing an adapter from the PDM/LPM of Racket to the SPM/LPM/PDM of Nix, #racket2nix.
So I write a thing in a Hashify tab and it's a winding mess. I stopped writing that and started reading on Nix Rust packaging and that gave me ideas for what I should do next in R2N. So I did that for a while.
Automatic testing yeeeeeah. Finally got to the place where packaging ourselves and most of the #racket release pkgs is something we can do, so that's a great* system test.
Lots of tinkering left to do to make this program not a dirty hack, first of all to package ourselves without the crutch of a massaged package catalog. But now with tests in place, I can do it with more confidence and without hurting myself, which I've already done a few times.
On my Mac laptop obviously there is no Guix. On my GNU laptop, guix pull takes a whole day. Haven't updated it for months. And now that I'm actively working on Nix stuff, that puts Guix even more in the background.
Once I get #racket2nix working for real (but it's already a minimally useful thing!), I will look at making a guix import racket though. That will have to be in a VM on the Mac, unless I went and got myself a more powerful GNU by then.
Hallå Kitteh (clacke@social.heldscal.la)'s status on Tuesday, 20-Feb-2018 18:57:12 UTC
Hallå Kittehtfw you look at that s-expression and it's finally just the way you intended it to be, and your eyes water in joy, your shoulders that you didn't know were tense sink back down in relief, and your heart swells with gratitude to the thousands of people who unwittingly made it possibly for you to achieve this.
@dwmatiz @lnxw48a1 Wow. Suddenly we have binged through the whole thing. You can do that in a long day, apparently (39 eps, less than 20 mins each).
There was no real story anywhere, apart from a very drawn-out arc about children's power of belief saving the world through city-sized robots.
I was happy to see Sky-Byte have a happy ending!
In the meantime, I have almost solved my current issues with #racket2nix.
It is a huge toy advertisement, but I am comparing it to Robots in Disguise 2015, Prime and "G1", the original TV show, and they are all much better as entertainment, with better story, better characters, better actors and less then a tenth the cringe. I quite like them, although G1 is more cult than good. Still more genuinely good than RID 2001.
I'm troubleshooting why #racket2nix won't build some pretty core packages and that would be tricky to trace in drracket, so it might be worth giving geiser a go, and tell it exactly my racket command line and config.rktd to pick up exactly the paths I use and no more.