Commit Graph

56 Commits

Author SHA1 Message Date
hallgren
c457cfe305 gf.cabal: fix tab char problem 2013-04-02 14:53:15 +00:00
hallgren
84c197106b gf.cabal: gf depends on utf8-string even when compiled without server support 2013-04-02 14:50:01 +00:00
Sergei Trofimovich
05e5895134 ghc-7.6: allow directory-1.2
Get rid of old-time depend (and ClockTime in favour of UTCTime).
time-compat helps to retain backward compatibility with directory-1.1
and lower.
2013-03-09 21:38:43 +00:00
hallgren
6c01b4a236 gf.cabal: version 3.4-darcs 2013-02-11 16:02:50 +00:00
hallgren
d6efe245c1 This is GF 3.4! 2013-01-30 23:27:06 +00:00
hallgren
6e08e749d6 gf.cabal: Tested-with GHC==7.4.2 only, older versions cause minor problems 2013-01-30 15:57:35 +00:00
hallgren
e966a4ccc8 Make -new-comp the default and bump the version number to 3.3.11-darcs
* -new-comp (the new partial evaluator) is now chosen by default when you run
  cabal install (or cabal configure). To revert to using the old partial
  evaluator by default, use "cabal install -f-new-comp" (or
  "cabal configure -f-new-comp").

* Regardless of the configured default, you can choose which partial evaluator
  to use when you invoke gf by using the -new-comp or -old-comp command line
  option.

* The cc command in the GF shell uses the chosen partial evaluator by default,
  but you can override this by using "cc -new" or "cc -old".

The plan is that these flags will be romeved in a future version.
2012-12-07 14:01:42 +00:00
hallgren
158aafa3af gf -server + gfse: show modification time of public grammars 2012-11-23 23:21:17 +00:00
john.j.camilleri
1dfa2ad5b8 Update gf.cabal to copy new common js files 2012-11-20 14:04:09 +00:00
john.j.camilleri
7a69d9d5e5 Add first demo of new syntax editor
As part of the GF cloud stuff, it can be accessed from
http://cloud.grammaticalframework.org/syntax-editor/editor.html
2012-11-13 15:14:49 +00:00
hallgren
b6f392b4e1 Adding a new experimental partial evalutator
GF.Compile.Compute.ConcreteNew + two new modules contain a new
partial evaluator intended to solve some performance problems with the old
partial evalutator in GF.Compile.Compute.ConcreteLazy. It has been around for
a while, but is now complete enough to compile the RGL and the Phrasebook.

The old partial evaluator is still used by default. The new one can be activated
in two ways:

  - by using the command line option -new-comp when invoking GF.
  - by using cabal configure -fnew-comp to make -new-comp the default. In this
    case you can also use the command line option -old-comp to revert to the old
    partial evaluator.

In the GF shell, the cc command uses the old evaluator regardless of -new-comp
for now, but you can use "cc -new ..." to invoke the new evaluator.

With -new-comp, computations happen in GF.Compile.GeneratePMCFG instead of
GF.Compile.Optimize. This is implemented by testing the flag optNewComp in
both modules, to omit calls to the old partial evaluator from GF.Compile.Optimize
and add calls to the new partial evaluator in GF.Compile.GeneratePMCFG.
This also means that -new-comp effectively implies -noexpand.

In GF.Compile.CheckGrammar, there is a check that restricted inheritance is used
correctly. However, when -noexpand is used, this check causes unexpected errors,
so it has been converted to generate warnings, for now.

-new-comp no longer enables the new type checker in
GF.Compile.Typeckeck.ConcreteNew.

The GF version number has been bumped to 3.3.10-darcs
2012-11-13 14:09:15 +00:00
hallgren
c2b7288411 Eliminate warnings about deprecated use of catch and try
This is also needed for compatibility with GHC 7.6.
2012-11-08 15:53:46 +00:00
hallgren
5bfaed7b10 gf.cabal: version of parallel needs to be >=3 2012-10-26 09:25:45 +00:00
hallgren
28f87140c7 Factor out code for setting the console encoding
Moved similar low-level code blocks in Main and GFI for setting the console
encoding to the new module GF.System.Console.
2012-10-05 12:54:49 +00:00
hallgren
7c65cd4073 Use the SIO monad in the GF shell
+ The restrictions on arbitrary IO when GF is running in restricted mode is now
  enforced in the types.
+ This hopefully also solves an intermittent problem when accessing the GF
  shell through the web API provided by gf -server. This was visible in the
  Simple Translation Tool and probably caused by some low-level bug in the
  GHC IO libraries.
2012-09-25 19:08:33 +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
b82c93ddf6 cloud service: add preliminary cloud service API documentation 2012-06-18 13:08:32 +00:00
hallgren
8b465dcaff GF home page: link to GF clouds service (cloud.grammaticalframework.org)
Also some small cloud service documentation updates.
2012-06-11 15:34:16 +00:00
hallgren
aa105f2916 Adding a Simple Translation Tool
It is part of the cloud services available with gf -server.
2012-05-15 15:36:06 +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
836b5f6afa gf.cabal: removing -O2
Removing "ghc-options: -O2" from gf.cabal has the following advantages:

+ Compiling GF is faster (time drops from 182s to 142s on my laptop)
+ Compiling the RGL is faster (time drops from 159s to 155s on my laptop)
+ Without the hardwired optimization level, the 'cabal configure' options
  --enable-optimization=<n> and --disable-optimization work as expected
  (so if you still want -O2, use --enable-optimization=2)
+ GF can be compiled with ghc-7.2.2 and ghc-7.4.1 (-O2 triggers a bug in
  these versions of ghc, it seems. Another workaround, discovered by
  Sergei Trofimovich, is to use -O0 in Data.Binary.)
2012-03-30 15:07:12 +00:00
hallgren
5837ba990b gf.cabal: update version number to 3.3.3-darcs 2012-03-08 13:03:25 +00:00
hallgren
8c29d8247a gf.cabal: update version number to 3.3.3
but I am not tagging it yet, there is still time for some changes
2012-03-02 10:57:08 +00:00
hallgren
eb1b4ecf3f gfse: Translation Quiz integration
Also moved the translation quiz from demos/TransQuiz to src/www/TransQuiz so
that it will be installed by 'cabal install' along with the other files that
are installed for use by gf -server mode.
2012-02-28 17:24:34 +00:00
kr.angelov
54019c75ae 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
hallgren
f46593559a Remove configuration flag cclazy 2011-11-01 13:45:12 +00:00
hallgren
fb43ab5019 Preparations for release of GF 3.3
+ Changing version numbers and dates here and there.
+ Simplify build-binary-dist.sh since pgf-http need not be built anymore.
+ Use--gf-lib-path to make the sample grammars for minibar compile even if GF
  is not installed.
2011-10-25 18:25:49 +00:00
hallgren
fa4af3d043 Improvements of "gf -server" mode and related setup
"gf -server" mode now contains everything needed to run the minibar and
the grammar editor (including example-based grammar writing).

The Setup.hs script installs the required files where gf -server can find them.
These files have been moved to a new directory: src/www.

The separate server program pgf-http is now obsolete.
2011-10-12 17:03:54 +00:00
hallgren
b318509528 More functionality in "gf -server" mode
"gf -server" mode now includes PGF service and the services to support
example-based grammar writing. (But gf -server is not quite ready to replace
pgf-http yet...) 

Also bumped GF version number to 3.2.10-darcs
2011-10-10 16:16:16 +00:00
ra.monique
7fa94d7a90 added topological sort module to PGF - to be used in example based grammar writing 2011-09-15 16:32:49 +00:00
hallgren
5d65e5260d Take snapshot, version 3.2.9 2011-09-12 14:42:54 +00:00
hallgren
31ac09a8ac gf.cabal: add Tested-With field 2011-09-12 14:33:15 +00:00
hallgren
8e6eecaf87 Make -fcclazy (the new faster lazy compute_concrete) the default. Bump version number to 3.2.9 2011-09-09 13:54:19 +00:00
hallgren
ce714fa723 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
ab774d3964 gf.cabal: bump version to 3.2.8-darcs
This is just to make it easier to tell who has the latest version at the 
summer school. There has been some bug fixes in gf itself and some significant
additions to the RGL since 3.2 was released.

Also explicitly require Alex 2.x. The recently released Alex 3.0 has backwards
incompatible changes and does not work. GF/Grammar/Lexer.x should probably
be modified to support both Alex 2.x and Alex 3.0...
2011-08-12 14:02:24 +00:00
hallgren
3488632558 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
gdetrez
5be1b5d493 Adding a basic lexicon-based tokenizer and the asociated command in gf shell 2011-02-10 15:00:06 +00:00
gdetrez
0c7676e6e9 Adding an option to the gf compiler to add an index to pgf files
This is gonna be used by the android library to skip unused part of a
pgf file
2010-12-11 16:36:30 +00:00
hallgren
65e1ea2fc4 gf.cabal: bump version number, add source repository info
I changed the version number to 3.2.1-darcs.
I think the version number of the current version from darcs should always
include the "-darcs" suffix (or "-current" perhaps?). The suffix should be
removed only momentarily when making an official release.
2011-03-03 15:24:43 +00:00
hallgren
c9ca289a7c Fix to compile GF with GHC>=7.0 2010-12-28 13:54:18 +00:00
hallgren
ebd0262b3a Update version number to 3.2.
Code freeze for generation of binary distribution packages is imminent.
2010-12-23 11:26:33 +00:00
krasimir
01d05b6736 more clear LICENSE file for GF 2010-12-21 10:57:54 +00:00
hallgren
3816623310 gf.cabal: version 3.1.91, remove pgf-http
The version of cabal distributed with Ubuntu 10.10 is too old to handle
executables that refer to the library in the same package, so to not make it
too complicated for Ubuntu users to compile GF from source, pgf-http is no
longer part of the main gf.cabal. :-(
2010-12-17 16:59:35 +00:00
hallgren
ab5b02d65c Update version number to 3.1.90 to indicate that we are getting close to the 3.2 release 2010-12-14 15:43:35 +00:00
gdetrez
99c38bf070 In the haskell code, we make the binary representation of the doubles compliant with IEEE 754.
The default binary representation in haskell's Data.Binary package is
homemade and quite complicated. Making it compliant with IEEE 754 will
make it easyer for the java runtimes (and probably others) to load the
PGF.
2010-10-19 18:34:29 +00:00
aarne
1b24f4490c moved PGF.ToApi to GF.Compile.ToAPI 2010-12-07 18:05:13 +00:00
ra.monique
faaddfe54b added syntax to api translation module 2010-12-05 19:51:19 +00:00
hallgren
1867e6bd88 Adding rules for pgf-http to main gf.cabal file
pgf-http is now part of the standard GF build & install.
2010-11-26 15:44:43 +00:00
krasimir
9ca8b5bed1 exclude two redundant modules from the cabal desciption of the compiler 2010-08-24 14:19:08 +00:00
krasimir
527efbef9d reorganize the modules in GF.Compile.* 2010-07-01 14:19:32 +00:00