Christopher Lemmer Webber writes: > Dimos Dimakakos writes: > >> Bonface M. K. writes: >> >>> To simply put it, AFAIU updating a package would >>> require racket to update it's references(either >>> links, and other references that I won't go into), >>> hence creating some form of "global state"; >>> thereby if you use raco, every package updated >>> would lead to some update with racket's search >>> paths or dirs somewhere. Any ideas to overcome >>> this wall? (or anything I've got wrong somewhere?) >> >> This was one of the main problems that I also encountered when working >> on this. racket2nix solves this by generating a temporary environment >> (by coping most of the racket folders and the deps needed as writable >> folders) where it installs with raco and then tries to update the global >> state of racket. >> >> To be honest this solution is kinda hacky and also slow, but I couldn't >> think of another one at the time I tried to work on the issue. It's a >> reality that the racket install system is quite stateful and also many >> operations seem to try to touch files. Installing with raco for example >> will try to recompile the dependencies of the new package and other such >> examples. >> >> Anyway, I hope you can find a way to move this forward! > > I wonder if it would be a good idea to copy many of the points from this > email and the parent to racket-users or racket-dev and see if someone > more familiar with the structure of the system can provide guidance from > there? > This is a good idea IMHO. I'll go ahead and do this. Perhaps there's something more important we've missed or aren't seeing. > If we have to go the racket2nix route, it would be better than nothing I > guess. > Yeah. I'm considering going though this route as a last resort. I don't understand the nix DSL syntax(though it reads alot like Haskell!). > Another possible route: don't use the Racket installer tooling. > Instead, read the info.rkt file of the package to understand what raco > *probably would* do, and then do it in a more Guix way instead. > > What do you think of that route? I've considered doing this... studying raco's source and seeing how it actually does and sets up things. I'd rather do this than the above, but it would take more time and would lead to alot more boiler plate I think... I'm not entirely sure about how to work around the global state though... First, let's consult with the racket-devel and racket-user ML and see what those communities have to suggest... -- Bonface M. K. Chief Emacs Bazu / Rieng ya software sare Mchochezi of: / Twitter: @BonfaceKilz GPG Key: D4F09EB110177E03C28E2FE1F5BBAE1E0392253F