|The easy and quick way|
|Installing from source|
If Geiser came with any guarantees, you’d break all of them by not using GNU Emacs 23.2 (or better: i regularly use it with a recent Emacs snapshot) and at least one of the supported Schemes, namely:
Since Geiser supports multiple REPLs, having both of them will just add to the fun.
You’ll also need Geiser itself. The quickest installation is via its ELPA package, as described in the next section. If you prefer to use the source code directly, it’s not that difficult either: just keep on reading.
Did i mention that the easiest way of installing Geiser is using its ELPA package? If you’re using Emacs 24, ELPA is already there; for earlier versions, the page i just linked to twice will tell you where to find the goodies.
ELPA packages live in repositories accessible via HTTP. You can find
Geiser’s package in either
MELPA stable or, if you
like living on the bleeding edge,
MELPA (directly from the git
repo). To tell Emacs that an ELPA repo exists, you add it to
(require 'package) ;;; either the stable version: (add-to-list 'package-archives ;; choose either the stable or the latest git version: ;; '("melpa-stable" . "http://melpa-stable.org/packages/") '("melpa-unstable" . "http://melpa.org/packages/")) (package-initialize)
And then installing Geiser is as easy as:
M-x package-install RET geiser RET
Alternatively, you can manually download the package file, and install from your local disk with M-x package-install-file.
If you plan to use Chicken, you’ll need also to fire a terminal and configure a couple of Chicken eggs:
$ chicken-install -s apropos chicken-doc $ cd `csi -p '(chicken-home)'` $ curl http://3e8.org/pub/chicken-doc/chicken-doc-repo.tgz | sudo tar zx
With that, you are pretty much all set up. See The REPL to start using Geiser.
And, by the way, if you prefer to keep reading this manual within Emacs, C-h i m Geiser RET will bring you to the info version of it that you just installed!
The latest release tarball can be found here. Just download geiser-0.7.tar.gz and untar it in a directory of your choice.
If you feel like living on the bleeding edge, just grab Geiser from its Git repository over at Savannah, either with the following incantation:
git clone git://git.sv.gnu.org/geiser.git
or, if you happen to live behind a firewall, with the alternative:
git clone http://git.sv.gnu.org/r/geiser.git
You can also follow Geiser’s development in one or three mirrors that are kept synchronized with the one at Savannah.
Either way, you’ll now be in possession of a copy of Geiser’s libre code. I’ll follow you into its directory and the next section.
Geiser is ready to be used out of the box without much more ado. For the sake of concreteness, let’s assume you put its source in the directory ‘~/lisp/geiser’. All you need to do is to add the following line to your Emacs initialisation file (be it ‘~/.emacs’ or any of its moral equivalents):
or simply evaluate that form inside Emacs (you wouldn’t kill a friend just to start using Geiser, would you?). That’s it: you’re ready to go.
If you obtained the Geiser source tree from a release tarball, you can even continue to read this fine manual inside Emacs by opening ‘doc/geiser.info’ using C-u C-h i. The manual is also available in PDF format here.
What? You still here? I promise the above is all that’s needed to start using Geiser. But, in case you are missing your configure/make all install routine, by all means, you can go through those motions to byte compile and install Geiser too. That is, you enter the source directory and (since we grabbed the development tree) run the customary autogen script:
$ cd ~/lisp/geiser $ ./autogen.sh
I recommend that you compile Geiser in a separate directory:
$ mkdir build && cd build $ ../configure <some drivel here> $ make all <more of the above>
Now you have two options: loading the byte-compiled Geiser from the ‘elisp’ subdirectory, or installing it system-wide. To load the byte-code from here, add this line to your initialisation file:
and eval that form and you’re done (you could also restart Emacs, but
killing your friends is widely considered bad form). Yes, that’s
load and ‘geiser-load’ instead of
If you prefer a system-wide installation, just type:
$ sudo make install
With the above spell, Geiser will be compiled and installed in a safe
place inside Emacs load path. To load it into Emacs you’ll need,
instead of the
load-file form above, the following line in
your initialisation file:
Please note that we’re requiring
geiser-install, and not
geiser, and that there’s no
load-file to be seen this
time. There are some ways of fine-tuning this process, mainly by
providing additional arguments in the call to configure: you’ll find
those gory details in the file called ‘INSTALL’, right at the root
of the source tree. The installation will also take care of placing this
manual, in Info format, where Emacs can find it, so you can continue to
learn about Geiser inside its natural habitat. See you there and into
the next chapter!
Although Geiser does not need them, it plays well with (and is enhanced by) the following Emacs packages:
company-modeprovides a generic front-end for completion engines (such as Geiser’s), with pretty and automatic completion lists.
company-mode, Xiao Hanyu’s
ac-geiser, which provides a Geiser plugin for the popular Emacs Auto Completion Mode, is the package for you. Like Geiser,
ac-geiseris available in Marmalade and MELPA, and also as an
quack-mode, since most of them are not (yet) available in Geiser. The only caveat might be a conflict between Quack’s and Geiser’s default key bindings, which i’m sure you’ll manage to tackle just fine. It’s also probably a good idea to require
quackafter loading ‘geiser.el’ (or requiring a compiled version).
You just need to install and setup them as usual, for every package’s definition of usual. Geiser will notice their presence and react accordingly.