Commit Graph
100 Commits
Author SHA1 Message Date
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
hallgren 357b8b33ba gfse: more intuitive buttons for switching between the column, matrix & row views 2012-10-02 13:09:56 +00:00
hallgren 24f362ec00 gfse: adding a "row" view
Accessed by clicking on a function in the Abstract column in the matrix view.
2012-10-01 21:08:09 +00:00
hallgren a782207841 gfse: matrix view improvements
+ You can click on a column header to switch to column view (i.e. the
  corresponding abstract/concrete syntax tab).
+ The categories and functions in the abstract syntax can be edited directly
  in the matrix view.
2012-10-01 16:29:59 +00:00
hallgren 00490c07dd gfse: small linearization type display adjustment 2012-09-30 19:53:57 +00:00
hallgren 5f3e3e8fa2 gfse: display "??" instead of "null" in linearization types when lincats are missing 2012-09-30 19:47:30 +00:00
hallgren 996f79f875 gfse: show the types of linearization functions when hovering over their names 2012-09-30 19:33:25 +00:00
hallgren ca58233bf7 PGF service & minibar: put a limit on the number of parse trees
+ In the PGF web service API, the commands parse, translate and translategroup
  now accept a limit parameter. It limits the number of parse trees returned.
  If no limit is given, the behaviour is backwards compatible, i.e. no limit
  is applied.
+ In minibar, the limit is now set to 25 by default.

This change is based on a suggestion by Kaarel Kaljurand.
2012-09-30 15:35:25 +00:00
hallgren 94e6ee62ec Make two more page more mobile friendly 2012-09-28 20:55:30 +00:00
hallgren ac6c8971fc Make the GF web site more mobile friendly
Most of the pages on the GF web site have an exemplary simple design,
with just one column of text. This make them adapt exceptionally
well to screens of different sizes. In particular, they should be
easy to read even on smartphones.

However, smartphone browsers like Mobile Safari and the default
Android Browser assume that pages do *not* adapt well to small
screens, so by default they emulate a big screen, forcing the user
to zoom in to a part of the page to be able to read it. By adding
the meta tag

  <meta name = "viewport" content = "width = device-width">

the big screen emulation can be turned off, allowing pages to be
formatted to fit the actual screen size and text to be displayed
at a readable size.
2012-09-28 20:26:13 +00:00
hallgren 999d02eb30 gfse & cloud improvements
+ Added "Symbolic" to the list of resource modules that can be opened.
+ Clicking on the name of an opened resource module now displays the list
  operations it provides. (Implemented using show_operations in the GF shell.)
+ Added a GF version info link to the cloud service start page.
2012-09-28 14:27:18 +00:00
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