Commit Graph

39 Commits

Author SHA1 Message Date
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
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
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
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
15678a0fce gf -server[=port]
You can now specify which port the HTTP server should run on in server mode.
The default is 41296.
2011-12-14 15:28:27 +00:00
kr.angelov
734c66710e merge GF.Infra.Modules and GF.Grammar.Grammar. This is a preparation for the separate PGF building 2011-11-02 13:57:11 +00:00
aarne
a83b6bea62 don't count app nodes in term size 2011-09-26 13:56:39 +00:00
aarne
1a3a26563b generalized show_dependencies to take a list of constants as its argument 2011-09-25 08:43:23 +00:00
aarne
780d9ef528 bug fixes in code size analysis 2011-09-24 08:20:58 +00:00
aarne
6db0c74c2f the sd -size command now shows the size of all code needed for defining an oper 2011-09-22 12:11:03 +00:00
aarne
bd22b935de statistics on grammar size in terms of constructors 2011-09-21 13:24:59 +00:00
aarne
958e81126d commands ss to show source, and sd to show the dependencies of a constant 2011-09-21 08:12:14 +00:00
aarne
a2ccf1ce69 command ss to show source (including gfo) in text; to be extended 2011-09-20 14:58:27 +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
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
aarne
6757ab2b41 reload command in shell 2011-08-25 15:58:38 +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
hallgren
a53558aac0 GFI.hs: some refactoring for readability
Also some minor changes in how Ctrl-C is handled and how CPU time is measured.
2011-04-15 15:05:44 +00:00
hallgren
0a27aaf1e6 Added a preliminary "gf -server" mode.
The command "gf -server" now starts a simple HTTP server on port 41295,
providing a simple web API to the GF compiler. It currently support the
follwing operations:

  * creating new temporary directories for grammar uploads,
  * uploading grammars files for use in the GF shell,
  * executing GF shell commands, and
  * accessing static files.

This means that GF now depends on some additional networking related packages,
but they should be available and easy to install on all platforms. There is
also a new configuration flag "server" in gf.cabal, so GF will be compiled
without support for server mode if the extra packages are unavailable.

Note that running gf -server while connected to the internet can be a security
risk. To prevent unauthorized access to the rest of the system, it is
advisable to run the server in GF_RESTRICTED mode and as a user with suitably
restricted file permissions.
2011-04-13 14:58:01 +00:00
hallgren
b1c2c27ae6 GFI.hs: refactoring to add a function for executing a single GF shell command.
The intention is to use the new function to implement a web service API to
the GF shell.
2011-04-04 20:06:55 +00:00
hallgren
1b08ca8a61 Add build info to the GF shell welcome message 2011-04-04 19:52:07 +00:00
hallgren
2c1feccd17 GF shell restricted mode
By setting the environment variable GF_RESTRICTED before starting GF, the shell
will be run in restricted mode. This will prevent the GF shell from starting
arbitrary system commands (most uses of System.Cmd.system are blocked) and
writing arbitrary files (most commands that use writeFile et al are blocked).

Restricted mode is intended minimize the potential security risks involved
in allowing public access to the GF shell over the internet. It should be used
in conjuction with system level protection mechanisms (e.g. file permissions)
to make sure that a publicly acessible GF shell does not give access to parts
of the system that should not be publicly accessible.
2011-03-03 15:42:57 +00:00
aarne
0dfbc9b730 the command show_operations to inspect opers in scope 2011-02-28 13:31:04 +00:00
aarne
445a3aafeb Predef.error surfaces as error message in compilation and cc command 2011-02-25 17:01:10 +00:00
aarne
4a5d8d9f55 option cc -list added 2010-12-14 17:42:42 +00:00
aarne
96433c2914 preparing resource api for multilingual documentation 2010-12-10 08:48:26 +00:00
krasimir
e0231cbf5b reorganize the modules in GF.Compile.* 2010-07-01 14:19:32 +00:00
krasimir
5ae7be358d redesign the open-literals API 2010-07-01 08:51:59 +00:00
aarne
dc971bd051 removed mention of 2.9 welcome, and some traces in visualization 2010-04-22 06:36:37 +00:00
krasimir
50a7512c1b fix command cc for Unicode 2010-04-19 15:41:23 +00:00
krasimir
7c67a90327 always use Haskeline. drop Readline & Editline 2010-04-19 15:12:52 +00:00
krasimir
6313244eac use the native unicode support from GHC 6.12 2010-04-19 09:38:36 +00:00
aarne
ba13052d31 dependency graph can be restricted to some modules; added help dg 2010-04-06 08:53:44 +00:00
krasimir
bf74f50733 store and propagate the exact source location for all judgements in the grammar. It may not be used accurately in the error messages yet 2010-03-22 21:15:29 +00:00
aarne
f0f9c0acfa generalized tour to a variable language by the script MkTour 2010-02-08 10:52:08 +00:00
krasimir
9564d85fa5 command cc now works even without loaded grammar. useful for testing closed expressions 2010-02-07 19:23:26 +00:00
aarne
064cfef331 command eh ; lib/doc/tour started 2010-02-03 20:55:54 +00:00
krasimir
b90e56a94e fix the tabular printing when there is a V constructor 2010-02-03 17:33:55 +00:00
krasimir
f85232947e reorganize the directories under src, and rescue the JavaScript interpreter from deprecated 2009-12-13 18:50:29 +00:00