Subject: Re: bug#20546: Syntax bug in master branch (till d99fedc5fd38c0)

From: Andy Wingo <[email-masked]>
Date: Thu, 23 Jun 2016 22:27:11 +0200

On Mon 11 May 2015 12:29, Nala Ginrut <[email-masked]> writes:

> I'm using master branch (till d99fedc5fd38c0), and I found this code
> can't run in 2.1, but works in 2.0:
>
> (define-syntax define-art
>   (lambda (x)
>    (syntax-case x ()
>     ((_ name) (identifier? #'name)
>      #`(begin
>         (define name 2)
>         (define #,(datum->syntax #'name
>                   (symbol-append 'define- (syntax->datum #'name)))
>                 33))))))
>
> Of course, the meaning of this code is trivial.

Works for me:

wingo@clucks:~/src/guile$ meta/guile
GNU Guile 2.1.3.17-b8f5c-dirty
Copyright (C) 1995-2016 Free Software Foundation, Inc.

Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.

Enter `,help' for help.
scheme@(guile-user)> (define-syntax define-art
...   (lambda (x)
...    (syntax-case x ()
...     ((_ name) (identifier? #'name)
...      #`(begin
...         (define name 2)
...         (define #,(datum->syntax #'name
...                   (symbol-append 'define- (syntax->datum #'name)))
...                 33))))
... )
... )
scheme@(guile-user)> (define-art foo)
scheme@(guile-user)> foo
$1 = 2
scheme@(guile-user)> define-foo
$2 = 33

Must be some bug that was fixed in the meantime?