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/v3.4.0";
inputs.nixpkgs.follows = "nixpkgs";
};
}
Pin a release tag rather than following the default branch, the same way
this project pins its own cl-boundary-kit/cl-log-kit/cl-host-kit/
cl-date-kit/cl-concurrent-kit/cl-tty-kit/cl-codec-kit/
cl-weave inputs in flake.nix -- an unpinned github: reference tracks
whatever is on main, which can change under a consumer without warning.
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-date-kit,
cl-concurrent-kit, cl-host-kit, cl-tty-kit, cl-codec-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,
cl-log-kit,
cl-date-kit,
cl-concurrent-kit, and
cl-codec-kit checkouts, 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 PTY shared library; 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.