Commit Graph

2489 Commits

Author SHA1 Message Date
hallgren
e36af534bf gfse: added grammar cloning 2011-09-13 15:19:16 +00:00
aarne
d394f76e3d quick fixes in PGF.TypeCheck suggested by Krasimir; to be revisited 2011-09-14 11:29:35 +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
kr.angelov
4215fc31bf bugfixes in the typechecker and the tree generator 2011-08-30 11:24:59 +00:00
kr.angelov
41a60772c7 bugfix: allow higher-order variables in the linearization 2011-08-30 09:22:44 +00:00
aarne
380011eb7d skip spaces before closing parenthesis in PGF.Expr.pFactor 2011-08-29 12:03:45 +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
hallgren
623c72ca1d pgf-http: fix a bug that caused "+" to be treaded as " " in PGF service requests URLs.
This was a bug in my workaround for a bug in the httpd-shed package. It
made it impossible to use the glue token "&+" for Turkish input in the minibar,
for example.
2011-08-25 16:58:17 +00:00
aarne
6757ab2b41 reload command in shell 2011-08-25 15:58:38 +00:00
hallgren
1fccece30c pgf-service: apply the OpenMath LaTeX function only when linearizing to a
concrete language whose name ends with LaTeX.
This change also avoids duplicating output and, in addition to the linearize
command, applies the transfer also when using the linearizeAll command.
2011-08-24 09:37:55 +00:00
hallgren
ba03db58a4 pgf-service: add Jordis transfer function for OpenMath LaTeX output 2011-08-23 16:25:00 +00:00
hallgren
c5086bda7c minibar: documentation update 2011-08-22 17:55:47 +00:00
hallgren
d45b9edcd8 minibar: quick fix to allow literals to be entered.
If you press Enter, the current word will be accepted, even if there are no
matching completions.
(You can now use names of people when constructing sentences in the Letter
grammar, for example.)
2011-08-22 17:03:47 +00:00
aarne
3afefb0ac9 commented Compute/Concrete with explanations 2011-08-22 17:08:07 +00:00
hallgren
cf9f1057ed pgf service: external service hook: always format the output as a JSON string 2011-08-22 16:10:56 +00:00
hallgren
d8d80693db pgf service: added a hook for external services
This is really reinventing CGI, people should learn how to write CGI scripts
instead...
TODO: better handling of temporary files
2011-08-22 15:34:44 +00:00
hallgren
f19c496b83 minibar: documentation fixes 2011-08-21 21:35:14 +00:00
hallgren
6c8c0cdc24 minibar: bug fix for "Try Google Translate" button 2011-08-19 13:56:12 +00:00
hallgren
9c8fbd74fe gfse: fix an issue with Webkit browers
For lin and lincats with empty RHSs, there was nothing to point to to make the
edit button (the "%" button) appear in browsers based on Webkit
(Safari, Chrome).
2011-08-17 15:41:57 +00:00
hallgren
4cad2daa29 minibar: adding pgf_offline.js
This file exports the same PGF runtime interface as pgf_online.js but calls
the hs2js translation of the PGF runtime library (which is not included
in darcs).
2011-08-16 16:29:51 +00:00
hallgren
b2512234dd minibar: documentation and API work 2011-08-11 16:28:49 +00:00
hallgren
19d84b6de0 minibar: some functions were in the wrong file 2011-08-11 14:56:34 +00:00
hallgren
91cc4de1a2 minibar: more documentation (in minibar-api.html) 2011-08-09 15:57:40 +00:00
hallgren
d4638f54ba minibar: refactoring for improved modularity
Two smaller objects have been factored out from the Minibar object:
Input and Translations. These have been placed in two separate files:
minibar_input.js and minibar_translations.js. Some common auxiliary functions
have also been moved to a separate file: minibar_support.js
2011-08-08 17:28:24 +00:00
hallgren
e50731c511 minibar: resolve conflict 2011-08-08 14:08:55 +00:00
hallgren
ab8ec58e08 minibar: improve pgf_online.js
pgf_online.js has been simplified and generalized to support the full
GF Web Service API. The changes are backwards incompatible, unfortunately.
The documentation and minibar.js have been updated accordingly.
2011-08-03 15:21:38 +00:00
hallgren
a0ec59ccda minibar: small code and documentation tweaks 2011-08-03 14:24:47 +00:00
hallgren
8c620229e1 minibar: recording old configuration changes 2011-08-08 14:04:51 +00:00
hallgren
8cf7671e07 gfse: added links to download PGF files for user's grammars 2011-08-01 15:01:14 +00:00
hallgren
a918bcaf68 gfse: add missing file share.html to darcs
Also fix bug in share.html by adding cloud.js to the list of loaded JavaScript
files.
2011-08-01 14:27:29 +00:00
hallgren
b58fc79908 gfse: some correctness checks for concrete syntax
The editor now calls the GF server to check the syntax of expressions that
are part of concrete syntax (except for parameter types).
This is currently done by using the cc command of the GF shell, which puts
some unnecessary restricitons on operation definitions...
2011-07-29 15:44:19 +00:00
hallgren
7c6f6110eb gfse: refactoring
Factor out functions that interface to the old cloud service (upload.cgi) 
from editor.js into cloud.js. Merge changes from editor2.js into editor.js and
factor out functions that interface to gf -server into clouds2.js.
2011-07-29 13:45:37 +00:00
hallgren
9d547fbdca gfse: about: added a note that each grammar has a unique identity independent of its name 2011-07-26 15:03:33 +00:00
hallgren
0f7743992b gfse: various small improvements 2011-07-25 19:21:46 +00:00
aarne
848373e29e GenIP, GenRP in Extra and any_Quant in ExtraEng 2011-07-21 08:25:04 +00:00
hallgren
6c751da6e8 gfse: new section "Grammars in the cloud" in about.html 2011-07-07 16:59:37 +00:00
hallgren
c4f1fbbc9a gfse: grammars in the cloud, still primitve, but good enough to be installed on the server, I think 2011-07-07 16:57:59 +00:00