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