~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Geiser support for scsh 0.6.7 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * QuickStart * -------------------------------------------------------------------- Here's how to get up and running. These instructions assume you already have scsh 0.6.7 installed and available in your PATH. 1. Byte-compile and load up `geiser-scsh.el'. 2. Set the Elisp `geiser-scheme-dir' variable to wherever you’re working from; here’s what I do: (setq geiser-scheme-dir (expand-file-name "~/Code/geiser-scsh/scheme/")) 3. Tell Geiser where to find your Info manuals (this assumes you have installed the scsh Texinfo manual available at https://github.com/rmloveland/scsh-manual-texinfo). (setq geiser-scsh-manual-lookup-nodes '("scsh" "r5rs")) (setq geiser-scsh-manual-lookup-other-window-p t) ;Optional, but convenient. Note: If Info lookup isn't working, try `M-x info-lookup-reset' to clear info's cache so that it can see your scsh manual install. 4. Run `M-x customize-group ENTER geiser ENTER', and set the following variables: Variable Value -------------------------------------------------------------------- Geiser Repl Skip Version Check P on Geiser Active Implementations scsh Geiser Default Implementation scsh (Note that you’ll need to set `geiser-scheme-dir' back to its original value if you want to go back to using Guile or Racket.) 5. Try `M-x run-scsh' and see what happens. At this point, you should be able to enjoy your scsh hacking with nice symbol and module completions, macroexpansions, etc. If you’re going to hack on the Geiser support, do `C-u M-x geiser-show-logs'; a buffer will open where you can listen to Emacs and scsh talking. And if all else fails, the source is your friend. :-} * Overview * -------------------------------------------------------------------- This project aims to make scsh one of the Scheme implementations supported by Geiser. For more information about scsh and Geiser, see http://www.scsh.net and http://geiser.nongnu.org, respectively. Right now scsh 0.6.7 (classic) is being worked on, but it shouldn't be too hard (one hopes) to get 0.7 working too. Interested Scheme hackers can check out scsh 0.7 here: https://github.com/scheme/scsh. See the TODO.txt file for a matrix of Geiser commands and their current implementation statuses. A healthy portion of Geiser's functionality is implemented, enough to hack scsh's Geiser support from inside Geiser itself. Which is good fun. :-} Note that this work is still in progress. In some modules, the most basic possible versions of the Geiser interfaces are exported by each module; in a number of cases when a procedure can return '() or #f, we do so (pending a better solution to be implemented later, of course). Help from any interested Scheme hackers is appreciated. You can get the scsh 0.6.7 manual in Texinfo format here: https://github.com/rmloveland/scsh-manual-texinfo * Acknowledgements * -------------------------------------------------------------------- Thanks to Taylor Campbell for writing SLIME48, from which most of the symbol and module completion code was adapted. It's also just a great source of knowledge about how to write Scheme 48 programs. For more info about SLIME48, see http://mumble.net/~campbell/slime48.html. And thanks to jao, for Geiser!