Commit Graph
100 Commits
Author SHA1 Message Date
hallgren 3dbdc56669 phrasebook/Makefile: use 'gf -run' to make missing.txt 2011-10-20 13:58:46 +00:00
hallgren a9f4d42652 Setup.hs: less verbose output during the compilation of the RGL
Only show the full gf command line if an error occurs.
2011-10-20 13:36:42 +00:00
hallgren 6c5ee3d666 PGF.hs: Add LANGUAGE BangPatterns to make GHC 7.2 happy
Also remove oddly named function forExample (topological sorting) from export
list.
2011-10-20 13:21:28 +00:00
hallgren b8124730b1 pgf-http setup: update path to minibar 2011-10-18 15:35:30 +00:00
hallgren 26b8df5cf5 minibar: adding a start category menu
+ The start category menu can be turned off by passing the option
  {startcat_menu:false} when starting the minibar.
+ Documentation updates.
2011-10-18 15:21:49 +00:00
hallgren d63724ed50 minibar: add a button to show some grammar info 2011-10-18 14:34:00 +00:00
hallgren 4c3cc9f176 pgf service: include the start category in grammar info 2011-10-18 14:31:40 +00:00
hallgren d4ee4a6133 example-based: use random generation for the examples 2011-10-17 13:51:25 +00:00
hallgren c0becec2bd Bug fix in setup for gf -server mode
Use the command "dist/build/gf/gf" instead of "gf" to compile the sample
grammars for the minibar, to avoid failing if gf is installed in a directory
which is not in the $PATH.
2011-10-14 19:34:55 +00:00
hallgren bd7cb1ab41 Show version & configuration info when gf -server starts 2011-10-12 19:00:42 +00:00
hallgren 8266df8f58 Bug fixes for gf -server mode and setup 2011-10-12 18:27:46 +00:00
hallgren 44d1a5a9f7 Improvements of "gf -server" mode and related setup
"gf -server" mode now contains everything needed to run the minibar and
the grammar editor (including example-based grammar writing).

The Setup.hs script installs the required files where gf -server can find them.
These files have been moved to a new directory: src/www.

The separate server program pgf-http is now obsolete.
2011-10-12 17:03:54 +00:00
hallgren 0aba45560d More work on support for gfse in "gf -server" mode 2011-10-11 19:17:47 +00:00
hallgren ef079ff939 gfse: make it workw ith "gf -server" cloud services 2011-10-10 19:49:17 +00:00
hallgren b138844695 Add cloud services needed by gfse to "gf -server" mode 2011-10-10 19:46:57 +00:00
hallgren 693b807cb5 minibar/support.js: added function encodeArgs. 2011-10-10 17:40:53 +00:00
hallgren 04d2dc757c More functionality in "gf -server" mode
"gf -server" mode now includes PGF service and the services to support
example-based grammar writing. (But gf -server is not quite ready to replace
pgf-http yet...) 

Also bumped GF version number to 3.2.10-darcs
2011-10-10 16:16:16 +00:00
hallgren 5b980dcb93 gfse: documentation tweaks 2011-10-07 12:14:30 +00:00
hallgren 5f0d407968 example-based grammar writing: avoid a problem by returning Nothing instead of calling error 2011-10-04 10:04:01 +00:00
hallgren 7402ff2429 gfse: browser compatibility fixes 2011-10-03 12:28:49 +00:00
hallgren dfbf4f9e14 gfse: references to the GF book in keyword tool tips and style tweaks for example-based grammar editing 2011-10-03 08:21:35 +00:00
hallgren bb585fef2c Example-based grammar writing: fix problems caused by the use of exprToAPI
The editor needs to keep track of both the raw term and the nice term returned
by exprToAPI. (Manually constructed linearization rules will now have the
raw term and can not be tested.)

Also replace metavariables in generalized terms with the apropriate parameter
from the linearization rule.

Also fix communication problems caused by inconsistent use of show/read vs
showExpr/readExpr.
2011-09-29 15:19:03 +00:00
hallgren ad725d8531 gfse: about.html updates 2011-09-28 15:26:34 +00:00
hallgren 6142258302 gfse: mention example-based grammar writing in about.html 2011-09-27 19:18:50 +00:00
hallgren cdef284b2b exb: call exprToAPI to create nicer linearization functions 2011-09-27 19:17:53 +00:00
hallgren b9b353795b Server-side support for example-based grammar writing 2011-09-27 18:59:54 +00:00
hallgren 667b37f418 gfse: work in progress on support for example-based grammar writing 2011-09-27 18:40:09 +00:00
hallgren 64beaae58f Update the shell reference manual 2011-09-27 13:20:37 +00:00
hallgren ea04171fc6 Update 19 broken links in the GF bibliography
Most of the broken link were due to the move from www.cs.chalmers.se was to
www.cse.chalmers.se in 2010.
2011-09-21 16:37:20 +00:00
hallgren 209ec0d7fe Home page news item about editor modes for GF 2011-09-20 12:51:34 +00:00
hallgren c32a244a3c Created a new page documenting available editor modes for GF
Also adding editing modes for Gedit and Geany contributed by John J. Camilleri.
2011-09-20 12:41:32 +00:00
hallgren 343e852bfe test suite: Don't fail because of the Win32/Unix text file incompatibility. 2011-09-19 13:14:01 +00:00
hallgren c8c81f77f7 Adding test case for interaction between record subtyping and record extension 2011-09-19 12:43:14 +00:00
hallgren 128cd2f5c0 gfse: add Extra and Lexicon to the list of resource modules that can be opened 2011-09-16 15:13:27 +00:00
hallgren 751fd79763 Add a command name header to the 'help -t2t' output 2011-09-15 18:19:01 +00:00
hallgren 167bc341cb Add the commands to the table of contents in the GF shell reference manual 2011-09-15 11:18:59 +00:00
hallgren 927c8c0678 Include a table of contents in the GF shell reference manual 2011-09-14 20:46:04 +00:00
hallgren 584c31bc62 Separate commands with <hr> instead of <p> in the GF shell reference manual 2011-09-14 20:39:51 +00:00
hallgren c99ae66061 Omit empty sections in GF shell reference manual 2011-09-14 20:28:21 +00:00
hallgren 642d391d73 Omit empty sections in gf help output 2011-09-14 20:26:22 +00:00
hallgren ffcddbe571 Use 'help -full -t2t' to generate the GF Shell reference manual 2011-09-14 19:43:59 +00:00
hallgren 570afd870c GF shell command 'help -t2t' outputs help in txt2tags format 2011-09-14 19:40:28 +00:00
hallgren 553474d9dc Adding a link to the GF shell reference manual on the GF home page 2011-09-14 16:24:49 +00:00
hallgren f2786ca0a0 Adding a GF shell command reference
First, plain text version generated with 'help -full' in the shell.
Introduction taken from the GF book.
2011-09-14 13:15:56 +00:00
hallgren e36af534bf gfse: added grammar cloning 2011-09-13 15:19:16 +00:00
hallgren 5f52a670e5 Mention the 3.2.9 snapshot release on the download page 2011-09-12 15:38:13 +00:00
hallgren 1748df0df8 Take snapshot, version 3.2.9 2011-09-12 14:42:54 +00:00
hallgren 38a352b3d0 gf.cabal: add Tested-With field 2011-09-12 14:33:15 +00:00
hallgren c8501547bf Don't make noexpand the default with -fcclazy
This reverts the previous change. Not preprocessing opers turns out to make a
difference in what needs to be mentioned in restricted inheritance/imports.
2011-09-09 16:17:33 +00:00
hallgren d74b4cbde8 Make -fcclazy (the new faster lazy compute_concrete) the default. Bump version number to 3.2.9 2011-09-09 13:54:19 +00:00
hallgren 312c13c2d8 Make noexpand the default optimization package when configuring with -fcclazy 2011-09-09 13:50:38 +00:00
hallgren 42ea96a5ca Remove unused function computeConcreteRec.
This also allows the parameter rec to be removed from function computeTermOpt.
(The change is made in GF.Compile.Compute.ConcreteLazy, but not in 
GF.Compile.Compute.ConcreteStrict.)
2011-09-09 12:25:27 +00:00
hallgren 8098f79941 GF.Grammar.Macros: simplify composOp and composSafeOp 2011-09-07 17:11:52 +00:00
hallgren e223d3bdb9 Make the -fcclazy configuration option visible in the build info in the GF Shell welcome message 2011-09-05 15:20:39 +00:00
hallgren 875df01dc6 Add lazy version of GF.Compile.Compute.Concrete
This patch adds GF.Compile.Compute.ConcreteLazy, which replaces the Err monad
with the Identity monad. While the Err monad makes the interpreter
(hyper)strict, the Identity monad let's the interpreter inherit Haskell's
laziness.  This can give big speedups: from 50s to 1s in one example,
from ~4 minutes to ~2 minutes for the RGL.

This is still experimental and might be buggy, so it is off by default.
You can turn it on by configuring with the -fcclazy flag, e.g.

	cabal configure -fcclazy

Let me know if anything breaks.
2011-09-01 16:39:41 +00:00
hallgren bfe4b0b2a4 GF.Grammar.*: generalized the type of some functions that can not fail from the Err monad to arbitrary monads 2011-09-01 16:35:53 +00:00
hallgren 314abe733b GF.Compile.Coding: cleaner code
Refine function codeTerm into codeTerm, codeLTerm and codeLTerms.
2011-08-31 13:55:49 +00:00
hallgren d180dadf08 GF.Infra.Modules: minor tweaks
Still keeping the modules both in a list and in a finite map. The overhead is
smaller than I initially thought.
2011-08-31 11:18:16 +00:00
hallgren b743abb375 GF.Infra.Modules: restore module dependency order invariant
It is needed by greatestResource (and similar functions, presumably).
So keep both the list and the finite map of modules. This slows down some
things, but the compilation of PhrasebookFin.pgf benefits from it.
To be continued...
2011-08-30 20:20:45 +00:00
hallgren ba10b5b0ca GF.Infra.Modules: keep the modules of a grammar in a finite map instead of a list
This speeds up the compilation of PhrasebookFin.pgf by 12%, mosly by speeding
up calls to lookupModule in calls from lookupParamValues, in calls
from allParamValues.

The invariant "modules are stored in dependency order" is no longer respected!
But the type MGrammar is now abstract, making it easier to maintain this or
other invariants in the future.
2011-08-30 18:54:50 +00:00
hallgren fe2fad8f8d GF.Grammar.Lookup: added function lookupQIdentInfo
+ Avoids some code duplication by combinging lookupModule and lookupIdentInfo.
+ Also removed lookupIdentInfo from export list, since it is not used anywhere
  else.
2011-08-30 14:53:11 +00:00
hallgren a0c785d5d0 PatternMatch.hs: commented out suspicious unused function varsOfPatt 2011-08-30 12:13:50 +00:00
hallgren 125ae7a3d3 GrammarToPGF.hs: comment out unused imports 2011-08-30 12:02:32 +00:00
hallgren 623c72ca1d pgf-http: fix a bug that caused "+" to be treaded as " " in PGF service requests URLs.
This was a bug in my workaround for a bug in the httpd-shed package. It
made it impossible to use the glue token "&+" for Turkish input in the minibar,
for example.
2011-08-25 16:58:17 +00:00
hallgren 1fccece30c pgf-service: apply the OpenMath LaTeX function only when linearizing to a
concrete language whose name ends with LaTeX.
This change also avoids duplicating output and, in addition to the linearize
command, applies the transfer also when using the linearizeAll command.
2011-08-24 09:37:55 +00:00
hallgren ba03db58a4 pgf-service: add Jordis transfer function for OpenMath LaTeX output 2011-08-23 16:25:00 +00:00
hallgren c5086bda7c minibar: documentation update 2011-08-22 17:55:47 +00:00
hallgren d45b9edcd8 minibar: quick fix to allow literals to be entered.
If you press Enter, the current word will be accepted, even if there are no
matching completions.
(You can now use names of people when constructing sentences in the Letter
grammar, for example.)
2011-08-22 17:03:47 +00:00
hallgren cf9f1057ed pgf service: external service hook: always format the output as a JSON string 2011-08-22 16:10:56 +00:00
hallgren d8d80693db pgf service: added a hook for external services
This is really reinventing CGI, people should learn how to write CGI scripts
instead...
TODO: better handling of temporary files
2011-08-22 15:34:44 +00:00
hallgren f19c496b83 minibar: documentation fixes 2011-08-21 21:35:14 +00:00
hallgren 6c8c0cdc24 minibar: bug fix for "Try Google Translate" button 2011-08-19 13:56:12 +00:00
hallgren 9c8fbd74fe gfse: fix an issue with Webkit browers
For lin and lincats with empty RHSs, there was nothing to point to to make the
edit button (the "%" button) appear in browsers based on Webkit
(Safari, Chrome).
2011-08-17 15:41:57 +00:00
hallgren 4cad2daa29 minibar: adding pgf_offline.js
This file exports the same PGF runtime interface as pgf_online.js but calls
the hs2js translation of the PGF runtime library (which is not included
in darcs).
2011-08-16 16:29:51 +00:00
hallgren 065178a64d gf.cabal: bump version to 3.2.8-darcs
This is just to make it easier to tell who has the latest version at the 
summer school. There has been some bug fixes in gf itself and some significant
additions to the RGL since 3.2 was released.

Also explicitly require Alex 2.x. The recently released Alex 3.0 has backwards
incompatible changes and does not work. GF/Grammar/Lexer.x should probably
be modified to support both Alex 2.x and Alex 3.0...
2011-08-12 14:02:24 +00:00
hallgren b2512234dd minibar: documentation and API work 2011-08-11 16:28:49 +00:00
hallgren 19d84b6de0 minibar: some functions were in the wrong file 2011-08-11 14:56:34 +00:00
hallgren 91cc4de1a2 minibar: more documentation (in minibar-api.html) 2011-08-09 15:57:40 +00:00
hallgren d4638f54ba minibar: refactoring for improved modularity
Two smaller objects have been factored out from the Minibar object:
Input and Translations. These have been placed in two separate files:
minibar_input.js and minibar_translations.js. Some common auxiliary functions
have also been moved to a separate file: minibar_support.js
2011-08-08 17:28:24 +00:00
hallgren e50731c511 minibar: resolve conflict 2011-08-08 14:08:55 +00:00
hallgren ab8ec58e08 minibar: improve pgf_online.js
pgf_online.js has been simplified and generalized to support the full
GF Web Service API. The changes are backwards incompatible, unfortunately.
The documentation and minibar.js have been updated accordingly.
2011-08-03 15:21:38 +00:00
hallgren a0ec59ccda minibar: small code and documentation tweaks 2011-08-03 14:24:47 +00:00
hallgren 8cf7671e07 gfse: added links to download PGF files for user's grammars 2011-08-01 15:01:14 +00:00
hallgren a918bcaf68 gfse: add missing file share.html to darcs
Also fix bug in share.html by adding cloud.js to the list of loaded JavaScript
files.
2011-08-01 14:27:29 +00:00
hallgren b58fc79908 gfse: some correctness checks for concrete syntax
The editor now calls the GF server to check the syntax of expressions that
are part of concrete syntax (except for parameter types).
This is currently done by using the cc command of the GF shell, which puts
some unnecessary restricitons on operation definitions...
2011-07-29 15:44:19 +00:00
hallgren 7c6f6110eb gfse: refactoring
Factor out functions that interface to the old cloud service (upload.cgi) 
from editor.js into cloud.js. Merge changes from editor2.js into editor.js and
factor out functions that interface to gf -server into clouds2.js.
2011-07-29 13:45:37 +00:00
hallgren 9d547fbdca gfse: about: added a note that each grammar has a unique identity independent of its name 2011-07-26 15:03:33 +00:00
hallgren 0f7743992b gfse: various small improvements 2011-07-25 19:21:46 +00:00
hallgren 6c751da6e8 gfse: new section "Grammars in the cloud" in about.html 2011-07-07 16:59:37 +00:00
hallgren c4f1fbbc9a gfse: grammars in the cloud, still primitve, but good enough to be installed on the server, I think 2011-07-07 16:57:59 +00:00
hallgren c7fffd861b gfse: grammars in the cloud, work in progress
Cloud merging: when sharing grammars between two devices that previously each
had separate grammar directoies on the server, clean up one of the directories
and make it a symbolic link to the other.
2011-07-07 13:30:56 +00:00
hallgren db4753aa2d gfse: grammars in the cloud, work in progress 2011-07-06 16:55:42 +00:00
hallgren 25ae9b2dc4 gfse: initial support for grammars in the cloud
This lets the user access the same set of grammars from multiple devices.

Sharing grammars between multiple users is possible but discouraged at the
moment. There is no version handling, so concurrent editing of the same grammar
by different users might result in one user overwriting changes made by
another user. (The same goes for cuncurrent editing on multiple devices by
a single user, of course.)
2011-06-08 15:29:50 +00:00
hallgren 49c27436f5 minibar support.js: add function ajax_http_post for posting FormData 2011-06-21 16:10:44 +00:00
hallgren e1385da050 gf-server: make pgf-service work the Apache mod_fastcgi
pgf-service now appears to works with Apache mod_fastcgi (under Mac OS X) in
addition to lighttpd.

One difference appears to be that while lighttpd passes the name of the PGF
file in the SCRIPT_FILENAME variable, Apache passes it in PATH_TRANSLATED.
But perhaps this depends on exactly how the fastcgi service is configured.
The following is what I added to the Apache configuration file to test this:

	<Directory /Library/WebServer/Documents/fcgi-bin>
	  SetHandler fastcgi-script
	  Options +ExecCGI
	</Directory>
	Action pgf-service /fcgi-bin/pgf-service
	AddHandler pgf-service .pgf
2011-06-21 15:49:31 +00:00
hallgren 549cc324d7 gf-server: enable -rtsopts when compiling with ghc>=7.0 2011-06-21 15:45:13 +00:00
hallgren 739e4caef3 gf-server.cabal: a separate flag for the content service
* Use cabal install -ffastcgi to compile the fastcgi server.
  * Use cabal install -fcontent to compile the content service (off by default,
    currently broken)
  * Use both flag to compile both.
2011-06-21 15:38:57 +00:00
hallgren 55a20c6d05 gfse: fix a problem in browsers where "class" is a reserved keyword 2011-05-07 17:36:49 +00:00
hallgren c207175e98 gfse: you can now add concrete syntax for arbitrary languages
Before, you had to pick a language from a list of supported languages, but now
you can also pick Other and change the language code afterwards.
2011-05-06 15:24:45 +00:00
hallgren fd0fb48493 Ctrl-C shouldn't terminate the GF shell
This quick fix should make Ctrl-C in the GF shell behave more like it does in
other shells: even if no command is running, Ctrl-C now just gives you a new
prompt instead of terminating the shell.
2011-04-20 14:30:49 +00:00