Skip to content
Sinfolke edited this page Oct 25, 2026 · 1 revision

Package Manager

ispa-pkg installs reusable grammar modules, Python helpers, target runtimes, algorithms, and exported parser manifests. Release installers provide it alongside ispa; in a source checkout install the Python CLIs with python3 -m pip install . (Python 3.9+ and PyYAML).

ispa-pkg install std
ispa-pkg install owner/repository --ref v1.2.0
ispa-pkg install https://example.org/mylib.tar.gz --name mylib
ispa-pkg list
ispa-pkg update
ispa-pkg catalog update
ispa-pkg catalog list

The default catalog is the repository's ispa-libraries.yaml. --catalog FILE selects another catalog. --force reinstalls. GitHub packages update when their commit changes; local directories and archives update when contents change.

Make target paths available

Run ispa-pkg --export-permanent once, then open a new bash, zsh, or PowerShell session. In that shell, ispa-pkg --export refreshes exports. The exports add C++ include and library paths, shared library paths, and PYTHONPATH. ISPA_TARGETS_CMAKE points to a CMake file defining ISPA::Targets.

Packages live under ~/.local/share/ispa/libraries by default on Linux and macOS, or under the release installation. ISPA_PKG_ROOT changes the root; ispa-pkg --root changes it only for that invocation. Installed export manifests let ispa resolve --dep by package name.

Make a library

A library can provide ispa-package.yaml with a layout mapping. Without one, ISPA reads ispalib/grammar, ispalib/python, ispatarget/cpp, ispatarget/python, and ispaalgorithm. The repository's own ispa-package.yaml is an example. Install scripts need --allow-scripts. C++ target source files are compiled into an archive at install time, so a C++ compiler and archiver are needed; select them with CXX, CXXFLAGS, and AR.

Clone this wiki locally