GNU bug report logs -
#43025
re-export-public-interface fails on Guile 3
Previous Next
Reported by: Dale Smith <dalepsmith <at> gmail.com>
Date: Mon, 24 Aug 2020 16:12:01 UTC
Severity: normal
Done: Dale Smith <dalepsmith <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#43025: re-export-public-interface fails on Guile 3
which was filed against the guile package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 43025 <at> debbugs.gnu.org.
--
43025: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=43025
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Closing this. Please see
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=47084 instead
for a better/more accurate report.
-Dale
[Message part 3 (message/rfc822, inline)]
This is actually reported by daviid on IRC.
This definition of re-export-public-interface works fine on Guile 2.x,
fails with Guile 3:
(hope this makes it through the mails cleanly)
;;;
;;; re-export-public-interface
;;;
(define-module (modules)
#:export (re-export-public-interface))
(define-macro (re-export-public-interface . args)
"Re-export the public interface of a module or modules. Invoked as
@code{(re-export-public-interface (mod1) (mod2)...)}."
(if (null? args)
'(if #f #f)
`(begin
,@(map (lambda (mod)
(or (list? mod)
(error "Invalid module specification" mod))
`(module-use! (module-public-interface (current-module))
(resolve-interface ',mod)))
args))))
;;;
;;; A module that uses the above
;;;
(define-module (a)
#:use-module (srfi srfi-1)
#:use-module (modules)
#:export (map-a))
(eval-when (expand load eval)
(re-export-public-interface (srfi srfi-1)))
(define (map-a)
(map (lambda (item)
(display item)
(display " "))
(iota 5))
(newline)
(values))
;;;
;;; A 3.0.4 repl session
;;;
GNU Guile 3.0.4.3-e076a5
Copyright (C) 1995-2020 Free Software Foundation, Inc.
Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.
Enter `,help' for help.
scheme@(guile-user)> (add-to-load-path "/home/david/alto/projects/g-golf/3.0")
scheme@(guile-user)> ,use (a)
;;; note: source file /home/david/alto/projects/g-golf/3.0/a.scm
;;; newer than compiled
/home/david/.cache/guile/ccache/3.0-LE-8-4.3/usr/alto/projects/g-golf/3.0/a.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;; or pass the --no-auto-compile argument to disable.
;;; compiling /home/david/alto/projects/g-golf/3.0/a.scm
;;; compiled /home/david/.cache/guile/ccache/3.0-LE-8-4.3/usr/alto/projects/g-golf/3.0/a.scm.go
scheme@(guile-user)> map
WARNING: (guile-user): imported module (a) overrides core binding `map'
WARNING: (guile-user): `map' imported from both (guile) and (a)
WARNING: (guile-user): imported module (a) overrides core binding `map'
WARNING: (guile-user): `map' imported from both (guile) and (a)
;;; <unknown-location>: warning: possibly unbound variable `map'
WARNING: (guile-user): imported module (a) overrides core binding `map'
WARNING: (guile-user): `map' imported from both (guile) and (a)
WARNING: (guile-user): imported module (a) overrides core binding `map'
WARNING: (guile-user): `map' imported from both (guile) and (a)
ice-9/boot-9.scm:1670:16: In procedure raise-exception:
Unbound variable: map
Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
scheme@(guile-user) [1]>
;;;
;;; Just to compare, a 2.2.7 session
;;; How to achieve the same using 3.0.4 is the
;;; objective ...
Press C-c C-z to bring me back.
GNU Guile 2.2.7.2-a5875-dirty
Copyright (C) 1995-2019 Free Software Foundation, Inc.
Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.
Enter `,help' for help.
scheme@(guile-user)> (add-to-load-path "/home/david/alto/projects/g-golf/3.0")
scheme@(guile-user)> ,use (a)
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;; or pass the --no-auto-compile argument to disable.
;;; compiling /home/david/alto/projects/g-golf/3.0/a.scm
;;; compiling /home/david/alto/projects/g-golf/3.0/modules.scm
;;; compiled /home/david/.cache/guile/ccache/2.2-LE-8-3.A/usr/alto/projects/g-golf/3.0/modules.scm.go
;;; compiled /home/david/.cache/guile/ccache/2.2-LE-8-3.A/usr/alto/projects/g-golf/3.0/a.scm.go
scheme@(guile-user)> map
$2 = #<procedure map (f l) | (f l1 l2) | (f l1 . rest)>
This bug report was last modified 4 years and 157 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.