Skip to content

Pi-Bolt 0.8.3

Choose a tag to compare

@Kushalkhemka Kushalkhemka released this 11 Oct 12:52
· 326 commits to pi-bolt since this release
ab1f647

Pi-Bolt 0.8.3 fixes updating in place on macOS and restores 0.8.1's speed on Linux and Windows. Everything else is
0.8.2.

macOS

  • A session started before an update keeps working. Updating with the installer or pi-bolt update replaces the build's
    files, and a session of 0.8.1 that was still running stopped at the end of its next command (a tool's command, or the version
    check that ends pi-bolt update, which installed 0.8.2 and then did not return). Such a session now goes on; only the
    resource usage of its commands is not reported until it is restarted.
  • If a session or a pi-bolt update stopped like that on 0.8.2: end it (Ctrl+C), and start Pi-Bolt again. 0.8.2 was installed.

Performance

  • Linux and Windows: 0.8.2's engine read some properties of the compiled code the generic way on x86-64, which made the TUI
    start and respond a few percent slower than 0.8.1. 0.8.3 reads them as 0.8.1 did.
  • The built-in Herdr extension is set up only in a Herdr pane.
  • Measured against 0.8.0 and 0.8.1 as released (interleaved runs on the same cores): startup, a headless prompt and the TUI
    (time to interactive, five turns) are the same within 1% on Linux x86-64 and macOS, with a little less memory.

Plugins

  • scripts/build-pi.sh: when the compiler stops the build (a plugin's module over the size limit, say), the build shows the end
    of what the compiler printed and where all of it is, rather than nothing (#8).

Engine

  • Typed fields (useAOTTypedFields, off in every build) are off on CPUs other than ARM64, whose compiled accesses do not check
    them; the table of types is as in 0.8.1.

The runtimes

From the engine trees that patches/webkit.patch and patches/bun.patch make on the pinned sources (git rev-parse HEAD^{tree}):
WebKit 927e43f44e123e14ae9bab949fa51bd5d78cb171, Bun 38c350d92af2b622768f89794c6710ed03ef6202.

Runtime Built on bun.exe / bun SHA-256
Windows x64 the maintainer's Windows 11 machine (Intel Core i5-1335U), ThinLTO, Control Flow Guard 777fbb38a28a33a28ee93d87aaa56bd61f8d91a78b8fc5ca00bcf5ebb664035b
Linux x86-64 a Linux x86-64 VM (AMD EPYC 7B13), LLVM 23.1, ThinLTO, glibc 2.17 sysroot 96bf1c743a75d68fda3b21353027768c7d3ec0e67a2bbc7d221dc67157d200bb
macOS arm64 the maintainer's MacBook Air (M5), LLVM 23.1, ThinLTO 874bd2e2a1b0e041e81398e2a55891544ca449d4cf81228db405adf9ad40a756

Linux, Windows, npm installs and new installs were not affected by the macOS update issue.

Install

curl -fsSL https://pi-bolt.opensec.in/install.sh | sh
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. 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.