Subject: bug#9567: closed (Re: bug#9567: `match' bug ?)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 16 Oct 2011 16:40:02 +0000

Your bug report

#9567: curious match bug (?)

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].

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

Subject: Re: bug#9567: `match' bug ?
From: [email-masked] (Ludovic Courtès)
To: Alex Shinn <[email-masked]>
Cc: Andy Wingo <[email-masked]>, [email-masked]
Date: Sun, 16 Oct 2011 18:38:52 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi Alex,

Alex Shinn <[email-masked]> skribis:

> 2011/10/15 Ludovic Courtès <[email-masked]>:
>>
>> I’m trying to update Guile’s copy from Chibi but changeset
>> 876:528cdab3f818 in the default branch doesn’t seem to contain the fix.
>>
>> What am I missing?
>
> "hg export 851" will show you the changes, including
> the new test case.  Does it not work in Guile?

Yes.

> On the off chance you're unfamiliar with mercurial,
> did you remember to "hg update" after fetching the
> changes?

Oh indeed, I had run ‘hg pull’ (I think) but not ‘hg update’.

Thanks!

Ludo’.

Subject: curious match bug (?)
From: Andy Wingo <[email-masked]>
To: bug-guile <[email-masked]>
Date: Wed, 21 Sep 2011 05:34:36 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

Try this:

  (use-modules (language tree-il) (ice-9 match))
  (define foo (parse-tree-il '(let-values (apply (lambda () (lambda-case ((() #f #f #f () ()) (apply (primitive values) (const 1) (const 2)))))) (lambda-case (((a b) #f #f #f () (#{a 134390}# #{b 134391}#)) (apply (primitive list) (lexical a #{a 134390}#) (lexical b #{b 134391}#)))))))
  (match foo
    (($ <let-values> src exp
        ($ <lambda-case> src2 req #f #f #f () gensyms body #f))
     #t)
    (_
     #f))
  => #t
                         
  (match foo
    (($ <let-values> src foo ;; <- rename "exp" to "foo"
        ($ <lambda-case> src2 req #f #f #f () gensyms body #f))
     #t)
    (_
     #f))
  => #f

I tried to reduce this case a bit, but didn't succeed directly, and I
need to move on.  But what is the deal here?

Andy
-- 
http://wingolog.org/