Documentation helpers
[geiser.git] / doc / install.texi
blob7d02b69270992b4001b9466a69e2234d259bb8e8
1 @node Installation, The REPL, Introduction, Top
2 @chapter Installation
4 @menu
5 * Must needs::
6 * Setting it up::
7 * Friends::
8 @end menu
10 @node Must needs, Setting it up, Installation, Installation
11 @section Must needs
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:
19 @itemize @bullet
20 @item
21 @uref{http://www.racket-lang.org, Racket} 5.0.1 or better
22 @item
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
26 @i{master} branch}.
27 @end itemize
29 Since Geiser supports multiple REPLs, having both of them will just add
30 to the fun.
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:
43 @example
44 git clone git://git.sv.gnu.org/geiser.git
45 @end example
46 @noindent or, if you happen to live under a firewall, with the alternative:
47 @example
48 git clone http://git.sv.gnu.org/r/geiser.git
49 @end example
50 @noindent
52 You can also follow Geiser's development in
53 @uref{https://github.com/jaor/geiser, one}
54 @uref{http://repo.or.cz/w/geiser.git, or}
55 @uref{http://gitorious.org/geiser, three} mirrors that
56 are kept synchronized with the one at Savannah.
58 Either way, you'll now be in possession of a copy of Geiser's libre
59 code. I'll follow you into its directory and the next section.
61 @node Setting it up, Friends, Must needs, Installation
62 @section Setting it up
64 Geiser is ready to be used out of the box without much more ado. For the
65 sake of concreteness, let's assume you put its source in the directory
66 @file{~/lisp/geiser}. All you need to do is to add the following
67 line to your Emacs initialisation file (be it @file{~/.emacs} or any of
68 its moral equivalents):
69 @example
70 (load-file "~/lisp/geiser/elisp/geiser.el")
71 @end example
72 @noindent
73 or simply evaluate that form inside Emacs (you wouldn't kill a friend
74 just to start using Geiser, would you?). That's it: you're ready to
75 @ref{quick-start,,go}. If you obtained the Geiser source tree from a
76 release tarball, you can even continue to read this fine manual inside
77 Emacs by opening @file{doc/geiser.info} using @kbd{C-u C-h i}. The
78 manual is also available in PDF format
79 @downfile{geiser-manual-@value{STABLE_VERSION}.pdf, here}.
81 @cindex byte-compilation
82 What? You still here? I promise the above is all that's needed to start
83 using Geiser. But, in case you are missing your @t{configure/make all
84 install} routine, by all means, you can go through those motions to byte
85 compile and install Geiser too. That is, you enter the source directory
86 and (since we grabbed the development tree) run the customary
87 @i{autogen} script:
88 @example
89 $ cd ~/lisp/geiser
90 $ ./autogen.sh
91 @end example
92 @noindent
93 I recommend that you compile Geiser in a separate directory:
94 @example
95 $ mkdir build && cd build
96 $ ../configure
97 <some drivel here>
98 $ make all
99 <more of the above>
100 @end example
101 Now you have two options: loading the byte-compiled Geiser from the
102 @file{elisp} subdirectory, or installing it system-wide. To load the
103 bytecode from here, add this line to your initialisation file:
104 @example
105 (load "~/lisp/geiser/build/elisp/geiser-load")
106 @end example
107 and eval that form and you're done (you could also restart Emacs, but
108 killing your friends is widely considered bad form). Yes, that's
109 @code{load} and @file{geiser-load} instead of @code{load-file} and
110 @file{geiser.el}.
112 If you prefer a system-wide installation, just type:
113 @example
114 $ sudo make install
115 @end example
116 With the above spell, Geiser will be compiled and installed in a safe
117 place inside Emacs load path. To load it into Emacs you'll need,
118 @i{instead} of the @code{load-file} form above, the following line in
119 your initialisation file:
120 @example
121 (require 'geiser-install)
122 @end example
123 @noindent
124 Please note that we're requiring @code{geiser-install}, and @i{not}
125 @code{geiser}, and that there's no @code{load-file} to be seen this
126 time. There are some ways of fine-tuning this process, mainly by
127 providing additional arguments in the call to @t{configure}: you'll find
128 those gory details in the file called @file{INSTALL}, right at the root
129 of the source tree. The installation will also take care of placing this
130 manual, in Info format, where Emacs can find it, so you can continue to
131 learn about Geiser inside its natural habitat. See you there and into
132 the next chapter!
134 @node Friends,  , Setting it up, Installation
135 @section Friends
137 Although Geiser does not need them, it plays well with (and is enhanced
138 by) the following Emacs packages:
140 @cindex paredit
141 @cindex company
142 @cindex quack
143 @itemize @bullet
144 @item @uref{http://www.emacswiki.org/emacs/ParEdit, Paredit}.
145 @anchor{paredit}
146 Regardless of whether you use Geiser or not, you shouldn't be coding
147 in any Lisp dialect without the aid of Taylor Campbell's structured
148 editing mode.
149 @item @uref{http://nschum.de/src/emacs/company-mode/, Company}.
150 Nikolaj Schumacher's @code{company-mode} provides a generic front-end
151 for completion engines (such as Geiser's). Very nice if you like that
152 kind of thing: judge by yourself with the help of
153 @uref{http://www.screentoaster.com/watch/stU0lSRERIR1pYRFVdXVlRVFFV/company_mode_for_gnu_emacs,
154 this screencast}.
155 @item @uref{http://www.neilvandyke.org/quack/, Quack}.
156 You can still use the many goodies provided by Neil van Dyke's
157 @code{quack-mode}, since most of them are not (yet) available in Geiser.
158 The only caveat might be a conflict between Quack's and Geiser's default
159 key bindings, which i'm sure you'll manage to tackle just fine. It's
160 also probably a good idea to require @code{quack} @i{after} loading
161 @file{geiser.el} (or requiring a compiled version).
162 @end itemize
163 You just need to install and setup them as usual, for every package's
164 definition of usual. Geiser will notice their presence and react
165 accordingly.
167 @c Local Variables:
168 @c mode: texinfo
169 @c TeX-master: "geiser"
170 @c End: