On Tue, Aug 17, 2010 at 5:47 PM, Jon Harper <[email protected]> wrote: > Also, the "macros" documentation article makes it hard to understand > because it looks outdated. Here's what I think is wrong: > - The article says "member?" uses define-transform, but grepping for > define-transform doesn't show anything for "member?".
The member? optimization is done with the propagation's pass custom inlining now. Grep for member? in compiler.tree.propagation.transforms. > - The article says : "Macros can be used to give static stack effects > to combinators that otherwise would not have static stack effects." Is > this a vestigial remnant from the bad old days when static stack > effects were optional, or can combinators still not have a stack > effect? It is still true. Imagine you have this combinator, : call-reverse ( quot -- quot' ) reverse call ; inline It won't compile and neither will any of its callers. But this will work: MACRO: call-reverse ( quot -- quot' ) reverse ; > - In the "MACRO:" article, it says > ".The word calling the macro has a static stack effect > . The expansion quotation produced by the macro has a static stack effect" > Again, words without static stack effect ? I've updated the macros vocab docs to remove outdated material and make things a bit clearer. Slava ------------------------------------------------------------------------------ This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev _______________________________________________ Factor-talk mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/factor-talk
