Skip to content

Pi-Bolt 0.9.4

Latest

Choose a tag to compare

@Kushalkhemka Kushalkhemka released this 16 Oct 18:05
d82b859

Pi-Bolt 0.9.4 brings fixes from upstream Bun and WebKit into its engine: Pi-Bolt no longer stops at launch on some ARM64
CPUs, and child processes, timers and connections behave better. Pi is the same as in 0.9.3.

Fixes

  • Linux on ARM64 and Android: Pi-Bolt no longer stops at launch with an illegal instruction on CPUs that report SVE2
    without SVE (oven-sh/bun#45099).
  • Commands run by Pi: a child process no longer inherits a non-blocking stdout or stderr, so a program that does not
    expect one no longer fails or loses output, and output written while the pipe is full is no longer dropped
    (oven-sh/bun#43868). A pipe is no longer read again after a read on it failed (oven-sh/bun#43900).
  • Timers while streaming: a connection whose peer keeps the receive buffer full no longer stops timers such as the spinner
    and timeouts (oven-sh/bun#45278).
  • Model requests: fetch sets up TLS once per connection instead of once per request (oven-sh/bun#44507). Over HTTP/2, a
    request is rejected on a TLS alert after the handshake, and a connection that went silent after an abort is no longer
    reused (oven-sh/bun#45422).
  • Plugins: a module removed while its import() is still loading no longer crashes Pi-Bolt (oven-sh/WebKit#748).
  • Containers: the memory limit of a cgroup v2 is seen where a cgroup v1 hierarchy exists beside it (oven-sh/WebKit#808).
  • spawnSync (oven-sh/bun#44581) and TextEncoder.encode of a substring (oven-sh/bun#45281) are fixed, and the allocator is
    mimalloc 3.5.3 (oven-sh/bun#44560, oven-sh/bun#44575).

Measured on GitHub's runners (one CPU, the same Pi on 0.9.3's runtime and on 0.9.4's; x86-64 / ARM64): the startup peak memory
is 42 / 39 MB, from 53 / 42 MB. Time and CPU at startup, for a headless prompt, in an interactive session and while
streaming, and the memory left once idle, are within a few percent of 0.9.3's.

Engine

All four runtimes are new, built by the runtime workflow on GitHub's runners (run 38928351471). From the engine trees that
patches/webkit.patch and patches/bun.patch make on the pinned sources (git rev-parse HEAD^{tree}): WebKit
5bc790d94533812cb9ddd652a1428cb5438e3b59, Bun 397b79f57365fa286a7092dc31145e64890d9d8c.

Runtime Built on bun.exe / bun SHA-256
Linux x86-64 GitHub's ubuntu-24.04 runner, glibc 2.17 sysroot 2aab0c6c4004f887eb96d4aa817aaa74ddff4cb47ba96362e1c7f8784c233025
Linux ARM64 GitHub's ubuntu-24.04-arm runner, glibc 2.17 sysroot fd372fcd3d20ba31652512fd6c842280a54e1dc11404eb817aa4a0870b1cc5df
macOS arm64 GitHub's macos-15 runner b97013e1f151bfbafe217b1404eb9468326a753195e10ef31c1bb6a0faa1151f
Windows x64 GitHub's windows-2025 runner 496dad6ae54a90c80e3ebf089152c75a085492f5e1a661bff89059c14642b233

Install

curl -fsSL https://pi-bolt.opensec.in/install.sh | sh
irm https://pi-bolt.opensec.in/install.ps1 | iex
powershell -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 x86-64. 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-linux-arm64.tar.xz / .tar.gz Linux on ARM64, any 64-bit ARM CPU; Android in Termux, with the installer.
pi-bolt-linux-arm64-jit.tar.xz / .tar.gz Linux on ARM64, JIT also on.
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-linux-arm64.tar.gz, pi-bolt-runtime-darwin-arm64.tar.gz, pi-bolt-runtime-win32-x64.zip The Pi-Bolt Bun runtime, for compiling plugins in.
pi-bolt-kit-linux-x64.tar.gz, pi-bolt-kit-linux-arm64.tar.gz, pi-bolt-kit-darwin-arm64.tar.gz What pi-bolt compile builds with, besides the runtime.

Linux x86-64 or ARM64 with glibc 2.17 or later; Android 7 or later on 64-bit ARM, in Termux; macOS 13 or later on Apple silicon;
Windows 10 1809 or later, or Windows 11, on x64.