preliminary release

This commit is contained in:
aarne
2005-05-09 16:36:17 +00:00
parent 6a79b6fe2d
commit 8d5e4b2538
2 changed files with 100 additions and 0 deletions

View File

@@ -18,6 +18,21 @@ November 8, 2004.
</p><h2>News</h2>
<i>May 9, 2005</i>. Version 2.2 coming soon. Here is a
<a href="download-2.2/gf-2.2.tgz">preliminary source release</a>.
Here are the <a href="doc/gf2.2-highlights.html">highlights</a>.
<p>
<i>May 9, 2005</i>.
PhD Thesis by
<a href="http://www.cs.chalmers.se/~krijo">Kristofer Johannisson</a>:
<a href="http://www.cs.chalmers.se/~krijo/thesis/thesisA4.pdf">
Formal and Informal Software Specifications</a>.
<p>
<i>March 15, 2005</i>.
Master's thesis by
<a href="http://www.cs.chalmers.se/~bringert/">Björn Bringert</a> on

85
doc/gf2.2-highlights.html Normal file
View File

@@ -0,0 +1,85 @@
<html>
<body bgcolor="#FFFFFF" text="#000000">
<center>
<h1>Grammatical Framework Version 2.2</h1>
Highlights of GF version 2.2.
<p>
9/5/2005
<p>
<a href="http://www.cs.chalmers.se/~aarne">Aarne Ranta</a>
</center>
<h2>Summary of novelties in Version 2.2 in comparison to 2.1</h2>
<li> New optimizations to reduce the size of GFC files
<li> Improved parsing algorithms
<li> Lots of bug fixes
<li> Separate <tt>reuse</tt> modules no longer needed
<li> Several new command options
<li> New documentation:
<ul>
<li> <a href="gf-modules.html">module system document</tt>
<li> <a href="tutorial/gf-tutorial2.html">new tutorial</tt>, based on the module system (unfinished)
</ul>
<li> New resource libraries
<li> Visualization of module dependency graph
<li> In the editor GUI, text corresponding to subtrees with constraints marked with red colour
<li> Hierarchic modules used in the source code
<li> <a href="http://www.haskell.org/haddock">haddock</a> documentation available for source code
<h3>Compiler optimizations</h3>
The sometimes exploding size of generated <tt>gfc</tt> and
<tt>gfr</tt> files has made it urgent to find optimizations
that reduce the size of the code. There are five
combinations optimizations that can be chosen, as the value of the
<tt>optimize</tt> flag:
<ul>
<li> <tt>share</tt>: group tables so that common branch values are shared
by the use of disjunctive patterns.
<li> <tt>parametrize</tt>: if table branches differ at most at the
occurrence of the pattern, replace the expanded table by a one-branch
table with a variable. If this fails, perform <tt>share</tt>.
<li> <tt>values</tt>: only show the values of table branches, not the
patterns.
<li> <tt>all</tt>: try <tt>parametrize</tt>; if this fails, do <tt>values</tt>.
<li> <tt>none</tt>: don't do any optimizations
</ul>
The <tt>share</tt> and <tt>parametrize</tt> optimizations are always
just good, whereas the <tt>values</tt> optimization may slow down the
use of the table. However, it is very good for grammars mostly consisting
of the inflection tables of lexical items: it can reduce the file size
by the factor of 4.
<p>
An optimization can be selected individually for each
<tt>resource</tt> and <tt>concrete</tt> module by including
the judgement
<pre>
flags optimize=(share|parametrize|values|all|none) ;
</pre>
in the module body. These flags can be overridden by a flag given
in the <tt>i</tt> command, e.g.
<pre>
i -src -optimize=none Foo.gf
</pre>
Notice that the option <tt>-src</tt> is needed if there already are
generated files created with other optimization flags.
</body>
</html>