unofficial mirror of bug-guile@gnu.org 
 help / color / mirror / Atom feed
* bug#40252: [R7RS] cond-expand in define-library forms
@ 2020-03-27 14:17 Marc Nieper-Wißkirchen
  2020-05-07 17:26 ` bug#40252: [PATCH] " Adam Nelson
  2020-08-03 20:23 ` bug#40252: " Marc Nieper-Wißkirchen
  0 siblings, 2 replies; 3+ messages in thread
From: Marc Nieper-Wißkirchen @ 2020-03-27 14:17 UTC (permalink / raw)
  To: 40252

[-- Attachment #1: Type: text/plain, Size: 862 bytes --]

The following valid R7RS library definition is not handled correctly by
Guile:

(define-library (guile-test)
  (export fold)
  (cond-expand
    ((library (scheme list))
     (import (scheme list)))
    ((library (srfi srfi-1))
     (import (srfi srfi-1)))))

This is what I get:

$ guile --r7rs -L .
GNU Guile 3.0.1
...
> (import (guile-test))
While compiling expression:
no code for module (scheme list)
>

Thus, the cond-expand library declaration does not seem to be handled
correctly. Other experiments with cond-expand also show strange behaviors:

(define-library (guile-test)
  (export foo)
  (cond-expand
    (guile
     (import (scheme base))))
  (begin
    (define foo 42)))

> (import (guile-test))
While compiling expression:
Syntax error:
unknown location: source expression failed to match any pattern in form
(((begin (define foo 42))))

--

Marc

[-- Attachment #2: Type: text/html, Size: 2482 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#40252: [PATCH] [R7RS] cond-expand in define-library forms
  2020-03-27 14:17 bug#40252: [R7RS] cond-expand in define-library forms Marc Nieper-Wißkirchen
@ 2020-05-07 17:26 ` Adam Nelson
  2020-08-03 20:23 ` bug#40252: " Marc Nieper-Wißkirchen
  1 sibling, 0 replies; 3+ messages in thread
From: Adam Nelson @ 2020-05-07 17:26 UTC (permalink / raw)
  To: 40252

It looks like this bug was caused by a missing dot in a list in the 
cond-expand macro. This small patch fixes it:

diff --git a/module/ice-9/r7rs-libraries.scm 
b/module/ice-9/r7rs-libraries.scm
index 6db9de873..221806ad1 100644
--- a/module/ice-9/r7rs-libraries.scm
+++ b/module/ice-9/r7rs-libraries.scm
@@ -88,11 +88,11 @@
          (((include-library-declarations filename ...) . decls)
           (syntax-case (handle-includes #'(filename ...)) ()
             ((decl ...)
-            (partition-decls #'(decl ... decls) exports imports code))))
+            (partition-decls #'(decl ... . decls) exports imports code))))
          (((cond-expand clause ...) . decls)
           (syntax-case (handle-cond-expand #'(clause ...)) ()
             ((decl ...)
-            (partition-decls #'(decl ... decls) exports imports code))))))
+            (partition-decls #'(decl ... . decls) exports imports 
code))))))

      (syntax-case stx ()
        ((_ name decl ...)






^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#40252: [R7RS] cond-expand in define-library forms
  2020-03-27 14:17 bug#40252: [R7RS] cond-expand in define-library forms Marc Nieper-Wißkirchen
  2020-05-07 17:26 ` bug#40252: [PATCH] " Adam Nelson
@ 2020-08-03 20:23 ` Marc Nieper-Wißkirchen
  1 sibling, 0 replies; 3+ messages in thread
From: Marc Nieper-Wißkirchen @ 2020-08-03 20:23 UTC (permalink / raw)
  To: Marc Nieper-Wißkirchen; +Cc: 40252

*bump*

Am Fr., 27. März 2020 um 15:17 Uhr schrieb Marc Nieper-Wißkirchen
<marc.nieper+gnu@gmail.com>:
>
> The following valid R7RS library definition is not handled correctly by Guile:
>
> (define-library (guile-test)
>   (export fold)
>   (cond-expand
>     ((library (scheme list))
>      (import (scheme list)))
>     ((library (srfi srfi-1))
>      (import (srfi srfi-1)))))
>
> This is what I get:
>
> $ guile --r7rs -L .
> GNU Guile 3.0.1
> ...
> > (import (guile-test))
> While compiling expression:
> no code for module (scheme list)
> >
>
> Thus, the cond-expand library declaration does not seem to be handled correctly. Other experiments with cond-expand also show strange behaviors:
>
> (define-library (guile-test)
>   (export foo)
>   (cond-expand
>     (guile
>      (import (scheme base))))
>   (begin
>     (define foo 42)))
>
> > (import (guile-test))
> While compiling expression:
> Syntax error:
> unknown location: source expression failed to match any pattern in form (((begin (define foo 42))))
>
> --
>
> Marc





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-08-03 20:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-27 14:17 bug#40252: [R7RS] cond-expand in define-library forms Marc Nieper-Wißkirchen
2020-05-07 17:26 ` bug#40252: [PATCH] " Adam Nelson
2020-08-03 20:23 ` bug#40252: " Marc Nieper-Wißkirchen

unofficial mirror of bug-guile@gnu.org 

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://yhetil.org/guile-bugs/0 guile-bugs/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 guile-bugs guile-bugs/ https://yhetil.org/guile-bugs \
		bug-guile@gnu.org
	public-inbox-index guile-bugs

Example config snippet for mirrors.
Newsgroups are available over NNTP:
	nntp://news.yhetil.org/yhetil.lisp.guile.bugs
	nntp://news.gmane.io/gmane.lisp.guile.bugs


AGPL code for this site: git clone http://ou63pmih66umazou.onion/public-inbox.git