Subject: bug#47538: closed (Re: bug#47538: ice-9 regex procedures not found when trying to use from r7rs-style defined library)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 02 May 2021 13:51:02 +0000

Your bug report

#47538: ice-9 regex procedures not found when trying to use from r7rs-style defined library

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 [email-masked].

-- 
47538: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=47538
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#47538: ice-9 regex procedures not found when trying to use from r7rs-style defined library
From: Andy Wingo <[email-masked]>
To: Arvydas Silanskas <[email-masked]>
Cc: [email-masked]
Date: Sun, 02 May 2021 15:50:00 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

On Thu 01 Apr 2021 09:06, Arvydas Silanskas <[email-masked]> 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

Subject: ice-9 regex procedures not found when trying to use from r7rs-style defined library
From: Arvydas Silanskas <[email-masked]>
To: [email-masked]
Date: Thu, 1 Apr 2021 10:06:39 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

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