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%.