Man page - clisp-link(1)

Packages contains this manual

Manual

CLISP-LINK

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
EXAMPLES
FILES
SEE ALSO
AUTHORS
COPYRIGHT
NOTES

NAME

clisp-link - link a new external module to CLISP [1] .

SYNOPSIS

clisp-link [ create ] [ module ] [ file ...]

clisp-link [ add ] [ source ] [ destination ] [ module ...]

clisp-link [ run ] [ source ] [ module ...]

clisp-link [ install ] [ module ...]

DESCRIPTION

This shell script operates on CLISP [1] module sets and linking sets:

create s new module sets out of source files

add s module sets to a linking set to produce a new linking set

run s CLISP [1] with module sets added

Only in CLISP [1] built without configure flag --without-dynamic-modules .

install s new module sets for general use

OPTIONS

create

The command

$ clisp-link create module file ...

creates a module set in module directory which refers (via symbolic links) to files file ... The files are expected to be modules of their own.

add

The command

$ clisp-link add source destination module ...

combines the linking set in directory source and the modules in directories module ... to a new linking set, in the directory destination which is newly created.

run

The command

$ clisp-link run source module ...

runs the linking set in directory source , with the modules in directories module ... Unless CLISP [1] has been built with the configuration option --without-dynamic-modules , the loading will be performed using SYS::DYNLOAD-MODULES . Otherwise - this is much slower - a temporary linking set will be created and deleted afterwards.

install

Only in CLISP [1] built without configure flag --without-dynamic-modules .

The command

$ clisp-link install module ...

installs the modules in directories module ... into CUSTOM:*LIB-DIRECTORY* or, if it is not writable to the user (e.g., if a system-wide CLISP [1] installation is used and the user does not have administrative privileges), into CUSTOM:*USER-LIB-DIRECTORY* .

Variable CUSTOM:*USER-LIB-DIRECTORY* is initially set to ( MERGE-PATHNAMES [2] ".clisp/" ( USER-HOMEDIR-PATHNAME [3] )) if that directory exists, and can be reset in the RC file.

Note
Do not add CUSTOM:*USER-LIB-DIRECTORY* to CUSTOM:*LOAD-PATHS* or under any element thereof. Use REQUIRE instead of LOAD to load dynamic modules.

For this command to work, each module directory must contain a Makefile with a clisp-module-distrib target which uses LN to distribute the files necessary to run the module into destdir . This is in addition to the general requirement that link.sh is present.

EXAMPLES

See Section 32.2.6, “Example”.

FILES

clisp-link needs a “link kit” directory containing:

• "modules.c"

• "clisp.h"

clisp-link expects to find these files in a subdirectory linkkit/ of the installation directory (i.e., CUSTOM:*LIB-DIRECTORY* ) which it acquires by running

$ ‘dirname $0‘/clisp -b

This can be overridden by the environment variable [4] CLISP_LINKKIT .

SEE ALSO

CLISP impnotes
clisp(1)

AUTHORS

Bruno Haible < http://www.haible.de/bruno/ >

The original author and long-time maintainer.

Michael Stoll < http://www.mathe2.uni-bayreuth.de/stoll/ >

The original author.

Sam Steingold < http://sds.podval.org/ >

Co-maintainer since 1998.

Others

See COPYRIGHT (file in the CLISP sources) for the list of other contributors and the license.

COPYRIGHT

Copyright © 1992-2024 Bruno Haible
Copyright © 1998-2018 Sam Steingold

NOTES

1.

CLISP

http://clisp.org

2.

MERGE-PATHNAMES

http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_merge-pathnames.html

3.

USER-HOMEDIR-PATHNAME

http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/fun_user-homedir-pathname.html

4.

environment variable

[set $man.base.url.for.relative.links]/basedefs/V1_chap08.html