squishy 🐻❄️
A collection of new (LLVM 15) passes to compile normal-looking code to a callable, jump-to-able blob. Also includes a python library that provides a python interface to produce a blob for any architecture triple.
Inspired by SheLLVM, but should address some of the outdated issues with that project. Thanks to SheLLVM for the inspiration :)
Installing
Dependencies
- LLVM-15: Install with
wget -qO - https://apt.llvm.org/llvm.sh | sudo bash -s 15 - Meson 0.63+: Install with
pip install -U mesonand add~/.localto your path
To set up LLVM-15 as alternatives you can run scripts/set-alternatives.sh
The easiest way to install squishy 🐻❄️ is from PyPi (sorry about the name, PyPi has weird rules). If an sdist is installed, meson must be installed and
llvm-15 must be available.
python3 -m pip install pysquishy>=0.1.16
Building
squishy 🐻❄️ uses the meson modern build system. To
build, first ensure that meson and ninja are installed, and that you have
an installation of llvm-15 which you can get here.
Then, invoke:
meson build
cd build
meson compile
to produce the library.
Passes
- Aggressive Inliner: Recursively applies alwaysinline and inlines function calls and global variables into the main function.
Metadata
Release files for pysquishy 0.1.21
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pysquishy-0.1.21.tar.gz | 1.6 MB | Details |
Release files / pysquishy-0.1.21.tar.gz
| Download URL | pysquishy-0.1.21.tar.gz |
|---|---|
| Size | 1.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
30e2a148ef67df61a86780186676cd3898ab0eb3bf6079c905c57a579e9affaf
|
|
BLAKE2b-256 checksum How to use checksums |
81f490b91a5aae58aef7e508be9109e3dc3ecd4a0861227d07adac2f37f96982
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.2.1 CPython/3.11.0rc2 Linux/6.1.0-0.rc2.21.fc38.x86_64
|