bug-guile
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#43394: DYNAMIC-LINK is unbound when using r6rs library syntax


From: Guy Gastineau
Subject: bug#43394: DYNAMIC-LINK is unbound when using r6rs library syntax
Date: Sun, 13 Sep 2020 23:07:26 -0400

Guile version 3.0.4.38-64c894

I am on 64 bit arch linux, and I built guile3.0 from the AUR package guile-git on Sep 12 2020
https://aur.archlinux.org/guile-git.git for the PKGBUILD (the config options were practically non-existent).

I am writing to modules that dynamically link.  DYNAMIC-LINK works in the top level REPL, and when using DEFINE-MODULE.
When using the r6rs library syntax DYNAMIC-LINK is considered unbound and the compilation fails.
The following is an example of the behavior with a minimally viable source for reproducing the bug.

(library (fail-link (0 1))
  (export link)
  (import)
  (define link dynamic-link))

What I get:
;;; note: source file /home/guy/guile-fail-link.scm                                                                  
;;;       newer than compiled /home/guy/.cache/guile/ccache/3.0-LE-8-4.4/home/guy/guile-fail-link.scm.go              
;;; compiling /home/guy/guile-fail-link.scm                                                                          
;;; guile-fail-link.scm:4:2: warning: possibly unbound variable `dynamic-link'                                        
;;; compiled /home/guy/.cache/guile/ccache/3.0-LE-8-4.4/home/guy/guile-fail-link.scm.go                              
ice-9/boot-9.scm:1669:16: In procedure raise-exception:                                                              
Unbound variable: dynamic-link

What I expect:
;;; note: source file /home/guy/guile-fail-link.scm                                                                  
;;;       newer than compiled /home/guy/.cache/guile/ccache/3.0-LE-8-4.4/home/guy/guile-fail-link.scm.go              
;;; compiling /home/guy/guile-fail-link.scm                                                                          
;;; compiled /home/guy/.cache/guile/ccache/3.0-LE-8-4.4/home/guy/guile-fail-link.scm.go

Additional information:
After I load the failing library I lose a bunch of top level definitions and syntax.  Like IMPORT is no longer recognized and I have to `,q`
in order to get the REPL in a usable state again.

I can just use DEFINE-MODULE, but honestly I like the r6rs syntax.  Even though imports between schemes differ enough (and FFI anyway)
that none of these libraries will end up being portable, I still like r6rs library syntax.

If I need to find extra information for to help you all figure out what is happening, please just let me know.

Also, thank you all for your hard work.  I am excited to have this snappy Guile 3 on my system now ;)

- Guy Gastineau

reply via email to

[Prev in Thread] Current Thread [Next in Thread]