guile-devel
[Top][All Lists]
Advanced

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

A R7RS library name part bug?


From: 無無
Subject: A R7RS library name part bug?
Date: Mon, 13 Nov 2023 16:21:28 +0200

I have read that in R7RS a library name is defined as:

    <library name> -> ( <library name part>+ )
    <library name part> -> <identifier> | <uinteger 10>
    <uinteger R> -> <digit R>
    <digit 10> -> <digit>
    <digit> -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

That means that a valid library name would be something like (a b 1),
where "1" is a valid library name part, but the following code
disagrees.  running `guile --r7rs -L . a/good-main.scm` works while
`guile --r7rs -L . a/bad-main.scm` fails.

The files are as follows:

;;; ./a/b/1.scm
(define-library (a b 1)
  (import (scheme base))
  (export one)

  (begin
    (define one 'one)))

;;; ./a/b/d-1.scm
(define-library (a b d-1)
  (import
   (scheme base)
   (scheme write)
   )

  (export
   dd-1)

  (begin
    (define dd-1 'dd-1)))

;;; ./a/b/d.scm
(define-library (a b d)
  (import
   (scheme base)
   (scheme write)
   )

  (export
   dd)

  (begin
    (define dd 'dd)))

;;; ./a/good-main.scm
(define-library (a c)
  (import
   (scheme base)
   (scheme write)
   (a b d)
   (a b d-1))

  (begin
    (display '(a c)) (newline)
    (display dd) (newline)
    (display dd-1) (newline)))

;;; ./a/bad-main.scm
(define-library (a c)
  (import
   (scheme base)
   (scheme write)
   (a b 1))

  (begin
    (display one) (newline)))



reply via email to

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