Scheme is a programming language. There are several related packages in Debian:
PLT Scheme/Racket: plt-scheme in squeeze, or racket in unstable
Scheme48: scheme48 (orphaned)
Wikipedia carries good descriptions of the strengths and weaknesses of implementations.
There is not currently a cross-Scheme policy in packaging implementations and libraries. This would surely be useful. forcer created a Scheme policy for R5RS and it could easily be extended to the present situation. forcer's policy can be summed up as such:
- Handle Scheme versions through the alternatives mechanism
Provide alternatives for various standards, so scheme-r5rs etc
There is a problem with loading additional libraries. That problem is that implementations don't have a standard path to look in to load libraries. I recommend /usr/share/scheme/r6rs. Now, most implementations DO provide a way to extend the load path through an environment variable. However the environment variable name is different for all implementations. It would be possible to arrange for each implementation to provide a wrapper script that sets its correct load path. However this seems fragile: if a user wants to set the load path himself for his personal libraries, he has to make sure not to blat the existing value otherwise all his code will break. This basically seems a hackish way. I would therefore tentatively suggest patching R6RS implementations to hardcode /usr/share/scheme/r6rs into the load path. What do others think of this?
There was an attempt to get Mosh into Debian: see ITP 537776, now archived. However the packager eventually gave up due to the bundled libs. At the time they could have been unbundled fairly simply, however this is now very unlikely, see upstream bug #156 now marked WONTFIX. Mosh will not work at present with system libgc. The old packaging can still be found in collab-maint. Note that the GCC 4.6.0 in sid will miscompile NumberReader.tab.cpp in Mosh 0.2.6.