See the download page.
Over 170 changes have been pushed to the source repository since the release of GF 3.7 in June 2015.
GF shell: cc -trace
(preliminary): you can now do things like
cc -trace mkV "debug"
to see a trace of all opers with their arguments and results during the computation of mkV "debug"
.
GF shell: you can now parse and linearize with the C run-time system from the GF shell by starting GF with gf -cshell
or gf -crun
. Only limited functionality is available when running the shell in these modes (use the help
command in the shell for details):
.pgf
files, not source files.The -retain
flag can not be used and the commands that require it to work are not available.
GF now supports parallel batch compilation of grammars.
gf -make -j=
n uses n parallel threads.gf -make -j
adapts to the number of processors in the system.
(This depends on the function Control.Concurrent.setNumCapabilities
, which is only available in GHC>=7.6 (base>=4.6). GF can still be compiled with GHC<7.6, but then you have to use +RTS -N -RTS
to take advantage of multicore processors.)
cc
, sd
, so
, ss
, dg
, ph
) can now be used in pipes and the eh
(execute_history
) command now works again.gf -cshell
), to allow a more uniform treatment of different types of commands, and to fix some commands that have been broken for years.unlexer=none
(or unlexer=id
) in requests that output linearizations (e.g. command=linearize
, command=translate
), you can leave &+
uninterpreted instead of gluing the adjacent tokens. This means that the output is left in a format that can be parsed in a subsequent request.