Commit Graph
100 Commits
Author SHA1 Message Date
hallgren 86d17827ee GF shell, show_operations: nicer looking types for linearization functions
Adding a lock field to the result type of linearization functions.
TODO: figure out how to add a lock field to the argument types too.
2012-09-28 12:38:26 +00:00
hallgren 8154e480dd GF shell, show_operations: also show the types of linearization functions
This is a simple change in GF.Grammar.Lookup.allOpers, which is used only in
the implementation of the show_operations command in the shell.

This is useful when importing a concrete syntax (like LexiconEng) as a resource.
However, the types don't always look as nice as I hoped...
2012-09-27 15:55:20 +00:00
hallgren 7e8bab04c5 Setup.hs: add Maltese to the list of known RGL languages, but don't compile it by default 2012-09-27 14:28:59 +00:00
hallgren 5e71c365d1 SIO bug fix
Line breaks were missing when capturing stdout. (putStrLn acted like putStr.)
2012-09-26 18:13:47 +00:00
hallgren 1b359acbf2 phrasbook/Compile.hs: make it work with ghc>=7.2 2012-09-26 15:37:37 +00:00
hallgren 63214d2bf6 gf -server: add a GF version info request
GF version info can now be obtained from http://localhost:41926/version
Also removed some unused imports.
2012-09-26 15:23:29 +00:00
hallgren 82c9354e0d Setup.hs: Persian does not support mkPresent 2012-09-26 15:21:34 +00:00
hallgren 81895ad067 Add Persian to the list of installed RGL langauges 2012-09-26 13:04:18 +00:00
hallgren 43d5016996 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 1adc0ed9f7 GF.Infra.SIO.hs: adding the SIO monad (where S = Shell or Safe)
The SIO monad is a restriction of the IO monad with two purposes:

+ Access to arbitrary IO operations can be turned off by setting the environment
  variable GF_RESTRICTED. There is a limited set of IO operations that are
  considered safe and always allowed.

+ It allows output to stdout to be captured. This can be used in gf -server
  mode, where output of GF shell commands is made part of HTTP responses
  returned to clients.
2012-09-25 18:38:13 +00:00
hallgren 69de623c17 GF.Command.Commands: allCommands is now a constant
The dependency on PGFEnv has been moved from the list to the exec function of
the commands in the list. This means that the help command no longer needs
to generate a new list of commands and that the state of the shell
(type GF.Command.Interpreter.CommandEnv) no longer needs to contain the list
of commands.
2012-09-25 11:42:32 +00:00
hallgren 2f500e521d GFServer.hs: code improvements
Use a monad in the request handler to make the code a bit more modular and
readable.
2012-09-22 22:10:10 +00:00
hallgren a9476634a4 gf -server: also restrict the paths of uploaded files 2012-09-21 14:53:11 +00:00
hallgren d7890b628f gfse: added a new "matrix view" of grammars 2012-09-21 10:45:10 +00:00
hallgren b3f6d3612b simple translator: make it possible to delete documents 2012-09-21 09:07:31 +00:00
hallgren db39fdaa68 gf -server: improved security checks
+ More restrictive limits on which file paths can be downloaded and removed.
+ Add more extensions to the list of file types that may be removed. In
  particular, allow documents created by simple translation tool to be removed.
2012-09-21 09:00:48 +00:00
hallgren 6d24f74393 simple translator: bug fix
A bug in the line break change prevented text import from working.
2012-09-20 07:49:13 +00:00
hallgren decefce6bc simple translator: accept DOS, Mac and Unix line breaks when importing text 2012-09-17 15:58:40 +00:00
hallgren fa3c87fb64 minibar-api.html: documentation fixes 2012-09-17 15:52:57 +00:00
hallgren 597a3d7573 doc/icfp-2012: adding a link to my slides 2012-09-14 21:18:36 +00:00
hallgren 38db61e34f doc/gf-developers: a few more small fixes 2012-09-11 19:08:50 +00:00
hallgren 8323e78b99 doc/gf-developers: fixed a typo 2012-09-11 18:43:40 +00:00
hallgren 8f85daa94a simple translator: export GlobalSight Download Files
TODO: consider using a better way to save to a local file
2012-09-11 14:30:09 +00:00
hallgren 0cc0a03ac9 simple translator: more work on GlobalSight support
Disable editing source segments in GlobalSight documents
2012-09-11 13:23:05 +00:00
hallgren 1874e932e3 simple translator: more work on GlobalSight support
+ Retain metadata from GlobalSight Download Files.
+ Disable adding&removing segments when editing a GlobalSight documents.
2012-09-10 21:16:58 +00:00
hallgren ae528954a0 minibar: fix links to Wikipedia article on JSONP
Wikipedia moved it.
2012-09-09 23:06:26 +00:00
hallgren c7fd975c77 simple translator: support for importing GlobalSight Download Files
TODO: support for export translations in the same format.
2012-09-09 21:17:31 +00:00
hallgren 997734c8ba Add type info to "Warning: ignoring lock fields in resolving..." 2012-09-06 13:15:48 +00:00
hallgren ffd59fc226 simple translator: make it work even if Apertium is unavailable
Since Apertium is unavaiable at the moment, I can't check that things
still work properly when Aprtium *is* availalbe.
2012-08-30 13:09:22 +00:00
hallgren 7862bfb15b minibar documentation URL typo fix 2012-08-27 15:00:37 +00:00
hallgren dfcd61de00 minibar documentation updates 2012-08-27 14:56:10 +00:00
hallgren 098ddc129e 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 06c9e4999f 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 7f6c248bf1 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 2e968a01fa gfse: matching colors in cloud download/upload icons 2012-08-02 12:12:59 +00:00
hallgren 700982076c 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 89026eb963 gf-cloud-api.html: markup fix 2012-08-01 15:39:30 +00:00
hallgren 314662dd09 translator: code cleanup and bug fixes 2012-07-27 15:06:02 +00:00
hallgren 50c1635e34 translator: remove debug logging 2012-07-25 14:31:39 +00:00
hallgren 5c03e5f963 translator: per segment translation method selection 2012-07-25 14:27:27 +00:00
hallgren 241bef8a51 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 82a5c574b6 GF.Infra.CheckM: comment out unused Context argument 2012-06-26 15:08:18 +00:00
hallgren b094274c0e 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 a38efe70c6 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 382f472731 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 0a09f3e0b2 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 650abc4aff translator: parallel text view layout adjustments
And some other small code changes.
2012-06-21 23:06:07 +00:00
hallgren cd2601bd84 translator: bug fix for copy/paste import 2012-06-21 23:03:12 +00:00
hallgren b12e6ec1e4 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 6e2c7623fd 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 aa1cd0e490 gf-people.html: updated some broken links
www.cs.chalmers.se -> www.cse.chalmers.se
2012-06-20 20:40:26 +00:00
hallgren 2df13efeea GF home page: link to PGF library API documentation 2012-06-20 12:04:04 +00:00
hallgren 9d9c453a45 translator: style adjustments 2012-06-19 14:45:50 +00:00
hallgren b84f6cc3fc translator: expanatory text for local file import 2012-06-19 14:09:24 +00:00
hallgren 9bee6a9050 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 3d5efdd2d2 GF cloud api doc fixes 2012-06-18 15:18:02 +00:00
hallgren 71da012626 cloud service: add preliminary cloud service API documentation 2012-06-18 13:08:32 +00:00
hallgren c3a5840ef9 transaltor: reduce code duplication 2012-06-18 13:08:15 +00:00
hallgren b76d1ecdcd 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 ce21f9bd08 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 cc58e2d05f translator: documents can now be saved in the cloud
some other small fixes
2012-06-12 15:36:41 +00:00
hallgren 3af1dbde67 gfse & translator: change language code for Japanese to Jpn 2012-06-12 13:07:54 +00:00
hallgren f5afb024ef gf-help-full.txt: updated with new command option 'ma -known' 2012-06-12 11:34:47 +00:00
hallgren 09f5c2c82b minibar-api.html: small documentation improvements 2012-06-11 16:00:03 +00:00
hallgren 5db5c8a203 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 a026b93ecb translator: source segments can now be edited 2012-06-11 14:10:26 +00:00
hallgren 302b9f1b13 More detailed version info in the output of "gf -version" 2012-06-08 11:17:46 +00:00
hallgren e9abd71899 translator.css: restore lost width of input field 2012-06-08 11:16:21 +00:00
hallgren 22e1a5b9f7 Setup.hs: fix two problems with querying darcs 2012-05-30 16:15:59 +00:00
hallgren 13cda24924 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 7196bc8669 translator: segment imported text based on punctuation 2012-05-29 14:47:59 +00:00
hallgren 9e34a7f7fa 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 b19ae37d9c 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 943652a3d2 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 1215f2b951 gf -server: remove debug output 2012-05-27 11:52:15 +00:00
hallgren 9e32e9fde7 translator: you can now import text by copying and pasting 2012-05-25 16:48:03 +00:00
hallgren 215ec25a41 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 6f328c9040 translator: fix typo 2012-05-16 14:56:32 +00:00
hallgren 7c8a744ad1 translator: update About page 2012-05-16 14:54:16 +00:00
hallgren 5bd17709bf 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 114788a3db GFServer.hs: apply UTF8 decoding to all server input 2012-05-16 14:03:09 +00:00
hallgren 5ac7bfc326 translator: file browser shows files alphabetically now 2012-05-16 13:25:18 +00:00
hallgren adffb5f872 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 66e6b5269d 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 e90e1202c4 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 74cd9c4979 Quick updates to doc/gf-developers.t2t 2012-05-15 12:51:58 +00:00
hallgren 26ffcdbde8 Demos: add a note that the WebAlt Math translator is out of order 2012-05-04 12:52:05 +00:00
hallgren 841e54e3dc 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 3022c7d08e minibar_offline: fix the link to the regular minibar 2012-04-30 14:03:58 +00:00
hallgren c10bd79e26 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 c6c9b994d2 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 c69f69ee9c 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 9d47b83e07 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 98ed039498 Minibar documentation update
Document recent additions in minibar/about.html.
2012-04-19 12:36:03 +00:00
hallgren ff812613c8 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 6dc12cfed9 download page: fixed a typo 2012-04-14 11:50:11 +00:00
hallgren 13ce1911da 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 baadce4acd 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 68e2c0c0eb 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 89b415ac37 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