Skip to main content

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 meson and add ~/.local to 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

  1. 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)

Source distribution for pysquishy 0.1.21
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

Release history Release notifications | RSS feed

This release

0.1.21 This release

1 release file

0.1.20

1 release file

0.1.19

1 release file

0.1.18

1 release file

0.1.17

1 release file

0.1.16

1 release file

0.1.15

1 release file

0.1.14

1 release file

0.1.13

1 release file

0.1.12

1 release file

0.1.11

1 release file

0.1.10

1 release file

0.1.8

1 release file

0.1.7

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

2 release files

0.1.2

1 release file

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page