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

Reply via email to