What do you think about this simple convention for multiple installed Racket versions on a Unix-ish OS, when key parts of userland are implemented in Racket, and when you also might be working on custom versions of core Racket itself on the device while you are using the device?

* Directory tree "/usr/local/racket/",[1] underneath which will be subdirectories for particular core Racket install/development trees (e.g., "6.12", "7.0", "github-master", "git-branch-power-mgmt"), and also symlinks for current selections of which Racket trees to use for which functional purposes.

* The symlinks for different functional purposes might include something like "default" (for most purposes), "system" (for things like keeping your current boot/session at least minimally useful, so that you can be more aggressive with changes to "default"). Additionally, for a kind of bootloader level for "system", there could also be "system-safe" (for automatic failing over, such as when booting with "system" fails), and "system-nextboot" (which would tentatively replace the "system" symlink at next boot, perhaps failing over to the old "system" symlink value before "system-safe").  This is slightly complicated, but the little bit of complexity is mostly confined to a "system" bootloader -- most everything else only needs to care about whether it uses "default" or "system" Racket, if it specifies at all.

* User's shell executable search path would include "/usr/local/racket/default/bin".

* Executable Racket scripts that really needed a "#!" line could use "/usr/local/racket/default/bin/racket" or "/usr/local/racket/system/bin/racket", as appropriate.  Though our environment might invoke most Racket programs other, more-Rackety, ways.


[1] The directory doesn't have to be rooted at "/usr/local/racket/".  I just used that as a GNU-ish safe default for these examples (and it's usually on a "/usr" or "/" partition filesystem, which are mounted reliably), but that's not set in stone yet.  It could also be "/usr/racket/", "/opt/racket/", "/racket/", or something else.  Let me know if your favorite Unix-ish OS really wants or doesn't want it particular places, in case some of this Racket userland stuff might also be good on that platform, not only on a PostmarketOS handheld.  (And we're not saying that Racket in some form couldn't someday also belong in a "/boot/" directory/partition, but personally I'd first like to conquer userland. :)

--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to