logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

Authors

BrunoHaible <http://www.haible.de/bruno/>
           The original author and long-time maintainer.

       MichaelStoll <http://www.mathe2.uni-bayreuth.de/stoll/>
           The original author.

       SamSteingold <http://sds.podval.org/>
           Co-maintainer since 1998.

       Others
           See COPYRIGHT(fileintheCLISPsources)  for the list of other contributors and the license.

Description

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

       •   creates new module sets out of source files

       •   adds module sets to a linking set to produce a new linking set

       •   runs CLISP[1] with module sets added

       •   OnlyinCLISP[1] builtwithoutconfigureflag--without-dynamic-modules.installs new module sets for general use

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 environmentvariable[4] CLISP_LINKKIT.

Name

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

Notes

        1. CLISPhttp://clisp.org

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

        3. USER-HOMEDIR-PATHNAMEhttp://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

CLISP 2.49.95+                              Last modified: 2024-11-09                              CLISP-LINK(1)

Options

create
           The command

               $ clisp-linkcreatemodulefile ...

           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-linkaddsourcedestinationmodule ...

           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-linkrunsourcemodule ...

           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.

       installOnlyinCLISP[1] builtwithoutconfigureflag--without-dynamic-modules.

           The command

               $ clisp-linkinstallmodule ...

           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.

See Also

           CLISP impnotes
           clisp(1)

Synopsis

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

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

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

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

See Also