
On Wed, 15 Oct 2008, Duncan Coutts wrote:
On Wed, 2008-10-15 at 20:47 +0200, Henning Thielemann wrote:
I found it just confusing to switch on two features (namely 'optimization including application of rules' and 'parsing, checking and storing new rules') with one option (namely -O). It remains confusing for me also if one of the two features can be enabled separately with -fno-omit-interface-pragmas, but the other feature cannot. Also the option sounds like it also applies not only to RULES. I also find the doubled negation in 'no omit' confusing. What about '-finclude-all-interface-pragmas'? What concerns documentation: The description of an option for enabling parsing of RULES I would expect in ghc-doc/users_guide/rewrite-rules.html.
While it used to be more complex, the situation now is quite simple:
RULES are always parsed (no flags or language extensions needed). They also go into the .hi files (unless you use the obscure option to change that), so they are exported for all client modules.
So they are handled like all pragmas. That sounds fine to me.
RULES get used/applied with -O. Again, there is an option to turn off the use of rules (without affecting other optimisations).
This seems pretty sane and easy to explain.
yes, indeed