Commit Graph

465 Commits

Author SHA1 Message Date
kr.angelov 37e1ced6cf another fix for teyjus 2012-08-30 08:09:30 +00:00
peter.ljunglof f78505d88e Use nub' instead of nub in some places, remove some unused nub imports 2012-08-29 21:48:34 +00:00
peter.ljunglof 87260365c7 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 7ad4616d9c Emacs only recognizes utf-8, not UTF-8, in file headers 2012-08-29 21:40:49 +00:00
kr.angelov fd5220038d A basic infrastructure for generating Teyjus bytecode from the GF abstract syntax 2012-08-29 11:43:02 +00:00
kr.angelov b34232c6dc the first draft of GF.Compile.Instructions 2012-08-01 09:21:59 +00:00
peter.ljunglof 2e8d9d3829 Minor changes in Python export 2012-07-02 21:11:20 +00:00
peter.ljunglof a82a63cc69 Fixed minor bug in prolog export 2012-06-28 07:01:29 +00:00
peter.ljunglof 035b7731e5 major changes to the prolog export 2012-06-27 23:29:05 +00:00
peter.ljunglof 871eb6eabc cleanup in the python export 2012-06-27 23:27:01 +00:00
hallgren 8444821759 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 e3a01cdf49 GF.Infra.CheckM: comment out unused Context argument 2012-06-26 15:08:18 +00:00
hallgren 5b577baf02 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 0b1a963d7a Fix for warning messages from checkMapRecover
Reimplemented it with the new function accumulateError.

Also keeping the formatting of errors and warnings unchanged for now, to avoid
potentially causing problems in the GF Eclipse Plugin.
2012-06-25 15:55:59 +00:00
aarne af4886dace removed spurious empty warnings 2012-06-25 14:47:09 +00:00
hallgren abb1aedd3d 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 ca4091599f 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 a1c16e36b0 Export PGF in Python format 2012-06-25 14:16:24 +00:00
aarne e62e53aeb2 warnings shown in checkMapRecover 2012-06-25 11:49:50 +00:00
aarne 7f047a0ab5 checkMapRecover: find undefined idents in all jments in Rename 2012-06-25 11:14:52 +00:00
aarne 8392cf45c3 printing ResValue judgements as comments, to provide useful information when a conflict is found between parameter constructors 2012-06-25 09:24:04 +00:00
hallgren fe34a29f4f Add file name to error message when reading a bad .gfo file (in some cases)
This turns error messages like 

	gf: too few bytes. Failed reading at byte position 1

	gf: /some/path/somefile.gfo: too few bytes. Failed reading at byte position 1

but a better fix would be to ignore bad .gfo files and compile from source.
The problem is the way this decision is made in
GF.Compile.ReadFiles.selectFormat...
2012-06-15 10:15:16 +00:00
aarne 8ef8af479f command option ma -known to drop unknown words 2012-06-10 10:43:57 +00:00
hallgren 25c5ad2bf0 More detailed version info in the startup message
The Setup.hs script now queries darcs to create more detailed version info
to include in the startup message.

Note thought that with distributed version control systems like darcs,
the only way to uniquely identify a version is by the set of patches included.
Since the patches are not totally ordered, just looking at the last patch is
not enough.

For official releases, we tag the current set of patches so we can refer to
it by name (e.g. RELEASE-3.3.3).
2012-05-30 15:45:45 +00:00
aarne d59f54ba41 missing case in partial evaluation of + fixed 2012-05-15 11:48:30 +00:00
hallgren 2774275bf7 alex 3 incompatibility workaround
As a temporary workaround, alex is no longer invoked automatically when
building with cabal. Developers who want to modify the lexer need to run
alex on Lexer.x manually and record the modified Lexer.hs.

    src/compiler/GF/Grammar/lexer/Lexer.x    -- hidden from cabal
    src/compiler/GF/Grammar/Lexer.hs         -- update it manually
2012-05-04 12:39:07 +00:00
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
Sergei Trofimovich 73040e9c50 compiler/GF/Text/Coding.hs: fix build failure against ghc-7.2 2012-03-26 20:48:57 +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
virk.shafqat 9aede98c7f hindi-resource-grammar 2012-02-23 13:36:50 +00:00
hallgren 39c1b5a5fa gfse: experimental support for editing concrete syntax in text mode 2012-02-22 16:30:42 +00:00
virk.shafqat 14e0237950 sindhipatch 2012-02-21 09:02:42 +00:00
hallgren b19f57df0f GF.Inra.UseIO: add instance Functor IOE, add method fail to instance Monad IOE 2012-02-20 17:26:49 +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
hallgren 20b4ff07e3 gf -server[=port]
You can now specify which port the HTTP server should run on in server mode.
The default is 41296.
2011-12-14 15:28:27 +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 c953ac4244 missing cases in GF.Grammar.Binary 2011-12-02 09:58:18 +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 cac5b9ff0d fix the compilation after the patch for the new type checker 2011-11-29 18:45:51 +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 c73bbeabb4 now the pretty printer in GF has a new mode called Internal. This is the most detailed mode and it can print even things that are not in the GF syntax. For example PMCFG snippets and indirections. 2011-11-15 15:55:45 +00:00