1
0
forked from GitHub/gf-core
Commit Graph

190 Commits

Author SHA1 Message Date
hallgren
6fcd435cd9 GeneratePMCFG: prefix messages about "impossible" errors with 'Internal error:'
Just to make them easier to spot when wading through thousands of lines of
warnings...
2012-10-24 17:08:52 +00:00
hallgren
be75546965 Refactor compileSourceModule
There was 55 lines of rather repetitive code with calls to 6 compiler passes.
They have been replaced with 19 lines that call the 6 compiler passes
plus 26 lines of helper functions.
2012-10-19 20:14:11 +00:00
hallgren
1195db1da3 Consistenly use SourceGrammar instead of [SourceModule] when calling compiler passes 2012-10-19 19:56:00 +00:00
hallgren
584b6ba86d Use NOINLINE for build info and darcs version info
... to avoid unnecessary recompilation of other modules.
2012-10-18 20:01:22 +00:00
kr.angelov
91ca7c9a1b catch all case in GenerateBC.genFun 2012-09-18 08:32:21 +00:00
hallgren
997734c8ba Add type info to "Warning: ignoring lock fields in resolving..." 2012-09-06 13:15:48 +00:00
kr.angelov
545e48e881 another fix for teyjus 2012-08-30 08:09:30 +00:00
peter.ljunglof
b416f5bbf7 Use nub' instead of nub in some places, remove some unused nub imports 2012-08-29 21:48:34 +00:00
peter.ljunglof
a7de16c34b Added an O(n log n) version of nub
The new nub is called nub', and it replaces the old sortNub which was 
not lazy and did not retain the order between the elements.
2012-08-29 21:45:10 +00:00
peter.ljunglof
e2ecdfed1f Emacs only recognizes utf-8, not UTF-8, in file headers 2012-08-29 21:40:49 +00:00
kr.angelov
f8fe23fda7 A basic infrastructure for generating Teyjus bytecode from the GF abstract syntax 2012-08-29 11:43:02 +00:00
kr.angelov
9fc7cac46f the first draft of GF.Compile.Instructions 2012-08-01 09:21:59 +00:00
peter.ljunglof
94e2999ac5 Minor changes in Python export 2012-07-02 21:11:20 +00:00
peter.ljunglof
a162488b05 Fixed minor bug in prolog export 2012-06-28 07:01:29 +00:00
peter.ljunglof
7fb35be6e3 major changes to the prolog export 2012-06-27 23:29:05 +00:00
peter.ljunglof
97df099d07 cleanup in the python export 2012-06-27 23:27:01 +00:00
hallgren
241bef8a51 Experiment with parallel grammar checks
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-26 17:01:15 +00:00
hallgren
b094274c0e Report many type errors instead of stopping after the first one
In GF.Compile.CheckGrammar, use a new topological sorting function that
groups independent judgements, allowing them all to be checked before
continuing or reporting errors.
2012-06-26 14:46:18 +00:00
hallgren
382f472731 GF.Compile.Rename: report many errors instead of stopping after the first one
Using accumulated errors in the Check monad.

TODO: some errors are still not accumulated, but thanks to checkMapRecover
at least one error per judgement is reported.
2012-06-25 14:15:02 +00:00
hallgren
0a09f3e0b2 Check monad: support for accumulated errors
In addition to warnings, the Check monad in GF.Infra.CheckM can now accumulate
errors. There are two new functions

	checkAccumError: Message -> Check ()
	accumulateError :: (a -> Check a) -> a -> Check a

The former (with the same type as checkWarn) is used to report an accumulated
(nonfatal) error. The latter converts fatal errors into accumulated errors.

Accumulated errors are reported as regular errors by runCheck.

Also, the Check monad type has been made abstract.
2012-06-25 14:01:58 +00:00
peter.ljunglof
deec2d4ecf Export PGF in Python format 2012-06-25 14:16:24 +00:00
aarne
d15e0f775d checkMapRecover: find undefined idents in all jments in Rename 2012-06-25 11:14:52 +00:00
aarne
a2bae03824 missing case in partial evaluation of + fixed 2012-05-15 11:48:30 +00:00
hallgren
47c116b5a6 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
69f84defb0 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
eb4bfb008e buf fix in the compiler for HOAS 2012-02-28 08:10:47 +00:00
aarne
aa7668ef75 the Predef function eqVal to compare equality of parameter values 2012-02-24 10:00:27 +00:00
aarne
85d777e068 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
c52f05ed46 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
b859edee38 Hopefully complete Value type and a little bit more on computations. 2011-11-30 20:56:31 +00:00
kr.angelov
7863b21c1a more stuff in the new type checker 2011-11-30 14:55:52 +00:00
kr.angelov
fffc5f2507 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
c05be64838 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
26d61354dd make addSequencesB(V) strict. Otherwise we get stack overflow when compiling LangFre 2011-11-22 20:31:58 +00:00
kr.angelov
3d973adb33 rebuildModule should do location globalization too 2011-11-17 22:11:56 +00:00
kr.angelov
4f95b5656b 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
04fdb41927 fix in the versioning of the .gfo files 2011-11-15 19:46:02 +00:00
kr.angelov
a2626e24dd 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
59e098a440 Now the errors messages from GF.Compile.Update also follow the new format 2011-11-15 15:33:52 +00:00
kr.angelov
b1a82e8e8a 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
61c16f2eb2 more structured format for errors and warnings from the compiler 2011-11-15 13:33:44 +00:00
kr.angelov
8a7aa15c57 bugfix in the new PGF generation 2011-11-14 16:27:59 +00:00
kr.angelov
7be8566f35 the new design for -tags 2011-11-14 16:08:56 +00:00
kr.angelov
416d231c5e 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
734c66710e 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
5fe49ed9f7 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
f8665c7213 Remove configuration flag cclazy 2011-11-01 13:45:12 +00:00
hallgren
c4ee13abac 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
5fd8299805 qualification with real module name accepted, as in GF refman 2011-10-25 14:03:27 +00:00
aarne
7372da3d7f use associativity to force more precompilation of pre expressions 2011-10-24 12:52:20 +00:00