forked from GitHub/gf-core
doc/gf-developers.t2t: quick note on how to compile the C run-time system
Also a few other minor updates.
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
<CENTER>
|
||||
<H1><a href="../"><IMG src="../doc/Logos/gf0.png"></a>GF Developers Guide</H1>
|
||||
<FONT SIZE="4"><I>Authors: Björn Bringert, Krasimir Angelov and Thomas Hallgren</I></FONT><BR>
|
||||
<FONT SIZE="4">Last update: 2013-01-30, 15:11</FONT>
|
||||
<FONT SIZE="4">Last update: 2014-06-17, 16:14</FONT>
|
||||
</CENTER>
|
||||
|
||||
<P></P>
|
||||
@@ -30,15 +30,23 @@
|
||||
<LI><A HREF="#toc8">Read-write access</A>
|
||||
<LI><A HREF="#toc9">Further information about Darcs</A>
|
||||
</UL>
|
||||
<LI><A HREF="#toc10">Compilation from source</A>
|
||||
<LI><A HREF="#toc10">Compilation from source with Cabal</A>
|
||||
<UL>
|
||||
<LI><A HREF="#toc11">Configure</A>
|
||||
<LI><A HREF="#toc12">Build</A>
|
||||
<LI><A HREF="#toc13">Install</A>
|
||||
<LI><A HREF="#toc14">Clean</A>
|
||||
<LI><A HREF="#toc15">Known problems with Cabal</A>
|
||||
</UL>
|
||||
<LI><A HREF="#toc15">Compilation with make</A>
|
||||
<LI><A HREF="#toc16">Running the testsuite</A>
|
||||
<LI><A HREF="#toc16">Compilation with make</A>
|
||||
<LI><A HREF="#toc17">Compiling GF with C run-time system support</A>
|
||||
<LI><A HREF="#toc18">Creating .deb packages for Ubuntu</A>
|
||||
<UL>
|
||||
<LI><A HREF="#toc19">Preparations</A>
|
||||
<LI><A HREF="#toc20">Creating the package</A>
|
||||
</UL>
|
||||
<LI><A HREF="#toc21">Creating .rpm packages for Fedora</A>
|
||||
<LI><A HREF="#toc22">Running the testsuite</A>
|
||||
</UL>
|
||||
|
||||
<P></P>
|
||||
@@ -85,7 +93,7 @@ web sites, as described below.
|
||||
|
||||
<P>
|
||||
GF is written in Haskell, so first of all you need
|
||||
the <I>Haskell Platform</I>, version 2012.4.0.0. Downloads
|
||||
the <I>Haskell Platform</I>, version 2012.4.0.0 or 2013.2.0.0. Downloads
|
||||
and installation instructions are available from here:
|
||||
</P>
|
||||
<P>
|
||||
@@ -106,12 +114,13 @@ of the Haskell Platform was successful you should see a message like:
|
||||
</P>
|
||||
|
||||
<PRE>
|
||||
The Glorious Glasgow Haskell Compilation System, version 7.4.2
|
||||
The Glorious Glasgow Haskell Compilation System, version 7.6.3
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
Other required tools included in the Haskell Platform are
|
||||
<A HREF="http://www.haskell.org/cabal/">Cabal</A>
|
||||
<A HREF="http://www.haskell.org/cabal/">Cabal</A>,
|
||||
<A HREF="http://www.haskell.org/alex/">Alex</A>
|
||||
and
|
||||
<A HREF="http://www.haskell.org/happy/">Happy</A>.
|
||||
</P>
|
||||
@@ -123,7 +132,7 @@ and
|
||||
To get the GF source code, you also need <I>Darcs</I>, version 2 or later. Darcs
|
||||
is a distributed version control system, see <A HREF="http://darcs.net/">http://darcs.net/</A> for
|
||||
more information. There are precompiled packages for many platforms
|
||||
available at and source code if you want to compile it yourself. Darcs
|
||||
available and source code if you want to compile it yourself. Darcs
|
||||
is also written in Haskell and so you can use GHC to compile it.
|
||||
</P>
|
||||
|
||||
@@ -138,7 +147,7 @@ are installed. Here is one way to do this:
|
||||
</P>
|
||||
|
||||
<UL>
|
||||
<LI>On Ubuntu: <CODE>sudo apt-get install libghc6-haskeline-dev</CODE>
|
||||
<LI>On Ubuntu: <CODE>sudo apt-get install libghc-haskeline-dev</CODE>
|
||||
<LI>On Fedora: <CODE>sudo yum install ghc-haskeline-devel</CODE>
|
||||
</UL>
|
||||
|
||||
@@ -333,7 +342,7 @@ For more info about what you can do with darcs, see <A HREF="http://darcs.net/ma
|
||||
</P>
|
||||
|
||||
<A NAME="toc10"></A>
|
||||
<H2>Compilation from source</H2>
|
||||
<H2>Compilation from source with Cabal</H2>
|
||||
|
||||
<P>
|
||||
The build system of GF is based on <I>Cabal</I>, which is part of the
|
||||
@@ -470,6 +479,33 @@ sources. Use the clean command for this purpose:
|
||||
</PRE>
|
||||
|
||||
<A NAME="toc15"></A>
|
||||
<H3>Known problems with Cabal</H3>
|
||||
|
||||
<P>
|
||||
Some versions of Cabal (at least version 1.16) seem to have a bug that can
|
||||
cause the following error:
|
||||
</P>
|
||||
|
||||
<PRE>
|
||||
Configuring gf-3.x...
|
||||
setup: Distribution/Simple/PackageIndex.hs:124:8-13: Assertion failed
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
The exact cause of this problem is unclear, but it seems to happen
|
||||
during the configure phase if the same version of GF is already installed,
|
||||
so a workaround is to remove the existing installation with
|
||||
</P>
|
||||
|
||||
<PRE>
|
||||
ghc-pkg unregister gf
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
You can check with <CODE>ghc-pkg list gf</CODE> that it is gone.
|
||||
</P>
|
||||
|
||||
<A NAME="toc16"></A>
|
||||
<H2>Compilation with make</H2>
|
||||
|
||||
<P>
|
||||
@@ -507,7 +543,91 @@ For cleaning:
|
||||
$ make clean
|
||||
</PRE>
|
||||
|
||||
<A NAME="toc16"></A>
|
||||
<A NAME="toc17"></A>
|
||||
<H2>Compiling GF with C run-time system support</H2>
|
||||
|
||||
<P>
|
||||
The C run-time system is separate implementation of the PGF run-time services
|
||||
that makes it possible to work with very large, ambiguous grammars, using
|
||||
probabilistic models to obtain probable parses.
|
||||
</P>
|
||||
<P>
|
||||
Support for calling the C run-time library is available in the web API
|
||||
provided by <CODE>gf -server</CODE>, if C run-time support is enabled.
|
||||
</P>
|
||||
<P>
|
||||
To enable the C run-time system, first go to the <CODE>src/runtime/c</CODE> directory
|
||||
and follow the instructions in the <CODE>INSTALL</CODE> file to install the C run-time
|
||||
system. Once this is done, you can install GF with C run-time support by
|
||||
doing
|
||||
</P>
|
||||
|
||||
<PRE>
|
||||
cabal install -fserver -fc-runtime
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
from the top directory.
|
||||
</P>
|
||||
|
||||
<A NAME="toc18"></A>
|
||||
<H2>Creating .deb packages for Ubuntu</H2>
|
||||
|
||||
<P>
|
||||
This was tested on Ubuntu 14.04 for the release of GF 3.6, and the
|
||||
resulting <CODE>.deb</CODE> packages appears to work on Ubuntu 12.04, 13.10 and 14.04.
|
||||
</P>
|
||||
<P>
|
||||
Under Ubuntu, Haskell executables are statically linked against other Haskell
|
||||
libraries, so the .deb packages are fairly self-contained.
|
||||
</P>
|
||||
|
||||
<A NAME="toc19"></A>
|
||||
<H3>Preparations</H3>
|
||||
|
||||
<PRE>
|
||||
sudo apt-get install dpkg-dev debhelper
|
||||
</PRE>
|
||||
|
||||
<A NAME="toc20"></A>
|
||||
<H3>Creating the package</H3>
|
||||
|
||||
<P>
|
||||
Make sure the <CODE>debian/changelog</CODE> starts with an entry that describes the
|
||||
version you are building. Then run
|
||||
</P>
|
||||
|
||||
<PRE>
|
||||
make deb
|
||||
</PRE>
|
||||
|
||||
<A NAME="toc21"></A>
|
||||
<H2>Creating .rpm packages for Fedora</H2>
|
||||
|
||||
<P>
|
||||
This is possible, but the procedure has not been automated.
|
||||
It involves using the cabal-rpm tool,
|
||||
</P>
|
||||
|
||||
<PRE>
|
||||
sudo yum install cabal-rpm
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
and following the Fedora guide
|
||||
<A HREF="http://fedoraproject.org/wiki/How_to_create_an_RPM_package">How to create an RPM package</A>.
|
||||
</P>
|
||||
<P>
|
||||
Under Fedora, Haskell executables are dynamically linked against other Haskell
|
||||
libraries, so <CODE>.rpm</CODE> packages for all Haskell libraries that GF depends on
|
||||
are required. Most of them are already available in the Fedora distribution,
|
||||
but a few of them might have to be built and distributed along with
|
||||
the GF <CODE>.rpm</CODE> package.
|
||||
When building <CODE>.rpm</CODE> packages for GF 3.4, we also had to build <CODE>.rpm</CODE>s for
|
||||
<CODE>fst</CODE> and <CODE>httpd-shed</CODE>.
|
||||
</P>
|
||||
|
||||
<A NAME="toc22"></A>
|
||||
<H2>Running the testsuite</H2>
|
||||
|
||||
<P>
|
||||
|
||||
@@ -40,7 +40,7 @@ web sites, as described below.
|
||||
=== The Haskell Platform ===
|
||||
|
||||
GF is written in Haskell, so first of all you need
|
||||
the //Haskell Platform//, version 2012.4.0.0. Downloads
|
||||
the //Haskell Platform//, version 2012.4.0.0 or 2013.2.0.0. Downloads
|
||||
and installation instructions are available from here:
|
||||
|
||||
http://hackage.haskell.org/platform/
|
||||
@@ -54,12 +54,12 @@ This command should show you which version of GHC you have. If the installation
|
||||
of the Haskell Platform was successful you should see a message like:
|
||||
|
||||
```
|
||||
The Glorious Glasgow Haskell Compilation System, version 7.4.2
|
||||
The Glorious Glasgow Haskell Compilation System, version 7.6.3
|
||||
```
|
||||
|
||||
Other required tools included in the Haskell Platform are
|
||||
[Cabal http://www.haskell.org/cabal/]
|
||||
%,[Alex http://www.haskell.org/alex/]
|
||||
[Cabal http://www.haskell.org/cabal/],
|
||||
[Alex http://www.haskell.org/alex/]
|
||||
and
|
||||
[Happy http://www.haskell.org/happy/].
|
||||
|
||||
@@ -79,7 +79,7 @@ This should work automatically on Mac OS and Windows, but on Linux one
|
||||
extra step is needed to make sure the C libraries required by //haskeline//
|
||||
are installed. Here is one way to do this:
|
||||
|
||||
- On Ubuntu: ``sudo apt-get install libghc6-haskeline-dev``
|
||||
- On Ubuntu: ``sudo apt-get install libghc-haskeline-dev``
|
||||
- On Fedora: ``sudo yum install ghc-haskeline-devel``
|
||||
|
||||
|
||||
@@ -401,10 +401,30 @@ $ make clean
|
||||
%$ make sdist
|
||||
%```
|
||||
|
||||
== Compiling GF with C run-time system support ==
|
||||
|
||||
The C run-time system is separate implementation of the PGF run-time services
|
||||
that makes it possible to work with very large, ambiguous grammars, using
|
||||
probabilistic models to obtain probable parses.
|
||||
|
||||
Support for calling the C run-time library is available in the web API
|
||||
provided by ``gf -server``, if C run-time support is enabled.
|
||||
|
||||
To enable the C run-time system, first go to the ``src/runtime/c`` directory
|
||||
and follow the instructions in the ``INSTALL`` file to install the C run-time
|
||||
system. Once this is done, you can install GF with C run-time support by
|
||||
doing
|
||||
|
||||
```
|
||||
cabal install -fserver -fc-runtime
|
||||
```
|
||||
from the top directory.
|
||||
|
||||
|
||||
== Creating .deb packages for Ubuntu ==
|
||||
|
||||
This has been tested on Ubuntu 12.04, and the resulting ``.deb`` packages
|
||||
appears to work on Ubuntu 12.04, 12.10 and 13.04.
|
||||
This was tested on Ubuntu 14.04 for the release of GF 3.6, and the
|
||||
resulting ``.deb`` packages appears to work on Ubuntu 12.04, 13.10 and 14.04.
|
||||
|
||||
Under Ubuntu, Haskell executables are statically linked against other Haskell
|
||||
libraries, so the .deb packages are fairly self-contained.
|
||||
|
||||
Reference in New Issue
Block a user