[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-hackers] [PATCH] Allow optional functor arguments
From: |
Felix Winkelmann |
Subject: |
Re: [Chicken-hackers] [PATCH] Allow optional functor arguments |
Date: |
Sat, 12 Jul 2014 23:42:00 +0200 (CEST) |
From: Peter Bex <address@hidden>
Subject: Re: [Chicken-hackers] [PATCH] Allow optional functor arguments
Date: Sat, 12 Jul 2014 18:04:51 +0200
> On Mon, Jul 07, 2014 at 10:46:47PM +0200, Felix Winkelmann wrote:
>> Hello!
>>
>> Here another (and proper) patch: it allows functor arguments to be
>> optional, giving the author or a functor a way to provide a default,
>> which seems to be quite useful. I think this patch was submitted
>> before, but seems to have been forgotten.
>
> Hi Felix!
>
> Thanks for re-submitting it. I think it was only posted to our Trac
> installation as #1121, but that doesn't matter much.
>
>> This patch also fixes a bug in the functor-argument matching code:
>> when verifying whether a module given as argument exports the required
>> binding, the export-list was previously checked (that's the list given
>> in a module declaration, specifying the exports). But that was
>> incorrect, as, for example, builtin modules (like "scheme") do not
>> have export lists. This change uses the "vexports"/"sexports" lists
>> of a module instead, that is, the "real" exports.
>
> Thanks again for the patch, I've pushed it and closed #1121. I've also
> updated NEWS to mention the bugfix and new feature. I liked the fact
> that you added some comments, they helped me to understand what the code
> was doing more easily!
>
> I didn't fully grok the bugfix, so I wrote a simple test program to
> verify that I understood what it was doing, but while this doesn't
> fail as hard as before the patch, it's still not working. Could you
> take a look at the attached file?
>
> I think this may actually indicate two bugs: the functor complains
> about unbound identifiers, but if I compile the following simple
> program:
>
> (use csi)
> (toplevel-command 'blabla (lambda _ (print "blabla")))
>
> I also get an error that "csi" can't be loaded.
I think you forgot to attach the file.
felix