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.