Repository navigation
Pi-Bolt 0.8.1
Pi-Bolt 0.8.1 runs Pi 1.1.0 on Linux x86-64, macOS on Apple silicon and Windows x64. pi-fff works on the default build, and
installing with npm or Bun is easier.
Extensions
- pi-fff works without the JIT. On the default build, pi-fff stopped at "FFF init failed: bun:ffi requires the JIT". It now
uses its Node.js backend there (the same native search library), with nothing to set up; the-jitbuild uses its Bun backend
as before.
Install
- npm and Bun:
npm install -g --allow-scripts=pi-bolt pi-boltandbun add -g --trust pi-bolt. Both package managers now
ask before running a package's install script, which on Windows puts the executable in place. - When a build is not on npm yet, the installers say "not available from npm; downloading from GitHub instead", rather than
that the download failed.
Benchmarks
- 0.8.0 measured on Linux and macOS against Pi 1.1.0 on Bun and Node, and against PiG and oh-my-pi in the same runs
(docs/BENCHMARKS.md). The site shows them too.
Installer
install.shrefuses checksums that say they are another release's, asinstall.ps1does: an older release, signed all the
same, served as a newer one, is no longer installed as the newer.
Engine
- On Windows: an idle keep-alive connection is aged on a clock nobody sets (GetTickCount64), as on Linux and macOS since 0.7.3.
- The writer of the prebuilt heap no longer stops at a pair of numbers that reads like an address of the builder's own memory;
a word that could be a pointer there still stops it.
Corrections to earlier notes
- 0.7.1 to 0.7.3 said the installer detects Linux or macOS: it is
install.shfor those, andinstall.ps1for Windows. - 0.7.1 said git sources are passed with
--end-of-options. They are refused when the repository or ref starts with-, which
works with every git version.
Install
curl -fsSL https://pi-bolt.opensec.in/install.sh | shpowershell -c "irm https://pi-bolt.opensec.in/install.ps1 | iex"or pi-bolt update, or npm install -g --allow-scripts=pi-bolt pi-bolt, or bun add -g --trust pi-bolt.
| Asset | For |
|---|---|
pi-bolt-linux-x64.tar.xz / .tar.gz |
Recommended on Linux. CPUs with AVX2 (Intel Haswell 2013+, AMD Zen+). |
pi-bolt-linux-x64-baseline.tar.xz / .tar.gz |
Any x86-64 CPU with SSE4.2. |
pi-bolt-linux-x64-jit.tar.xz / .tar.gz |
JIT also on, for plugins loaded at run time. |
pi-bolt-darwin-arm64.tar.xz / .tar.gz |
macOS. Macs with Apple silicon, macOS 13 or later. |
pi-bolt-darwin-arm64-jit.tar.xz / .tar.gz |
macOS, JIT also on. |
pi-bolt-win32-x64.zip |
Windows. Windows 10 (1809) or 11 on x64; compiled code on AVX2 CPUs, bytecode on others. |
pi-bolt-win32-x64-jit.zip |
Windows, JIT also on. |
pi-bolt-runtime-linux-x64.tar.gz, pi-bolt-runtime-darwin-arm64.tar.gz, pi-bolt-runtime-win32-x64.zip |
The Pi-Bolt Bun runtime, for compiling plugins in. |
Linux x86-64 with glibc 2.17 or later; macOS 13 or later on Apple silicon; Windows 10 1809 or later, or Windows 11, on x64.
The runtimes
The engine changed (Windows, and 0.7.3's and 0.7.4's changes merged with it), so the runtimes of this release were built by
hand (RELEASING.md). From the engine trees that patches/webkit.patch and
patches/bun.patch make on the pinned sources (git rev-parse HEAD^{tree}): WebKit f527504e0d1d9f14c73b7aab4682fe44972507fa,
Bun 2c4f4980f78e0986a324aa46f648ce05542d9369.
| Runtime | Built on | bun.exe / bun SHA-256 |
|---|---|---|
| Windows x64 | the maintainer's Windows 11 machine, Visual Studio 2022, LLVM 23.1, ThinLTO, Control Flow Guard | 3770b10e74eb4036d5df080173ed54ae956de6891a1babfeab1b65953f4bb059 |
| Linux x86-64 | a Linux x86-64 VM (AMD EPYC 7B13), LLVM 23.1, ThinLTO, glibc 2.17 sysroot | fb9ee22ef65619272e3e8d5cfb80020b24590aac82d8bcbf705a301edfe8acc8 |
| macOS arm64 | the maintainer's MacBook Air (M5), LLVM 23.1, ThinLTO | 24b6d7ffb4076db2fe4cfe67f65fda18f5c4aeb4e32f98c37b0ada5da0aeb785 |
A runtime is not yet built bit for bit the same twice, so these are what was built, not what anyone would get.