summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-09-12GF index: shortcut links to Android app, Best practices, REMU, and new ↵aarne
Android development instructions
2014-09-11a major revision of the bytecode generator and JIT compiler. the effect is ↵kr.angelov
that now we can compute with lambda functions and with true tail recursion
2014-09-11gf.cabal: add missing c-sources for the Haskell binding to the C run-time ↵hallgren
library
2014-09-11Setup.hs: don't ask darcs for the version history if _darcs is not presenthallgren
This is to avoid a (harmless) error message from darcs when compiling sources obtained e.g. from github.
2014-09-10now release the FunPtr:s that are allocated for each literal callbackkr.angelov
2014-09-10added an API for custom literals in the Haskell bindingkr.angelov
2014-09-10added loadConcr/unloadConcr to the Haskell binding. This exposes an API for ↵kr.angelov
loading grammars compiled with -split-pgf
2014-09-09Wide Coverage Demo web app: use the App grammar instead of the Translate grammarhallgren
This gives faster but slightly lower quality translations.
2014-09-08(1) Refactor concurrency, (2) write to .gfo.tmp then rename to .gfohallgren
(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.
2014-09-05the code for def rules now uses proper graph update to preserve lazynesskr.angelov
2014-09-05full support for recursive def rules in the C runtimekr.angelov
2014-09-03gf.cabal, gf-server.cabal: add version bounds on network & httpd-shedhallgren
* httpd-shed-0.4 does not specify an upper bound on network, but it fails to build against network>=2.6. This is fixed in httpd-shed-0.4.0.2. * With network-2.6, the Network.URI modules is moved to a separate package, so for the time being GF requires network>=2.3 && <2.6. This is compatible with the four most recent versions of the Haskell Platform.
2014-09-02src/server: refactoring to isolate dependencies on the cgi/fastcgi packageshallgren
* Introducing the module CGI, re-exporting a subset of the cgi package. It might complete replace the cgi package in the future. * Introducing the module CGIUtils, containing functions from FastCGIUtils that have nothing to do with fastcgi. Some low level hackery with unsafePerformIO and global variables was left in FastCGIUtils, but it is actually not used, neither for gf -server nor exec/pgf-fcgi.hs.
2014-09-01partial implementation for recursive def ruleskr.angelov
2014-09-01bug fixes in the JIT compilerkr.angelov
2014-08-30by_Prep causing conflict in AppChi, therefore excluded from the import of ↵aarne
PhrasebookChi
2014-08-30examples/app/Makefile2: simplifed Makefile for the App grammar (doesn't work ↵hallgren
yet) This makefile just calls GF once and lets GF figure out in which order to compile things. It uses the -j flag to enable parallel compilation and specifies an explicit -path, overriding the -path flags in the source files. This allows all needed modules to be found automatically and ensures that that alltenses is consistently used everywhere. But for some reason, this doesn't work...
2014-08-29Add OS X Installed package to the GF 3.6 download pagehallgren
2014-08-29bin/build-binary-dist.sh: just a small fixhallgren
2014-08-29added evaluator.h which I had forgotenkr.angelov
2014-08-28You can now use 'make pkg' to build OS X Installer packages for GFhallgren
The script bin/build-binary-dist.sh has been updated to build either a plain .tar.gz package or OS X Installer package (.pkg). Note that bin/build-binary-dist.sh is designed to build and include the C run-time system in the binary package. If the C run-time system fails to build, no binary package will be created.
2014-08-25gf.cabal ghc-options: don't force -j, -auto-all has been renamed to -fprof-autohallgren
2014-08-25Fix GHC 7.4 compatibility issue caused by previous patchhallgren
2014-08-25Setup.hs: disable parallel RGL build support for now, since it is ↵hallgren
incompatible with Cabal<1.20
2014-08-25Experimental: parallel batch compilation of grammarshallgren
On my laptop these changes speed up the full build of the RGL and example grammars with 'cabal build' from ~95s to ~43s and the zero build from ~18s to ~5s. The main change is the introduction of the module GF.CompileInParallel that replaces GF.Compile and the function GF.Compile.ReadFiles.getAllFiles. At present, it is activated with the new -j flag, and it is only used when combined with --make or --batch. In addition, to get parallel computations, you need to add GHC run-time flags, e.g., +RTS -N -A20M -RTS, to the command line. The Setup.hs script has been modified to pass the appropriate flags to GF for parallel compilation when compiling the RGL and example grammars, but you need a recent version of Cabal for this to work (probably >=1.20). Some additonal refactoring were made during this work. A new monad is used to avoid warnings/error messages from different modules to be intertwined when compiling in parallel, so some functios that were hardiwred to the IO or IOE monads have been lifted to work in arbitrary monads that are instances in the appropriate classes.
2014-08-24made the "how old" construction in Chinese more efficient by moving variants ↵aarne
to the top level; the resulting rule is the same. This kind of inefficiencies are best found if you compile with the -v option and check for constructors creating unexpectedly many PGF rules.
2014-08-22bugfix in the android appkr.angelov
2014-08-22src/www/robots.txt: robot exclusion file for the GF cloud service.hallgren
To reduce potential server load caused by search bots.
2014-08-22Command line flag -s/-q now silences all warningshallgren
These flags now do what the say.
2014-08-20Add lifted directory operations in GF.System.Directory to eliminate the need ↵hallgren
for liftIO in various places
2014-08-20GF.CompileOne: refactoring to reduce code duplication and improve readabilityhallgren
I prefer small functions with descriptive names over large monilithic chunks of code, so I grouped the compiler passes called from compileSourceModule into funcitons named frontend, middle and backend. This also makes decisions about which passes to run clearly visible up front. Also made some small changes in GF.Compile.
2014-08-19GF.Compile.ReadFiles: a simpler & faster way to convert from Latin1 to UTF-8hallgren
2014-08-13Fix compliation error with GHC 7.4 caused by previous patchhallgren
2014-08-13Fix warnings in 16 modules, mostly forward compatibility warnings from GHC 7.8hallgren
2014-08-13Refactoring in GF.Compile and GF.ReadFiles with an eye to parallel compilationhallgren
In particular, the function compileOne has been moved to the new module GF.CompileOne and its type has been changed from compileOne :: ... -> CompileEnv -> FilePath -> IOE CompileEnv to compileOne :: ... -> SourceGrammar -> FilePath -> IOE OneCompiledModule making it more suitable for use in a parallel compiler.
2014-08-13Setup.hs: reduce zero build time by a couple of secondshallgren
The RGL is now compile with only three calls to GF (prelude, present, alltenses). This also makes even more parallelism available to GF for speeding up full builds of the RGL.
2014-08-11GF.Compile: remove the Int from CompileEnvhallgren
It has been unused since the refresh pass was removed. This eliminates one obstacle to parallel module compilation.
2014-08-11pattern matching in def rules is now supportedkr.angelov
2014-08-11revert an accidental change that I pushed together with the last patchkr.angelov
2014-08-11a partial support for def rules in the C runtimekr.angelov
The def rules are now compiled to byte code by the compiler and then to native code by the JIT compiler in the runtime. Not all constructions are implemented yet. The partial implementation is now in the repository but it is not activated by default since this requires changes in the PGF format. I will enable it only after it is complete.
2014-08-08Setup.hs: don't build example grammars when the rgl-none argument is specifiedhallgren
2014-07-28Setup.hs: comment out debugging codehallgren
2014-07-28Setup.hs: reduce zero build time by ~30% (from 26 to 18 seconds on my laptop)hallgren
This speedup is obtained by instead of generating 211 shell commands to compile the RGL one file at a time, generate 7 shell commands, passing a number of related files to GF in one go. In addition to cutting down the zero build time, this opens up for speeding up full builds of the RGL, by adding more parallelism in GF's grammar compilation machinery. (Note: gf.cabal already takes advantage of GHC's parallel build option to speed up the compilation of GF itself, if GHC>=7.8 is used.)
2014-07-28Convert from Text.PrettyPrint to GF.Text.Prettyhallgren
All compiler modules now use GF.Text.Pretty instead of Text.PrettyPrint
2014-07-27Adding GF.Infra.Location and GF.Text.Pretty (forgot to 'darcs add' them before)hallgren
2014-07-27Introducing GF.Text.Pretty for more concise pretty printers and ↵hallgren
GF.Infra.Location for modularity GF.Text.Pretty provides the class Pretty and overloaded versions of the pretty printing combinators in Text.PrettyPrint, allowing pretty printable values to be used directly instead of first having to convert them to Doc with functions like text, int, char and ppIdent. Some modules have been converted to use GF.Text.Pretty, but not all. Precedences could be added to simplify the pretty printers for terms and patterns. GF.Infra.Location contains the types Location and L, factored out from GF.Grammar.Grammar, and the class HasSourcePath. This allowed the import of GF.Grammar.Grammar to be removed from GF.Infra.CheckM, making it more like a pure library module.
2014-07-25gf.cabal: fix depend in --flags=-custom-binary caseSergei Trofimovich
Detected when building today: Building gf-3.6... Preprocessing library gf-3.6... src/runtime/haskell/PGF/Internal.hs:17:8: Could not find module ‘Data.Binary.IEEE754’ It is a member of the hidden package ‘data-binary-ieee754-0.4.4’. Perhaps you need to add ‘data-binary-ieee754’ to the build-depends in your .cabal file.
2014-07-21PGF service: expire PGFs from the cache when they have been unused for 24 hourshallgren
...to keep memory use down on the server.
2014-07-21WebSetup.hs: include Chinese when building the Phrasebookhallgren
2014-07-16Qiao's corrections in PhrasebookChi. This replaces the old, partial and ↵aarne
low-quality version and is hence the first Chinese phrasebook version that can claim high quality.