[cc-ing gambit's mailing list, so that gambit users/developers can
advise us on the recent changes affecting affecting geiser in 4.9.4]
Hi Tara,
On Sun, Jan 16 2022, Tara Lorenz wrote:
> Hello all,
>
> i experience a problem with the recently released Gambit 4.9.4. One of
> the problems is that the builtin geiser module is named differently now,
> '_geiser' instead of 'gambit/geiser'. The attached patch seems to fix the
> problem. I have to admit that i didn't test whether older versions
> of gambit still work though. To make things easy, i renamed the
> namespace used in the geiser provided scheme-implementation to match the
> new upstream one. I don't know if this might lead to some controversy.
I don't use gambit myself, but i guess we could just tag a new version
of the geiser-gambit package and redirect users having problems to
previous geiser-gambit versions. One thing that we should do together
with this patch is set geiser-gambit-minimum-version to v4.9.4, though.
I'm waiting a couple of days in case someone sees a problem with that.
> The other problem i ran into was, that load-file (C-c C-l) no longer
> works. It seems to me that including "~~lib/gambit/prim/prim#.scm"
> isn't enough, 'load' will still be unknown. Thus leading to an error
> message complaining about an '#!unbound' var where 'load' is expected.
So you patch below doesn't fix this problem, right? Any ideas from
other gambit experts? Thanks!
Cheers,
jao
> Cheers, Tara
> From 62f4c082a00e16b058da2a7b9d1327d850f884bd Mon Sep 17 00:00:00 2001
> From: Tara Lorenz <tara(a)terralonza.de>
> Date: Sat, 15 Jan 2022 21:50:48 +0100
> Subject: [PATCH] Adjust to namespace changes in gambit v4.9.4
>
> The namespace (and path) of the builtin geiser module changed from
> gambit/geiser to _geiser
>
> - geiser-gambit--parameters uses correct builtin module path
> - changed namespace for the version shipping with geiser to the same
> as used in upstream gambit
> - changed uses of namespace in geiser-gambit.el accordingly
> ---
> geiser-gambit.el | 14 +++++++-------
> src/geiser/gambit.scm | 2 +-
> 2 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/geiser-gambit.el b/geiser-gambit.el
> index f8a80be..fc4f26f 100644
> --- a/geiser-gambit.el
> +++ b/geiser-gambit.el
> @@ -126,7 +126,7 @@ If t, Geiser will use `next-error' to jump to the error's location."
> :group 'geiser-gambit)
>
> ;;; evaluation support when module loaded at opening
> -;;; the gambit/geiser# is the namespace of geiser module for gambit
> +;;; the _geiser# is the namespace of geiser module for gambit
> (defun geiser-gambit--geiser-procedure (proc &rest args)
> "Transform PROC in string for a scheme procedure using ARGS."
> (cl-case proc
> @@ -139,15 +139,15 @@ If t, Geiser will use `next-error' to jump to the error's location."
> (concat "'" (car args)))
> (t
> "#f")))
> - (cmd (format "(gambit/geiser#geiser:eval %s '%s)" module form)))
> + (cmd (format "(_geiser#geiser:eval %s '%s)" module form)))
> cmd))
> ((load-file compile-file)
> - (format "(gambit/geiser#geiser:load-file %s)" (car args)))
> + (format "(_geiser#geiser:load-file %s)" (car args)))
> ((no-values)
> - "(gambit/geiser#geiser:no-values)")
> + "(_geiser#geiser:no-values)")
> (t
> (let ((form (mapconcat 'identity args " ")))
> - (format "(gambit/geiser#geiser:%s %s)" proc form)))))
> + (format "(_geiser#geiser:%s %s)" proc form)))))
>
> ;;(defconst geiser-gambit--module-re
> ;; "( *module +\\(([^)]+)\\|[^ ]+\\)\\|( *define-library +\\(([^)]+)\\|[^ ]+\\)")
> @@ -314,8 +314,8 @@ If t, Geiser will use `next-error' to jump to the error's location."
> (let* ((v (geiser-gambit--version (geiser-gambit--binary)))
> (gambit-version (geiser--cut-version v)))
> (if (version< gambit-version "4.9.4")
> - `( "-:d-" ,(expand-file-name "geiser/gambit.scm" geiser-gambit-scheme-dir) "-" )
> - `("-:d-" "gambit/geiser.scm" "-"))))
> + `( "-:d-" ,(expand-file-name "geiser/gambit.scm" geiser-gambit-scheme-dir) "-" )
> + `("-:d-" "_geiser" "-"))))
>
> ;;;###autoload
> (defun connect-to-gambit ()
> diff --git a/src/geiser/gambit.scm b/src/geiser/gambit.scm
> index e7c760c..cff56ff 100644
> --- a/src/geiser/gambit.scm
> +++ b/src/geiser/gambit.scm
> @@ -1,6 +1,6 @@
> ;; scheme
> ;;; gambit.scm gambit geiser interaction
> -(##namespace ("gambit/geiser#")) ;; in gambit/geiser#
> +(##namespace ("_geiser#")) ;; in _geiser#
> (##include "~~lib/gambit#.scm") ;; for macro-check-string,
> ;; macro-absent-obj, etc
>
> --
> 2.34.1
>
--
What sane person could live in this world and not be crazy?
-Ursula K. Le Guin, author