summaryrefslogtreecommitdiff
path: root/doc/install.texi
blob: e7d061cfdced48d4d18d33e8efd90964d5f603b1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
@node Installation, Quick start, Introduction, Top
@chapter Installation

@menu
* Must needs::
* Friends::
* On your marks ...::
* ... set ...::
@end menu

@node Must needs, Friends, Installation, Installation
@section Must needs

If Geiser came with any guarantees, you'd break all of them by not using
GNU Emacs 23 (or better, if there actually @i{is} anything better) and
at least one of the supported schemes, which right now are
@uref{http://www.racket-lang.org, Racket} 5.0 (or better) and the latest
and greatest @uref{http://www.gnu.org/software/guile, Guile} 1.9
directly compiled from a recent checkout of
@uref{http://www.gnu.org/software/guile/repository.html, its Git @i{master}
branch}. Since Geiser supports multiple REPLs, having both of them will
just add to the fun.

@node Friends, On your marks ..., Must needs, Installation
@section Friends

Although Geiser does not need them, it plays well with (and is enhanced
by) the following Emacs packages:

@itemize
@item @uref{http://www.emacswiki.org/emacs/ParEdit, Paredit}.
Regardless of whether you use Geiser or not, you shouldn't be coding
in any Lisp dialect without the aid of Taylor Campbell's structured
editing mode.
@item @uref{http://nschum.de/src/emacs/company-mode/, Company}.
Nikolaj Schumacher's @t{company-mode} provides a nice front-end for
completion engines (such as Geiser's). Very nice if you like that kind
of thing: judge by yourself with the help of
@uref{http://www.screentoaster.com/watch/stU0lSRERIR1pYRFVdXVlRVFFV/company_mode_for_gnu_emacs,
this screencast}.
@end itemize
In both cases, you just need to install and setup them as standalone
packages that they are. Geiser will notice their presence and react
accordingly.

@node On your marks ..., ... set ..., Friends, Installation
@section On your marks ...

Until version 0.1 is out (which will happen shortly after i finish
writing a decent manual), your best bet is grabbing Geiser from its
Git repository over at @uref{http://git.savannah.gnu.org/cgit/geiser.git/,
Savannah}, either with the following incantation:
@example

git clone git://git.sv.gnu.org/geiser.git

@end example
@noindent or, if you happen to live under a firewall, with the alternative:
@example

git clone http://git.sv.gnu.org/r/geiser.git

@end example
@onindent
If you don't want to install Git, you can instead grab a tarball from
Geiser's @uref{http://gitorious.org/geiser/mainline/commits/master,
Gitorious mirror}, where you'll find a
@uref{http://gitorious.org/geiser/mainline/archive-tarball/master, link}
generating it for you. 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.

@node ... set ...,  , On your marks ..., Installation
@section ... set ...

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
@file{~/lisp/geiser}. All you need to do is to add the following
line to your Emacs initialisation file (be it @file{~/.emacs} or any of
its moral equivalents):
@example

(load-file "~/lisp/geiser/geiser.el")

@end example
@noindent
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
@ref{quick-start,,go}.

What? You still here? I promise the above is all that's needed to start
using Geiser. But, in case you are missing your @t{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
@i{autogen} script:
@example

$ cd ~/lib/geiser
$ ./autogen.sh

@end example
@noindent I recommend that you compile Geiser is a separate directory:
@example

$ mkdir build && cd build
$ ../configure
<some drivel here>
$ make all
<more of the above>
$ sudo make install

@end example
@noindent
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,
@i{instead} of the @code{load-file} form above, the following line in
your initialisation file:
@example

(require 'geiser-install)

@end example
@noindent
Please note that we're requiring @code{geiser-install}, and @i{not}
@code{geiser}, and that there's no @code{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 @t{configure}: you'll find
those gory details in the file called @file{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!

@c Local Variables:
@c mode: texinfo
@c TeX-master: "geiser"
@c End: