summaryrefslogtreecommitdiff
path: root/geiser-guile.texi
diff options
context:
space:
mode:
Diffstat (limited to 'geiser-guile.texi')
-rw-r--r--geiser-guile.texi102
1 files changed, 102 insertions, 0 deletions
diff --git a/geiser-guile.texi b/geiser-guile.texi
new file mode 100644
index 0000000..af87d34
--- /dev/null
+++ b/geiser-guile.texi
@@ -0,0 +1,102 @@
+\input texinfo @c -*- texinfo -*-
+@c %**start of header
+@setfilename geiser-guile.info
+@settitle Geiser and Guile talk to each other
+@documentencoding UTF-8
+@documentlanguage en
+@c %**end of header
+
+@dircategory Emacs
+@direntry
+* Geiser Guile: (geiser-guile). Support for Guile in Geiser.
+@end direntry
+
+@finalout
+@titlepage
+@title Geiser and Guile talk to each other
+@author jao
+@end titlepage
+
+@ifnottex
+@node Top
+@top Geiser and Guile talk to each other
+@end ifnottex
+
+@menu
+* Overview::
+* Start up::
+* Debugging support::
+* Tramp support::
+@end menu
+
+@node Overview
+@unnumbered Overview
+
+This package provides support for using @uref{https://www.gnu.org/software/guile/, GNU Guile} in Emacs with
+@uref{http://geiser.nongnu.org, Geiser}.
+
+Provided @uref{https://gitlab.com/emacs-geiser/geiser, geiser} is installed in your system, if this package's
+directory is in your load path, just add @code{(require 'geiser-guile)} to
+your initialisation files and then @code{M-x run-guile} to start a REPL@.
+Scheme files with a Guile module declaration should be automatically
+recognised as Guile-flavoured Geiser buffers.
+
+The easiest way of installing this package is using NonGNU Elpa or
+MELPA@. If you're in Emacs 28 or higher, the former is already enabled
+and all you need is the familiar
+
+@lisp
+M-x install-package RET geiser-guile RET
+@end lisp
+
+That will also install geiser, and its fine info manual. Please refer
+to it (or its @uref{https://geiser.nongnu.org, online version}) for a general description of how geiser
+schemes work. We provide below some additional details specific to
+geiser-guile.
+
+@node Start up
+@unnumbered Start up
+
+When launching the Guile REPL, geiser will invoke the binary
+configured in @code{geiser-guile-binary} (simply "guile" by default)
+which in turn will load @code{geiser-guile-init-file}, if any.
+
+Note, however, that specifying @code{geiser-guile-init-file} is @emph{not}
+equivalent to changing Guile's initialization file (@samp{~/.guile}),
+because the former is loaded using the @samp{-l} flag, together with @samp{-q}
+to disable loading the second. But there are subtle differences
+in the way Guile loads the initialization file versus how it loads
+a file specified via the @samp{-l} flag. If what you want is just
+loading @samp{~/.guile}, leave @code{geiser-guile-init-file} alone and set
+@code{geiser-guile-load-init-file-p} to @code{t} instead.
+
+One can also provide a global list of paths to add to Guile's
+@samp{%load-path} via @code{geiser-guile-load-path}.
+
+@node Debugging support
+@unnumbered Debugging support
+
+Guile supports all the debugger commands supported by Geiser (it's
+in fact used as the reference for the implementation and design of
+that support). When the REPL would normally enter its debug mode,
+with a prompt of the style:
+
+scheme@@(guile-user) [1]>
+
+showing a debugging level, Geiser will instead bring you to the
+@samp{*Geiser Dbg*} buffer, where you can access a menu of debugging
+commands via the @code{,} (comma) key.
+
+The geiser-guile customization group will show you, among many
+other, a few flags fine-tuning interaction with the debugger, as
+well as things like the detail level of error messages (e.g. via
+@code{geiser-guile-warning-level}).
+
+@node Tramp support
+@unnumbered Tramp support
+
+Geiser guile can be used remotely via tramp connections: the REPL
+process will be run in the machine where the tramp-accessed file
+lives. Implemented by Felipe Lema.
+
+@bye \ No newline at end of file