|
| 1 | +--- |
| 2 | +title: Grammatical Framework Download and Installation |
| 3 | +date: 3 August 2025 |
| 4 | +--- |
| 5 | + |
| 6 | +**GF 3.12** was released on 3 August 2025. |
| 7 | + |
| 8 | +What's new? See the [release notes](release-3.12.html). |
| 9 | + |
| 10 | +#### Note: GF core and the RGL |
| 11 | + |
| 12 | +The following instructions explain how to install **GF core**, i.e. the compiler, shell and run-time systems. |
| 13 | +Obtaining the **Resource Grammar Library (RGL)** is done separately; see the section at the bottom of this page. |
| 14 | + |
| 15 | +--- |
| 16 | + |
| 17 | +## Installing from a binary package |
| 18 | + |
| 19 | +Binary packages are available for Debian/Ubuntu, macOS, and Windows and include: |
| 20 | + |
| 21 | +- GF shell and grammar compiler |
| 22 | +- `gf -server` mode |
| 23 | +- C run-time system |
| 24 | +- Java & Python bindings to the C run-time system |
| 25 | + |
| 26 | +Unlike in previous versions, the binaries **do not** include the RGL. |
| 27 | + |
| 28 | +[Binary packages on GitHub](https://github.com/GrammaticalFramework/gf-core/releases/tag/3.12) |
| 29 | + |
| 30 | +#### Debian/Ubuntu |
| 31 | + |
| 32 | +There are two versions: `gf-3.12-ubuntu-18.04.deb` for Ubuntu 18.04 (Cosmic), and `gf-3.12-ubuntu-20.04.deb` for Ubuntu 20.04 (Focal). |
| 33 | + |
| 34 | +To install the package use: |
| 35 | + |
| 36 | +``` |
| 37 | +sudo apt-get install ./gf-3.12-ubuntu-*.deb |
| 38 | +``` |
| 39 | + |
| 40 | +<!-- The Ubuntu `.deb` packages should work on Ubuntu 16.04, 18.04 and similar Linux distributions. --> |
| 41 | + |
| 42 | +#### macOS |
| 43 | + |
| 44 | +To install the package, just double-click it and follow the installer instructions. |
| 45 | + |
| 46 | +The packages should work on at least Catalina and Big Sur. |
| 47 | + |
| 48 | +#### Windows |
| 49 | + |
| 50 | +To install the package, unpack it anywhere. |
| 51 | + |
| 52 | +You will probably need to update the `PATH` environment variable to include your chosen install location. |
| 53 | + |
| 54 | +For more information, see [Using GF on Windows](https://www.grammaticalframework.org/~inari/gf-windows.html) (latest updated for Windows 10). |
| 55 | + |
| 56 | +## Installing from Hackage |
| 57 | + |
| 58 | +_Instructions applicable for macOS, Linux, and WSL2 on Windows._ |
| 59 | + |
| 60 | +[GF is on Hackage](http://hackage.haskell.org/package/gf), so under |
| 61 | +normal circumstances the procedure is fairly simple: |
| 62 | + |
| 63 | +``` |
| 64 | +cabal update |
| 65 | +cabal install gf-3.12 |
| 66 | +``` |
| 67 | + |
| 68 | +### Notes |
| 69 | + |
| 70 | +**GHC version** |
| 71 | + |
| 72 | +The GF source code is known to be compilable with GHC versions 7.10 through to 8.10. |
| 73 | + |
| 74 | +**Obtaining Haskell** |
| 75 | + |
| 76 | +There are various ways of obtaining Haskell, including: |
| 77 | + |
| 78 | +- ghcup |
| 79 | + 1. Install from https://www.haskell.org/ghcup/ |
| 80 | + 2. `ghcup install ghc 8.10.4` |
| 81 | + 3. `ghcup set ghc 8.10.4` |
| 82 | +- Haskell Platform https://www.haskell.org/platform/ |
| 83 | +- Stack https://haskellstack.org/ |
| 84 | + |
| 85 | + |
| 86 | +**Installation location** |
| 87 | + |
| 88 | +The above steps install GF for a single user. |
| 89 | +The executables are put in `$HOME/.cabal/bin` (or on macOS in `$HOME/Library/Haskell/bin`), |
| 90 | +so you might want to add this directory to your path (in `.bash_profile` or similar): |
| 91 | + |
| 92 | +``` |
| 93 | +PATH=$HOME/.cabal/bin:$PATH |
| 94 | +``` |
| 95 | + |
| 96 | +**Haskeline** |
| 97 | + |
| 98 | +GF uses [`haskeline`](http://hackage.haskell.org/package/haskeline), which |
| 99 | +on Linux depends on some non-Haskell libraries that won't be installed |
| 100 | +automatically by Cabal, and therefore need to be installed manually. |
| 101 | +Here is one way to do this: |
| 102 | + |
| 103 | +- On Ubuntu: `sudo apt-get install libghc-haskeline-dev` |
| 104 | +- On Fedora: `sudo dnf install ghc-haskeline-devel` |
| 105 | + |
| 106 | +## Installing from source code |
| 107 | + |
| 108 | +**Obtaining** |
| 109 | + |
| 110 | +To obtain the source code for the **release**, |
| 111 | +download it from [GitHub](https://github.com/GrammaticalFramework/gf-core/releases). |
| 112 | + |
| 113 | +Alternatively, to obtain the **latest version** of the source code: |
| 114 | + |
| 115 | +1. If you haven't already, clone the repository with: |
| 116 | +``` |
| 117 | +git clone https://github.com/GrammaticalFramework/gf-core.git |
| 118 | +``` |
| 119 | +2. If you've already cloned the repository previously, update with: |
| 120 | +``` |
| 121 | +git pull |
| 122 | +``` |
| 123 | + |
| 124 | + |
| 125 | +**Installing** |
| 126 | + |
| 127 | +You can then install with: |
| 128 | +``` |
| 129 | +cabal install |
| 130 | +``` |
| 131 | + |
| 132 | +or, if you're a Stack user: |
| 133 | + |
| 134 | +``` |
| 135 | +stack install |
| 136 | +``` |
| 137 | + |
| 138 | +<!--The above notes for installing from source apply also in these cases.--> |
| 139 | +For more info on working with the GF source code, see the |
| 140 | +[GF Developers Guide](../doc/gf-developers.html). |
| 141 | + |
| 142 | +For macOS Sequoia, you need to downgrade the LLVM package, see instructions [here](https://github.com/GrammaticalFramework/gf-core/issues/172#issuecomment-2599365457). |
| 143 | + |
| 144 | +## Installing the Python bindings from PyPI |
| 145 | + |
| 146 | +The Python library is available on PyPI as `pgf`, so it can be installed using: |
| 147 | + |
| 148 | +``` |
| 149 | +pip install pgf |
| 150 | +``` |
| 151 | + |
| 152 | +We provide binary wheels for Linux and macOS, which include the C runtime and are ready-to-go. |
| 153 | +If there is no binary distribution for your platform, this will install the source tarball, |
| 154 | +which will attempt to build the binding during installation, |
| 155 | +and requires the GF C runtime to be installed on your system. |
| 156 | + |
| 157 | +--- |
| 158 | + |
| 159 | +## Installing the RGL from a binary release |
| 160 | + |
| 161 | +Binary releases of the RGL are made available on [GitHub](https://github.com/GrammaticalFramework/gf-rgl/releases). |
| 162 | +In general the steps to follow are: |
| 163 | + |
| 164 | +1. Download a binary release and extract it somewhere on your system. |
| 165 | +2. Set the environment variable `GF_LIB_PATH` to point to wherever you extracted the RGL. |
| 166 | + |
| 167 | +## Installing the RGL from source |
| 168 | + |
| 169 | +To compile the RGL, you will need to have GF already installed and in your path. |
| 170 | + |
| 171 | +1. Obtain the RGL source code, either by: |
| 172 | + - cloning with `git clone https://github.com/GrammaticalFramework/gf-rgl.git` |
| 173 | + - downloading a source archive [here](https://github.com/GrammaticalFramework/gf-rgl/archive/master.zip) |
| 174 | +2. Run `make` in the source code folder. |
| 175 | + |
| 176 | +For more options, see the [RGL README](https://github.com/GrammaticalFramework/gf-rgl/blob/master/README.md). |
| 177 | + |
| 178 | +--- |
| 179 | + |
| 180 | +## Older releases |
| 181 | + |
| 182 | +- [GF 3.11](index-3.11.html) (July 2021) |
| 183 | +- [GF 3.10](index-3.10.html) (December 2018) |
| 184 | +- [GF 3.9](index-3.9.html) (August 2017) |
| 185 | +- [GF 3.8](index-3.8.html) (June 2016) |
| 186 | +- [GF 3.7.1](index-3.7.1.html) (October 2015) |
| 187 | +- [GF 3.7](index-3.7.html) (June 2015) |
| 188 | +- [GF 3.6](index-3.6.html) (June 2014) |
| 189 | +- [GF 3.5](index-3.5.html) (August 2013) |
| 190 | +- [GF 3.4](index-3.4.html) (January 2013) |
| 191 | +- [GF 3.3.3](index-3.3.3.html) (March 2012) |
| 192 | +- [GF 3.3](index-3.3.html) (October 2011) |
| 193 | +- [GF 3.2.9](index-3.2.9.html) source-only snapshot (September 2011) |
| 194 | +- [GF 3.2](index-3.2.html) (December 2010) |
| 195 | +- [GF 3.1.6](index-3.1.6.html) (April 2010) |
0 commit comments