Installing Kahina for TRALE
Dependencies
To obtain, build and run Kahina for TRALE, you need:
- SICStus Prolog 3 or 4, with Jasper installed (see below)
- access to the TRALE repository (ask Gerald Penn)
- Subversion
- GNU Make or similar
- Apache Ant
Installing SICStus Prolog with Jasper
TRALE requires SICStus Prolog, so you need to buy a license and install it if you have not done so already. It supports SICStus Prolog 3 (SP3) and, experimentally, SICStus Prolog 4 (SP4).
Kahina for TRALE also requires that the existing installation of SICStus Prolog include the Prolog-Java interface Jasper, set up with a version 6 or higher Java Development Kit (JDK).
You may have to modify your LD_LIBRARY_PATH before installation to ensure SICStus Prolog can find libjvm.so. Under Ubuntu 13.04, I added this line to my ~/.bashrc:
export LD_LIBRARY_PATH=/usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/client:$LD_LIBRARY_PATH
The successful installation then looked like this (a successful run of the SP4 installation script looks similar):
ke@apis:~/install/sp-3.12.11-x86-linux-glibc2.5$ ./InstallSICStus --all-questions SICStus Prolog Release 3 ======================== http://www.sics.se/sicstus/ --------------------------------------- Binary Distribution Installation Script --------------------------------------- This script will install SICStus Prolog 3.12.11 on your computer. Before proceeding, make sure that you have downloaded the correct distribution and that you have your licensing information at hand, as you will be prompted for site-name, license code, and expiration date during the installation. It is also recommended that you read the Release Notes before installing SICStus Prolog. The Release Notes can be found online at http://www.sics.se/sicstus/docs/ During the installation, a cache-file (install.cache) will be created which will store your answers to be used as defaults if you need to run the installation script again. You may safely delete this file if you wish. The installation script will ask a couple of questions regarding the installation. Most of these questions have a default alternative in square brackets ([]). Pressing return will give you the default answer. If you do not understand the question, the default answer will usually do what you want. Note: You must have Perl installed and available in your PATH. Perl is available for free from www.cpan.org. Typically Perl is already installed. Report bugs and other problems to SICStus Support using http://www.sics.se/sicstus/bugreport/bugreport.html Install SICStus Prolog 3.12.11 [yes] ? Checking installation cache... install.cache Where do you want to install SICStus [/home/ke] ? Creating uninstall script... Decrypt key [xxxxxxxxxxxx] ? You should now enter your site-name, license-code, and expiration date. Sitename [Kilian Personal] ? License-code [xxxx-xxxx-xxxx-xxxx-xxxx] ? Expiration date [permanent] ? Install the pre-built binaries (chose "no" for full installation, or "help") [no] ? The script will now ask you for some information about external software packages. If you leave the answers blank, the script will try to determine the information automatically. Do you wish to install the Tcl/Tk interface (library(tcltk)) [no] ? Do you wish to install Jasper (the Java interface) [yes] ? For the Java interface you should now specify the 'installation path' of the Java installation. E.g. if the path to the java compiler is /usr/local/jdk/bin/javac, the 'installation path' is probably /usr/local/jdk. Note that this is somewhat platform dependent. In case of problems you should consult the installation instructions for your Java installation to find out what the 'installation path' is. Specify JDK installation path, e.g., /usr/jdk1.2.2 (or leave blank) [/usr/jdk1.2.2] ? /usr/lib/jvm/java-7-openjdk-i386 (This information is displayed regardless of the JDK installation path specified.) NOTE: About JDK 1.3.X and later Read *important* compatibility information in the release notes in Section "Supported Java Versions". NOTE: About Java location. By default the location of Java is embedded in the SICStus development system executable (sicstus) or the jasper foreign resource. This makes it possible for library(jasper) to find the Java libraries (e.g., libjvm.so) without setting LD_LIBRARY_PATH. See the release notes. Embed JDK paths for library(jasper) (recommended) [yes] ? Do you wish to install the Berkeley DB module (library(bdb)). [no] ? Specify the path to your C compiler (or leave blank) ? Specify the path to your C++ compiler (or leave blank) ? *************************************************************** The installation will proceed without further user interaction, unless there are errors. *************************************************************** Configuring system. This may take a few minutes... done. Installation package was built for Glibc 2.5. This systems uses Glibc 2.17. SICStus is built and distributed for several versions of Glibc. If there is a version of the SICStus installation package corresponding to the version of Glibc installed on your machine, you should use that installation package. Attempt an installation anyway [no] ? yes Continuing despite wrong Glibc version... Decrypting sicstus.tar.compress.crypt... ok. Unpacking sicstus.tar... (please wait) ok. Copying files to /home/ke. This may take a few minutes... Installing documentation into /home/ke/lib/sicstus-3.12.11 done. Creating development system symlinks... Creating development system binary... done. Creating copies of SICStus run-time for multiple run-time support Creating spdet and spxref... done. Creating save-dumps... done. Compiling license file... Performing final link step for the Jasper module... Linking jasper.so... ok. Linking jasper.s.o... ok. Creating libspnative.so... ok. Completing uninstall info... Cleaning up... Installation complete. The SICStus development system has been installed as: /home/ke/bin/sicstus The documentation can be accessed locally by opening the URL: file:/home/ke/lib/sicstus-3.12.11/doc/html/ or on the SICStus website: http://www.sics.se/sicstus/docs/ Uninstall by running /home/ke/install/sp-3.12.11-x86-linux-glibc2.5/UnInstallSICStus
Obtaining TRALE
Current versions of TRALE contain a new version of TRALE's source-level debugger, called trale-sld, that uses Kahina as a GUI. Check out the latest version of TRALE from the Subversion repository. To do so, open a shell, go to the directory under which you want your TRALE installation to live, and then run:
svn checkout svn+ssh://ale@syntax.cs.toronto.edu/dev/trunk trale
This will create a directory called trale and checkout TRALE into it.
Note: As of this writing, a bug prevents trale-sld from working when SICStus Prolog 3 is used. You may try to use an older TRALE revision by passing the option -r 260 to the svn checkout command to work around this for the moment.
Obtaining Kahina
Now run:
cd trale git clone https://github.com/texttheater/kahina
This will create a directory kahina inside the trale directory.
Building Kahina
After checking out TRALE, go into the trale directory and run:
make kahina-build
The first time, this will fail and instruct you to create a file build.properties in the kahina subdirectory, pointing to the jasper.jar file of your SICStus Prolog installation. Follow the instructions, then just re-run the command.
Updating Kahina to a new version
Whenever a new version of Kahina is released, you can obtain it from the trale/kahina directory like this:
git pull
Then, from the trale directory, run:
make kahina-build
Using TRALE with Kahina
You start TRALE from the command-line by running the trale script found in the trale directory. Before running it, make sure that the environment variable TRALE_HOME is either not set or set to the path of the trale directory.
First steps
After starting TRALE using trale, activate the debugger by setting the debugger flag to on:
ale_flag(debugger,_,on).
You can try if it works by using the predicates dcompile_gram/1 to compile a TRALE grammar and drec/1 to parse a sentence, or (experimentally) dquery/1 to resolve a query in the ALE programming language. Each of these commands should bring up the Kahina GUI (you can read more about their function and usage in the TRALE documentation). Alternatively, you can just ask the following query:
dgo.
This will start the GUI but make the Prolog prompt inaccessible, in return giving you the possibility to start compilation processes and parsing via the Parse menu in the GUI. Closing the GUI will return you to the Prolog prompt. You can do this at any time while debugging, resulting in the abortion of the current compilation/parsing/query resolution process.
Using TRALE's XEmacs-based debugger
TRALE's Kahina-based source-level debugger is the successor of an older XEmacs-based source-level debugger, which is still available by setting the TRALE_DEBUGGER environment variable to xemacs before starting TRALE, like so:
export TRALE_DEBUGGER=xemacs trale