Re: defsystem & eval

Marco Antoniotti <[email protected]> Thu, 18 Aug 2005 23:15:41 -0400
Newsgroups gmane.lisp.clocc.devel
Message-ID <[email protected]>
Forget my last message.  It is crap.

I don't think you can do it with a lexical.  You need a global to 
achieve what you want.

Marco





On Aug 18, 2005, at 10:42 PM, Marco Antoniotti wrote:

>
> On Aug 18, 2005, at 5:33 PM, Sam Steingold wrote:
>
>>> * Marco Antoniotti <[email protected]> [2005-08-18 17:21:08 -0400]:
>>>
>>> On Aug 18, 2005, at 5:07 PM, Sam Steingold wrote:
>>>
>>>>> * Marco Antoniotti <[email protected]> [2005-08-18 15:45:00 
>>>>> -0400]:
>>>>>
>>>>> I see not other way but to revert to the previous version.
>>>>
>>>> you can replace (eval foo) with
>>>> (typecase foo
>>>>  (function (funcall foo))
>>>>  (otherwise (eval foo)))
>>>> this will work for the top-level cases.
>>>
>>> Ok.  But what do you gain with this?  You can write
>>>
>>> 	:finally-do #'foo
>>>
>>> instead of
>>>
>>> 	:finally-do (foo)
>>>
>>> ?
>>
>> I am not sure I understand you.
>>
>>
>>> Is that all?
>>
>> look at cllib.system:
>>
>> (let (x)
>> (defsystem ...
>>   :initally-do (setq x 1)
>>   :finally-do (print x))
>> )
>>
>> replacing (setq x 1) with (lambda()(setq x 1)) will not eliminate
>> compilation warnings.
>
> A simple workaround is to declare X (or TBC in cllib.system) SPECIAL.
>
> That should do it as EVAL uses the current dynamic environment.
>
> Cheers
>
> Marco
>
>
>
> --
> Marco Antoniotti					http://bioinformatics.nyu.edu
> NYU Courant Bioinformatics Group		tel. +1 - 212 - 998 3488
> 715 Broadway 10th FL				fax. +1 - 212 - 998 3484
> New York, NY, 10003, U.S.A.
>
>
>
> -------------------------------------------------------
> SF.Net email is Sponsored by the Better Software Conference & EXPO
> September 19-22, 2005 * San Francisco, CA * Development Lifecycle 
> Practices
> Agile & Plan-Driven Development * Managing Projects & Teams * Testing 
> & QA
> Security * Process Improvement & Measurement * 
> http://www.sqe.com/bsce5sf
> _______________________________________________
> clocc-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/clocc-devel
>
--
Marco Antoniotti					http://bioinformatics.nyu.edu
NYU Courant Bioinformatics Group		tel. +1 - 212 - 998 3488
715 Broadway 10th FL				fax. +1 - 212 - 998 3484
New York, NY, 10003, U.S.A.



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf