install.texi (5738B)
1 @node Installation, The REPL, Introduction, Top 2 @chapter Installation 3 4 @menu 5 * Must needs:: 6 * The quick and easy way:: 7 * From the source's mouth:: 8 * Friends:: 9 @end menu 10 11 @node Must needs, The quick and easy way, Installation, Installation 12 @section Must needs 13 14 @cindex supported versions 15 @cindex versions supported 16 If Geiser came with any guarantees, you'd break all of them by not using 17 GNU Emacs @value{EMACS_VERSION} (or better: i regularly use it with a 18 recent Emacs snapshot) and at least one of the supported Schemes, 19 namely: 20 21 @itemize @bullet 22 @supimpl{Chez, http://www.scheme.com, 9.4,chez} 23 @supimpl{Chibi, http://synthcode.com/scheme/chibi, 0.7.3,chibi} 24 @supimpl{Chicken, http://call-cc.org, 4.8.0, chicken} 25 @supimpl{Gambit, http://gambitscheme.org/wiki/index.php/Main_Page, 4.9.3, gambit} 26 @supimpl{Gauche, http://practical-scheme.net/gauche/, 0.9.6, gauche} 27 @supimpl{Guile, http://www.gnu.org/software/guile, 2.2, guile} 28 @supimpl{GNU Kawa, http://www.gnu.org/software/kawa/index.html, 3.1, kawa} 29 @supimpl{MIT/GNU Scheme, https://www.gnu.org/software/mit-scheme, 9.0, mit} 30 @supimpl{Racket, http://www.racket-lang.org, 7.0, racket} 31 @supimpl{Stklos, https://stklos.net/, 1.50, stklos} 32 @end itemize 33 34 Since Geiser supports multiple REPLs, having all of them will just add 35 to the fun. 36 37 You'll also need Geiser itself. The quickest installation is via your 38 favourite implementation's ELPA packages (as of this writing, they're 39 all available in MELPA and (most of them) also in NonGNU ELPA, which 40 comes included with the batteries of Emacs 28 or better). 41 42 @node The quick and easy way, From the source's mouth, Must needs, Installation 43 @section The quick and easy way 44 45 @cindex quick install 46 @cindex ELPA 47 @cindex NonGNU ELPA 48 Did i mention that the easiest way of installing Geiser is using its 49 @uref{http://emacswiki.org/emacs/ELPA, ELPA} package? If you're using 50 Emacs 24, @uref{http://emacswiki.org/emacs/ELPA, ELPA} is already there; 51 for earlier versions, the page i just linked to twice will tell you 52 where to find the goodies. 53 54 ELPA packages live in repositories accessible via HTTP. You can find 55 Geiser's package in either 56 @uref{https://elpa.nongnu.org/nongnu/geiser.html, NonGNU ELPA} or, if 57 you like living on the bleeding edge, @uref{http://melpa.org/#/geiser, 58 MELPA} (directly from the git repo). To tell Emacs that an ELPA repo 59 exists, you add it to @code{package-archives}@footnote{If you're using 60 Emacs 28 or better, @code{package-archives} already comes with the 61 non-gnu archive preconfigured, so you're lucky in more than one way.}: 62 63 @example 64 (require 'package) 65 66 (add-to-list 'package-archives 67 '("nongnu" . "https://elpa.nongnu.org/nongnu/")) 68 69 (package-initialize) 70 @end example 71 72 And then installing your favourite Geiser is as easy as (if, say, you're 73 a MIT aficionado): 74 75 @example 76 M-x package-install RET geiser-mit RET 77 @end example 78 79 Rinse and repeat for each of the scheme implementations that you would 80 like to use. Some of them (e.g. Gambit or Chicken) have a bit of 81 additional setup, specific to them, so make sure you also check their 82 respective package documentation. 83 84 With that, you are pretty much all set up. See @ref{The REPL} to start 85 using Geiser. 86 87 @ifnotinfo 88 And, by the way, if you prefer to keep reading this manual within Emacs, 89 @kbd{C-h i m Geiser RET} will bring you to the info version of it that 90 you just installed! 91 @end ifnotinfo 92 93 @node From the source's mouth, Friends, The quick and easy way, Installation 94 @section Installing from source 95 96 All Geiser packages are ready to be used out of the box without much 97 more ado. For the sake of concreteness, let's assume you put its source 98 in the directory @file{~/lisp/geiser}. All you need to do is to add the 99 following line to your Emacs initialisation file (be it @file{~/.emacs}, 100 @file{~/.emacs.d/init.el} or any of its moral equivalents): 101 102 @example 103 (add-to-list 'load-path "~/lisp/geiser/elisp") 104 @end example 105 106 and, if your, say, @code{geiser-gambit} checkout lives in 107 @file{~/lisp/geiser-mit} add to that: 108 109 @example 110 (add-to-list 'load-path "~/lisp/geiser-gambit") 111 @end example 112 113 The autoloads defined in those packages should be enough to start 114 scheming. 115 116 @node Friends, , From the source's mouth, Installation 117 @section Friends 118 119 Although Geiser does not need them, it plays well with (and is enhanced 120 by) the following Emacs packages: 121 122 @cindex ac-geiser 123 @cindex autocomplete 124 @cindex paredit 125 @cindex company 126 @cindex macrostep 127 @itemize @bullet 128 @item @uref{http://www.emacswiki.org/emacs/ParEdit, Paredit}. 129 @anchor{paredit} 130 Regardless of whether you use Geiser or not, you shouldn't be coding 131 in any Lisp dialect without the aid of Taylor Campbell's structured 132 editing mode. 133 @item @uref{http://company-mode.github.io/, Company}. 134 Nikolaj Schumacher's and Dmitry Gutov's @code{company-mode} provides a 135 generic front-end for completion engines (such as Geiser's), with pretty 136 and automatic completion lists. 137 @item @uref{https://github.com/nbfalcon/macrostep-geiser, macrostep-geiser} 138 provides support for in-buffer macro expansion, using the 139 @uref{https://github.com/joddie/macrostep, macrostep} package. 140 @item @uref{https://github.com/xiaohanyu/ac-geiser/, ac-geiser} 141 If you prefer @code{auto-complete-mode} to @code{company-mode}, Xiao 142 Hanyu's @code{ac-geiser}, which provides a Geiser plugin for the 143 popular @uref{https://www.emacswiki.org/emacs/AutoComplete, Emacs Auto 144 Completion Mode}, is the package for you. Like Geiser, 145 @code{ac-geiser} is available in MELPA, and also as an 146 @code{el-get} package. 147 @end itemize 148 149 @noindent 150 You just need to install and setup them as usual, for every package's 151 definition of usual. Geiser will notice their presence and react 152 accordingly. 153 154 @c Local Variables: 155 @c mode: texinfo 156 @c TeX-master: "geiser" 157 @c End: