1
0
forked from GitHub/gf-core
Commit Graph

3463 Commits

Author SHA1 Message Date
aarne
2552b859fd 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
c727f7c85c 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
e19a28f46c 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
82fd8c9f94 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
f7b978f063 fix in the bracketedLinearize in Haskell 2014-01-31 08:52:32 +00:00
inari
bdf297d0b1 changes to pools in haskell bindings 2014-01-29 16:02:07 +00:00
hallgren
f1c4b353e3 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
4e6db5d621 PGFService.hs: fix a type ambiguity when compiling without C run-time support 2014-01-27 16:46:48 +00:00
hallgren
ca72fa94eb 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
1d251b2395 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
39a0d9b668 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
fbc8bb6769 fix in the Haskell runtime 2014-01-24 08:34:55 +00:00
hallgren
7cf6391ee1 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
b8f3914209 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
1631a46040 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
29d1b58ff5 haskell-bind.cabal: relax overly restrictive version bounds and add cc-options 2014-01-17 14:18:20 +00:00
hallgren
4226be69e8 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
33024f3130 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
a158bbce53 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
de5b714573 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
40b8c5fb99 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
35f86b7d81 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
hallgren
c6d2b30c6b src/server/gf-server.cabal: compile it as a common library + executables 2013-12-17 15:55:14 +00:00
kr.angelov
ffc26796ab bugfix in the android keyboard for the choice of language 2013-12-17 17:09:53 +00:00
kr.angelov
e17f670076 show progress bar when translating or when reloading a language in the lexical activity 2013-12-17 16:21:56 +00:00
kr.angelov
417e7652ef bugfix for grammar loading if the start and the target language happen to be the same 2013-12-17 14:57:30 +00:00
kr.angelov
153a5e7494 partial grammar loading in the android app. From now on grammars for Android shall be compiled with -split-pgf 2013-12-17 14:00:17 +00:00
kr.angelov
ac835fe3b0 make sure that pgf_concrete_load has no effect on grammars that are completely loaded 2013-12-17 13:57:16 +00:00
hallgren
d90657f1f1 Add backward compatibility for reading old PGF files
Some backwards incompatible changes were made to the PGF file format after
the release of GF 3.5. This patch adds a module for reading PGF files in the
old format.

This means that old PGF files on the grammaticalframework.org server will
continue to work after we install the latest version of GF.
2013-12-17 13:27:37 +00:00
hallgren
9812c6ff90 GF.Compile.ReadFiles: reduced code duplication 2013-12-16 14:04:57 +00:00
aarne
599027ff18 ParseFin ProDrop variants ; ParseFre question word order and pronoun gender variants 2013-12-17 09:54:11 +00:00
aarne
fa1d995d08 started DocumentationFre 2013-12-13 08:56:24 +00:00
kr.angelov
3aadf5325b allow the android app to be installed on the SD card 2013-12-10 20:06:39 +00:00
kr.angelov
e4246d090c move src/runtime/haskell/CRuntimeFFI to src/runtime/haskell-bind. Don't mess up with the stable Haskell runtime! 2013-12-10 16:11:47 +00:00
kr.angelov
87527c5f04 load/unload in the Java binding 2013-12-10 16:06:34 +00:00
inari
4b2d56d56c Haskell bindings for the C runtime
Added Haskell bindings for the C runtime. Work in progress, the files are not (and should not be) included in makefiles or anything.
2013-12-10 15:27:28 +00:00
kr.angelov
6028a63b42 loading and unloading of languages in the C runtime and in the Python bindings 2013-12-10 15:00:52 +00:00
aarne
31918cf25f French inflection display in android 2013-12-10 13:03:50 +00:00
kr.angelov
0f352ba1d5 bugfix in the grammar splitter 2013-12-10 12:31:40 +00:00
kr.angelov
faed1348b1 option --split-pgf replaces option --mk-index. This splits the PGF into one file for the abstract and one more for each concrete syntax. This is a preparation for being able to load only specific languages from the whole grammar. 2013-12-10 10:43:13 +00:00
aarne
a0583ef688 new inflection_fi.xml, for stemmed and refactored ParseFin 2013-12-09 14:48:19 +00:00
aarne
0f2cc75490 make ParseFin compile with Construction 2013-12-07 08:01:28 +00:00
hallgren
41827b1aab Show relative file paths in error messages
This is to avoid one trivial reason for failures in the test suite.
2013-12-06 15:43:34 +00:00
hallgren
0d047707fc GF.Compile.CheckGrammar: add source path to error message for circular definitions 2013-12-06 13:46:59 +00:00
hallgren
e6096bffc5 GF shell: fix help text for generate_trees
Trees are not generated with increasing depth.
2013-12-06 13:45:12 +00:00
aarne
1778cd7c19 removed the unlines-lines wrapper from Lexing.unlexer to prevent empty lines when an unlexer (such as -bind or -unchars) is used as an option in linearization. Don't know really why the input had been broken into lines in the first place. You can see the effect by importing LangEng and running "gr -cat=Cl | l -table -bind" before and after recompiling GF. 2013-12-03 13:27:22 +00:00
kr.angelov
98e0f79324 fix in inflection_en.xml 2013-12-03 12:15:06 +00:00
aarne
385d5f45fc ui/android/.../Translate.java uses Parse8 (change the name and language list if you need something else) 2013-12-02 13:34:51 +00:00
hallgren
7934c0a88b Commment code and options relating to the old partial evaluator
This means that the -old-comp and -new-comp flags are not recognized anymore.

The only functional difference is that printnames were still normalized with
the old partial evaluator. Now that is done with the new partial evaluator.
2013-11-29 16:26:49 +00:00
hallgren
537caca039 Move typePredefined from GF.Compile.Compute.AppPredefined to GF.Compile.TypeCheck.Primitives
Also move the list of primitives
2013-11-29 15:47:26 +00:00