The CPL tools come in a self-extracting archive, which you can download at the bottom of this page. The archive unpacks to its own directory in user space and requires no privileges. To get started, run the downloaded file as
in a terminal and follow the instructions on screen.
The CPL compiler and interpreter run on Linux/unix systems. They were developed on Debian GNU/Linux, and this is the system where most tests were performed. Nonetheless the tools and the way they are packed are not tied to a specific flavour of Linux or unix nor to a specific processor architecture; any of the widespread Linux/unix distributions on either personal or datacenter systems should unpack and use them equally well, and all those tested did. The tools have also been successfully deployed in Raspberry Pi and Beaglebone Black ARM-based microboards, as well as in non-Linux unices such as older Silicon Graphics machines and BSD systems including the MacOS Xcode environment (although incompatibilities can sometimes arise from variations in the system C library: your mileage may vary). And the Windows Subsystem for Linux (WSL), which is an integral part of Microsoft Windows 10, essentially is Debian GNU/Linux (except for its graphical user interface); step-by-step instructions are provided in this Windows howto.
Only basic system tools are required: gzip, tar, cc, make, info, plus gnuplot if you want graphics and curl for optional automatic updates. For maximal compatibility the adopted C compiler should be gcc (as the system compiler is by default in most Linux distributions), but other compilers (e.g. icc) have also been used with success. However, CPL nested functions are implemented as C nested functions, a nonstandard gcc extension, and will become unavailable if a compiler other than gcc is used (or if the system's default gcc options disable them).
Minimal by any standard. The uncompressed archive, inclusive of documentation and libraries, altogether takes about 1.5 megabytes (0.0015 GB).
Generally a small fraction of the, already very reasonable, time taken by the subsequently invoked C compiler.
CPL is under active development; its tools sit at different levels of maturity. On a crude scale:
On a finer scale, the optional CPL libraries provided in the package also come with different levels of maturity. See comments in each.
Mature or not as the code is, bugs will happen. If you believe you found a bug, or an inconsistency between the compiler's behaviour and its documentation, you will do an appreciable service to the CPL community by filing a bug report with . With your description please enclose a code snippet, as short as possible but complete enough that it compiles without modification and triggers the non-conforming behaviour.
Version updates are denoted by their date. File names in the version archive include dates. If you experience difficulties please see the Q&A list of common problems and their solutions.
By downloading and unpacking or anyway using this software you declare to have read and agreed to its LICENSE.
Current version is 2021-03-04. Check back here for future updates!