summaryrefslogtreecommitdiff
path: root/gf.cabal
AgeCommit message (Collapse)Author
2014-03-04Three fixes for compatibility with GHC 7.8hallgren
Two of the fixes were in the custom version of the binary package. We should get rid of it at some point, to reduce the maintenance burden. The third fix was to add new version constraints for happy and alex in gf.cabal. New versions of them are needed because of the ugly, low-level, GHC-specific code they produce need to be different for GHC 7.8. More fixes might be needed for -server mode, but the cgi package is not compatible with GHC 7.8 at the moment, so it will have to wait.
2014-02-10Fix broken C runtime support in gf.cabal and PGFService.hshallgren
Also add PGF service command c-flush to explicitly flush cached parse results from memory.
2014-02-07gf.cabal: pgf-shell needs containers nowhallgren
2014-02-07pgf-shell: enable -rtsopts, call performGC between commandshallgren
This is to make it easier to find the cause of space leaks.
2014-02-03gf.cabal: add default-language to silence warninghallgren
2014-01-21gf.cabal: bump version number to 3.5.12hallgren
2014-01-20Optionally include C run-time supporthallgren
If the C run-time library is compiled and installed on your system, you can now do 'cabal configure -fc-runtime' to get the following extras: + The haskell binding to the C run-time library will be included in the PGF library (so you can import it in Haskell applications). Documentation on the new modules will be included when you run 'cabal haddock'. + The new command 'pgf-shell', implemented on top of haskell binding to the C run-time system. + Three new commands in the web API: c-parse, c-linearize and c-translate. Their interfaces are similar to the corresponding commands without the "c-" prefix, but they should be considered preliminary.
2013-12-18Release note updates and some other minor thingshallgren
2013-12-17Add backward compatibility for reading old PGF fileshallgren
Some backwards incompatible changes were made to the PGF file format after the release of GF 3.5. This patch adds a module for reading PGF files in the old format. This means that old PGF files on the grammaticalframework.org server will continue to work after we install the latest version of GF.
2013-12-10option --split-pgf replaces option --mk-index. This splits the PGF into one ↵kr.angelov
file for the abstract and one more for each concrete syntax. This is a preparation for being able to load only specific languages from the whole grammar.
2013-12-03testsuite: Use Cabal's new test suite interfacehallgren
* The old way: a user hook in Setup.hs * The new way: specify it in gf.cabal * The test suite is now called gf-tests, and it runs testsuite/run.hs. * You can run it manually with 'runhaskell testsuite/run.hs'. It also runs, together with rgl-tests, when you do 'cabal test' * Currently only 9 of 34 tests pass. Many failures have silly causes: - Error messages that look slightly different - Same output but in a different order - Absolute paths in output
2013-11-29Commment code and options relating to the old partial evaluatorhallgren
This means that the -old-comp and -new-comp flags are not recognized anymore. The only functional difference is that printnames were still normalized with the old partial evaluator. Now that is done with the new partial evaluator.
2013-11-25Change how GF deals with character encodings in grammar fileshallgren
1. The default encoding is changed from Latin-1 to UTF-8. 2. Alternate encodings should be specified as "--# -coding=enc", the old "flags coding=enc" declarations have no effect but are still checked for consistency. 3. A transitional warning is generated for files that contain non-ASCII characters without specifying a character encoding: "Warning: default encoding has changed from Latin-1 to UTF-8" 4. Conversion to Unicode is now done *before* lexing. This makes it possible to allow arbitrary Unicode characters in identifiers. But identifiers are still stored as ByteStrings, so they are limited to Latin-1 characters for now. 5. Lexer.hs is no longer part of the repository. We now generate the lexer from Lexer.x with alex>=3. Some workarounds for bugs in alex-3.0 were needed. These bugs might already be fixed in newer versions of alex, but we should be compatible with what is shipped in the Haskell Platform.
2013-11-22the GF syntax for identifiers is exteded with quoted forms, i.e. you could ↵kr.angelov
write for instance 'ab.c' and then everything between the quites is identifier. This includes Unicode characters and non-ASCII symbols. This is useful for automatically generated GF grammars.
2013-11-21Add a test runner and a test suite fore the rglgregoire.detrez
The test suite tests the French Bescherelle paradigms.
2013-11-06Make PGF.Tree internalhallgren
The only use of PGF.Tree outside the PGF library was in GF.Command.Commands, and it was eliminated by using PGF.Expr directly instead. PGF.Paraphrase still uses PGF.Tree.
2013-11-06Remove PGF.Signaturehallgren
This module should not be part of the public PGF library API, and it was only used in GF.CompileToAPI, so the code was moved there. The module defined constFuncs and syntaxFuncs, but only syntaxFuncs was used.
2013-11-05Eliminate mutual dependencies between the GF compiler and the PGF libraryhallgren
+ 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%.
2013-11-05fix in gf.cabal. Data.Binary.IEEE754 needs to be in the other-modules list ↵kr.angelov
for the PGF library since otherwise building GF applications will fail
2013-10-31Add a cabal flag to use the standard binary packagehallgren
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
2013-09-09Fix an old name shadowing bug in concrete syntax by removing the refresh passhallgren
The refresh pass does not correctly keep track of the scope of local variables and can convert things like \x->(\x->x) x into \x1->(\x2->x2) x2. Fortunately, it appears that the refresh pass is not needed anymore, so it has been removed.
2013-09-02gf.cabal: version: 3.5-darcshallgren
2013-08-06Update to version 3.5 in gf.cabal and debian/changeloghallgren
2013-07-29Adding download page and release notes for the next release of GFhallgren
The suggested next release is 3.4.8 in early August. Feel free to add things in download/release-3.4.8.t2t.
2013-04-02gf.cabal: fix tab char problemhallgren
2013-04-02gf.cabal: gf depends on utf8-string even when compiled without server supporthallgren
2013-03-09ghc-7.6: allow directory-1.2Sergei Trofimovich
Get rid of old-time depend (and ClockTime in favour of UTCTime). time-compat helps to retain backward compatibility with directory-1.1 and lower.
2013-02-11gf.cabal: version 3.4-darcshallgren
2013-01-30This is GF 3.4!hallgren
2013-01-30gf.cabal: Tested-with GHC==7.4.2 only, older versions cause minor problemshallgren
2012-12-07Make -new-comp the default and bump the version number to 3.3.11-darcshallgren
* -new-comp (the new partial evaluator) is now chosen by default when you run cabal install (or cabal configure). To revert to using the old partial evaluator by default, use "cabal install -f-new-comp" (or "cabal configure -f-new-comp"). * Regardless of the configured default, you can choose which partial evaluator to use when you invoke gf by using the -new-comp or -old-comp command line option. * The cc command in the GF shell uses the chosen partial evaluator by default, but you can override this by using "cc -new" or "cc -old". The plan is that these flags will be romeved in a future version.
2012-11-23gf -server + gfse: show modification time of public grammarshallgren
2012-11-20Update gf.cabal to copy new common js filesjohn.j.camilleri
2012-11-13Add first demo of new syntax editorjohn.j.camilleri
As part of the GF cloud stuff, it can be accessed from http://cloud.grammaticalframework.org/syntax-editor/editor.html
2012-11-13Adding a new experimental partial evalutatorhallgren
GF.Compile.Compute.ConcreteNew + two new modules contain a new partial evaluator intended to solve some performance problems with the old partial evalutator in GF.Compile.Compute.ConcreteLazy. It has been around for a while, but is now complete enough to compile the RGL and the Phrasebook. The old partial evaluator is still used by default. The new one can be activated in two ways: - by using the command line option -new-comp when invoking GF. - by using cabal configure -fnew-comp to make -new-comp the default. In this case you can also use the command line option -old-comp to revert to the old partial evaluator. In the GF shell, the cc command uses the old evaluator regardless of -new-comp for now, but you can use "cc -new ..." to invoke the new evaluator. With -new-comp, computations happen in GF.Compile.GeneratePMCFG instead of GF.Compile.Optimize. This is implemented by testing the flag optNewComp in both modules, to omit calls to the old partial evaluator from GF.Compile.Optimize and add calls to the new partial evaluator in GF.Compile.GeneratePMCFG. This also means that -new-comp effectively implies -noexpand. In GF.Compile.CheckGrammar, there is a check that restricted inheritance is used correctly. However, when -noexpand is used, this check causes unexpected errors, so it has been converted to generate warnings, for now. -new-comp no longer enables the new type checker in GF.Compile.Typeckeck.ConcreteNew. The GF version number has been bumped to 3.3.10-darcs
2012-11-08Eliminate warnings about deprecated use of catch and tryhallgren
This is also needed for compatibility with GHC 7.6.
2012-10-26gf.cabal: version of parallel needs to be >=3hallgren
2012-10-05Factor out code for setting the console encodinghallgren
Moved similar low-level code blocks in Main and GFI for setting the console encoding to the new module GF.System.Console.
2012-09-25Use the SIO monad in the GF shellhallgren
+ The restrictions on arbitrary IO when GF is running in restricted mode is now enforced in the types. + This hopefully also solves an intermittent problem when accessing the GF shell through the web API provided by gf -server. This was visible in the Simple Translation Tool and probably caused by some low-level bug in the GHC IO libraries.
2012-06-26Experiment with parallel grammar checkshallgren
Introduced the function parallelCheck :: [Check a] -> Check [a] that runs independent checks in parallel, potentially allowing faster grammar compilation on multi-core computers, if you run gf with +RTS -N. However, on my dual core laptop, this seems to slow down compilation somewhat even though CPU utilization goes up as high as 170% at times. (This is with GF compiled with GHC 7.0.4.)
2012-06-18cloud service: add preliminary cloud service API documentationhallgren
2012-06-11GF home page: link to GF clouds service (cloud.grammaticalframework.org)hallgren
Also some small cloud service documentation updates.
2012-05-15Adding a Simple Translation Toolhallgren
It is part of the cloud services available with gf -server.
2012-05-04alex 3 incompatibility workaroundhallgren
As a temporary workaround, alex is no longer invoked automatically when building with cabal. Developers who want to modify the lexer need to run alex on Lexer.x manually and record the modified Lexer.hs. src/compiler/GF/Grammar/lexer/Lexer.x -- hidden from cabal src/compiler/GF/Grammar/Lexer.hs -- update it manually
2012-03-30gf.cabal: removing -O2 hallgren
Removing "ghc-options: -O2" from gf.cabal has the following advantages: + Compiling GF is faster (time drops from 182s to 142s on my laptop) + Compiling the RGL is faster (time drops from 159s to 155s on my laptop) + Without the hardwired optimization level, the 'cabal configure' options --enable-optimization=<n> and --disable-optimization work as expected (so if you still want -O2, use --enable-optimization=2) + GF can be compiled with ghc-7.2.2 and ghc-7.4.1 (-O2 triggers a bug in these versions of ghc, it seems. Another workaround, discovered by Sergei Trofimovich, is to use -O0 in Data.Binary.)
2012-03-08gf.cabal: update version number to 3.3.3-darcshallgren
2012-03-02gf.cabal: update version number to 3.3.3hallgren
but I am not tagging it yet, there is still time for some changes
2012-02-28gfse: Translation Quiz integrationhallgren
Also moved the translation quiz from demos/TransQuiz to src/www/TransQuiz so that it will be installed by 'cabal install' along with the other files that are installed for use by gf -server mode.
2011-11-02merge GF.Infra.Modules and GF.Grammar.Grammar. This is a preparation for the ↵kr.angelov
separate PGF building
2011-11-01Remove configuration flag cclazyhallgren