Alright, here's an issue I was musing on after dinner
yesterday: There are huge sets of optimizations that could
be made *if* the user promises not to do certain things.
For instance, who needs a symbol table when the user has
promised not to do any symbolic lookups? (Yes, I know, the
debugger, but only _if_ the user actually wants to debug
the program.) Thus, I propose 3 command-line switches
(highly reminiscent of gcc...):

-g : include all information required for debugging (symbol
     tables, etc.) and do not perform optimizations

-O# : controls just how complex the optimizations we try to
      make are, given the constraints we're under from what
      the user did _not_ promise to abstain from

-fpromise : this is a bit different from gcc, where it 
            controls individual optimizations - instead, in
            Parrot it enumerates the promises the user
makes
            (eg. I solemnly swear to never use symbolic 
            references, count on specific op patterns, or
            use any number large enough to require
bignums.)

If certain promises become very common, they could possibly
get their own flag or something.

Thoughts?

-- BKS

__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail
http://personal.mail.yahoo.com/

Reply via email to