Immediate evaluation

  • Thomas Sturm

    Thomas Sturm - 2009-07-22

    You might have noticed the thread on immediate vs. delayed evaluation in the Help forum.

    The outcome is that with 3 lines

    lisp procedure formimmediate(s,vl,m);
       form1(reval cadr s,vl,m);


    One can provide an evaluation model similar to Mathematica's "immediate evaluation," where certain functions in procedure bodies are evaluated at the definition time of the procedure.

    I think this is of general interest whenever one works with slow functions the results of which are input to further processing. Besides QE, Gröbner basis computations would be an example.

    I would now like to add my 3 lines to the development system, and I would be willing to maintain and further develop this when serious users discover problems.

    Question: Where should it go?

    * Redlog would be easy for me but unnatural.

    * Another package "immediate" would be one option. How do you feel about many small such packages?

    * I think it would actually fit somewhere into the rlisp module. But who is supposed to modify these modules?

    Please comment.


    • Arthur Norman

      Arthur Norman - 2009-07-22

      Firstly it would seem silly to imagine this being a separate module. Apart from anything else it should always be loaded. I would have put it in alg/ which is where things to do with evaluation seem to sit, but before finalising I would do one further scan through to see what else could count as very much like it. I think of rlisp as syntax not really algebra or simplification models, whihc is why I do not think it belongs there even though you implement it using a formfn.

      Any developer who can check things in to sourceforge has the power to check things in ANYWHERE in the tree. And for both bug-fixes and add-ons like this I think that OF COURSE any developer can check in new stuff. The converse would lead to a frozen system and that is not at all waht we want!

      I think that more care would be needed before altering the behaviour of an existing bit of the code in ways that could break any current usage, or widespread re-work - each of those might need to be developed in a branch and marged back when fully tested... But something like the change you are talking about now looks useful and utterly unliable to hurt anybody else (unless somebody else has a procedure called "immediate"!) so go for it! Arthur


Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks