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
aarne
54f04ecb5a
fixed the failure to partial-evaluate pre in right-associative context
2010-12-11 16:27:35 +00:00
aarne
1b24f4490c
moved PGF.ToApi to GF.Compile.ToAPI
2010-12-07 18:05:13 +00:00
aarne
a3ae8cf696
printing option -api in the eb command
2010-12-06 10:49:38 +00:00
aarne
3506b313c1
format .gfm for multiple modules in the same file; includes lines with ;-separated words
2010-11-30 14:50:24 +00:00
hallgren
92da4008e0
Add builtin preprocessors. Avoid creating tmp file. Fix multipreprocessor bug.
...
* The gf command line options -preproc=mkPresent and -preproc=mkMinimal now
refer to internal preprocessors equivalent to lib/src/mkPresent
and lib/src/mkMinimal.
* The temporary file _gf_preproc.tmp is not created when running an
internal preprocessor, unless there is an error, since errors messages
refer to locations in the preprocessed file. (Possibly allowing the rgl
build to be parallelized.)
* After running an external preprocessor, the temporary file is deleted,
unless there was an error.
* (Bug fix) Before, when running more than one preprocessor, the same file name
would be used for both input and output, e.g.,
mkPresent _gf_preproc.tmp > _gf_preproc.tmp
which would result in an empty file being processed. Now, the input and
output files will always be different.
2010-11-26 18:25:29 +00:00
krasimir
fe1205059b
operations in the abstract syntax
2010-11-12 19:37:19 +00:00
krasimir
53306414b6
fixed typo in GeneratePMCFG.hs. fidFloat -> fidVar
2010-10-25 11:48:17 +00:00
krasimir
51452d4ef0
added explicit depth parameter to the parsing API and the corresponding command in the shell
2010-10-18 16:51:25 +00:00
krasimir
be9ad26aea
refactor the API for random generation again. Now PGF contains probabilities in the abstract syntax
2010-10-02 13:03:57 +00:00
krasimir
d3e7095ceb
added missing case for GF.Compile.GeneratePMCFG.evalTerm
2010-08-30 07:54:53 +00:00
krasimir
9aa7c88c5a
native representation for HOAS in PMCFG and incremental type checking of the parse forest
2010-08-09 10:10:08 +00:00
krasimir
8d63bf8d79
report type errors in the shell from command "p"
2010-07-07 12:23:21 +00:00
krasimir
51e4f36b80
the abstract syntax for Predef.gf is now hard-coded in AppPredefined.hs
2010-07-01 15:38:16 +00:00
krasimir
527efbef9d
reorganize the modules in GF.Compile.*
2010-07-01 14:19:32 +00:00
krasimir
e92151caf8
redesign the open-literals API
2010-07-01 08:51:59 +00:00
krasimir
3a5f193fd7
compilation of pattern matching using the algorithm of Lennart Augustsson. Not used yet
2010-06-30 16:00:47 +00:00
krasimir
97a9ddb4a7
rename isLiteralFCat -> isPredefFId, fcat(String|Int|Float) -> fid(String|Int|Float)
2010-06-30 07:40:22 +00:00
krasimir
ccf4c037a6
fix the compilation of literal categories in GeneratePMCFG.hs
2010-06-22 11:29:20 +00:00
krasimir
8433afdac9
addFCoercion -> addCoercion in GeneratePMCFG
2010-06-20 08:53:25 +00:00
krasimir
f3f1320416
getFCats -> getFIds in GeneratePMCFG
2010-06-20 08:45:31 +00:00
krasimir
fe6e90e6ce
removed debugging code in GeneratePMCFG.hs
2010-06-20 08:30:00 +00:00
krasimir
2069d9c9eb
Yay!! Direct generation of PMCFG from GF grammar
2010-06-18 12:55:58 +00:00
krasimir
d7d893d6b3
the automatically generated printnames were just junks. Now we store printnames only if they are explicitly specified.
2010-06-18 10:19:05 +00:00
krasimir
b9b19b6334
rename GF.Grammar.Predef.isPredefCat to isLiteralCat
2010-06-17 15:08:12 +00:00
krasimir
d777e8e52f
dead code elimination for PGF. Note: the produced grammars will not work well with metavariables and high-order abstract syntax
2010-06-09 11:32:59 +00:00