Version 2 (modified by ke, 8 years ago) (diff)


Installing Kahina for TRALE

Installing SICStus Prolog 3 with Jasper

TRALE requires SICStus Prolog 3 (SP3), so you need to buy a license and install SP3 if you have not done so already (versions for SP4 and SWI-Prolog are under development). Kahina for TRALE also requires that the existing installation of SP3 include the Prolog-Java interface Jasper, set up with a version 6 Java Development Kit (JDK). Under Linux, a successful run of the installation script looks something like this:

ke@apis:~/install/sp-3.12.10patch1-x86-linux-glibc2.3$ ./InstallSICStus --all-questions
		      SICStus Prolog Release 3
	       Binary Distribution Installation Script

This script will install SICStus Prolog 3.12.10patch1 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

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 Typically Perl is already

Report bugs and other problems to SICStus Support using

Install SICStus Prolog 3.12.10patch1 [yes] ? 

Checking installation cache... install.cache

Where do you want to install SICStus [/home/ke/opt/sicstus] ? 

The target directory seems to already contain a SICStus installation. You can
choose between cancelling the installation ('cancel'), overwriting the
installation entirely ('overwrite'), or skip copying the files but
(re-)do the dump and link steps ('link'). 

Note: if you use the 'link' option, no new uninstall-script will be created.

Overwrite existing installation [overwrite] ? 

Creating uninstall script...
Decrypt key [xxxxxxxxxxxx] ? 

You should now enter your site-name, license-code, and expiration date.

Sitename [Kilian Evang on Linux] ? 
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) [/home/ke/opt/jdk1.6.0_22] ? 

(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., without setting LD_LIBRARY_PATH. See the release

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) ? 

sicstus.tar.compress.crypt seems to have been unpacked already. Unpack anyway [no] ? 

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.3.
This systems uses Glibc 2.11.
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...

Copying files to /home/ke/opt/sicstus. This may take a few minutes...  Installing documentation into /home/ke/opt/sicstus/lib/sicstus-3.12.10patch1

Creating development system symlinks...

Creating development system binary...

Creating copies of SICStus run-time for multiple run-time support

Creating spdet and spxref...

Creating save-dumps...

Compiling license file...

Performing final link step for the Jasper module...
Linking ok.
Linking jasper.s.o... ok.
Creating ok.

Completing uninstall info...

Cleaning up... 

Installation complete.

The SICStus development system has been installed as:

The documentation can be accessed locally by opening the URL:


or on the SICStus website:

Uninstall by running /home/ke/install/sp-3.12.10patch1-x86-linux-glibc2.3/UnInstallSICStus

Obtaining TRALE

Current versions of TRALE contain Kahina as well as the Prolog code to connect TRALE's source-level debugger to Kahina. If you have access to TRALE's Subversion repository, you can obtain the latest version from there. Otherwise, ask for an archive and unpack it.

Using TRALE with the distributed version of Kahina

Assuming a Unix-like environment (counting Cygwin on Windows), you start TRALE by running the trale script found in the trale directory of the TRALE distribution. Before running it, make sure that the environment variable TRALE_HOME is not set or set to the path trale directory that contains the up-to-date version you wish to use. To use TRALE's source-level debugger with Kahina, you need to run trale with the option -d, like this:

trale -d

Using TRALE with a development version of Kahina

To always use the latest and greatest version of Kahina and use new features as soon as they are added, you need a Subversion client and Ant installed. Use the following command to obtain a development version of Kahina:

svn checkout kahina
cd kahina

This will create a directory called kahina in the current directory, containing the Kahina sources, and compile them.

Every time you want to update Kahina to the latest version, run the following from the kahina directory.

svn update

To tell TRALE to use the development version, start it with the environment variable KAHINA_TRUNK set to point to the kahina directory, e.g. like this:

export KAHINA_TRUNK=/home/ke/workspace/kahina
trale -d

If you always want to work with the development version, you can include the first line in your shell's startup script. To use the version distributed with TRALE again, just unset KAHINA_TRUNK, like this:


First steps

After starting TRALE using trale -d, 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:


This will start the GUI but make the Prolog prompt inaccessible, in return giving you the possibility to starting 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 compilation/parsing/query resulution process.