GF Logo

Grammatical Framework Download and Installation

GF 3.10 was released on 2 December 2018.

What's new? See the release notes.

Binary packages

These binary packages include both the GF core (compiler and runtime) as well as the pre-compiled RGL.

Platform Download Features How to install
macOS gf-3.10.pkg GF, S, C, J, P Double-click on the package icon
Raspbian 10 (buster) gf_3.10-2_armhf.deb GF,S,C,J,P sudo dpkg -i gf_3.10-2_armhf.deb
Ubuntu (32-bit) gf_3.10-2_i386.deb GF, S, C, J, P sudo dpkg -i gf_3.10-2_i386.deb
Ubuntu (64-bit) gf_3.10-2_amd64.deb GF, S, C, J, P sudo dpkg -i gf_3.10-2_amd64.deb
Windows gf-3.10-bin-windows.zip GF, S unzip gf-3.10-bin-windows.zip

Features

Notes

The Windows package is installed by just unpacking it anywhere. You will probably need to set the PATH and GF_LIB_PATH environment variables, see Inari's notes on Installing GF on Windows.

The Ubuntu .deb packages should work on Ubuntu 16.04 and 18.04 and similar Linux distributions. The .deb packages were updated to version 3.10-2 after the release of GF 3.10. (Because of a packaging bug the Resource Grammar Library was missing in the 3.10-1 packages.)

The packages for macOS (Mac OS X) should work on at least 10.13 and 10.14 (High Sierra and Mojave)

Installing the latest release from source

GF is on Hackage, so under normal circumstances the procedure is fairly simple:

  1. Install a recent version of the Haskell Platform (see note below)
  2. cabal update
  3. On Linux: install some C libraries from your Linux distribution (see note below)
  4. cabal install gf

This installs the GF executable and Haskell libraries, but does not include the RGL.

You can also download the source code release from GitHub, and follow the instructions below under Installing from the latest developer source code.

Notes

Installation location

The above steps installs GF for a single user. The executables are put in $HOME/.cabal/bin (or, with recent versions of the Haskell platform on Mac OS X, in $HOME/Library/Haskell/bin), so it is a good idea to put a line in your .bash_profile or .profile to add that directory to you path:

PATH=$HOME/.cabal/bin:$PATH

or

PATH=$HOME/Library/Haskell/bin:$PATH

Build tools

In order to compile GF you need the build tools Alex and Happy. These can be installed via Cabal, e.g.:

cabal install alex happy

or obtained by other means, depending on your OS.

Haskeline

GF uses haskeline, which on Linux depends on some non-Haskell libraries that won't be installed automatically by cabal, and therefore need to be installed manually. Here is one way to do this:

GHC version

The GF source code has been updated to compile with GHC 8.4. Using older versions of GHC (e.g. 8.2, 8.0 and 7.10) should still work too.

Installing from the latest developer source code

If you haven't already, clone the repository with:

git clone https://github.com/GrammaticalFramework/gf-core.git

If you've already cloned the repository previously, update with:

git pull

Then install with:

cabal install

or, if you're a Stack user:

stack install

The above notes for installing from source apply also in these cases. For more info on working with the GF source code, see the GF Developers Guide.

Installing the RGL from source

To install the RGL from source, you can download a release from GitHub or get the latest version by cloning the repository:

git clone https://github.com/GrammaticalFramework/gf-rgl.git

In both cases, once you have the RGL sources you can install them by running:

make

in the RGL folder. This assumes that you already have GF installed. For more details about building the RGL, see the RGL README.

Installing the Python bindings from PyPI

The Python library is available on PyPI as pgf, so it can be installed using:

pip install pgf

We provide binary wheels for Linux and OSX (with Windows missing so far), which include the C runtime and a ready-to-go. If there is no binary distribution for your platform, this will install the source tarball, which will attempt to build the binding during installation, and requires the GF C runtime to be installed on your system.

Older releases