summaryrefslogtreecommitdiff
path: root/src/compiler/GF
AgeCommit message (Collapse)Author
2011-11-02merge GF.Infra.Modules and GF.Grammar.Grammar. This is a preparation for the ↵kr.angelov
separate PGF building
2011-11-02Now the compiler maintains more precise information for the source locations ↵kr.angelov
of the different definitions. There is a --tags option which generates a list of all identifiers with their source locations.
2011-11-01Remove configuration flag cclazyhallgren
2011-11-01Fixed a typo in the shell online helpNick Frolov
2011-10-25Recording an alternative version of look in Compute/ConcreteLazy.hshallgren
Commented out, causes problems in the greek example.
2011-10-25qualification with real module name accepted, as in GF refmanaarne
2011-10-24use associativity to force more precompilation of pre expressionsaarne
2011-10-20Introduce an explicit error value in the Term typehallgren
This makes it easier to treat run-time errors (e.g. caused by calls to Predef.error) in a way that is more typical for a lazy functional language.
2011-10-20Some experiments with PSeq (left commented out)hallgren
2011-10-20Compute/ConcreteLazy.hs: no need to reverse when looking up labels in recordshallgren
2011-10-20AppPredefined.hs: more readable notation for the types of primitiveshallgren
2011-09-26don't count app nodes in term sizeaarne
2011-09-25structured examples in help into pairs (command,explanation)aarne
2011-09-24bug fixes in code size analysisaarne
2011-09-22change the precedence for the left argument of ->kr.angelov
2011-09-22the sd -size command now shows the size of all code needed for defining an operaarne
2011-09-22documented the ss commandaarne
2011-09-21statistics on grammar size in terms of constructorsaarne
2011-09-21commands ss to show source, and sd to show the dependencies of a constantaarne
2011-09-20module for analysing source grammarsaarne
2011-09-20command ss to show source (including gfo) in text; to be extendedaarne
2011-09-15Add a command name header to the 'help -t2t' outputhallgren
2011-09-15made ps -from_TRANSLIT symmetric to -to_TRANSLIT in the sense that unknown ↵aarne
characters are returned as themselves and not as question marks
2011-09-14Omit empty sections in gf help outputhallgren
2011-09-14GF shell command 'help -t2t' outputs help in txt2tags formathallgren
2011-09-09Don't make noexpand the default with -fcclazyhallgren
This reverts the previous change. Not preprocessing opers turns out to make a difference in what needs to be mentioned in restricted inheritance/imports.
2011-09-09Make noexpand the default optimization package when configuring with -fcclazyhallgren
2011-09-09Remove unused function computeConcreteRec.hallgren
This also allows the parameter rec to be removed from function computeTermOpt. (The change is made in GF.Compile.Compute.ConcreteLazy, but not in GF.Compile.Compute.ConcreteStrict.)
2011-09-07GF.Grammar.Macros: simplify composOp and composSafeOphallgren
2011-09-05Make the -fcclazy configuration option visible in the build info in the GF ↵hallgren
Shell welcome message
2011-09-01Add lazy version of GF.Compile.Compute.Concretehallgren
This patch adds GF.Compile.Compute.ConcreteLazy, which replaces the Err monad with the Identity monad. While the Err monad makes the interpreter (hyper)strict, the Identity monad let's the interpreter inherit Haskell's laziness. This can give big speedups: from 50s to 1s in one example, from ~4 minutes to ~2 minutes for the RGL. This is still experimental and might be buggy, so it is off by default. You can turn it on by configuring with the -fcclazy flag, e.g. cabal configure -fcclazy Let me know if anything breaks.
2011-09-01GF.Grammar.*: generalized the type of some functions that can not fail from ↵hallgren
the Err monad to arbitrary monads
2011-08-31GF.Compile.Coding: cleaner code hallgren
Refine function codeTerm into codeTerm, codeLTerm and codeLTerms.
2011-08-31GF.Infra.Modules: minor tweakshallgren
Still keeping the modules both in a list and in a finite map. The overhead is smaller than I initially thought.
2011-08-30GF.Infra.Modules: restore module dependency order invarianthallgren
It is needed by greatestResource (and similar functions, presumably). So keep both the list and the finite map of modules. This slows down some things, but the compilation of PhrasebookFin.pgf benefits from it. To be continued...
2011-08-30GF.Infra.Modules: keep the modules of a grammar in a finite map instead of a ↵hallgren
list This speeds up the compilation of PhrasebookFin.pgf by 12%, mosly by speeding up calls to lookupModule in calls from lookupParamValues, in calls from allParamValues. The invariant "modules are stored in dependency order" is no longer respected! But the type MGrammar is now abstract, making it easier to maintain this or other invariants in the future.
2011-08-30GF.Grammar.Lookup: added function lookupQIdentInfohallgren
+ Avoids some code duplication by combinging lookupModule and lookupIdentInfo. + Also removed lookupIdentInfo from export list, since it is not used anywhere else.
2011-08-30PatternMatch.hs: commented out suspicious unused function varsOfPatthallgren
2011-08-30GrammarToPGF.hs: comment out unused importshallgren
2011-08-28import command now gives priority to new abstract syntax, and discards the ↵aarne
old concretes if they are for the old abstract; the new priority is implemented in PGF.Data.unionPGF
2011-08-25reload command in shellaarne
2011-08-22commented Compute/Concrete with explanationsaarne
2011-07-21GenIP, GenRP in Extra and any_Quant in ExtraEngaarne
2011-06-20refinementNepali-11-06-20virk.shafqat
2011-06-14allow empty lines in transliteration filesaarne
2011-06-02Predef functions toUpper, toLower, isUpperaarne
2011-05-19refinementsTextUrd-11-05-19virk.shafqat
2011-05-06fixed problems in persian transliteration pointed out by Elnazaarne
2011-05-02transliteration via configuration file: ps -to=file or ps -from=fileaarne
2011-04-13Added a preliminary "gf -server" mode.hallgren
The command "gf -server" now starts a simple HTTP server on port 41295, providing a simple web API to the GF compiler. It currently support the follwing operations: * creating new temporary directories for grammar uploads, * uploading grammars files for use in the GF shell, * executing GF shell commands, and * accessing static files. This means that GF now depends on some additional networking related packages, but they should be available and easy to install on all platforms. There is also a new configuration flag "server" in gf.cabal, so GF will be compiled without support for server mode if the extra packages are unavailable. Note that running gf -server while connected to the internet can be a security risk. To prevent unauthorized access to the rest of the system, it is advisable to run the server in GF_RESTRICTED mode and as a user with suitably restricted file permissions.