Commit Graph

403 Commits

Author SHA1 Message Date
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
hallgren ed451653bd 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 e5accc0d8d Some experiments with PSeq (left commented out) 2011-10-20 14:25:31 +00:00
hallgren ef4fac9d82 Compute/ConcreteLazy.hs: no need to reverse when looking up labels in records 2011-10-20 14:19:33 +00:00
hallgren d8d60adb15 AppPredefined.hs: more readable notation for the types of primitives 2011-10-20 14:17:37 +00:00
aarne a83b6bea62 don't count app nodes in term size 2011-09-26 13:56:39 +00:00
aarne 0c2f20d04d structured examples in help into pairs (command,explanation) 2011-09-25 08:42:27 +00:00
aarne 780d9ef528 bug fixes in code size analysis 2011-09-24 08:20:58 +00:00
kr.angelov bb599029c9 change the precedence for the left argument of -> 2011-09-22 16:24:02 +00:00
aarne 6db0c74c2f the sd -size command now shows the size of all code needed for defining an oper 2011-09-22 12:11:03 +00:00
aarne baa9bcd9d0 documented the ss command 2011-09-22 07:40:19 +00:00
aarne bd22b935de statistics on grammar size in terms of constructors 2011-09-21 13:24:59 +00:00
aarne 958e81126d commands ss to show source, and sd to show the dependencies of a constant 2011-09-21 08:12:14 +00:00
aarne 33a42b1c7c module for analysing source grammars 2011-09-20 16:00:56 +00:00
aarne a2ccf1ce69 command ss to show source (including gfo) in text; to be extended 2011-09-20 14:58:27 +00:00
hallgren 751fd79763 Add a command name header to the 'help -t2t' output 2011-09-15 18:19:01 +00:00
aarne 10d79ed050 made ps -from_TRANSLIT symmetric to -to_TRANSLIT in the sense that unknown characters are returned as themselves and not as question marks 2011-09-15 10:49:40 +00:00
hallgren 642d391d73 Omit empty sections in gf help output 2011-09-14 20:26:22 +00:00
hallgren 570afd870c GF shell command 'help -t2t' outputs help in txt2tags format 2011-09-14 19:40:28 +00:00
hallgren c8501547bf Don't make noexpand the default with -fcclazy
This reverts the previous change. Not preprocessing opers turns out to make a
difference in what needs to be mentioned in restricted inheritance/imports.
2011-09-09 16:17:33 +00:00
hallgren 312c13c2d8 Make noexpand the default optimization package when configuring with -fcclazy 2011-09-09 13:50:38 +00:00
hallgren 42ea96a5ca 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 8098f79941 GF.Grammar.Macros: simplify composOp and composSafeOp 2011-09-07 17:11:52 +00:00
hallgren e223d3bdb9 Make the -fcclazy configuration option visible in the build info in the GF Shell welcome message 2011-09-05 15:20:39 +00:00
hallgren 875df01dc6 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 bfe4b0b2a4 GF.Grammar.*: generalized the type of some functions that can not fail from the Err monad to arbitrary monads 2011-09-01 16:35:53 +00:00
hallgren 314abe733b GF.Compile.Coding: cleaner code
Refine function codeTerm into codeTerm, codeLTerm and codeLTerms.
2011-08-31 13:55:49 +00:00
hallgren d180dadf08 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 b743abb375 GF.Infra.Modules: restore module dependency order invariant
It is needed by greatestResource (and similar functions, presumably).
So keep both the list and the finite map of modules. This slows down some
things, but the compilation of PhrasebookFin.pgf benefits from it.
To be continued...
2011-08-30 20:20:45 +00:00
hallgren ba10b5b0ca 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 fe2fad8f8d GF.Grammar.Lookup: added function lookupQIdentInfo
+ Avoids some code duplication by combinging lookupModule and lookupIdentInfo.
+ Also removed lookupIdentInfo from export list, since it is not used anywhere
  else.
2011-08-30 14:53:11 +00:00
hallgren a0c785d5d0 PatternMatch.hs: commented out suspicious unused function varsOfPatt 2011-08-30 12:13:50 +00:00
hallgren 125ae7a3d3 GrammarToPGF.hs: comment out unused imports 2011-08-30 12:02:32 +00:00
aarne 769121788a import command now gives priority to new abstract syntax, and discards the old concretes if they are for the old abstract; the new priority is implemented in PGF.Data.unionPGF 2011-08-28 10:35:55 +00:00
aarne 6757ab2b41 reload command in shell 2011-08-25 15:58:38 +00:00
aarne 3afefb0ac9 commented Compute/Concrete with explanations 2011-08-22 17:08:07 +00:00
aarne 848373e29e GenIP, GenRP in Extra and any_Quant in ExtraEng 2011-07-21 08:25:04 +00:00
virk.shafqat fabd2fe192 refinementNepali-11-06-20 2011-06-20 11:24:22 +00:00
aarne 098af279e7 allow empty lines in transliteration files 2011-06-14 11:49:10 +00:00
aarne a3924abece Predef functions toUpper, toLower, isUpper 2011-06-02 16:10:46 +00:00
virk.shafqat 86d2e676bc refinementsTextUrd-11-05-19 2011-05-19 15:57:12 +00:00
aarne f158fad6f8 fixed problems in persian transliteration pointed out by Elnaz 2011-05-06 12:11:45 +00:00
aarne 4ec34bdbb6 transliteration via configuration file: ps -to=file or ps -from=file 2011-05-02 14:53:46 +00:00
hallgren 0a27aaf1e6 Added a preliminary "gf -server" mode.
The command "gf -server" now starts a simple HTTP server on port 41295,
providing a simple web API to the GF compiler. It currently support the
follwing operations:

  * creating new temporary directories for grammar uploads,
  * uploading grammars files for use in the GF shell,
  * executing GF shell commands, and
  * accessing static files.

This means that GF now depends on some additional networking related packages,
but they should be available and easy to install on all platforms. There is
also a new configuration flag "server" in gf.cabal, so GF will be compiled
without support for server mode if the extra packages are unavailable.

Note that running gf -server while connected to the internet can be a security
risk. To prevent unauthorized access to the rest of the system, it is
advisable to run the server in GF_RESTRICTED mode and as a user with suitably
restricted file permissions.
2011-04-13 14:58:01 +00:00
hallgren 8fed629a3e Show configuration options as part of build info
The GF shell welcome message will now include something like

	This is GF version 3.2.1-darcs. 
	Built on darwin/i386 with ghc-7.0, flags: interrupt

where a list of enabled configuration flags are included on the last line.

This is implemented in GF.Infra.BuildInfo by consulting the CPP macros
defined by the respective option in gf.cabal. For this to work,
GF.Infra.BuildInfo obviously has to be updated when new flags are added to
gf.cabal or if the CPP macros are renamed.

(Also, I suspect that if you reconfigure with different flags and rebuild GF
without cleaning first, the BuildInfo module will not be recompiled,
resulting in a misleading welcome message...)
2011-04-13 14:45:21 +00:00
hallgren d066619b8f GF.Infra.UseIO: add functions readBinaryFile & writeBinaryFile 2011-04-13 14:44:18 +00:00
hallgren 4d4a58e54a GF shell restricted mode: found one more writeFile that should be restricted 2011-04-08 13:20:50 +00:00
hallgren 00a08fb4fb avoid warning from ghc-7.0
Warning: -fglasgow-exts is deprecated: Use individual extensions instead
2011-04-06 13:57:19 +00:00