Scieneer Common Lisp 1.3.9 online documentation

HPPA HPUX (64 bit)

Introduction

The 64 bit HPPA port is designed to work with HPPA 2.0 or later processors, and the port is built for HPUX 11i v1.

A variant of this port also runs on the 64 bit IA64 HPUX platform using HPPA emulation, although the performance is rather poor - contact us for more information.

Installation

SCL is intended to be installed in the directory: /opt/scl/. If installed elsewhere then the location of the lisp core file will need to be specified on the command line or the SCLLIB environment variable set to the directory containing the lisp core file.

HPUX patches

The latest patches for HPUX are recommended.

Foreign code

When compiling foreign C code to be loaded into SCL, define _REENTRANT so that the code is built for thread safety, such as thread safe errno handling.

Foreign code may be compiled into a shared object to speed the loading of the object, see ext:load-dynamic-object. The code should be compiled to be position independent, and the shared object must resolve all dependent libraries. Below is an example of compiling the C code in the file tst.c into a shared object that may be loaded by ext:load-dynamic-object where the shared object uses a library named libmylib.

gcc -fPIC -D_REENTRANT -c tst.c
/usr/bin/ld -b -dynamic -o tst.so +n -L/mylibs/pa20_64 tst.o -L/mylibs/pa20_64 -lmylib -lc

Character encoding conversion

For character format converstion, between the internal UCS-2 format, the libiconv library is used. This libraray is available under the terms of the LGPL license and the source code may be downloaded from ftp://ftp.gnu.org/pub/gnu/libiconv/. A precompiler binary of libiconv is provided with SCL and is installed under /opt/scl/. If recompiling libiconv for SCL, be sure to compile for thread safety by defining the C flag -D_REENTRANT.

Memory management

The HPPA port uses a precise garbage collector in contrast to the conservative garbage collector used on the x86 port. This reduces the chance of garbage being kept alive.

The alien stack and the number stack are shared.

Up to 256G bytes of memory may be allocated for the lisp heap.The default size is 512M bytes, which may be overridden using the command line option -dynamic-space-size followed by the size in MBytes.

License keys

The license keys for the HPPA HPUX port are locked to the machine hostname and the machine hostid which HPUX refers to as the machine identification number. The hostname can be found using the command: hosthname. The hostid can be found via the command: uname -i, which returns the hostid as an decimal integer and which should be converted into a hexadecimal number for the purposes of the SCL license key configuration. These values are also output by SCL as part of the machine configuration if SCL fails to find a valid key - this may be the most convenient way to find the hostid as it is output in the required format.

Known issues

Tracing and breakpoints do not currently work.