Commit Graph
100 Commits
Author SHA1 Message Date
hallgren 9ab4c04b5c minibar documentation updates 2012-08-27 14:56:10 +00:00
hallgren 461b5d2f39 Add 'make deb' to Makefile, for creating Debian packages
Also updated the debian/* files.
It should now be easy to create Debian packages under Ubuntu 11.10 & 12.04.
See also the notes in the Makefile.
2012-08-22 17:25:10 +00:00
hallgren 598d1747c8 Updated the GF Developers Guide
+ The instructions have been modernized and simplified slightly and should now
  work again. (I have not verified it on Windows.)
  Using 'cabal' instead of 'runghc Setup.hs' avoids some problems.
+ Also, download/index.html has simpler installation instructions sufficient
  for many users, so mention it in the main README file.
+ Also adjusted the main Makefile.
2012-08-06 16:14:47 +00:00
hallgren 636d0649f8 translator: keep cloud docs and local docs apart
+ show a cloud icon next to the document name if it is stored in the cloud
+ in addition to the name of the current document, remember if it is stored in
  the cloud, so that the right document is loaded next time you open the
  translator.
2012-08-02 12:54:15 +00:00
hallgren 4d526b152a gfse: matching colors in cloud download/upload icons 2012-08-02 12:12:59 +00:00
hallgren 860a014f2e GFServer.hs: binary files can now be uploaded to the cloud
Karel wants to upload PGF files.
2012-08-01 18:10:00 +00:00
hallgren dca98c3533 gf-cloud-api.html: markup fix 2012-08-01 15:39:30 +00:00
hallgren 8da1bbd17d translator: code cleanup and bug fixes 2012-07-27 15:06:02 +00:00
hallgren 7e68ae7248 translator: remove debug logging 2012-07-25 14:31:39 +00:00
hallgren 63fd9d44e7 translator: per segment translation method selection 2012-07-25 14:27:27 +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 e3a01cdf49 GF.Infra.CheckM: comment out unused Context argument 2012-06-26 15:08:18 +00:00
hallgren 5b577baf02 Report many type errors instead of stopping after the first one
In GF.Compile.CheckGrammar, use a new topological sorting function that
groups independent judgements, allowing them all to be checked before
continuing or reporting errors.
2012-06-26 14:46:18 +00:00
hallgren 0b1a963d7a Fix for warning messages from checkMapRecover
Reimplemented it with the new function accumulateError.

Also keeping the formatting of errors and warnings unchanged for now, to avoid
potentially causing problems in the GF Eclipse Plugin.
2012-06-25 15:55:59 +00:00
hallgren abb1aedd3d GF.Compile.Rename: report many errors instead of stopping after the first one
Using accumulated errors in the Check monad.

TODO: some errors are still not accumulated, but thanks to checkMapRecover
at least one error per judgement is reported.
2012-06-25 14:15:02 +00:00
hallgren ca4091599f Check monad: support for accumulated errors
In addition to warnings, the Check monad in GF.Infra.CheckM can now accumulate
errors. There are two new functions

	checkAccumError: Message -> Check ()
	accumulateError :: (a -> Check a) -> a -> Check a

The former (with the same type as checkWarn) is used to report an accumulated
(nonfatal) error. The latter converts fatal errors into accumulated errors.

Accumulated errors are reported as regular errors by runCheck.

Also, the Check monad type has been made abstract.
2012-06-25 14:01:58 +00:00
hallgren bd7a332b21 translator: parallel text view layout adjustments
And some other small code changes.
2012-06-21 23:06:07 +00:00
hallgren 0a5d3006dd translator: bug fix for copy/paste import 2012-06-21 23:03:12 +00:00
hallgren 49ad3a6a23 gfse/sort.js: make it more resusable
Move the gfse-specific list of sortable tags and class names from sort.js
to editor.js.
2012-06-21 15:39:31 +00:00
hallgren 9d32b629a9 translator: insert and delete segments
You can now insert new segments anywhere, now just at the end.
You can now delete any segment, not just the last one.
2012-06-21 14:14:36 +00:00
hallgren 31d68ca225 gf-people.html: updated some broken links
www.cs.chalmers.se -> www.cse.chalmers.se
2012-06-20 20:40:26 +00:00
hallgren c15f9f73c1 GF home page: link to PGF library API documentation 2012-06-20 12:04:04 +00:00
hallgren 983c72ba66 translator: style adjustments 2012-06-19 14:45:50 +00:00
hallgren 5a96795039 translator: expanatory text for local file import 2012-06-19 14:09:24 +00:00
hallgren 2a55b77d4b translator: import text from local files
It works in Chrome, Firefox and Opera, but not Safari.
(The browser must support the File, FileList and FileReader APIs.)
2012-06-19 13:59:19 +00:00
hallgren 7a7beabe03 GF cloud api doc fixes 2012-06-18 15:18:02 +00:00
hallgren b82c93ddf6 cloud service: add preliminary cloud service API documentation 2012-06-18 13:08:32 +00:00
hallgren d726999bc7 transaltor: reduce code duplication 2012-06-18 13:08:15 +00:00
hallgren fe34a29f4f Add file name to error message when reading a bad .gfo file (in some cases)
This turns error messages like 

	gf: too few bytes. Failed reading at byte position 1

	gf: /some/path/somefile.gfo: too few bytes. Failed reading at byte position 1

but a better fix would be to ignore bad .gfo files and compile from source.
The problem is the way this decision is made in
GF.Compile.ReadFiles.selectFormat...
2012-06-15 10:15:16 +00:00
hallgren d0281ef22f translator: added support for the Apertium translation service
Also added feedback to source & target language menus to indicate which
languages are supported by the selected translation method. For Apertium, the
source language menu shows all possible source languages, and the target menu
shows the possible target languages for the chosen source language.
2012-06-13 21:34:59 +00:00
hallgren 70b338de20 translator: documents can now be saved in the cloud
some other small fixes
2012-06-12 15:36:41 +00:00
hallgren 0089dcdb78 gfse & translator: change language code for Japanese to Jpn 2012-06-12 13:07:54 +00:00
hallgren 636e8ac75b gf-help-full.txt: updated with new command option 'ma -known' 2012-06-12 11:34:47 +00:00
hallgren 60d8ec58a2 minibar-api.html: small documentation improvements 2012-06-11 16:00:03 +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 da80a1d3dd translator: source segments can now be edited 2012-06-11 14:10:26 +00:00
hallgren 1aecfe605b More detailed version info in the output of "gf -version" 2012-06-08 11:17:46 +00:00
hallgren 6a1e6eed29 translator.css: restore lost width of input field 2012-06-08 11:16:21 +00:00
hallgren 2e4aedd211 Setup.hs: fix two problems with querying darcs 2012-05-30 16:15:59 +00:00
hallgren 25c5ad2bf0 More detailed version info in the startup message
The Setup.hs script now queries darcs to create more detailed version info
to include in the startup message.

Note thought that with distributed version control systems like darcs,
the only way to uniquely identify a version is by the set of patches included.
Since the patches are not totally ordered, just looking at the last patch is
not enough.

For official releases, we tag the current set of patches so we can refer to
it by name (e.g. RELEASE-3.3.3).
2012-05-30 15:45:45 +00:00
hallgren 07e6ff8963 translator: segment imported text based on punctuation 2012-05-29 14:47:59 +00:00
hallgren 5108292f80 translator: better support for ambiguous translations
The translator picks "the first" translation by default, but the user can
choose among the generated translations from a popup menu.
2012-05-28 16:42:02 +00:00
hallgren a3a491d8fc GFServer.hs: apply UTF8 encoding when saving uploaded files
This fixes a bug introduced on May 16.
2012-05-28 11:21:30 +00:00
hallgren 3eeb3d2377 translator: adding "Parallel texts" view
This is in addition to the existing "Segment by Segment" view.
Also some minor documentation updates.
2012-05-27 19:19:54 +00:00
hallgren 25435a6912 gf -server: remove debug output 2012-05-27 11:52:15 +00:00
hallgren 33165aa8e3 translator: you can now import text by copying and pasting 2012-05-25 16:48:03 +00:00
hallgren 842b321ce9 translator: use a more robust test for localStorage support and show a warning if it is missing 2012-05-23 14:39:05 +00:00
hallgren eb380dfb80 translator: fix typo 2012-05-16 14:56:32 +00:00
hallgren ced72bf07b translator: update About page 2012-05-16 14:54:16 +00:00
hallgren e5ec226716 translator: use GF's text lexer/unlexer to obtain more natural looking text
Note though that the unlexer does the wrong thing with initial words that are
supposed to be capitalized, e.g. "I am ready.", "Spanish wine is good.", so
these sentenses are not translated at the moment.
2012-05-16 14:42:26 +00:00
hallgren 8172cf7d94 GFServer.hs: apply UTF8 decoding to all server input 2012-05-16 14:03:09 +00:00
hallgren 5c880fc15b translator: file browser shows files alphabetically now 2012-05-16 13:25:18 +00:00
hallgren 75144d2f7a translator: bug fix
My menu hiding hack didn't work in Gecko browsers because of a difference in
the behaviour of the JavaScript setTimeout function.
2012-05-16 11:53:27 +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 d13f71a27e Integrate Japanese
* Update Setup.hs to build Japanese by default.
* News item about Japanese on the home page.
* Add Japanese to the supported RGL imports in the grammar editor (gfse).
2012-05-15 13:11:32 +00:00
hallgren 496897c8e1 Quick updates to doc/gf-developers.t2t 2012-05-15 12:51:58 +00:00
hallgren 3fed5b1cbc Demos: add a note that the WebAlt Math translator is out of order 2012-05-04 12:52:05 +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 d19854cf0f minibar_offline: fix the link to the regular minibar 2012-04-30 14:03:58 +00:00
hallgren b57b7bdc4b minibar_offline: Update the API exported by pgf_offline.js to be compatible with pgf_online.js
This makes the minibar offline demo work again.
2012-04-30 13:53:55 +00:00
hallgren 82e1ee4a95 minibar: word-for-word replacements: use concrete syntax for replacement words when possible
Instead of showing the name of a function in the abstract syntax, linearize it
and show the result. For functions with argument, e.g. That : Kind -> Item,
the function is applied to the right number of placeholder arguments: 'That ?'.
If the linearization fails, the name of the function is shown anyway.
2012-04-27 14:00:01 +00:00
hallgren 5241469c8e minibar&gfse: grammar extension user interface improvements
The grammar extension is now done with a regular HTML form, so you can use the
TAB key to move between the fields and press ENTER to submit the extension when
you are done.
TODO: more immediate error feedback
2012-04-24 17:13:33 +00:00
hallgren 42f96474a6 minibar & cloud service: minor style changes
Also include the GF logo on the cloud service start page.
2012-04-19 15:34:56 +00:00
hallgren 22a2945d02 Minibar documentation update
Document recent additions in minibar/about.html.
2012-04-19 12:36:03 +00:00
hallgren fe53747a45 minibar: add buttons to use generated translations as input
This functionality was available in the origial Fridge Poetry app, but has been
missing in minibar until now.
2012-04-18 16:26:49 +00:00
hallgren c5308e99da download page: fixed a typo 2012-04-14 11:50:11 +00:00
hallgren da98d9b527 download page: added a note that Xcode 3.2.3 or later is needed on Mac OS X
The Haskell Platform page for Mac states that Xcode 3.2 or later is ok, but
there seems to be a problem with Xcode 3.2.2.

Also added some other small clarifications.
2012-04-14 10:03:27 +00:00
hallgren 645b29b769 minibar: fix to prevent the typed input field from losing focus when turning word-for-word replacment on or off 2012-04-11 14:03:39 +00:00
hallgren 840f982fd4 minibar: internal state type change
The current intput is now represented as an array of words instead of as a
string.
(This is the kind of change is scary to do in a dynamically type language
like JavaScript. In a statically typed language like Haskell you can do it
with confidence, since you know the compiler can help you catch all mistakes...)
2012-04-10 18:00:13 +00:00
hallgren 69623bf5d0 minibar_input.js: internal state simplification
Get rid of list of previous states, which was only used to delete the last
word.
2012-04-10 16:49:51 +00:00
hallgren 15bf21c091 minibar/pgf_online.js: pass arguments to the browse function in the same way as the other functions
Also document it in gf-web-api-examples.html.
2012-04-10 13:33:12 +00:00
hallgren 4ddf81c05f minibar&gfse: grammar extension user interface fixes
It works OK now, but it could be better, e.g. the number of mouse clicks
required to enter an extension could to be reduced...
2012-04-05 15:25:10 +00:00
hallgren be89ed18b3 minibar&gfse: first working grammar extension interface in minibar
There are still some user interface wrinkles to iron out.
2012-04-04 17:00:25 +00:00
hallgren 117ae47436 minibar: remember current input
If you leave the minibar and later return, the previous input will be
restored. One input string per grammar is rememebered, so you can also switch
back and forth between grammars without losing the input.
This is implemented using localStorage, i.e. the data is stored locally on
the user's device.
2012-04-03 14:53:23 +00:00
hallgren ad8a889894 minibar: better implementation of word replacement
Instead of trying to reconstruct the abstract tree from the bracketed string,
use the node numbers (the field called "fid") to identify which node in the
abstact syntax tree a word in the bracketed string corresponds to.
2012-04-02 16:05:11 +00:00
hallgren d3e809f95b gf-server.cabal: mtl is needed to build pgf-server now 2012-04-02 15:58:21 +00:00
hallgren df4183d92e PGFService.hs: add web API function "abstrjson"
Abstract syntax trees are represented as strings in the web API. To make them
easier to manipulate in JavaScript, the new function converts them to JSON.

To support structural editing, the nodes are numbered in the same way as in
the bracketed string created when linearizing an abstract syntax tree.

Example: "Pred (That Fish) Fresh" is converted to

	{fun:"Pred",fid:3,
	 children:[{fun:"That",fid:1,
		    children:[{fun:"Fish",fid:0}]},
		   {fun:"Fresh",fid:2}]}
2012-04-02 15:42:43 +00:00
hallgren 58e45457f2 support.js: add an implementation of Array.isArray for older browsers that lack it 2012-04-01 18:23:28 +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 7114c59827 gfse&minibar: work in progress on grammar extension fromminibar 2012-03-29 17:10:36 +00:00
hallgren bb44210ff0 gfse: show an informative error message in browsers that lack support for localStorage 2012-03-29 14:11:38 +00:00
hallgren 8195c36f6f Workaround for bug in ghc-7.2.2
An apparent bug in ghc-7.2.2 causes the type Value to be exported from PGF.Data.
Workaround: restrict the imports from PGF.Data in GF.Command.Abstract and
GF.Compile.GeneratePMCFG to avoid the clash with locally defined type Value.
(ghc-7.0.4 and ghc-7.4.1 appear to be free from this bug.)
2012-03-26 23:56:56 +00:00
hallgren 3f1f9211db minibar: support for adding grammars from several servers to the grammar menu
You can also add grammars from several directories on the same server of course.
The included minibar configuration file adds the user's own grammars from the
grammar editor.
2012-03-26 17:17:54 +00:00
hallgren 833f72b2e1 gfse: enable word replacement in minibar when activated from the editor 2012-03-26 17:13:40 +00:00
hallgren ecd6d193ce gfse&minibar: fix bug caused by function name clash
+ Function div_id was defined in both editor.js and support.js. Solution:
  moved the more general version from editor.js to support.js.
+ Function div_class was defined in both editor.js and support.js. Solution:
  resolv incompatibility with an argument type test and put the generalized
  function in support.js.
2012-03-26 17:08:29 +00:00
hallgren dc67d6015e gf-book: apply GF style sheet
Also brought index.txt and index.html back in sync. (It looks like someone
updated index.html instead of updating index.txt and regenerating index.html.)
2012-03-26 15:02:15 +00:00
hallgren 402ec51ac4 doc/icfp-2012.t2t: link back to ICFP 2012 web site 2012-03-23 13:27:08 +00:00
hallgren 4d28af9352 GF home page: News: GF Tutorial at ICFP 2012 2012-03-23 13:20:58 +00:00
hallgren 68b8a78e76 minibar: word-for-word replacement fixes
Check that the reconstructed abstract syntax tree is type correct before
enabling word-for-word replacement. Show an error message if word replacement
nevertheless fails.
2012-03-22 14:33:42 +00:00
hallgren f899d54057 pgf_online.js: error callbacks
To enable customized error handling, the methods in the pgf_online objects and
the AJAX server call functions in support.js accept an error callback function
as an extra argument, in addition to the callback (continuation) for normal
results.
2012-03-22 14:09:53 +00:00
hallgren 45ba976e3e ICFP 2012 tutorial page: use the GF stylesheet for a consistent look 2012-03-20 14:04:57 +00:00
hallgren e988171c5c minibar: word-for-word replacement fix
Turn off the highlighting that indicates that word-for-word replacement is
enabled when it is no longer available (e.g if a word is deleted and there no
longer is a complete parse).
2012-03-19 15:24:35 +00:00
hallgren 053a29bd67 minibar: fix for recently introduced bug affacting Webkit browsers
It seems that in Gecko browsers, the effect of "with(x) stmts" reaches inside
the bodies of local functions in stmts, but in Webkit browers it does not.
2012-03-19 15:15:47 +00:00
hallgren 253244bad9 minibar: don't try to select the most recently used grammar if it isn't in the current grammar list 2012-03-19 00:35:10 +00:00
hallgren 3398e1060b minibar: automatically select the most recently used grammar when returning to the minibar 2012-03-18 23:54:50 +00:00
hallgren c234e58a6a PGF run-time library: function names in BracketedString (experimental)
+ Make room for function names in the BracketedString data structure.
+ Fill in function names when linearizing an abstract syntax tree to a
  BracketedString.
+ Fill in wildCId when it is not obvious what the function is.
+ Function bracketedLinearize: for compatibility with the other linearization
  functions, return Leaf "" instead of error "cannot linearize".
+ Export flattenBracketedString from module PGF.
+ PGFServce: make function names available in the JSON representation of
  BracketedString.
2012-03-18 20:12:26 +00:00
hallgren c62a015eca minibar: word-for-word replacement (experimental)
The new functionality also needs some new PGF service functionality, which will
be provided in a separate patch.
2012-03-18 20:02:11 +00:00
hallgren 2b845b49e4 Cloud service start page layout fix for small screens 2012-03-17 16:23:54 +00:00
hallgren 7de13a100c Adding a .ghci file to make it easier to load GF in ghci. 2012-03-16 14:01:29 +00:00
hallgren 661d7edfe7 PGFService.hs: command=browse can now produce output in JSON format.
To get JSON output, add the parameter format=json. The JSON structure contains
the output from the function PGF.browse.
The default is format=html for backwards compatibility.
2012-03-16 13:55:19 +00:00