Commit Graph
100 Commits
Author SHA1 Message Date
hallgren 38fbd142a0 This is GF 3.4! 2013-01-30 23:27:06 +00:00
hallgren 9c63cb9e2c debian/changelog: updated for GF 3.4 2013-01-30 17:20:46 +00:00
hallgren 6c7948fa24 download/index-3.4.t2t: download page for GF 3.4
Will be renamed to index.t2t when the release is official.
2013-01-30 16:44:16 +00:00
hallgren d149dd8a58 doc/gf-developers.t2t: updated 2013-01-30 16:32:44 +00:00
hallgren 3cd71e7c0d gf.cabal: Tested-with GHC==7.4.2 only, older versions cause minor problems 2013-01-30 15:57:35 +00:00
hallgren f0de776045 Setup.hs: eliminate "minimal" mode, fix darcs version info
The reported number of recorded changes since the last tagged version was off
by one (because it counted the change that set the tag).
Also added a note that -K32M is not needed when using new-comp. But -old-comp
is still available as a configuration option, so I'm keeping -K32M for now.
2013-01-30 15:48:36 +00:00
hallgren 3ebf878281 release-3.4.t2t updates
Don't include names of contributors, link to additional info instead.
2013-01-30 15:08:26 +00:00
hallgren d4b6d1b6fe Better error message for unsupported token gluing
Instead of "Internal error in ...", you now get a proper error message with
a source location and a function name.
2013-01-29 16:25:03 +00:00
hallgren 14c8da214c Fix a bug with record extension
Add a conversion rule for ({ l1 = e } ** x).l2 in PMCFG generation. (A rule
for the symmetric case (x ** { l1 = e }).l2 was added some time ago.)
2013-01-29 14:59:16 +00:00
hallgren 211cd9bb25 Avoid crash in random generation with probabilities 2013-01-29 13:59:20 +00:00
hallgren a559e51608 Quick fix to render some parser error messages from UTF-8-encoded source files correctly.
The parser works on raw byte sequences read from source files. If parsing
succeeds the raw byte sequences are converted to proper Unicode characters 
in a later phase. But the parser calls the function buildAnyTree, which can 
fail and generate error messages containing source code fragments, which might
then containing raw byte sequences. To render these error messages correctly, 
they need to be converted in accordance with the coding flag in the source 
file. This is now done for UTF-8-encoded source files, but should ideally also
be done for other character encodings. (Latin-1-encoded files never suffered 
from this problem, since raw bytes are proper Unicode characters in this case.)
2013-01-28 17:23:02 +00:00
hallgren 713e883ad7 Better error message for Predef.error
+ Instead of "Internal error in ...", you now get a proper error message with
  a source location and a function name.
+ Also added some missing error value propagation in the partial evaluator.
+ Also some other minor cleanup and error handling fixes.
2013-01-28 16:12:56 +00:00
hallgren 3360cc904c Setup.hs: add some incomplete languages to the list compiled languages
To be specific: Amh, Ara, Lat, Tur and Mlt.
2013-01-28 16:07:44 +00:00
hallgren 35aedadc83 gf -server: fix bug in bug fix for current directory 2013-01-13 12:36:58 +00:00
hallgren 68c04cdd63 gf -server: small logging improvements 2013-01-12 18:48:23 +00:00
hallgren b0228af26d gf -server: defend against problems with the current directory caused unhandled errors 2013-01-12 17:11:31 +00:00
hallgren 4f4c4e4107 GF 3.4 release notes update 2013-01-11 15:43:32 +00:00
hallgren a8f281491c partial evaluator: fix token glueing bug
"a"+("b"++"c") was simplified to "bb"++"c" instead of "ab"++c.
2013-01-11 15:14:42 +00:00
hallgren f2751ff9e1 Fixes for minibar offline
Tested it in Firefox 18 (which has the new Ionmonkey JavaScript engine).
Still get stack overflows.
2013-01-09 16:44:18 +00:00
hallgren 1497fd863a PGF service: new command: download
This makes it possible to download PGF files from servers where the PGF service
is installed.

I am also considering making commmand=download the default instead of
command=grammar.
2013-01-09 13:28:45 +00:00
hallgren 12dec2503d bug fix in the new partial evaluator
It can leave wildcard tables in their origial form, but it easy to handle
them in the unfactor function in GeneratePMCFG.
2012-12-20 16:41:43 +00:00
hallgren d968503d90 PGFService.hs: code duplication reduction 2012-12-20 00:15:18 +00:00
hallgren ece3e33c52 partial evaluator bug fix
It failed to delay table selection when the selector contains a run-time
variable, causing "gf: Prelude.(!!): index too large" instead.

Also:
  + Show better source locations on unexpected errors, to aid bug hunting.
  + Removed unused SourceGrammar argument to value2term.
2012-12-19 23:12:37 +00:00
hallgren b4207d1b00 GF.Grammar.Lookup: new function lookupResDefLoc
It's like lookupResDef but it includes a source location in the output.
2012-12-19 23:08:56 +00:00
hallgren c3beefba47 partial evaluator bug fix
Int was missing from the list of predefined canonical constants.
2012-12-18 13:03:20 +00:00
hallgren 9ab3a6034d Add language extension for ghc<7.4
FlexibleInstances does not imply TypeSynonymInstances, apparently.
2012-12-14 14:21:46 +00:00
hallgren d7e3c869c2 More work on the new partial evaluator
The work done by the partial evaluator is now divied in two stages:
 - A static "term traversal" stage that happens only once per term and uses
   only statically known information. In particular, the values of lambda bound
   variables are unknown during this stage. Some tables are transformed to
   reduce the cost of pattern matching.
 - A dynamic "function application" stage, where function bodies can be
   evaluated repeatedly with different arguments, without the term traversal
   overhead and without recomputing statically known information.

Also the treatment of predefined functions has been reworked to take advantage
of the staging and better handle partial applications.
2012-12-14 14:00:21 +00:00
hallgren 5e091d2e3d partial evaluator work
* Evaluate operators once, not every time they are looked up
* Remember the list of parameter values instead of recomputing it from the
  pattern type every time a table selection is made.
* Quick fix for partial application of some predefined functions.
2012-12-11 15:37:41 +00:00
hallgren 93da60fa04 GF home page: link to the Resource Grammar Library coverage map by Tommi Nieminen 2012-12-10 15:17:55 +00:00
hallgren 621291a575 Compute.ConcreteNew: add missing case for variant functions
Also adding a test case in the test suite for this.
2012-12-10 13:25:32 +00:00
hallgren 46b634f256 update debian/changelog 2012-12-07 14:22:14 +00:00
hallgren db7063ebcc 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 81f843ac06 Compute.ConcreteNew: bug fix for indirectly defined pattern macros
More changes are probably needed to make pattern macros first class values.
Also includes minor changes related to variants and error messages.
2012-12-06 16:44:03 +00:00
hallgren 3c900ee6a3 minibar: add a button to get detailed grammar info
After pressing the "i" button to view grammar info, there is now a
"More info" button to get more detailed information about all categories and
functions in the grammar.
2012-11-29 19:15:30 +00:00
hallgren 8c22a380f7 minibar: add tool tips to some of the buttons
Also move the functions title and attr from editor/editor.js to js/support.js.
Also mention recent changes in minibar/about.html.
2012-11-29 16:05:42 +00:00
hallgren 351661f427 Convert some documentation to UTF-8
Using

	%!encoding:utf-8

in txt2tags files ensures that the generated HTML includes an appropriate
charset declaration. This way we avoid relying on browser defaults, which can
be wrong.
2012-11-27 16:03:29 +00:00
hallgren 78216222f1 some documentation updates and fixes
doc/Makefile: add a rule to regenerate gf-help-full.txt
gf-help-full.txt: updated (new parse tree visualization options)
demo & cloud index: clarifications
minibar documentation: better layout on mobile devices
GF 3.4 release notes: reorganized & updated
2012-11-27 14:11:47 +00:00
hallgren def375e588 gfse: add Prelude to the list of RGL modules that can be opened 2012-11-26 15:08:16 +00:00
hallgren 818faee27e gfse: more readable layout for not so simple grammars + bug fix
To make definitions that span multiple lines more readable in guided mode,
preserve line breaks and indentation when lin and oper definitions are
displayed and edited in guided mode.

Bug fix: moving the cursor by clicking and selecting text by dragging did
not work in textareas and input fields, because those mouse event were
intercepted by the sort-by-drag-and-drop handler.
2012-11-26 14:11:12 +00:00
hallgren 18c8ff3579 gf -server + gfse: show modification time of public grammars 2012-11-23 23:21:17 +00:00
hallgren bdaf7a8772 gf -server: support overloaded opers in gfse 2012-11-23 19:59:39 +00:00
hallgren e0e8f89484 gfse: use POST requests when parsing grammar modules after editing as text
instead of GET, to avoid the Apache httpd URI length limitation.

This means that gfse can no longer use JSONP when parsing grammars, so it
has to be located on the same host as the cloud service.

Also clean away trailing white space in support.js.
2012-11-23 18:51:44 +00:00
hallgren 53858fbc81 Fix a prededence bug in GF grammar pretty printer
The pretty printer produced

	mkDet pre {"a"; "an" / vowel} Sg

which is not accepted by the parser. The parser assigns pre { ... }, to
prededence level 4, and this is now reflected in the pretty printer, so
it prints

	mkDet (pre {"a"; "an" / vowel}) Sg

(This caused a problem in GFSE since it parsers pretty printed grammars...)
2012-11-23 18:44:08 +00:00
hallgren 9e430184ba syntax editor + minibar: fix bug with repeated switching back and forth
By avoiding "this" in callback functions, the code can be kept cleaner.
2012-11-23 13:15:16 +00:00
hallgren 24bf1f0d0e minibar: can now switch back to the minibar after switching to the syntax editor
This is done by including a lin_action when starting the syntax editor from
the minibar.
Also: added some minibar options in the syntax editor for consistency...
2012-11-22 16:42:39 +00:00
hallgren db544b1cc9 PGFService.hs: fix type error caused by change to PGF.graphvizParseTree
Note that some of the graphviz functions have backwards incompatible changes
that might also affect other clients of the PGF run-time library.

Also added graphvizDefaults and export it together with GraphvizOptions from 
the PGF run-time library.
2012-11-22 15:27:16 +00:00
hallgren 7bcf05e3e7 minibar: fix bug introduced in previous update
It could case JavaScript error

	ReferenceError: initial_grammar is not defined
2012-11-21 19:01:52 +00:00
hallgren e7b14316dd minibar+syntax editor integration, work in progress 2
+ Transfer current astract syntax tree when activating the syntax editor
  from the minibar.
+ Add options to start the minibar with given input. You need to include
  the current grammar url, the current language and the input, like this:

    initial_grammar: "/grammars/Foods.pgf",
    initial: { from: "FoodsEng", input:["that","fish","is","fresh"]}

+ Fix a style sheet clash.
2012-11-21 17:13:21 +00:00
hallgren 8bd58a0297 minibar+syntax editor integration, work in progress 2012-11-21 15:07:59 +00:00
hallgren 29d8b182ab gfse: remove obsolete files 2012-11-20 15:31:31 +00:00
hallgren 2ee6211fe1 GF cloud: move gf-web-api-examples.html out of minibar directory 2012-11-20 15:18:05 +00:00
hallgren 3eaeaed8fd GF cloud: move support.js and pgf_online.js
Created the folder js and moved minibar/support.js and minibar/pgf_online.js
there, to emphasize their status as app independent support libraries.

There are probably more files that should be moved here.

The cloud apps have been updated, externally hosted apps that link directly
to our server need to be updated too.
2012-11-20 12:56:48 +00:00
hallgren 889d7db76d GF web service API examples: update examples of the browse command
Also some style tweaks.
2012-11-17 17:42:30 +00:00
hallgren ca5b066588 PGF service: command=browse&format=json returns info on all cats and funs
The browse command used to have a required parameter id=... and it returned
info on the given identifier only. Now, if format=json, the id=... parameter
can be omitted to get info on all identifiers at the same time. The returned
JSON structure in this case is

        {cats:{...},funs:{...}}

where the inner objects contain one field per category and function,
respectively, in the same format as when you request info on one category or
function.
2012-11-17 14:22:30 +00:00
hallgren 73c78c8840 GF web service API examples: added the "abstrjson" command
It converts an abstract syntax tree (represented as a string) to a JSON
structure.
Also some HTML code cleanup.
2012-11-17 11:55:32 +00:00
hallgren 7d616c01b4 new-comp: rewrite f (x|y) into (f x|f y)
With this change, all languages in molto/mgl/mixture except German and Polish
can be compiled.
2012-11-16 13:47:10 +00:00
hallgren 225cebf121 Updated summer school links
You can now use the following links to refer to GF Summer School web pages:

- Latest summer school: http://school.grammaticalframework.org/
- 2009 summer school: http://school.grammaticalframework.org/2009
- 2011 summer school: http://school.grammaticalframework.org/2011
- 2013 summer school: http://school.grammaticalframework.org/2013

This is accomplished with DNS and web server configuration. No files have
been moved, so this does not break any existing links (except that
http://school.grammaticalframework.org/ now refers to the latest summer school
instead of the 2011 summer school).
2012-11-15 21:05:10 +00:00
hallgren 9a49825d55 download/release-3.4.t2t: starting to prepare for the next release of GF
Feel free to add to the release notes.
The file can be renamed if the next release will not be called GF 3.4.
2012-11-15 19:33:42 +00:00
hallgren 2cc39661d9 Add flag --document-root for user with gf --server
This can make it easier to test cloud service updates before installing them.
2012-11-14 13:52:45 +00:00
hallgren 595a69ba0c GF usage message fixes
Change the command name from gfc to gf in the usage message header.
Correct spelling of "overide" to "override" in -gf-lib-path description.
2012-11-14 13:49:10 +00:00
hallgren 27e675910a 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 63093c32f3 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 1c0429c322 GF.Grammar.PatternMatch: relax overly restrictive type signatures 2012-11-07 17:23:08 +00:00
hallgren 8e6c81fe5a Some changed/new utility functions
GF.Data.Utilities:  Rename mapFst to apFst, mapSnd to apSnd.
		    Add apBoth, mapFst, mapSnd, mapBoth.
GF.Data.Operations: Remove onSnd (same as apSnd)
2012-11-07 15:31:45 +00:00
hallgren 1dbf575a71 gf -server: make it possible to pass arbitrary flags/options to gf when compiling grammars
For example, you can add -optimize-pgf:

  http://localhost:41296/cloud?dir=...&command=remake&-optimize-pgf=&Foods2Eng.gf=&Foods2Swe.gf=
2012-11-06 15:29:38 +00:00
hallgren 680d536279 TransQuiz: use the grammars from the same server
Unlike the other web apps in the cloud, the translation quiz was configured
to use the grammars at http://www.grammaticalframework.org/grammars.
2012-10-30 14:36:55 +00:00
hallgren 672584c048 GF home page: avoid line breaks in dates in the news section 2012-10-26 14:05:27 +00:00
hallgren 140f237736 gf.cabal: version of parallel needs to be >=3 2012-10-26 09:25:45 +00:00
hallgren b2965730f1 GF.Grammar.Macros: add function collectPattOp
collectPattOp :: (Patt -> [a]) -> Patt -> [a]
2012-10-25 16:12:21 +00:00
hallgren 619c341ee9 GF.Grammar.Macros: add function composPattOp
For Patt, analogous to composOp for Term.
2012-10-24 22:40:18 +00:00
hallgren 9f8c0f86f1 Compute.ConcreteNew: support variants
Also add a missing check for Predef values in apply.
2012-10-24 17:49:20 +00:00
hallgren 6fcd435cd9 GeneratePMCFG: prefix messages about "impossible" errors with 'Internal error:'
Just to make them easier to spot when wading through thousands of lines of
warnings...
2012-10-24 17:08:52 +00:00
hallgren f7cb80008b gf-cloud-api.html: document the new command=remake
Also improve the documentation of the responses to the upload and make
commands.
2012-10-23 21:16:31 +00:00
hallgren b810b5000c gf -server: introduce command=remake for recompiling previously uploaded grammars
Also remove some old commented out code.
2012-10-23 20:23:01 +00:00
hallgren f273c643b5 fracas: code to generate HTML treebank 2012-10-23 12:55:32 +00:00
hallgren bb93e18ec1 cleanup
Simplify the implementation of writeUTF8File and use it in one more place.
Remove unused imports left over after a previous change.
2012-10-23 11:48:23 +00:00
hallgren 0bf9627d79 Add Chinese to the list of installed RGL languages and support it in the web apps
Aarne says the Chinese resource grammar is complete, but not yet completely
correct.
2012-10-22 10:16:10 +00:00
hallgren be75546965 Refactor compileSourceModule
There was 55 lines of rather repetitive code with calls to 6 compiler passes.
They have been replaced with 19 lines that call the 6 compiler passes
plus 26 lines of helper functions.
2012-10-19 20:14:11 +00:00
hallgren 1195db1da3 Consistenly use SourceGrammar instead of [SourceModule] when calling compiler passes 2012-10-19 19:56:00 +00:00
hallgren 921b37834c Phrasebook: make clean 2012-10-19 14:08:09 +00:00
hallgren 584b6ba86d Use NOINLINE for build info and darcs version info
... to avoid unnecessary recompilation of other modules.
2012-10-18 20:01:22 +00:00
hallgren 9a022a141e gfse: grammars can now contain one-line descriptions
Also fixed two small problems with public grammars.
2012-10-18 12:48:39 +00:00
hallgren 7ca6426807 gfse: small fix 2012-10-16 23:06:37 +00:00
hallgren d01e790d95 gfse: identify inherited grammars by their unique id
This helps avoiding problems if an inherited grammar is renamed, or if there
is more than one grammar with the same name.
2012-10-16 22:10:49 +00:00
hallgren 4c0c7a994b GF.Command.Command: turn CommandOutput into a newtype
The output from commands is represented as ([Expr],String), where the [Expr] is
used when data is piped between commands and the String is used for the final
output. The String can represent the same list of trees as the [Expr] and/or
contain diagnostic information.

Sometimes the data that is piped between commands is not a list of trees, but
e.g. a string or a list of strings. In those cases, functions like fromStrings
and toStrings are used to encode the data as a [Expr].

This patch introduces a newtype for CommandOutput and collects the functions
dealing with command output in one place to make it clearer what is going on.
It also makes it easier to change to a more direct representation of piped
data, and make pipes more "type safe", if desired.
2012-10-16 13:01:03 +00:00
hallgren a3aa54a746 demo page: adding a link to the question answering demo from the ICFP 2012 GF tutorial 2012-10-12 15:33:38 +00:00
hallgren be84d37c41 gfse: adding a section about public grammars in about.html 2012-10-09 14:54:50 +00:00
hallgren 4c0b6f29f2 gfse: show the grammar list if the currently selected grammar can not be loaded
Avoid showing a blank page if there is an unexpected problem with the grammars
in localStorage.
2012-10-09 13:44:34 +00:00
hallgren f53ab8b353 gf -server: /parse command now supports input with character codes > 255
This enables the use of arbitrary Unicode character in text mode in GFSE.
2012-10-09 13:14:18 +00:00
hallgren b5bf276e9c 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 2d371b7681 simple translator: make it usable on iOS devices
To make the popup menus accessible, use a simple trick to activate the
simulate-hovering-by-tapping behaviour.
2012-10-04 22:29:42 +00:00
hallgren 2afa20f197 simple translator: bug fix
"Edit/Add a segment..." stopped working at some point.
(Importing text still worked.)
2012-10-04 18:02:31 +00:00
hallgren 1eef49ac93 gfse: various code improvements and prelimiary support for public grammars 2012-10-04 15:21:30 +00:00
hallgren ec9dc23f46 gfse: fix a bug caused by sharing when copying a linearization function in the row view
Functional programming is easier than imperative programming!
2012-10-03 13:54:35 +00:00
hallgren 3582ae6e08 gfse: some refactoring 2012-10-03 13:22:50 +00:00
hallgren a1d2d11057 gfse: row view: add a button to copy a linearization
When adding a new function, you can enter a linearization for one language
and then copy it to the other languages with one button click.
2012-10-03 12:37:47 +00:00
hallgren a47d2da448 gfse and cloud service documentation update 2012-10-02 17:32:52 +00:00
hallgren 92acb3691b index.html: better news formatting 2012-10-02 14:19:33 +00:00
hallgren 38f899350a index.html: change to and explicitly declare that the character encoding is UTF-8
...to avoid complaints from HTML validators and potential problems in browsers
with different default character encodings.
2012-10-02 13:57:10 +00:00
hallgren 63e589372e gfse: you can now add new functions from the matrix view 2012-10-02 13:50:35 +00:00