readme.org (2964B)
1 #+TITLE: Geiser and Guile talk to each other 2 #+OPTIONS: d:nil 3 #+EXPORT_FILE_NAME: geiser-guile.texi 4 #+TEXINFO_DIR_CATEGORY: Emacs 5 #+TEXINFO_DIR_TITLE: Geiser Guile: (geiser-guile). 6 #+TEXINFO_DIR_DESC: Support for Guile in Geiser 7 8 * Overview 9 10 This package provides support for using [[https://www.gnu.org/software/guile/][GNU Guile]] in Emacs with 11 [[http://geiser.nongnu.org][Geiser]]. 12 13 Provided [[https://gitlab.com/emacs-geiser/geiser][geiser]] is installed in your system, if this package's 14 directory is in your load path, just add ~(require 'geiser-guile)~ to 15 your initialisation files and then ~M-x geiser-guile~ to start a REPL. 16 Scheme files with a Guile module declaration should be automatically 17 recognised as Guile-flavoured Geiser buffers. 18 19 The easiest way of installing this package is using NonGNU Elpa or 20 MELPA. If you're in Emacs 28 or higher, the former is already enabled 21 and all you need is the familiar 22 23 #+begin_src elisp 24 M-x install-package RET geiser-guile RET 25 #+end_src 26 27 That will also install geiser, and its fine info manual. Please refer 28 to it (or its [[https://geiser.nongnu.org][online version]]) for a general description of how geiser 29 schemes work. We provide below some additional details specific to 30 geiser-guile. 31 32 * Start up 33 34 When launching the Guile REPL, geiser will invoke the binary 35 configured in ~geiser-guile-binary~ (simply "guile" by default) 36 which in turn will load ~geiser-guile-init-file~, if any. 37 38 Note, however, that specifying ~geiser-guile-init-file~ is /not/ 39 equivalent to changing Guile's initialization file (=~/.guile=), 40 because the former is loaded using the =-l= flag, together with =-q= 41 to disable loading the second. But there are subtle differences 42 in the way Guile loads the initialization file versus how it loads 43 a file specified via the =-l= flag. If what you want is just 44 loading =~/.guile=, leave ~geiser-guile-init-file~ alone and set 45 ~geiser-guile-load-init-file~ to ~t~ instead. 46 47 One can also provide a global list of paths to add to Guile's 48 =%load-path= via ~geiser-guile-load-path~. 49 50 * Debugging support 51 52 Guile supports all the debugger commands supported by Geiser (it's 53 in fact used as the reference for the implementation and design of 54 that support). When the REPL would normally enter its debug mode, 55 with a prompt of the style: 56 57 scheme@(guile-user) [1]> 58 59 showing a debugging level, Geiser will instead bring you to the 60 =*Geiser Dbg*= buffer, where you can access a menu of debugging 61 commands via the ~,~ (comma) key. 62 63 The geiser-guile customization group will show you, among many 64 other, a few flags fine-tuning interaction with the debugger, as 65 well as things like the detail level of error messages (e.g. via 66 ~geiser-guile-warning-level~). 67 68 * Tramp support 69 Geiser guile can be used remotely via tramp connections: the REPL 70 process will be run in the machine where the tramp-accessed file 71 lives. Implemented by Felipe Lema.