GNU bug report logs - #43394
DYNAMIC-LINK is unbound when using r6rs library syntax

Previous Next

Package: guile;

Reported by: Guy Gastineau <strings.stringsandstrings <at> gmail.com>

Date: Mon, 14 Sep 2020 05:05:02 UTC

Severity: normal

Done: Taylan Kammer <taylan.kammer <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 43394 in the body.
You can then email your comments to 43394 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guile <at> gnu.org:
bug#43394; Package guile. (Mon, 14 Sep 2020 05:05:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Guy Gastineau <strings.stringsandstrings <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-guile <at> gnu.org. (Mon, 14 Sep 2020 05:05:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Guy Gastineau <strings.stringsandstrings <at> gmail.com>
To: bug-guile <at> gnu.org
Subject: DYNAMIC-LINK is unbound when using r6rs library syntax
Date: Sun, 13 Sep 2020 23:07:26 -0400
[Message part 1 (text/plain, inline)]
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
[Message part 2 (text/html, inline)]

Information forwarded to bug-guile <at> gnu.org:
bug#43394; Package guile. (Mon, 14 Sep 2020 15:48:03 GMT) Full text and rfc822 format available.

Message #8 received at 43394 <at> debbugs.gnu.org (full text, mbox):

From: Linus Björnstam <linus.bjornstam <at> veryfast.biz>
To: "Guy Gastineau" <strings.stringsandstrings <at> gmail.com>,
 43394 <at> debbugs.gnu.org
Subject: Re: bug#43394: DYNAMIC-LINK is unbound when using r6rs library syntax
Date: Mon, 14 Sep 2020 11:29:09 +0200
In r6rs libraries, only r6rs is available. You need to impor whatever bindings you need from the (guile) module

-- 
  Linus Björnstam

On Mon, 14 Sep 2020, at 05:07, Guy Gastineau wrote:
> 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 sent to Taylan Kammer <taylan.kammer <at> gmail.com>:
You have taken responsibility. (Wed, 12 May 2021 21:15:01 GMT) Full text and rfc822 format available.

Notification sent to Guy Gastineau <strings.stringsandstrings <at> gmail.com>:
bug acknowledged by developer. (Wed, 12 May 2021 21:15:01 GMT) Full text and rfc822 format available.

Message #13 received at 43394-done <at> debbugs.gnu.org (full text, mbox):

From: Taylan Kammer <taylan.kammer <at> gmail.com>
To: 43394-done <at> debbugs.gnu.org
Subject: DYNAMIC-LINK is unbound when using r6rs library syntax
Date: Wed, 12 May 2021 23:14:00 +0200
As Linus explained, you need to import the (guile) module.

  (library (succeed-link (0 1))
    (export link)
    (import (guile))
    (define link dynamic-link))

Works as intended, so I'm closing this bug. :-)


- Taylan




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 10 Jun 2021 11:24:09 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 318 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.