geiser-guile.texi (3447B)
1 \input texinfo @c -*- texinfo -*- 2 @c %**start of header 3 @setfilename geiser-guile.info 4 @settitle Geiser and Guile talk to each other 5 @documentencoding UTF-8 6 @documentlanguage en 7 @c %**end of header 8 9 @dircategory Emacs 10 @direntry 11 * Geiser Guile: (geiser-guile). Support for Guile in Geiser. 12 @end direntry 13 14 @finalout 15 @titlepage 16 @title Geiser and Guile talk to each other 17 @author jao 18 @end titlepage 19 20 @ifnottex 21 @node Top 22 @top Geiser and Guile talk to each other 23 @end ifnottex 24 25 @menu 26 * Overview:: 27 * Start up:: 28 * Debugging support:: 29 * Tramp support:: 30 @end menu 31 32 @node Overview 33 @unnumbered Overview 34 35 This package provides support for using @uref{https://www.gnu.org/software/guile/, GNU Guile} in Emacs with 36 @uref{http://geiser.nongnu.org, Geiser}. 37 38 Provided @uref{https://gitlab.com/emacs-geiser/geiser, geiser} is installed in your system, if this package's 39 directory is in your load path, just add @code{(require 'geiser-guile)} to 40 your initialisation files and then @code{M-x run-guile} to start a REPL@. 41 Scheme files with a Guile module declaration should be automatically 42 recognised as Guile-flavoured Geiser buffers. 43 44 The easiest way of installing this package is using NonGNU Elpa or 45 MELPA@. If you're in Emacs 28 or higher, the former is already enabled 46 and all you need is the familiar 47 48 @lisp 49 M-x install-package RET geiser-guile RET 50 @end lisp 51 52 That will also install geiser, and its fine info manual. Please refer 53 to it (or its @uref{https://geiser.nongnu.org, online version}) for a general description of how geiser 54 schemes work. We provide below some additional details specific to 55 geiser-guile. 56 57 @node Start up 58 @unnumbered Start up 59 60 When launching the Guile REPL, geiser will invoke the binary 61 configured in @code{geiser-guile-binary} (simply "guile" by default) 62 which in turn will load @code{geiser-guile-init-file}, if any. 63 64 Note, however, that specifying @code{geiser-guile-init-file} is @emph{not} 65 equivalent to changing Guile's initialization file (@samp{~/.guile}), 66 because the former is loaded using the @samp{-l} flag, together with @samp{-q} 67 to disable loading the second. But there are subtle differences 68 in the way Guile loads the initialization file versus how it loads 69 a file specified via the @samp{-l} flag. If what you want is just 70 loading @samp{~/.guile}, leave @code{geiser-guile-init-file} alone and set 71 @code{geiser-guile-load-init-file-p} to @code{t} instead. 72 73 One can also provide a global list of paths to add to Guile's 74 @samp{%load-path} via @code{geiser-guile-load-path}. 75 76 @node Debugging support 77 @unnumbered Debugging support 78 79 Guile supports all the debugger commands supported by Geiser (it's 80 in fact used as the reference for the implementation and design of 81 that support). When the REPL would normally enter its debug mode, 82 with a prompt of the style: 83 84 scheme@@(guile-user) [1]> 85 86 showing a debugging level, Geiser will instead bring you to the 87 @samp{*Geiser Dbg*} buffer, where you can access a menu of debugging 88 commands via the @code{,} (comma) key. 89 90 The geiser-guile customization group will show you, among many 91 other, a few flags fine-tuning interaction with the debugger, as 92 well as things like the detail level of error messages (e.g. via 93 @code{geiser-guile-warning-level}). 94 95 @node Tramp support 96 @unnumbered Tramp support 97 98 Geiser guile can be used remotely via tramp connections: the REPL 99 process will be run in the machine where the tramp-accessed file 100 lives. Implemented by Felipe Lema. 101 102 @bye