From 8d6e61a8df4480385a1f2ef29a96f6a88af9e3ba Mon Sep 17 00:00:00 2001 From: hallgren Date: Mon, 10 Aug 2015 14:12:51 +0000 Subject: gf -cshell: preliminary support for the C run-time system in the GF shell Some C run-time functionality is now available in the GF shell, by starting GF with 'gf -cshell' or 'gf -crun'. Only limited functionality is available when running the shell in these modes: - You can only import .pgf files, not source files. - The -retain flag can not be used and the commands that require it to work are not available. - Only 18 of the 40 commands available in the usual shell have been implemented. The 'linearize' and 'parse' commands are the only ones that call the C run-time system, and they support only a limited set of options and flags. Use the 'help' commmands for details. - A new command 'generate_all', that calls PGF2.generateAll, has been added. Unfortuntaly, using it causes 'segmentation fault'. This is implemented by adding two new modules: GF.Command.Commands2 and GF.Interactive2. They are copied and modified versions of GF.Command.Commands and GF.Interactive, respectively. Code for unimplemented commands and other code that has not been adapted to the C run-time system has been left in place, but commented out, pending further work. --- gf.cabal | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'gf.cabal') diff --git a/gf.cabal b/gf.cabal index ad2cae07e..0ad07e772 100644 --- a/gf.cabal +++ b/gf.cabal @@ -132,13 +132,14 @@ Library PGF.OldBinary if flag(c-runtime) - exposed-modules: PGF2 - other-modules: PGF2.FFI - hs-source-dirs: src/runtime/haskell-bind - build-tools: hsc2hs - extra-libraries: gu pgf - c-sources: src/runtime/haskell-bind/utils.c - cc-options: -std=c99 + exposed-modules: PGF2 + other-modules: PGF2.FFI + GF.Interactive2 GF.Command.Commands2 + hs-source-dirs: src/runtime/haskell-bind + build-tools: hsc2hs + extra-libraries: gu pgf + c-sources: src/runtime/haskell-bind/utils.c + cc-options: -std=c99 ---- GF compiler as a library: -- cgit v1.2.3