Verifying your installation¶
After installing DynaPlex you can confirm that the wheel works on your platform — including the LLVM JIT — with a single command. Everything needed ships inside the package, so there is nothing else to download.
Supported platforms¶
DynaPlex is distributed as pre-built, self-contained wheels. There is no build-from-source step and no external LLVM to install — the JIT is bundled.
Python |
3.13 only |
macOS |
Apple Silicon (arm64), macOS 14.0 or newer |
Linux |
x86_64, glibc 2.28 or newer ( |
Windows |
AMD64 (64-bit) |
The only required runtime dependency is NumPy. PyTorch is needed only for
the reinforcement-learning algorithms (PPOTrainer); install it separately
from https://pytorch.org/get-started/locally/ if you need them.
Install¶
pip install dynaplex
If pip cannot find a matching wheel, it is almost always a platform
mismatch — most often a Python version other than 3.13, an Intel Mac, or a
32-bit interpreter. Check with:
python -c "import sys, platform; print(sys.version); print(platform.machine())"
Run the self-test¶
The quickest and most complete check is the bundled self-test. It prints your environment, exercises the compile/interpret pipeline end to end, and — when the JIT is present (the default in the shipped wheels) — compiles and runs a small kernel through LLVM:
python -m dynaplex.selftest
Expected output on a healthy install (details will differ per machine):
DynaPlex installation self-test
================================================
dynaplex version : 1.10.0
build config : Release
JIT enabled : True
python : 3.13.12 (/path/to/python)
platform : macOS-14.5-arm64 / arm64
================================================
[ OK ] import dynaplex + numpy
[ OK ] interpreter round-trip -- 2 + 3 == 5
[ OK ] JIT compile + run -- LLVM kernel matches interpreter
RESULT: OK -- your DynaPlex installation works, JIT included.
The command exits with status 0 on success and 1 if any check fails,
so it can be dropped straight into a CI pipeline:
python -m dynaplex.selftest || echo "DynaPlex self-test failed"
What each check means:
import dynaplex + numpy — the extension module loaded and NumPy is present.
interpreter round-trip — a function was compiled, ingested, and run on the DynaPlex interpreter (the core pipeline works even without the JIT).
JIT compile + run — a kernel was compiled through LLVM and its result matched the interpreter. If your wheel was built without the JIT this check reports
[SKIP]and is not counted as a failure.
Manual one-line checks¶
If you prefer to check things by hand, these are safe to paste into a shell:
# Version and build configuration
python -c "import dynaplex; print(dynaplex.__version__, dynaplex.__build_config__)"
# Is the JIT compiled into this wheel?
python -c "from dynaplex import _core; print('JIT enabled:', _core.has_jit())"
Note
You cannot run the JIT smoke test by pasting a function definition into
python -c or the interactive REPL: the compiler reads a function’s
source (via inspect.getsource), which only exists for functions
defined in a real .py file. That is exactly why the self-test ships as a
module — use python -m dynaplex.selftest rather than trying to reproduce
it inline.
Interpreting the result¶
|
Everything works, JIT included. |
|
Core works; this wheel has no JIT (unusual for the published wheels — expected only for a JIT-free build). |
|
Something is wrong; the failing check and its error are printed above the summary. |
If the self-test fails, please open an issue and include the full output (the environment block and the per-check lines): https://github.com/WillemvJ/DynaPlex-docs/issues