Commit Graph

217 Commits

Author SHA1 Message Date
hallgren 8195c36f6f Workaround for bug in ghc-7.2.2
An apparent bug in ghc-7.2.2 causes the type Value to be exported from PGF.Data.
Workaround: restrict the imports from PGF.Data in GF.Command.Abstract and
GF.Compile.GeneratePMCFG to avoid the clash with locally defined type Value.
(ghc-7.0.4 and ghc-7.4.1 appear to be free from this bug.)
2012-03-26 23:56:56 +00:00
aarne 8b07c2607d bug fix in AppPredefined: don't compare values that contain variables. this should be checked even more generally. 2012-02-28 15:13:32 +00:00
kr.angelov df0fe4363d buf fix in the compiler for HOAS 2012-02-28 08:10:47 +00:00
aarne a777481313 the Predef function eqVal to compare equality of parameter values 2012-02-24 10:00:27 +00:00
aarne 8936c6d38e sorted the list of funs and cats in GrammatToPGF to get the predef categories in proper place and get gr, ai, gt work properly 2012-01-14 17:06:54 +00:00
kr.angelov 1d72e2de7e The typechecker is still unfinished but at least it can typecheck the English resource grammar 2011-12-02 12:33:26 +00:00
kr.angelov 9f777aed7e Hopefully complete Value type and a little bit more on computations. 2011-11-30 20:56:31 +00:00
kr.angelov 11a37316da more stuff in the new type checker 2011-11-30 14:55:52 +00:00
kr.angelov eaaefe73d0 Sketch of the new type checker for the concrete syntax. Enabled only with -new-comp 2011-11-29 12:12:51 +00:00
kr.angelov f1cacffc98 now if some module is compiled with -no-pmcfg then the PMCFG code is generated at the end during the linking phase. Now the default compilation of the libraries with cabal is with -no-pmcfg. 2011-11-24 14:23:04 +00:00
kr.angelov 1f174fe04f make addSequencesB(V) strict. Otherwise we get stack overflow when compiling LangFre 2011-11-22 20:31:58 +00:00
kr.angelov c626262f9a rebuildModule should do location globalization too 2011-11-17 22:11:56 +00:00
kr.angelov 67aa44a620 bugfix in the overload resolution. It was accidentally introduced as part of the per module PMCFG generation 2011-11-17 21:36:45 +00:00
kr.angelov 79ba3c0877 fix in the versioning of the .gfo files 2011-11-15 19:46:02 +00:00
kr.angelov 1b85355d47 now we store version number in every .gfo file. If the file is compiled with different compiler then we simply recompile it. 2011-11-15 19:12:22 +00:00
kr.angelov 0163942df9 Now the errors messages from GF.Compile.Update also follow the new format 2011-11-15 15:33:52 +00:00
kr.angelov f47381e578 the indirections in the .gf-tags files now point directly to the origin of the corresponding indentifiers 2011-11-15 14:30:31 +00:00
kr.angelov 48558197a8 more structured format for errors and warnings from the compiler 2011-11-15 13:33:44 +00:00
kr.angelov 9b482722c3 bugfix in the new PGF generation 2011-11-14 16:27:59 +00:00
kr.angelov e161f93f4d the new design for -tags 2011-11-14 16:08:56 +00:00
kr.angelov bbe42d1e90 Now PMCFG is compiled per module and at the end we only link it. The new compilation schema is few times faster. 2011-11-10 14:09:41 +00:00
kr.angelov 54019c75ae merge GF.Infra.Modules and GF.Grammar.Grammar. This is a preparation for the separate PGF building 2011-11-02 13:57:11 +00:00
kr.angelov bc35626489 Now the compiler maintains more precise information for the source locations of the different definitions. There is a --tags option which generates a list of all identifiers with their source locations. 2011-11-02 11:44:59 +00:00
hallgren f46593559a Remove configuration flag cclazy 2011-11-01 13:45:12 +00:00
hallgren 2a10c21ad9 Recording an alternative version of look in Compute/ConcreteLazy.hs
Commented out, causes problems in the greek example.
2011-10-25 18:50:07 +00:00
aarne f7dc299c87 qualification with real module name accepted, as in GF refman 2011-10-25 14:03:27 +00:00
aarne ffd9a93a80 use associativity to force more precompilation of pre expressions 2011-10-24 12:52:20 +00:00
hallgren a8b97caed4 Introduce an explicit error value in the Term type
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-20 14:36:30 +00:00
hallgren ec346b16bb Compute/ConcreteLazy.hs: no need to reverse when looking up labels in records 2011-10-20 14:19:33 +00:00
hallgren 61c54d4490 AppPredefined.hs: more readable notation for the types of primitives 2011-10-20 14:17:37 +00:00
hallgren c2e7f89a0a Remove unused function computeConcreteRec.
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-09 12:25:27 +00:00
hallgren ce714fa723 Add lazy version of GF.Compile.Compute.Concrete
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-01 16:39:41 +00:00
hallgren 117fe7ad70 GF.Compile.Coding: cleaner code
Refine function codeTerm into codeTerm, codeLTerm and codeLTerms.
2011-08-31 13:55:49 +00:00
hallgren 38db834a65 GF.Infra.Modules: minor tweaks
Still keeping the modules both in a list and in a finite map. The overhead is
smaller than I initially thought.
2011-08-31 11:18:16 +00:00
hallgren 0325f7264d GF.Infra.Modules: keep the modules of a grammar in a finite map instead of a 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-30 18:54:50 +00:00
hallgren 3c848ad0b5 GrammarToPGF.hs: comment out unused imports 2011-08-30 12:02:32 +00:00
aarne b5d04181ba reload command in shell 2011-08-25 15:58:38 +00:00
aarne 22a079e8f1 commented Compute/Concrete with explanations 2011-08-22 17:08:07 +00:00
aarne 9023382c31 GenIP, GenRP in Extra and any_Quant in ExtraEng 2011-07-21 08:25:04 +00:00
aarne 7d3949a270 Predef functions toUpper, toLower, isUpper 2011-06-02 16:10:46 +00:00
aarne 58acad5689 generate Eq instance for GADT 2011-04-06 12:27:31 +00:00
aarne 393976d889 fixed the printing of predefined and list categories in haskell=gadt 2011-04-06 07:45:35 +00:00
aarne afbfbaa73a make it possible to override opers defined in an interface by syntax 'instance Foo of Bar - [f,g,h]' 2011-03-12 11:24:14 +00:00
aarne 87aa41d503 make later flags take priority over earlier ones in PGF generation 2011-03-12 11:22:21 +00:00
aarne 54feac5d26 added composOp generation to haskell-gadt, and an example in examples/gadt-transfer 2011-03-05 22:25:03 +00:00
aarne c834cb348c revived GADT generation 2011-03-04 17:05:40 +00:00
aarne 8fc455f22b fixed a variable refreshing bug in the compiler 2011-03-04 16:44:30 +00:00
aarne dd937731f6 Predef.error surfaces as error message in compilation and cc command 2011-02-25 17:01:10 +00:00
krasimir 2262c105ab bugfix: GeneratePMCFG should initialize the lexicon to empty 2010-12-17 09:11:04 +00:00
aarne 07d95b2b3f type checking of oper types with let expressions 2010-12-14 14:35:41 +00:00