<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gf-core.git/src/compiler/GF/Grammar/Binary.hs, branch master</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.adelon.net/gf-core.git/atom?h=master</id>
<link rel='self' href='https://git.adelon.net/gf-core.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/'/>
<updated>2015-06-23T12:58:14+00:00</updated>
<entry>
<title>Bump version of .gfo and .pgf files, improve error messages on version mismatch</title>
<updated>2015-06-23T12:58:14+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2015-06-23T12:58:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=22ba8d34ff00bde6aa83dc9bdcdd13de34799c08'/>
<id>urn:sha1:22ba8d34ff00bde6aa83dc9bdcdd13de34799c08</id>
<content type='text'>
Becacuse of the new special tokens added to the Symbol type, .gfo and .pgf
files produced with the current version of GF can not always be used with
older versions of GF and the PGF run-time system.

The PGF version number was increased from (2,0) to (2,1). GF can still
read version (2,0) and (1,0), so old PGF files continue to work.

The GFO version was increased from "GF03" to "GF04".
</content>
</entry>
<entry>
<title>ModuleName and Ident are now distinct types</title>
<updated>2014-10-21T19:20:31+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2014-10-21T19:20:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=391b301881bee7de9580f2c6d819144161e6a51d'/>
<id>urn:sha1:391b301881bee7de9580f2c6d819144161e6a51d</id>
<content type='text'>
This makes the documentation clearer, and can potentially catch more
programming mistakes.

</content>
</entry>
<entry>
<title>Renaming SourceGrammar to Grammar and similarly for some related types</title>
<updated>2014-10-21T14:42:31+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2014-10-21T14:42:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=3bfcfa157dc291e03bfb4db3baed8b0098d76f50'/>
<id>urn:sha1:3bfcfa157dc291e03bfb4db3baed8b0098d76f50</id>
<content type='text'>
Included renamings:

	SourceGrammar -&gt; Grammar
	SourceModule -&gt; Module
	SourceModInfo -&gt; ModuleInfo
	emptySourceGrammar -&gt; emptyGrammar

Also introduces a type synonym (which might be good to turn into a newtype):

	type ModuleName = Ident

The reason is to make types like the following more self documenting:

	type Module = (ModuleName,ModuleInfo)
	type QIdent = (ModuleName,Ident)
</content>
</entry>
<entry>
<title>(1) Refactor concurrency, (2) write to .gfo.tmp then rename to .gfo</title>
<updated>2014-09-08T15:43:20+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2014-09-08T15:43:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=4eb6b55e980fda9c4d260820f5a6d38dde3d0991'/>
<id>urn:sha1:4eb6b55e980fda9c4d260820f5a6d38dde3d0991</id>
<content type='text'>
(1) introduces the module GF.Infra.Concurreny with lifted concurrency
    operators (to reduce uses of liftIO) and some additional concurrency
    utilities, e.g. a function for sequential logging that is used in
    both GF.CompileInParallel and GFServer.
(2) avoids leaving broken .gfo files behind if compilation is aborted.
</content>
</entry>
<entry>
<title>PGF library: expose only PGF and PGF.Internal instead of all modules</title>
<updated>2014-06-12T14:43:18+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2014-06-12T14:43:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=d6252d1c16d59ad26db0d08a531cddf39864d9db'/>
<id>urn:sha1:d6252d1c16d59ad26db0d08a531cddf39864d9db</id>
<content type='text'>
PGF exports the public, stable API.
PGF.Internal exports additional things needed in the GF compiler &amp; shell,
including the nonstardard version of Data.Binary.
</content>
</entry>
<entry>
<title>Represent identifiers as UTF-8-encoded ByteStrings</title>
<updated>2013-11-26T16:12:03+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2013-11-26T16:12:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=3f57151cc346be0fbf0726d4953f3529ea45e7f4'/>
<id>urn:sha1:3f57151cc346be0fbf0726d4953f3529ea45e7f4</id>
<content type='text'>
This was a fairly simple change thanks to previous work on making the Ident
type abstract and the fact that PGF.CId already uses UTF-8-encoded
ByteStrings.

One potential pitfall is that Data.ByteString.UTF8 uses the same type for
ByteStrings as Data.ByteString. I renamed ident2bs to ident2utf8 and
bsCId to utf8CId, to make it clearer that they work with UTF-8-encoded
ByteStrings.

Since both the compiler input and identifiers are now UTF-8-encoded
ByteStrings, the lexer now creates identifiers without copying any characters.
**END OF DESCRIPTION***

Place the long patch description above the ***END OF DESCRIPTION*** marker.
The first line of this file will be the patch name.


This patch contains the following changes:

M ./src/compiler/GF/Compile/CheckGrammar.hs -3 +3
M ./src/compiler/GF/Compile/GrammarToPGF.hs -2 +2
M ./src/compiler/GF/Grammar/Binary.hs -5 +1
M ./src/compiler/GF/Grammar/Lexer.x -11 +13
M ./src/compiler/GF/Infra/Ident.hs -19 +36
M ./src/runtime/haskell/PGF.hs -1 +1
M ./src/runtime/haskell/PGF/CId.hs -2 +3
</content>
</entry>
<entry>
<title>fix the deserialization of flags from the GFO files</title>
<updated>2013-11-06T13:05:51+00:00</updated>
<author>
<name>kr.angelov</name>
<email>kr.angelov@gmail.com</email>
</author>
<published>2013-11-06T13:05:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=a710e90c0bf0e92c8953d9b2afc6612087836028'/>
<id>urn:sha1:a710e90c0bf0e92c8953d9b2afc6612087836028</id>
<content type='text'>
</content>
</entry>
<entry>
<title>the content of ParseEngAbs3.probs is now merged with ParseEngAbs.probs. The later is now retrained. Once the grammar is compiled with the .probs file now it doesn't need anything more to do robust parsing. The robustness itself is controlled by the flags 'heuristic_search_factor', 'meta_prob' and 'meta_token_prob' in ParseEngAbs.gf</title>
<updated>2013-11-06T10:21:46+00:00</updated>
<author>
<name>kr.angelov</name>
<email>kr.angelov@gmail.com</email>
</author>
<published>2013-11-06T10:21:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=2483dc772897eb0909664f1a88cc7f8ec50ebd5b'/>
<id>urn:sha1:2483dc772897eb0909664f1a88cc7f8ec50ebd5b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Eliminate mutual dependencies between the GF compiler and the PGF library</title>
<updated>2013-11-05T13:11:10+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2013-11-05T13:11:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=3814841d7d3b77b3f033cb98c1c0a04ac39435d7'/>
<id>urn:sha1:3814841d7d3b77b3f033cb98c1c0a04ac39435d7</id>
<content type='text'>
+ References to modules under src/compiler have been eliminated from the PGF
  library (under src/runtime/haskell). Only two functions had to be moved (from
  GF.Data.Utilities to PGF.Utilities) to make this possible, other apparent
  dependencies turned out to be vacuous.

+ In gf.cabal, the GF executable no longer directly depends on the PGF library
  source directory, but only on the exposed library modules. This means that
  there is less duplication in gf.cabal and that the 30 modules in the
  PGF library will no longer be compiled twice while building GF.

  To make this possible, additional PGF library modules have been exposed, even
  though they should probably be considered for internal use only. They could
  be collected in a PGF.Internal module, or marked as "unstable", to make
  this explicit.

+ Also, by using the -fwarn-unused-imports flag, ~220 redundant imports were
  found and removed, reducing the total number of imports by ~15%.

</content>
</entry>
<entry>
<title>Add a cabal flag to use the standard binary package</title>
<updated>2013-10-31T15:43:12+00:00</updated>
<author>
<name>hallgren</name>
<email>hallgren@chalmers.se</email>
</author>
<published>2013-10-31T15:43:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.adelon.net/gf-core.git/commit/?id=83a10ce25a2c92fec24400773aca640a873fb2e8'/>
<id>urn:sha1:83a10ce25a2c92fec24400773aca640a873fb2e8</id>
<content type='text'>
The standard binary package has improved efficiency and error handling [1], so
in the long run we should consider switching to it. At the moment, using it is
possible but not recommended, since it results in incomatible PGF files.

The modified modules from the binary package have been moved from
src/runtime/haskell to src/binary.

[1] http://lennartkolmodin.blogspot.se/2013/03/binary-07.html
</content>
</entry>
</feed>
