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