Commit Graph

7110 Commits

Author SHA1 Message Date
hallgren
c9af5d11c0 Restore compatibility with GHC 7.0 2014-02-10 21:44:34 +00:00
hallgren
60980d1617 Fix broken C runtime support in gf.cabal and PGFService.hs
Also add PGF service command c-flush to explicitly flush cached parse results
from memory.
2014-02-10 16:04:40 +00:00
kr.angelov
44a764cd2f proper error checking in the C runtime 2014-02-10 14:07:17 +00:00
hallgren
1bcb2d06e3 haskell-bind: fix broken pgf-shell
The type CId was replaced with String, so can't use show and read anymore.
2014-02-10 12:59:31 +00:00
kr.angelov
5818b0fe1b bugfix in pgf2-bind.cabal 2014-02-10 10:28:19 +00:00
aarne
6faaa795c5 disabled ad hoc overloading, as it still causes mysterious errors. It is just a few lines in Rename.hs 2014-02-09 19:55:17 +00:00
kr.angelov
1746e3ad2a updated haskell-bind/README 2014-02-09 20:56:01 +00:00
kr.angelov
adeeb47e06 cleanup the code for the FFI binding. The API is now more uniform with the Python and the Java bindings. Fixed a lot of memory leaks. 2014-02-09 20:45:11 +00:00
kr.angelov
f30c60c3d7 GuVariant is now plain uintptr_t instead of a structure to make it easier to write Haskell bindings 2014-02-09 19:07:15 +00:00
hallgren
1d69feac38 gf.cabal: pgf-shell needs containers now 2014-02-07 16:42:51 +00:00
hallgren
680bf64454 pgf-shell: show the names of the concrete syntaxes after loading the grammar 2014-02-07 16:40:13 +00:00
inari
8de56530e0 haskell-bind: add function languages 2014-02-07 15:56:12 +00:00
hallgren
9a422839cc pgf-shell: enable -rtsopts, call performGC between commands
This is to make it easier to find the cause of space leaks.
2014-02-07 13:57:13 +00:00
inari
957dfb83b6 fixed some memory leaks 2014-02-06 10:50:59 +00:00
kr.angelov
f23bcb8a47 bugfix in the recognizer for literals in the C runtime 2014-02-05 20:13:52 +00:00
hallgren
edeb094cf5 PGF.Optimize: one more fix for unsafeFreeze 2014-02-04 13:47:37 +00:00
hallgren
9df56550cd PGF.Optimize: import unsafeFreeze from Data.Array.Unsafe for compatibility with ghc-7.8 2014-02-04 13:44:07 +00:00
hallgren
3900d3cfbb GFC.hs: encodeFile_ is not available in the standard Data.Binary 2014-02-04 13:36:16 +00:00
hallgren
c97e5f4086 gf.cabal: add default-language to silence warning 2014-02-03 12:24:42 +00:00
aarne
2aa8ad7e76 new overload resolution, taking care of ad hoc overloading. 2014-02-01 13:17:52 +00:00
aarne
6dba4e6f1e ad hoc overloading: a new way to deal with name resolution conflicts. Previously the renamer warned if there was e.g. an unqualified reference to mkAdv, which could come from either Syntax or Paradigms. The renamer picked randomly one of the alternatives, which then often failed in type checking. Now, all candidates are collected into a new structure AdHocOverload [Term], which is accessed by the type checker to make the choice based on the type of the constant. This eliminates some of the warnings and some of the error due to wrong choices. In some rare cases, the inherited constants have the same type, which cannot be resolved by overloading. In such cases, the type checker does the same as the renamer did before: pick the "first" option (i.e. the one that happens to be the first in the list returned by the renamer) and issues a warning. In this patch, only a couple of lines are changed. The typechecker (RConcrete) has more substantial changes, and will be recorded as the next patch. 2014-02-01 13:10:36 +00:00
aarne
d90eededaf typo in Concrete type checker: when type checking <e : t>, return annotated e and not e itself. Fixed in RConcrete, which should soon replace Concrete; and hopefully will be replaced by some cleaner code soon, such as ConcreteNew which has been under construction for quite some time. 2014-01-31 21:16:07 +00:00
aarne
6f03e517c8 experimental type checker module GF.Compile.TypeCheck.RConcrete.hs with record updates enabled by ** expressions. Can be changed back to Concrete.hs by just changing one import command in GF.Compile.CheckGrammar.hs. The worst thing that *should* happen with the new type checker is that some old code is detected to be invalid, which happens if it contains a type-incompatible record extension, e.g. {x = "foo"} ** {x = 1}. Previously such errors were silently ignored. A set of test runs detected one such error in the RGL, which was corrected. On the positive side, the new type checker now enables record updates in the natural way: R ** {x = 1} will give value x = 1 overshadowing any value of x in R (provided the expected type of x is Int). lib/src/experimental/PredicationSwe.gf illustrates this, as opposed to PredicationSwO.gf which has to use old-style copying of even the unchanged record fields. 2014-01-31 20:28:25 +00:00
hallgren
dbd68b987e gf-server.cabal: flag to include C run-time support in the FastCGI PGF service 2014-01-31 16:11:41 +00:00
kr.angelov
e6ab8c4aa4 fix in the bracketedLinearize in Haskell 2014-01-31 08:52:32 +00:00
inari
f0ddf0fe72 changes to pools in haskell bindings 2014-01-29 16:02:07 +00:00
hallgren
0386334f49 Wide coverage translation web demo improvements
+ Add lexing/unlexing
+ Add a button to swap input and output
+ Minor layout adjustments
2014-01-28 16:51:21 +00:00
hallgren
06bb2a1dad PGFService.hs: fix a type ambiguity when compiling without C run-time support 2014-01-27 16:46:48 +00:00
hallgren
b3251f402d PGFService.hs: add a cache for C run-time parse result and a start offset parameter
Cached parse results are discarded when they have been unused for 10 minutes.
2014-01-27 16:32:09 +00:00
hallgren
88341987a8 gf -server: fix a redirection bug...
...that was introduced with the recent changes to the handling of the
current working directory
2014-01-27 16:30:03 +00:00
hallgren
daa48610b5 gf -server: allow multiple PGF service requests to be handled in parallel
PGF service requests are stateless and can run in parallel, but some other
requests handled by the server are not and might even change the current
working directory temporarily, and this affects all threads, so it is
important that the PGF service requests access PGF files by absolute paths.
2014-01-24 13:49:02 +00:00
kr.angelov
55ea6cbec5 fix in the Haskell runtime 2014-01-24 08:34:55 +00:00
hallgren
77150e0b27 gf.cabal: bump version number to 3.5.12 2014-01-21 16:30:01 +00:00
hallgren
0a185814fd demos/translation: add preliminary online demo,
but it is not ready to be widely advertised yet, e.g. lexing and unlexing is
missing.
2014-01-23 14:56:52 +00:00
hallgren
14ce8509f8 simple translator: Replaced 'GF Robust Parser' with 'GF Wide Coverage Translation'
The interface to the wide coverage translation is in js/gftranslate.js
and it assumes that the grammar is installed on the cloud server
as /robust/Translate8.pgf.

The list of supported languages is hardwired in gftranslate.js, since
there is no support for obtaining this info from the C run-time system
at the moment.
2014-01-21 16:47:23 +00:00
hallgren
9d71ffc831 Optionally include C run-time support
If the C run-time library is compiled and installed on your system, you can now
do 'cabal configure -fc-runtime' to get the following extras:
  + The haskell binding to the C run-time library will be included in the
    PGF library (so you can import it in Haskell applications).
    Documentation on the new modules will be included when you run
    'cabal haddock'.
  + The new command 'pgf-shell', implemented on top of haskell binding to
    the C run-time system.
  + Three new commands in the web API: c-parse, c-linearize and
    c-translate. Their interfaces are similar to the corresponding commands
    without the "c-" prefix, but they should be considered preliminary.
2014-01-20 17:06:11 +00:00
hallgren
801a20d27a haskell-bind: add an export list to hide internal stuff
It also makes the generated haddock documentaiton more structured.
2014-01-20 14:40:38 +00:00
hallgren
d2d57a9210 haskell-bind.cabal: relax overly restrictive version bounds and add cc-options 2014-01-17 14:18:20 +00:00
hallgren
045eeeb280 haskell-bind: add a cabal file and examples/pgf-shell.hs
* The haskell-bind.cabal file makes it easy to build the haskell binding and
  use it in ghci.
* pgf-shell.hs is a simple example of how to use the haskell binding.
2014-01-17 14:02:35 +00:00
hallgren
b0a40d82b9 haskell-bind: change the type of CRuntimeFFI.getConcr
Change the type of getConcr from

    getConcr :: PGF -> Language -> Concr

to

    getConcr :: PGF -> Language -> Maybe Concr

This is to prevent programs from crashing later if you try to select a
concrete syntax that is not present in a grammar.
2014-01-17 13:58:48 +00:00
hallgren
41e3b28bfa examples/Phasebook/Makefile2: Lativan is fixed, include it again 2014-01-13 14:18:32 +00:00
normundsg
d89b5bd8c1 Phrasebook: Latvian is fixed (according to the latest RG) 2014-01-11 20:26:44 +00:00
aarne
b9a91b3c34 removed the generated html files 2014-01-10 14:55:21 +00:00
aarne
8b85e07561 started demo pages for translation and resource grammars 2014-01-10 14:54:21 +00:00
hallgren
ac33c8a851 examples/Phasebook/Makefile2: Lativan is broken, omit it for now
Also rewrote Makefile2 in a more compact way.
2014-01-10 13:26:42 +00:00
hallgren
ed3d30e3d1 Check file datestamp before creating PGF file when compiling grammars
When running a command like

	gf -make L_1.gf ... L_n.gf

gf now avoids recreating the target PGF file if it already exists and is
up-to-date. 

gf still reads all required .gfo files, so significant additional speed
improvements are still possible. This could be done by reading .gfo files
more lazily...
2014-01-09 17:30:24 +00:00
hallgren
768d9de668 Check file datestamps before unioning PGF files (fix)
Also check that no additional output formats have been selected.
2014-01-09 15:14:35 +00:00
hallgren
ed1e662dea Check file datestamps before unioning PGF files
When running a command like

 gf -make -name=T L_1.pgf ... L_n.pgf

gf now checks if T.pgf exists and is up-to-date before reading and computing
the union of the L_i.pgf files.

The name (T) of the target PGF file has to be given explicitly for this to work,
since otherwise the name is not known until the union has been computed.
If the functions for reading PGF files and computing the union were lazier,
this would not be necessary...
2014-01-09 14:18:21 +00:00
hallgren
d8d78b6187 Release note updates and some other minor things 2013-12-18 16:22:59 +00:00
hallgren
52494afc50 PGFtoPython: add Python translations for nonExist, BIND and SOFT_BIND
Someone who is familiar with the Python translation should check this.
2013-12-18 15:31:39 +00:00