Commit Graph
100 Commits
Author SHA1 Message Date
hallgren 83c5269a84 Wide Coverage Translation Demo: better resizing behavior on startup and when pasting text 2015-02-25 15:36:25 +00:00
hallgren 2d979aea4d translator/DictionarySwe.gf: 15 new words and a few fixes 2015-02-24 15:10:24 +00:00
hallgren 7631527395 PGFService.hs: text lexer: slightly smarter decapitalization of the first word of a sentence
Keep the first letter in upper case if it is followed by more upper case
letters.

(Also remove some left over debugging output.)
2015-02-24 15:04:06 +00:00
hallgren 3dc44ef8cf translator/DictionarySwe.gf: add oriented_A and simplify_V2 2015-02-23 16:39:54 +00:00
hallgren 08840a0afe translator/Dictionary.gf: remove video_A 2015-02-20 14:37:41 +00:00
hallgren 8d0bb75121 gftransate.js: increase sentence length limit for "fast" language to 500
Currently Bul, Chi, Eng and Swe are marked as "fast" in the documentation.
2015-02-20 14:34:37 +00:00
hallgren 25eeb7bb9c translator/Dictionary*.gf: remove video_A 2015-02-20 14:31:23 +00:00
hallgren 9dce1473d1 translator/DictionarySwe.gf: 6 new words
Found when translating a few paragraphs from a new article
2015-02-20 14:29:35 +00:00
hallgren 913e56081a gftranslate.js: reduce sentense length limit to 200 (URL encoded) characters
This limit might still be to high to avoid excessive time/space use in the
parser for certain languages in the wide coverage translation grammar.
2015-02-20 12:31:41 +00:00
hallgren b72b8dcef8 PGF Service: limit the number of parallel calls to the C run-time parse function to 4 by default
The limit can be changed with the -j flag
2015-02-20 12:29:44 +00:00
hallgren 4bd568d8bf Wide Coverage Translation Demo: use App14.pgf, remove spaces from Chi, Jpn and Tha output 2015-02-18 13:58:49 +00:00
hallgren 1dbe588497 Restore compatibility with ghc-7.4
With ghc-7.4 'import M hiding (x)' causes an error if M does not export x...
2015-02-16 15:41:38 +00:00
hallgren 2ce3e954fd Changes for compatibility with ghc-7.10-rc2
2 modules: Name clashes caused by Applicative-Monad change in Prelude
2 modules: Ambiguities caused by Foldable/Traversable in Prelude
2 modules: Backwards incompatible changes in time-1.5 for defaultTimeLocale
9 modules: {-# LANGUAGE FlexibleContexts #-} (because GHC checks inferred types
           now, in addition to explicitly given type signatures)

Also silenced warnings about tab characters in source files.
2015-02-16 15:05:06 +00:00
hallgren 0058a79a8f PGF.Haskell: adding operators for selections from tables 2015-02-12 16:09:33 +00:00
hallgren 43a873b53f Translating linearization functions to Haskell: more simplifications
+ Some additional simplifying rewrites.
+ Use an intermediate representation for Haskell types, for separation of
  concerns and cleaner code.
+ Pretty printer layout tuning
+ Code cleanup.
2015-02-12 16:05:48 +00:00
hallgren 686f570660 Translating linearization functions to Haskell: simplify the generated Haskell code
Introduced an intermediate representation for the generated Haskell expressions.
This allows pretty printing concerns to be separated from conversion concerns,
and makes it easy to apply some simplifying rewrites to the generated
expressions, e.g.

	[x] ++ [y]    ==> [x,y]
	pure f <*> x  ==> f <$> x
	f <$> pure x  ==> pure (f x)
	join (pure x) ==> x
2015-02-11 23:50:19 +00:00
hallgren ad8b6429ec Translating linearization functions to Haskell: support for variants
By adding the flag -haskell=variants to the command line, GF will now generate
linearization functions in Haskell that support variants. Variants are
represented as lists in Haskell.

Variants inside pre { ... } expressions are still ignored.

TODO: apply some monad laws to generate more compact code (using an
intermediate representation of the generated Haskell code, instead of
pretty printing directly from the GF code).
2015-02-09 16:24:33 +00:00
hallgren 28803ba322 Wide Coverage Translation Demo: use App13.pgf, adding support for Japanese
Japanese uses the same lexer as Chinese, i.e. every character is a separate
token.
2015-01-21 16:02:37 +00:00
hallgren ed502c490c PGF2: fixes for named entity callback function 2015-01-21 13:54:48 +00:00
hallgren 614f9f8663 examples/phrasebook/Makefile: include Jpn in 'make forApp' 2015-01-21 12:16:57 +00:00
hallgren ec8b4fec93 PGF2 & PGFService: enable callbacks for named entities and chunks in the c-parse & c-translate web requests 2015-01-21 10:41:12 +00:00
hallgren 7577de236f PGF2 & PGFService: work in progress on callbacks for nerc & chunks 2015-01-20 14:57:52 +00:00
hallgren 4372b47d2a PGF2: introduced some type synonyms to make type signature more readable 2015-01-20 12:57:33 +00:00
hallgren 240ba80209 Translating linearization functions to Haskell: move a common record type to PGF.Haskell
Move the Haskell representation of the common linearization type {s:T} to the
shared module PGF.Haskell, so that the same overloaded projection function
proj_s can be used for all concrete syntaxes.
2015-01-19 12:43:32 +00:00
hallgren fbed7c19d5 gf.cabal: include PGF.Haskell 2015-01-14 14:53:28 +00:00
hallgren 0b114195aa Translating linearization functions to Haskell: better treatment of special tokens
Common code has been lifted out from the generated Haskell modules to
an auxiliary module PGF.Haskell, which is currently included in the
regular PGF library, although it is independent of it and probably belongs
in a separate library.

The type Str used by linearization functions is now based on a token
type Tok, which is defined in PGF.Haskell.

PGF.Haskell.Tok is similar to the type GF.Data.Str.Tok, but it has
constructors for the special tokens BIND, SOFT_BIND and CAPIT, and there is
a function

	fromStr :: Str -> String

that computes the effects of these special tokens.
2015-01-14 14:35:39 +00:00
hallgren 4348ae40d2 Translating linearization functions to Haskell: add support for pre {...}
STILL TODO:

	- variants
	- better treatment of special tokens BIND, SOFT_BIND & CAPIT.
2015-01-08 17:52:45 +00:00
hallgren 6db2845375 Translating linearization functions to Haskell: use qualified names to avoid name clashes
All languages in the Phasebook can now be converted to compilable Haskell
code.

STILL TODO:
  
  	- variants
  	- pre { ... }
2015-01-07 16:13:28 +00:00
hallgren 51a233b2f1 Translating linearization functions to Haskell: significant code size reductions
+ Instead of including lists of parameter values generated by GF, generate
  code to enumerate parameter values (in the same order as GF). This seems
  to give a factor of 2-3 code size reduction in the Phrasebook (e.g.
  from 84MB to 25MB for Hin, from 338MB to 154MB for Fre).

+ Deduplicate table entries, i.e. convert "table [..,E,..,E,..,E,..]" into
  "let x = E in table [..,x,..,x,..,x,..]". This gives even more significant
  code size reduction in some cases, e.g. from 569MB to 15MB for
  PhrasebookFin.

All phrasebook languages can now be converted to compilable Haskell code,
except PhrasebookPes, which still has the name clash problem.
2015-01-06 19:57:24 +00:00
hallgren 1f60646f41 More work on translating linearization functions to Haskell
Many Phrasebook languages can now be converted to compilable Haskell code.
Some languages (Fre, Hin, Snd, Urd) generate too much Haskell code to be
practically useful (e.g. 338MB for Fre). One language (Fin) took too long
to convert to Haskell. One language (Pes) has problems with name clashes in
the generated Haskell code.

STILL TODO:

  	- variants
  	- pre { ... }
  	- reduce code duplication for large tables
	- generate qualified names to avoid name clashes
2015-01-06 16:48:03 +00:00
hallgren 5da8b4b35e bin/build-binary-dist.sh: remove hardwired install path and version number
Also improved tolerance to paths containing white space.
2014-12-15 15:18:27 +00:00
hallgren 69e314eedc gf.cabal: include editor modes in the list of data files to install
Also add ghc-7.8.3 to the list of tested compiler versions
2014-12-15 15:16:50 +00:00
hallgren 80f814d1ab Setup.hs: compile Alltenses before Present
When mkPresent (or another preprocessor) is used, error messages from GF will
show the file name _gf_preproc.tmp instead of the name of the file where
the error occurred. By compiling Alltenses first, the real file name will
appear in error messages (unless the error only happens then mkPresent is
used).
2014-12-11 22:18:21 +00:00
hallgren dc3fd2c044 Work in progress on translating linearization functions to Haskell
The translation is currently good enough to translate all concrete syntaxes
of the Foods and Letter grammars, and some concrete syntaxes of the Phrasebook
grammar (e.g. PhrasebookEng & PhrasebookSpa works, but there are problems with
e.g. PhrasebookSwe and PhrasebookChi)

This functionality is enabled by running

	gf -make -output-format=haskell -haskell=concrete ...

TODO:
	- variants
	- pre { ... }
	- eta expansion of linearization functions
	- record subtyping can still cause type errors in the Haskell code
	  in some cases
	- reduce code large tables
2014-12-11 16:08:36 +00:00
hallgren a15225ae1f GF.Grammar.Macros: generalize the type of collectOp
New type:

    collectOp :: Monoid m => (Term -> m) -> Term -> m
2014-12-11 16:05:42 +00:00
hallgren 903789ad03 GF.Server: remove some code duplication 2014-12-11 15:58:57 +00:00
hallgren 23e7fe2bf4 DictionarySwe.gf: add activistMasc_N & dedicated_A 2014-12-10 13:10:59 +00:00
hallgren 245903942e Haddock documentation: expose exportPGF, some other small improvements 2014-12-08 14:48:14 +00:00
hallgren 491777b0c1 Eliminate the record extension operator from the Value type returned by the partial evaluator
It was used only in cases where a lock field needed to be added to a
run-time variable, like e.g. in examples/phrasebook/SentencesTha.gf: 

    lin
      PGreetingMale g   = mkText (lin Text g) (lin Text (ss "ครับ")) | g ;
      PGreetingFemale g = mkText (lin Text g) (lin Text (ss "ค่ะ")) | g ;

But lock fields are only meaningful during type checking and can safely be
ignored in later passes.
2014-12-05 12:42:17 +00:00
hallgren ac24b34696 Wide Coverage Translation Demo web app: updated to use App12.pgf 2014-12-03 15:08:56 +00:00
hallgren 718f09bc8c examples/app/Makefile: fix dependencies and grammar name for App12.pgf 2014-12-03 12:26:55 +00:00
hallgren e4bb1d09af WebSetup.hs: always use gf -j, to avoid problems compiling the Phrasebook 2014-11-27 17:48:53 +00:00
hallgren df58c025e5 StructuralEng.gfo: lift variant "can't" | "cannot" to the top level to avoid a PMCFG generation problem 2014-11-17 13:16:47 +00:00
hallgren 831be9393a Documentation improvements and cleanup relating to the IOE monad
Renamed appIOE to tryIOE (it is analogous to 'try' in the standard libraries).
Removed unused IOE operations & documented the remaining ones.
Removed/simplified superfluous uses of IOE operations.
2014-11-10 16:20:01 +00:00
hallgren c02fef9b6a Some work to improve the structure of the haddock documenation 2014-11-10 15:23:02 +00:00
hallgren c0cefe6d40 translator/DictionarySwe.gf: define start_to_VV 2014-11-10 14:18:54 +00:00
hallgren 120597750b gf.cabal: when compiling with ghc>=7.8 require cgi>=3001.2.2.0 2014-11-05 15:38:10 +00:00
hallgren fd1c6a0a17 Use terminfo to highlight warnings and errors in blue and red
This replaces the hardwired ANSI escape codes that were accidentally included
in a previous patch.

This adds a dependency on terminfo, but this should be unproblematic, since
haskeline already depends on the same underlying C library.

The color highlighting is omitted on Windows.
2014-10-28 19:04:48 +00:00
hallgren 14850cd7f4 Show paths relative to the current directory in progress reports
It is much nicer to see something like

- compiling FoodsSwe.gf...   write file FoodsSwe.gfo
- compiling FoodsTha.gf...   write file FoodsTha.gfo
- compiling FoodsTsn.gf...   write file FoodsTsn.gfo
- compiling FoodsTur.gf...   write file FoodsTur.gfo
- compiling FoodsUrd.gf...   write file FoodsUrd.gfo
linking ... OK
Writing Foods.pgf...

instead of

- compiling /Users/hallgren/src/GF/gf/examples/foods/FoodsSwe.gf...   write file /Users/hallgren/src/GF/gf/examples/foods/FoodsSwe.gfo
- compiling /Users/hallgren/src/GF/gf/examples/foods/FoodsTha.gf...   write file /Users/hallgren/src/GF/gf/examples/foods/FoodsTha.gfo
- compiling /Users/hallgren/src/GF/gf/examples/foods/FoodsTsn.gf...   write file /Users/hallgren/src/GF/gf/examples/foods/FoodsTsn.gfo
- compiling /Users/hallgren/src/GF/gf/examples/foods/FoodsTur.gf...   write file /Users/hallgren/src/GF/gf/examples/foods/FoodsTur.gfo
- compiling /Users/hallgren/src/GF/gf/examples/foods/FoodsUrd.gf...   write file /Users/hallgren/src/GF/gf/examples/foods/FoodsUrd.gfo
linking ... OK
Writing Foods.pgf...
2014-10-28 15:02:29 +00:00
hallgren 5480c9b4dc A couple of haddock documentation improvements 2014-10-28 14:58:43 +00:00
hallgren ef9f16b63a Lang???.gf: exclude Documentation from present mode
The Documentation module is excluded from present mode in abstract/Lang.gf,
so it needs to be excluded in the corresponding concrete syntaxes too
to avoid problems.
2014-10-23 16:32:55 +00:00
hallgren 11ec4bc655 Various small changes for improved documentation 2014-10-22 15:45:52 +00:00
hallgren 1048a89ca7 ModuleName and Ident are now distinct types
This makes the documentation clearer, and can potentially catch more
programming mistakes.
2014-10-21 19:20:31 +00:00
hallgren 491e8b2bb8 Renaming SourceGrammar to Grammar and similarly for some related types
Included renamings:

	SourceGrammar -> Grammar
	SourceModule -> Module
	SourceModInfo -> ModuleInfo
	emptySourceGrammar -> emptyGrammar

Also introduces a type synonym (which might be good to turn into a newtype):

	type ModuleName = Ident

The reason is to make types like the following more self documenting:

	type Module = (ModuleName,ModuleInfo)
	type QIdent = (ModuleName,Ident)
2014-10-21 14:42:31 +00:00
hallgren 1e0d078ae2 Some small documentation improvements 2014-10-20 19:45:43 +00:00
hallgren add8f9285b type IOE a = IO a
IOE used to be a monad with extra error handling built on top of the IO monad,
But the IO monad already supports error handling, so this construction was a
superfluous.

The new 'instance ErrorMonad IOE' is defined to preserve the previous error
handling behaviour, i.e. the function 'handle' only catches errors thrown with
'raise' (or 'fail') and not other errors in the IO monad.
2014-10-20 19:32:46 +00:00
hallgren 46e18b9291 Remove some dead code
* The following modules are no longer used and have been removed completely:

	GF.Compile.Compute.ConcreteLazy
	GF.Compile.Compute.ConcreteStrict
	GF.Compile.Refresh

* The STM monad has been commented out. It was only used in
  GF.Compile.SubExpOpt, where could be replaced with a plain State monad,
  since no error handling was needed. One of the functions was hardwired to
  the Err monad, but did in fact not use error handling, so it was turned
  into a pure function.

* The function errVal has been renamed to fromErr (since it is analogous to
  fromMaybe).

* Replaced 'fail' with 'raise' and 'return ()' with 'done' in a few places.

* Some additional old code that was already commented out has been removed.
2014-10-20 15:05:43 +00:00
hallgren 6dc1df3011 Use http instead of https in the links to the build job in jenkins
The ci.zjyto.net web site uses an SSL certificate that is not recognized by
mainstream browsers (e.g. Firefox, Safari and the Android web browser).
2014-10-17 08:26:09 +00:00
hallgren c3e1d65fc1 Some work on the haddock documentation 2014-10-16 16:28:54 +00:00
hallgren cd0f887ad9 Rename src/programs/gf.hs to gf-main.hs to avoid confusing GHC
It appears that GHC can't keep GF.hs and gf.hs apart on systems with case
insensitive file names.
2014-10-16 15:21:00 +00:00
hallgren ede4a5a4c2 Turn the GF compiler into a library. Main program is now in src/programs/gf.hs
The module src/compiler/GF.hs now serves as a prelimiary compiler API. It just
exports a selection of functions and types from the compiler.

Haddock documentation can be generated with

	cabal haddock --hyperlink-source

Also bumbed the version number to 3.6.10.
2014-10-16 15:00:49 +00:00
hallgren f109b44c97 More haddock documentation improvements 2014-10-16 14:03:57 +00:00
hallgren 1d4215b822 Rename modules GFI, GFC & GFServer...
... to GF.Interactive, GF.Compiler & GF.Server, respectively.
2014-10-15 21:04:29 +00:00
hallgren e0c0ff0020 Fixes for the haddock documentation 2014-10-15 20:42:36 +00:00
hallgren 47ebd444b3 Setup.hs: comment out sDistHook, which seems to be broken but is not used 2014-10-14 15:03:47 +00:00
hallgren d0441cf847 GF.Infra.Options: change from String to Int in the type of optJobs 2014-10-08 16:57:04 +00:00
hallgren 5ca06495b1 translator/DictionarySwe.gf: remove bogus variant "hinna" from film_V2 2014-09-26 16:04:55 +00:00
hallgren 5cda60d36f examples/app/Makefile2: add missing -probs flag 2014-09-23 12:20:44 +00:00
hallgren eadc012b7a doc/gf-developers.t2t: add a note about how to create OS X Installer packages 2014-09-23 12:18:17 +00:00
hallgren 38811b06c9 haskell-bind/PGF2.hsc: unexport functions that break referential transparency
loadConcr, unloadConcr and addLiteral modify the Concr structure as a side
effect. This means that other functions with a Concr argument (e.g. parse
and linearize) are no longer pure.

Possible solutions:

1. Don't try to hide the imperative nature of the C run-time system: remove
   all uses of unsafePerformIO and let all functions operate in the IO monad.

2. Don't export functions with side effects. Perhaps the desired functionality
   of loadConcr, unloadConcr and addLiteral can be folded into readPGF.
   The Concr structures can then treaded as immutable after after the
   readPGF function returns...
2014-09-22 14:05:17 +00:00
hallgren a0d75d0ea8 gf.cabal: add missing c-sources for the Haskell binding to the C run-time library 2014-09-11 11:53:07 +00:00
hallgren 7cf87a3441 Setup.hs: don't ask darcs for the version history if _darcs is not present
This is to avoid a (harmless) error message from darcs when compiling sources
obtained e.g. from github.
2014-09-11 11:47:17 +00:00
hallgren 98e01dc63e Wide Coverage Demo web app: use the App grammar instead of the Translate grammar
This gives faster but slightly lower quality translations.
2014-09-09 13:53:10 +00:00
hallgren 782bdf3a52 (1) Refactor concurrency, (2) write to .gfo.tmp then rename to .gfo
(1) introduces the module GF.Infra.Concurreny with lifted concurrency
    operators (to reduce uses of liftIO) and some additional concurrency
    utilities, e.g. a function for sequential logging that is used in
    both GF.CompileInParallel and GFServer.
(2) avoids leaving broken .gfo files behind if compilation is aborted.
2014-09-08 15:43:20 +00:00
hallgren fe8daf7f94 gf.cabal, gf-server.cabal: add version bounds on network & httpd-shed
* httpd-shed-0.4 does not specify an upper bound on network, but it fails
  to build against network>=2.6. This is fixed in httpd-shed-0.4.0.2.
* With network-2.6, the Network.URI modules is moved to a separate package,
  so for the time being GF requires network>=2.3 && <2.6. This is compatible
  with the four most recent versions of the Haskell Platform.
2014-09-03 15:40:26 +00:00
hallgren 0e87a88f4b src/server: refactoring to isolate dependencies on the cgi/fastcgi packages
* Introducing the module CGI, re-exporting a subset of the cgi package. It
  might complete replace the cgi package in the future.
* Introducing the module CGIUtils, containing functions from FastCGIUtils that
  have nothing to do with fastcgi.

Some low level hackery with unsafePerformIO and global variables was left
in FastCGIUtils, but it is actually not used, neither for gf -server nor
exec/pgf-fcgi.hs.
2014-09-02 12:27:47 +00:00
hallgren 6494313a14 examples/app/Makefile2: simplifed Makefile for the App grammar (doesn't work yet)
This makefile just calls GF once and lets GF figure out in which order to
compile things. It uses the -j flag to enable parallel compilation and
specifies an explicit -path, overriding the -path flags in the source files.
This allows all needed modules to be found automatically and ensures that
that alltenses is consistently used everywhere. But for some reason, this
doesn't work...
2014-08-30 17:00:14 +00:00
hallgren 224d3a43f7 Add OS X Installed package to the GF 3.6 download page 2014-08-29 11:48:53 +00:00
hallgren 9b8b2d5f03 bin/build-binary-dist.sh: just a small fix 2014-08-29 11:48:10 +00:00
hallgren d25014f24c You can now use 'make pkg' to build OS X Installer packages for GF
The script bin/build-binary-dist.sh has been updated to build either a plain
.tar.gz package or OS X Installer package (.pkg).

Note that bin/build-binary-dist.sh is designed to build and include the
C run-time system in the binary package.  If the C run-time system fails to
build, no binary package will be created.
2014-08-28 13:30:22 +00:00
hallgren cc61d7edd8 gf.cabal ghc-options: don't force -j, -auto-all has been renamed to -fprof-auto 2014-08-25 23:30:22 +00:00
hallgren 20d5a89664 Fix GHC 7.4 compatibility issue caused by previous patch 2014-08-25 11:26:58 +00:00
hallgren 238652c6f9 Setup.hs: disable parallel RGL build support for now, since it is incompatible with Cabal<1.20 2014-08-25 11:22:20 +00:00
hallgren c0eb79b403 Experimental: parallel batch compilation of grammars
On my laptop these changes speed up the full build of the RGL and example
grammars with 'cabal build' from ~95s to ~43s and the zero build from ~18s
to ~5s.

The main change is the introduction of the module GF.CompileInParallel that
replaces GF.Compile and the function GF.Compile.ReadFiles.getAllFiles. At
present, it is activated with the new -j flag, and it is only used when
combined with --make or --batch. In addition, to get parallel computations,
you need to add GHC run-time flags, e.g., +RTS -N -A20M -RTS, to the command
line.

The Setup.hs script has been modified to pass the appropriate flags to GF
for parallel compilation when compiling the RGL and example grammars, but you
need a recent version of Cabal for this to work (probably >=1.20).

Some additonal refactoring were made during this work. A new monad is used to
avoid warnings/error messages from different modules to be intertwined when
compiling in parallel, so some functios that were hardiwred to the IO or IOE
monads have been lifted to work in arbitrary monads that are instances in
the appropriate classes.
2014-08-25 09:56:00 +00:00
hallgren 5f9e6b1220 src/www/robots.txt: robot exclusion file for the GF cloud service.
To reduce potential server load caused by search bots.
2014-08-22 12:13:04 +00:00
hallgren 11105f81cd Command line flag -s/-q now silences all warnings
These flags now do what the say.
2014-08-22 00:30:33 +00:00
hallgren e1644ef319 Add lifted directory operations in GF.System.Directory to eliminate the need for liftIO in various places 2014-08-20 17:47:08 +00:00
hallgren ff960a27b8 GF.CompileOne: refactoring to reduce code duplication and improve readability
I prefer small functions with descriptive names over large monilithic chunks
of code, so I grouped the compiler passes called from compileSourceModule
into funcitons named frontend, middle and backend. This also makes decisions
about which passes to run clearly visible up front.

Also made some small changes in GF.Compile.
2014-08-20 17:04:15 +00:00
hallgren be301d8a5e Convert many RGL modules from Latin-1 to UTF-8 to speed up compilation
Also add flags coding=utf8 to silence warnings.
2014-08-19 19:42:05 +00:00
hallgren efcec8e7e9 Convert BeschCat.gf & BeschSpa.gf to UTF-8 to speed up compilation
Big patch!
2014-08-19 19:39:35 +00:00
hallgren 2f0e6c788b Convert lib/src/spanish/IrregSpa.gf to UTF-8 to speed up compilation
Huge patch!
2014-08-19 19:32:49 +00:00
hallgren d2e326b182 GF.Compile.ReadFiles: a simpler & faster way to convert from Latin1 to UTF-8 2014-08-19 14:27:15 +00:00
hallgren 7dee933802 Adjust the -path flags in 112 RGL modules
The -path flags in the RGL modules compiled during 'cabal build' now refer 
directly to the needed source directories. References 'alltenses' and 'present'
(and the nonexistent directory 'mathematical') have been removed.

This allows the files to be compiled in any order (e.g. in parallel). In
addition, you can do things like

	gf -retain lib/src/api/TrySwe.gf

without compiling/installing any other RGL modules first, and without 
setting any other path flags or environment variables.
2014-08-18 22:26:29 +00:00
hallgren 7b42582682 Fix compliation error with GHC 7.4 caused by previous patch 2014-08-13 22:21:54 +00:00
hallgren 1cfdffd5e9 Fix warnings in 16 modules, mostly forward compatibility warnings from GHC 7.8 2014-08-13 22:16:18 +00:00
hallgren 6215fc941f Refactoring in GF.Compile and GF.ReadFiles with an eye to parallel compilation
In particular, the function compileOne has been moved to the new module
GF.CompileOne and its type has been changed from

    compileOne :: ... -> CompileEnv -> FilePath -> IOE CompileEnv

to

    compileOne :: ... -> SourceGrammar -> FilePath -> IOE OneCompiledModule

making it more suitable for use in a parallel compiler.
2014-08-13 16:46:11 +00:00
hallgren 70051a375b Setup.hs: reduce zero build time by a couple of seconds
The RGL is now compile with only three calls to GF (prelude, present,
alltenses). This also makes even more parallelism available to GF for speeding
up full builds of the RGL.
2014-08-13 16:25:03 +00:00
hallgren 147af96983 GF.Compile: remove the Int from CompileEnv
It has been unused since the refresh pass was removed.
This eliminates one obstacle to parallel module compilation.
2014-08-11 16:30:11 +00:00
hallgren 1ce3569c82 Setup.hs: don't build example grammars when the rgl-none argument is specified 2014-08-08 17:02:36 +00:00
hallgren daee08f360 Setup.hs: comment out debugging code 2014-07-28 15:35:22 +00:00