GNU bug report logs - #47538
ice-9 regex procedures not found when trying to use from r7rs-style defined library

Previous Next

Package: guile;

Reported by: Arvydas Silanskas <nma.arvydas.silanskas <at> gmail.com>

Date: Thu, 1 Apr 2021 07:42:01 UTC

Severity: normal

Done: Andy Wingo <wingo <at> igalia.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 47538 in the body.
You can then email your comments to 47538 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#47538; Package guile. (Thu, 01 Apr 2021 07:42:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Arvydas Silanskas <nma.arvydas.silanskas <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-guile <at> gnu.org. (Thu, 01 Apr 2021 07:42:02 GMT) Full text and rfc822 format available.

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

From: Arvydas Silanskas <nma.arvydas.silanskas <at> gmail.com>
To: bug-guile <at> gnu.org
Subject: ice-9 regex procedures not found when trying to use from r7rs-style
 defined library
Date: Thu, 1 Apr 2021 10:06:39 +0300
[Message part 1 (text/plain, inline)]
Consider files

foo-runner.scm:
(import (foo)
        (scheme write))
(display (bar))

foo.scm:
(define-library (foo)
    (import
      (scheme base)
      (ice-9 regex))
    (export bar)

    (begin
      (define (bar)
        (make-regexp "a"))))

Running this with guile -L . foo-runner.scm, yields error
foo.scm:1:0: In procedure bar:
Unbound variable: make-regexp

It seems using other libraries is fine; eg it works if I change foo.scm to
(define-library (foo)
    (import
      (scheme base)
      (ice-9 match))
    (export bar)

    (begin
      (define (bar)
        (match "a" (_ "bar")))))

It also works if I try using regexp from application instead of module; eg
if I change foo-runner.scm to
(import (foo)
        (scheme write)
        (ice-9 regex))
(display (make-regexp "a"))

I'm running version 3.0.5, installed through debian testing branch package
manager
[Message part 2 (text/html, inline)]

Reply sent to Andy Wingo <wingo <at> igalia.com>:
You have taken responsibility. (Sun, 02 May 2021 13:51:02 GMT) Full text and rfc822 format available.

Notification sent to Arvydas Silanskas <nma.arvydas.silanskas <at> gmail.com>:
bug acknowledged by developer. (Sun, 02 May 2021 13:51:02 GMT) Full text and rfc822 format available.

Message #10 received at 47538-close <at> debbugs.gnu.org (full text, mbox):

From: Andy Wingo <wingo <at> igalia.com>
To: Arvydas Silanskas <nma.arvydas.silanskas <at> gmail.com>
Cc: 47538-close <at> debbugs.gnu.org
Subject: Re: bug#47538: ice-9 regex procedures not found when trying to use
 from r7rs-style defined library
Date: Sun, 02 May 2021 15:50:00 +0200
Hi,

On Thu 01 Apr 2021 09:06, Arvydas Silanskas <nma.arvydas.silanskas <at> gmail.com> writes:

> foo.scm:
> (define-library (foo)
>     (import 
>       (scheme base)
>       (ice-9 regex))
>     (export bar)
>
>     (begin
>       (define (bar)
>         (make-regexp "a"))))

The issue AFAIU is that make-regexp is part of (guile), and not exported
by (ice-9 regex).  You would need to add (only (guile) make-regexp) to
your import set.  I know it's somewhat terrible but perhaps in the near
future we will be able to replace this regexp support with something
more consistent.

Please reopen if I misunderstood the bug.

Cheers,

Andy




Information forwarded to bug-guile <at> gnu.org:
bug#47538; Package guile. (Sun, 02 May 2021 15:34:02 GMT) Full text and rfc822 format available.

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

From: lloda <lloda <at> sarc.name>
To: Andy Wingo <wingo <at> igalia.com>
Cc: Arvydas Silanskas <nma.arvydas.silanskas <at> gmail.com>, 47538 <at> debbugs.gnu.org
Subject: Re: bug#47538: ice-9 regex procedures not found when trying to use
 from r7rs-style defined library
Date: Sun, 2 May 2021 17:32:53 +0200
Perhaps an acceptable fix would be to re-export from (ice-9 regex) before eventually deprecating the other export.

> On 2 May 2021, at 15:50, Andy Wingo <wingo <at> igalia.com> wrote:
> 
> Hi,
> 
> On Thu 01 Apr 2021 09:06, Arvydas Silanskas <nma.arvydas.silanskas <at> gmail.com> writes:
> 
>> foo.scm:
>> (define-library (foo)
>>    (import 
>>      (scheme base)
>>      (ice-9 regex))
>>    (export bar)
>> 
>>    (begin
>>      (define (bar)
>>        (make-regexp "a"))))
> 
> The issue AFAIU is that make-regexp is part of (guile), and not exported
> by (ice-9 regex).  You would need to add (only (guile) make-regexp) to
> your import set.  I know it's somewhat terrible but perhaps in the near
> future we will be able to replace this regexp support with something
> more consistent.
> 
> Please reopen if I misunderstood the bug.
> 
> Cheers,
> 
> Andy
> 
> 
> 





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

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

Previous Next


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