Skip to content

Pi-Bolt 0.8.1

Choose a tag to compare

@github-actions github-actions released this 11 Oct 03:32
· 385 commits to pi-bolt since this release

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 -jit build uses its Bun backend
    as before.

Install

  • npm and Bun: npm install -g --allow-scripts=pi-bolt pi-bolt and bun 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.sh refuses checksums that say they are another release's, as install.ps1 does: 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.sh for those, and install.ps1 for 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 | 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.

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.