summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS5
-rw-r--r--NEWS10
-rw-r--r--README13
-rw-r--r--README.elpa2
-rw-r--r--THANKS4
-rw-r--r--doc/install.texi14
-rw-r--r--doc/intro.texi14
-rw-r--r--doc/macros.texi12
-rw-r--r--doc/repl.texi55
-rw-r--r--doc/thanks.texi4
-rw-r--r--elisp/geiser-base.el4
-rw-r--r--elisp/geiser-impl.el2
-rw-r--r--elisp/geiser.el2
13 files changed, 92 insertions, 49 deletions
diff --git a/AUTHORS b/AUTHORS
index fecd39d..527650e 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,6 +1,8 @@
Jose A. Ortega Ruiz <jao@gnu.org> designed and implemented Geiser and
is its active maintainer. For more boring details about him, see
-<http://hacks-galore.org/jao>.
+<http://jao.io>.
+
+Daniel J. Leslie implemented Geiser's support for Chicken.
Contributors:
@@ -11,6 +13,5 @@ Ray Racine
Nick Parker
Darren Hoo
Ludovic Courtès
-Daniel J. Leslie
See also <https://github.com/jaor/geiser/contributors>.
diff --git a/NEWS b/NEWS
index 76c285e..34796d6 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,12 @@
-* Version 0.6.1
+* Version 0.7 "Freija"
+
+ This release is dedicated to Dan's three-months-old daughter Freija,
+ who shared her dad's lap with his laptop while he was hacking on the
+ new Chicken scheme support for Geiser.
+
+ New features:
+
+ - Chicken support, by Dan Leslie.
Improved features:
diff --git a/README b/README
index cc8bf7e..0a577a7 100644
--- a/README
+++ b/README
@@ -31,7 +31,7 @@
Geiser needs Emacs 23.2 or better, and at least one of the
supported scheme implementations:
- Guile 2.0 or better.
- - PLT Racket 5.3 or better.
+ - PLT Racket 6.0 or better.
- Chicken 4.8.0 or better.
* Installation
@@ -43,8 +43,15 @@
or byte-compiled and installed after perfoming the standard
configure/make/make install dance. See the INSTALL file for more details.
- Chicken Scheme requires additional steps which are detailed in the INSTALL
- file and the README.elpa file.
+** Chicken Addendum
+ These steps are necessary to fully support Chicken Scheme, but are
+ not required for any other scheme.
+
+ - Install the necessary support eggs:
+ $ chicken-install -s apropos chicken-doc
+ - Update the Chicken documentation database:
+ $ cd `csi -p '(chicken-home)'`
+ $ curl http://3e8.org/pub/chicken-doc/chicken-doc-repo.tgz | sudo tar zx
* Basic configuration
diff --git a/README.elpa b/README.elpa
index e470dcc..c164ede 100644
--- a/README.elpa
+++ b/README.elpa
@@ -49,4 +49,4 @@ Chicken Addendum:
See http://www.nongnu.org/geiser/ for the full manual in HTML form, or
the the info manual installed by this package.
-Author: http://hacks-galore.org/jao
+Author: http://jao.io
diff --git a/THANKS b/THANKS
index 80eaa1d..79e414d 100644
--- a/THANKS
+++ b/THANKS
@@ -1,3 +1,7 @@
+Dan Leslie, with the help of his three-months old daughter Freija,
+proved there's a smidgen of sense in this madness by adding support
+for Chicken to version 0.7 of Geiser, several years after it was born.
+
Andy Wingo, Geiser's first user, has been a continuous source of
encouragement and suggestions, and keeps improving Guile and heeding
my feature requests.
diff --git a/doc/install.texi b/doc/install.texi
index 095d1ff..d88a22b 100644
--- a/doc/install.texi
+++ b/doc/install.texi
@@ -24,6 +24,8 @@ namely:
@item
@uref{http://www.gnu.org/software/guile, Guile} @value{GUILE_VERSION} or
better
+@item
+@uref{http://call-cc.org, Chicken} @value{CHICKEN_VERSION} or better
@end itemize
Since Geiser supports multiple REPLs, having both of them will just add
@@ -73,7 +75,17 @@ M-x package-install RET geiser RET
Alternatively, you can manually download the @uref{@value{PACKAGE},
package file}, and install from your local disk with @kbd{M-x
-package-install-file}
+package-install-file}.
+
+@cindex Chicken
+@cindex Chicken installation
+If you plan to use Chicken, you'll need also to fire a terminal and
+configure a couple of Chicken eggs:
+@example
+$ chicken-install -s apropos chicken-doc
+$ cd `csi -p '(chicken-home)'`
+$ curl http://3e8.org/pub/chicken-doc/chicken-doc-repo.tgz | sudo tar zx
+@end example
With that, you are pretty much all set up. See @ref{The REPL} to start
using Geiser.
diff --git a/doc/intro.texi b/doc/intro.texi
index 00207cd..0e92513 100644
--- a/doc/intro.texi
+++ b/doc/intro.texi
@@ -40,12 +40,14 @@ implementation itself).
If your favourite Scheme supports the above modus operandi, it has all
that's needed for a bare-bones Geiser mode. But Geiser can, and will,
use any metadata available: procedure arities and argument lists to
-display interactive help, documentation strings, location information to
-jump to definitions, export lists to provide completion, and so on and
-so forth. Although this is not an all-or-none proposition (Geiser can
-operate with just part of that functionality available), i've initially
-concentrated in supporting those Schemes with the richest (to my
-knowledge) introspection capabilities, namely, Guile and Racket.
+display interactive help, documentation strings, location information
+to jump to definitions, export lists to provide completion, and so on
+and so forth. Although this is not an all-or-none proposition (Geiser
+can operate with just part of that functionality available), i
+initially concentrated in supporting those Schemes with the richest
+(to my knowledge) introspection capabilities, namely, Guile and
+Racket. Later on, Dan Leslie added support for Chicken, and there's
+active work to add support for scsh.
@node Showing off, , Modus operandi, Introduction
@section Showing off
diff --git a/doc/macros.texi b/doc/macros.texi
index 47ea304..e20a94a 100644
--- a/doc/macros.texi
+++ b/doc/macros.texi
@@ -1,7 +1,9 @@
-@set VERSION 0.6
-@set RELEASE_DATE August 2014
+@set VERSION 0.7
+@set VERSION_NICK Freija
+@set RELEASE_DATE February 2015
@set GUILE_VERSION 2.0.9
@set RACKET_VERSION 6.0
+@set CHICKEN_VERSION 4.8.0
@set EMACS_VERSION 23.2
@set DOWN_BASE http://download.savannah.gnu.org/@/releases/@/geiser
@set PACKAGE_REPO @value{DOWN_BASE}/@/packages
@@ -12,19 +14,19 @@
@uref{@value{DOWN_BASE}/@/@value{VERSION}/@/\FILE\, \CAPT\}
@end macro
-@macro vblurb{GVERS, RVERS, DATE}
+@macro vblurb{GVERS, CVERS, RVERS, DATE}
@html
<div class="version" align="right">
@end html
@downfile{@value{TARBALL},
- Version @value{VERSION} (\DATE\) Guile \GVERS\+ and Racket \RVERS\+}
+ Version @value{VERSION} ``@value{VERSION_NICK}'' (\DATE\) Guile \GVERS\+ Chicken \CVERS\+ and Racket \RVERS\+}
@html
</div>
@end html
@end macro
@macro dvblurb{}
-@vblurb{@value{GUILE_VERSION}, @value{RACKET_VERSION}, @value{RELEASE_DATE}}
+@vblurb{@value{GUILE_VERSION}, @value{CHICKEN_VERSION}, @value{RACKET_VERSION}, @value{RELEASE_DATE}}
@end macro
@macro altr{LINK, TXT, TLINK, TRAIL}
diff --git a/doc/repl.texi b/doc/repl.texi
index ad10202..7fa395b 100644
--- a/doc/repl.texi
+++ b/doc/repl.texi
@@ -43,14 +43,15 @@ is, as described in
Returning to our REPL, the first thing to notice is that the funny
prompt is telling you your current module: its name is the part just
after the @@ sign (in Guile, that means @code{guile-user}, while
-Racket's top namespace doesn't have a name; cf. discussion in
-@altr{Switching context,,Switching context,).} Other than that, this is
-pretty much equivalent to having a command-line interpreter in a
-terminal, with a bunch of add-ons that we'll be reviewing below. You
-can start typing sexps right there: Geiser will only dispatch them for
-evaluation when they're complete, and will indent new lines properly
-until then. It will also keep track of your input, maintaining a
-history file that will be reloaded whenever you restart the REPL.
+Racket's and Chicken's top namespaces don't have a name;
+cf. discussion in @altr{Switching context,,Switching context,).} Other
+than that, this is pretty much equivalent to having a command-line
+interpreter in a terminal, with a bunch of add-ons that we'll be
+reviewing below. You can start typing sexps right there: Geiser will
+only dispatch them for evaluation when they're complete, and will
+indent new lines properly until then. It will also keep track of your
+input, maintaining a history file that will be reloaded whenever you
+restart the REPL.
@cindex REPL, faces
@cindex faces, in the REPL
@@ -153,12 +154,12 @@ In tune with Geiser's
@ifnothtml
@i{modus operandi},
@end ifnothtml
-evaluations in the REPL take place in the namespace of the
-current module. As noted above, the REPL's prompt tells you the name of
-the current module. To switch to a different one, you can use the
-command @command{switch-to-geiser-module}, bound to @kbd{C-c C-m}.
-You'll notice that Geiser simply uses a couple of meta-commands provided
-by the Scheme REPL (the stock @command{,m} in Guile and the
+evaluations in the REPL take place in the namespace of the current
+module. As noted above, the REPL's prompt tells you the name of the
+current module. To switch to a different one, you can use the command
+@command{switch-to-geiser-module}, bound to @kbd{C-c C-m}. You'll
+notice that Geiser simply uses a couple of meta-commands provided by
+the Scheme REPL (the stock @command{,m} in Guile and Chicken and the
(geiser-defined) @command{,enter} in Racket), and that it doesn't even
try to hide that fact. That means that you can freely use said native
ways directly at the REPL, and Geiser will be happy to oblige. In
@@ -166,8 +167,8 @@ Racket, @command{,enter} works like Racket's standard @code{enter!}
form, but you can also provide a path string as its argument (e.g.,
@command{,enter "/tmp/foo.rkt"} is equivalent to @command{,enter (file
"/tmp/foo.rkt")}). Like @code{enter!}, @command{,enter} accepts also
-module names (as in, say, @command{,enter geiser/main}). As mentioned,
-Guile's @command{,m} is used @i{as is}.
+module names (as in, say, @command{,enter geiser/main}). As
+mentioned, in Guile and Chicken, @command{,m} is used @i{as is}.
@cindex current module, change
Once you enter a new module, only those bindings visible in its
@@ -246,15 +247,15 @@ represented by a list made up of its name and that value. When the
argument is a keyword argument, its name has ``#:'' as a prefix.
@cindex help on identifier
-If that's not enough documentation for you, @kbd{C-c C-d d} will open a
-separate documentation buffer with help on the symbol at point. This
-buffer will contain implementation-specific information about the
-identifier (e.g., its docstring for Guile, or its contract, if any, for
-Racket), and a handy button to open the corresponding manual entry for
-the symbol, which will open an HTML page (for Racket) or the texinfo
-manual (for Guile). If you'd rather go directly to the manual, try
-@kbd{C-c C-d i}, which invokes @code{geiser-doc-look-up-manual} as the
-handy button does.
+If that's not enough documentation for you, @kbd{C-c C-d d} will open
+a separate documentation buffer with help on the symbol at point.
+This buffer will contain implementation-specific information about the
+identifier (e.g., its docstring for Guile, or its contract, if any,
+for Racket), and a handy button to open the corresponding manual entry
+for the symbol, which will open an HTML page (for Racket and Chicken)
+or the texinfo manual (for Guile). If you'd rather go directly to the
+manual, try @kbd{C-c C-d i}, which invokes
+@code{geiser-doc-look-up-manual} as the handy button does.
@cindex module exports
@anchor{repl-mod} Geiser can also produce for you a list, classified by
@@ -285,8 +286,8 @@ the file where it's defined will be opened for you.
@section Seeing is believing
@cindex image support
-In schemes that support images as values (currently, that means Racket),
-the REPL will display them inline if you're using them in a
+In schemes that support images as values (currently, that means
+Racket), the REPL will display them inline if you're using them in a
graphics-aware Emacs.
@imgc{repl-images}
diff --git a/doc/thanks.texi b/doc/thanks.texi
index f1015ab..af8b2bf 100644
--- a/doc/thanks.texi
+++ b/doc/thanks.texi
@@ -1,6 +1,10 @@
@node No hacker is an island, Index, Cheat sheet, Top
@chapter No hacker is an island
@cindex thanks
+Dan Leslie, with the help of his three-months old daughter Freija,
+proved there's a smidgen of sense in this madness by adding support
+for Chicken to version 0.7 of Geiser, several years after it was born.
+
Andy Wingo, Geiser's first user, has been a continuous source of
encouragement and suggestions, and keeps improving Guile and heeding
my feature requests.
diff --git a/elisp/geiser-base.el b/elisp/geiser-base.el
index e564b0f..034e595 100644
--- a/elisp/geiser-base.el
+++ b/elisp/geiser-base.el
@@ -1,6 +1,6 @@
;;; geiser-base.el --- shared bits
-;; Copyright (C) 2009, 2010, 2012, 2013 Jose Antonio Ortega Ruiz
+;; Copyright (C) 2009, 2010, 2012, 2013, 2015 Jose Antonio Ortega Ruiz
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the Modified BSD License. You should
@@ -14,6 +14,8 @@
;;; Emacs compatibility:
+(require 'ring)
+
(eval-after-load "ring"
'(when (not (fboundp 'ring-member))
(defun ring-member (ring item)
diff --git a/elisp/geiser-impl.el b/elisp/geiser-impl.el
index d2b440a..3679483 100644
--- a/elisp/geiser-impl.el
+++ b/elisp/geiser-impl.el
@@ -1,6 +1,6 @@
;; geiser-impl.el -- generic support for scheme implementations
-;; Copyright (C) 2009, 2010, 2012, 2013 Jose Antonio Ortega Ruiz
+;; Copyright (C) 2009, 2010, 2012, 2013, 2015 Jose Antonio Ortega Ruiz
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the Modified BSD License. You should
diff --git a/elisp/geiser.el b/elisp/geiser.el
index fb5b46a..530358c 100644
--- a/elisp/geiser.el
+++ b/elisp/geiser.el
@@ -1,6 +1,6 @@
;;; geiser.el --- GNU Emacs and Scheme talk to each other
-;; Copyright (C) 2009, 2010, 2011, 2012, 2013 Jose Antonio Ortega Ruiz
+;; Copyright (C) 2009, 2010, 2011, 2012, 2013, 2015 Jose Antonio Ortega Ruiz
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the Modified BSD License. You should