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. Cheers, Peter -- http://www.more-magic.net _______________________________________________ Chicken-hackers mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/chicken-hackers
