1 @node Installation, The REPL, Introduction, Top
10 @node Must needs, Setting it up, Installation, Installation
13 @cindex supported versions
14 @cindex versions supported
15 If Geiser came with any guarantees, you'd break all of them by not using
16 GNU Emacs 23.2 (or better: i regularly use it with a recent Emacs
17 snapshot) and at least one of the supported Schemes, namely:
21 @uref{http://www.racket-lang.org, Racket} 5.0.1 or better
23 @uref{http://www.gnu.org/software/guile, Guile} 1.9.14, directly
24 compiled from a recent checkout of
25 @uref{http://www.gnu.org/software/guile/repository.html, its Git
29 Since Geiser supports multiple REPLs, having both of them will just add
32 @subsubheading Downloading Geiser
34 @cindex use the source, Luke
35 You'll also need Geiser itself. The latest release tarball can be found
36 @downfile{, here}, while older versions are @uref{@value{DOWN_BASE}/,
37 here}. Just download @downfile{@value{TARBALL}, @value{TARBALL}}
38 and untar it in a directory of your choice.
40 If you feel like living on the bleeding edge, just grab Geiser from its
41 Git repository @uref{http://git.savannah.nongnu.org/cgit/geiser.git/, over
42 at Savannah}, either with the following incantation:
45 git clone git://git.sv.gnu.org/geiser.git
48 @noindent or, if you happen to live under a firewall, with the alternative:
51 git clone http://git.sv.gnu.org/r/geiser.git
54 @noindent You can also follow Geiser's development in
55 @uref{https://github.com/jaor/geiser, one}
56 @uref{http://repo.or.cz/w/geiser.git, or}
57 @uref{http://gitorious.org/geiser, three} mirrors that
58 are kept synchronized with the one at Savannah.
60 Either way, you'll now be in possession of a copy of Geiser's libre
61 code. I'll follow you into its directory and the next section.
63 @node Setting it up, Friends, Must needs, Installation
64 @section Setting it up
66 Geiser is ready to be used out of the box without much more ado. For the
67 sake of concreteness, let's assume you put its source in the directory
68 @file{~/lisp/geiser}. All you need to do is to add the following
69 line to your Emacs initialisation file (be it @file{~/.emacs} or any of
70 its moral equivalents):
73 (load-file "~/lisp/geiser/elisp/geiser.el")
77 or simply evaluate that form inside Emacs (you wouldn't kill a friend
78 just to start using Geiser, would you?). That's it: you're ready to
79 @ref{quick-start,,go}. If you obtained the Geiser source tree from a
80 release tarball, you can even continue to read this fine manual inside
81 Emacs by opening @file{doc/geiser.info} using @kbd{C-u C-h i}. The
82 manual is also available in PDF format
83 @downfile{geiser-manual-@value{STABLE_VERSION}.pdf, here}.
85 @cindex byte-compilation
86 What? You still here? I promise the above is all that's needed to start
87 using Geiser. But, in case you are missing your @t{configure/make all
88 install} routine, by all means, you can go through those motions to byte
89 compile and install Geiser too. That is, you enter the source directory
90 and (since we grabbed the development tree) run the customary
99 I recommend that you compile Geiser in a separate directory:
102 $ mkdir build && cd build
109 Now you have two options: loading the byte-compiled Geiser from the
110 @file{elisp} subdirectory, or installing it system-wide. To load the
111 byte-code from here, add this line to your initialisation file:
114 (load "~/lisp/geiser/build/elisp/geiser-load")
118 and eval that form and you're done (you could also restart Emacs, but
119 killing your friends is widely considered bad form). Yes, that's
120 @code{load} and @file{geiser-load} instead of @code{load-file} and
123 If you prefer a system-wide installation, just type:
129 With the above spell, Geiser will be compiled and installed in a safe
130 place inside Emacs load path. To load it into Emacs you'll need,
131 @i{instead} of the @code{load-file} form above, the following line in
132 your initialisation file:
135 (require 'geiser-install)
139 Please note that we're requiring @code{geiser-install}, and @i{not}
140 @code{geiser}, and that there's no @code{load-file} to be seen this
141 time. There are some ways of fine-tuning this process, mainly by
142 providing additional arguments in the call to @t{configure}: you'll find
143 those gory details in the file called @file{INSTALL}, right at the root
144 of the source tree. The installation will also take care of placing this
145 manual, in Info format, where Emacs can find it, so you can continue to
146 learn about Geiser inside its natural habitat. See you there and into
149 @node Friends, , Setting it up, Installation
152 Although Geiser does not need them, it plays well with (and is enhanced
153 by) the following Emacs packages:
159 @item @uref{http://www.emacswiki.org/emacs/ParEdit, Paredit}.
161 Regardless of whether you use Geiser or not, you shouldn't be coding
162 in any Lisp dialect without the aid of Taylor Campbell's structured
164 @item @uref{http://nschum.de/src/emacs/company-mode/, Company}.
165 Nikolaj Schumacher's @code{company-mode} provides a generic front-end
166 for completion engines (such as Geiser's). Very nice if you like that
167 kind of thing: judge by yourself with the help of
168 @uref{http://www.screentoaster.com/watch/stU0lSRERIR1pYRFVdXVlRVFFV/company_mode_for_gnu_emacs,
170 @item @uref{http://www.neilvandyke.org/quack/, Quack}.
171 You can still use the many goodies provided by Neil van Dyke's
172 @code{quack-mode}, since most of them are not (yet) available in Geiser.
173 The only caveat might be a conflict between Quack's and Geiser's default
174 key bindings, which i'm sure you'll manage to tackle just fine. It's
175 also probably a good idea to require @code{quack} @i{after} loading
176 @file{geiser.el} (or requiring a compiled version).
179 You just need to install and setup them as usual, for every package's
180 definition of usual. Geiser will notice their presence and react
185 @c TeX-master: "geiser"