From 003c9aec8d678ad2392fed25e83fa07d5ec875ef Mon Sep 17 00:00:00 2001 From: jao Date: Sat, 10 Apr 2021 02:00:56 +0100 Subject: Readme tweaks --- readme.org | 57 ++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/readme.org b/readme.org index 311034f..0436e48 100644 --- a/readme.org +++ b/readme.org @@ -25,7 +25,7 @@ If you're not in a hurry, [[http://www.nongnu.org/geiser/][Geiser's website]] contains a much nicer manual. -* Requirements +* Supported schemes Geiser needs Emacs 24 or better, and installing also at least one of the supported scheme implementations. @@ -46,22 +46,36 @@ * Installation - The easiest way is to use MELPA, and just type +*** Using MELPA - =M-x package-install RET geiser-= + The easiest way is to use MELPA, and just type - inside emacs, or the corresponding =use-package= stanza, for, say + =M-x package-install RET geiser-= - #+begin_src emacs-lisp - (use-package geiser-mit :ensure t) - #+end_src + inside emacs, or the corresponding =use-package= stanza, for, say - All the concrete implementation packages depend on the base =geiser= - package, so it'll be installed for you. + #+begin_src emacs-lisp + (use-package geiser-mit :ensure t) + #+end_src - Some scheme implementations need additional installation steps to - fully support all geiser operations, so please do check their - corresponding web pages. + All the concrete implementation packages depend on the base =geiser= + package, so it'll be installed for you. + +*** From a repository checkout + + If you are not using MELPA, just put this repository's ~elisp~ + directory and the target's scheme directory in your load path and + require the latter: + + #+begin_src emacs-lisp + (add-to-list 'load-path "/elisp") + (add-to-list 'load-path "") + (require 'geiser-mit) + #+end_src + + Some scheme implementations need additional installation steps to + fully support all geiser operations, so please do check their + corresponding web pages. * Basic configuration @@ -181,24 +195,21 @@ - =q= to bury buffer. * How to support a new scheme implementation - Geiser works by running an instance of a REPL, or remotely connecting - to one, and evaluating the scheme code it sees there. Then, every time - it needs to perform some operation (like, say, printing autodoc, - jumping to a source location or expanding a macro), it asks the - running scheme instance for that information. + Geiser works by running an instance of a REPL, or remotely + connecting to one, and evaluating the scheme code it sees + there. Then, every time it needs to perform some operation (like, + say, printing autodoc, jumping to a source location or expanding a + macro), it asks the running scheme instance for that information. So supporting a new scheme usually means writing a small scheme library that provides that information on demand, and then some - standard elisp functions that invoke the procedures in that - library. + standard elisp functions that invoke the procedures in that library. To see what elisp functions one needs to implement, just execute the command `M-x geiser-implementation-help` inside emacs with a recent version of geiser installed. And then take a look at, say, - geiser-guile.el or geiser-racket.el for examples of how those - functions are implemented for concrete schemes (those are the most - featureful implementations we have, so perhaps it's easier to begin - with something like geiser-chicken.el or geiser-chibi.el). + [[https://gitlab.com/emacs-geiser/guile/-/blob/master/geiser-guile.el][geiser-guile.el]] for examples of how those functions are implemented + for concrete schemes. Not all schemes can provide introspective information to implement all the functionality that geiser tries to offer. That is okay: you can -- cgit v1.2.3