diff --git a/doc/gf-history.html b/doc/gf-history.html index 2e7f390b5..d50f42075 100644 --- a/doc/gf-history.html +++ b/doc/gf-history.html @@ -12,21 +12,28 @@ Changes in functionality since May 17, 2005, release of GF Version 2.2 +

+ 20/9 (AR) Added optimization by common subexpression elimination. -It works on GFC modules and creates $oper$ definitions for -subterms that occur more than once in $lin$ definitions. These -$oper$ definitions are automatically reinlined in functionalities -that don't support $oper$s in GFC. This conversion is done by -module and the $oper$s are not inherited. Moreover, the subterms -can contain free variables which means that the $oper$s are not +It works on GFC modules and creates oper definitions for +subterms that occur more than once in lin definitions. These +oper definitions are automatically reinlined in functionalities +that don't support opers in GFC. This conversion is done by +module and the opers are not inherited. Moreover, the subterms +can contain free variables which means that the opers are not always well typed. However, since all variables in GFC are type-specific -(and local variables are $lin$-specific), this does not destroy +(and local variables are lin-specific), this does not destroy subject reduction or cause illegal captures.
The optimization is triggered by the flag optimize=OPT_subs, where OPT is any of the other optimizations (see h -optimize). The most aggressive value of the flag is all_subs. In experiments, -the size of a GFC module can shrink by 80% compared to plain all. +the size of a GFC module can shrink by 85% compared to plain all. + +

+ +18/9 (AR) Removed superfluous spaces from GFC printing. This shrinks +the GFC size by 5-10%.