[Metatilities-devel] One more bug

Gary King gwking at metabang.com
Thu Dec 4 17:44:00 UTC 2008


Hi Gustavo,

I just updated metatilities to 0.6.17 with the fix for this problem.

Sorry it took so long and please do keep sending me problem reports  
and suggestions.

thanks,

	
On Nov 25, 2008, at 8:53 PM, Gustavo wrote:

> Oh, a long time, I see. :)
>
> I use your stuff a lot, so it is likelly that I find bugs in it.
>
> 2008/11/25 Gary King <gwking at metabang.com>
> Hi Gustavo
>
> Thanks for the detailed report. I haven't looked at (or even used!)  
> this code for a _long_ time so it wouldn't surprise me if its  
> broken. I'll see what I can do over the Thanksgiving break.
>
> regards,
>
> On Nov 25, 2008, at 7:51 PM, Gustavo wrote:
>
>> The compiler macros for functions disjoin and conjoin are broken.  
>> For debugging purposes, I copied the code to a macro to see what  
>> was happening.
>>
>> cl-user> (in-package :metatilities)
>> #<package "METABANG.UTILITIES">
>> utilities> (defmacro disjoin* (&whole form &rest fns)
>>   (cond ((every #'(lambda (x) (or (symbolp x) (function-expression- 
>> p x))) fns)
>>          (with-unique-names (args)
>>            `#'(lambda (,args)
>>                 (or ,@(mapcar #'(lambda (x)
>>                                   `(apply ,(extract-head-form x)
>>                                           ,args))
>>                               fns)))))
>>         (t form)))
>> disjoin*
>> utilities> (macroexpand-1 '(disjoin* #'macro-char-p #'whitespace-p))
>> #'(lambda (#:|args/1399|)
>>     (or (apply macro-char-p #:|args/1399|) (apply whitespace-p #:| 
>> args/1399|)))
>> t
>>
>> I realized this bug trying to compile a function - sbcl complained  
>> about the variables macro-char-p and whitespace-p not to be  
>> defined. That makes me wonder: what is "extract-head-form" doing?  
>> It should be usefull only if you did something like:
>>
>> (define-compiler-macro disjoin (fn &rest fns)
>>   ...
>>     `(,(extract-head-form x) , at args)
>>   ...
>> )
>>
>> I.e., eliminating the funcalls (I saw that somewhere on cliki.net  
>> some time ago).And, by the way, I guess that, the way the function  
>> disjoin is being defined, I guess there is no way to do this (the  
>> argument list is only known in execution time).
>
> --
> Gary Warren King, metabang.com
> Cell: (413) 559 8738
> Fax: (206) 338-4052
> gwkkwg on Skype * garethsan on AIM
>
>
>
>
>

--
Gary Warren King, metabang.com
Cell: (413) 559 8738
Fax: (206) 338-4052
gwkkwg on Skype * garethsan on AIM




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/metatilities-devel/attachments/20081204/10024878/attachment.html>


More information about the Metatilities-devel mailing list