Installation¶
cl-process-kit targets SBCL only (it relies on sb-ext:run-program and
SBCL-specific FFI for process-group/PTY handling). Two install paths are
supported: the Nix flake, and a plain ASDF/local checkout.
Nix flake¶
{
inputs.cl-process-kit = {
url = "github:nerima-lisp/cl-process-kit";
inputs.nixpkgs.follows = "nixpkgs";
};
}
Pull the packaged system or devShell from
cl-process-kit.packages.<system>.cl-process-kit /
cl-process-kit.devShells.<system>.default. The optional native PTY
backend is available as cl-process-kit.packages.<system>.cl-process-kit-pty.
The flake pins its own cl-boundary-kit, cl-log-kit, cl-tty-kit, and
cl-weave (test-only) dependency versions, so nix flake check /
nix build are the most reproducible way to consume the library.
ASDF / local checkout¶
Point CL_SOURCE_REGISTRY (or a file under
~/.config/common-lisp/source-registry.conf.d/) at the checkout — and at
your own cl-boundary-kit
and cl-log-kit checkouts, its
two required dependencies — then load it:
The optional PTY system
cl-process-kit/pty (package process-kit/pty) additionally depends on
cl-tty-kit and a compiled
native trampoline; see PTY Backend for the build step and
the CL_PROCESS_KIT_PTY_LIBRARY environment variable it requires.
Verifying the install¶
(process-kit:run "/bin/echo" (list "cl-process-kit is installed"))
;; => a PROCESS-RESULT whose stdout is "cl-process-kit is installed\n"
Continue with Quick Start for a tour of the synchronous, asynchronous, cancellation, and pipeline APIs.