git: fec1cd2f9bec - main - lang/bun: update to 1.4.2
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 19 Oct 2026 20:19:56 UTC
The branch main has been updated by samm:
URL: https://cgit.FreeBSD.org/ports/commit/?id=fec1cd2f9becf00e9a51d099ee21c808906c2dbe
commit fec1cd2f9becf00e9a51d099ee21c808906c2dbe
Author: Oleksii Samorukov <samm@FreeBSD.org>
AuthorDate: 2026-10-19 20:16:58 +0000
Commit: Oleksii Samorukov <samm@FreeBSD.org>
CommitDate: 2026-10-19 20:16:58 +0000
lang/bun: update to 1.4.2
Update to 1.4.2 and rework the port for the upstream Rust build system.
Use lang/rust-nightly-bun instead of the moving lang/rust-nightly, add
aarch64 support, keep the patched WebKit fork, and drop the old Zig /
sysroot / prebuilt-binary machinery.
PR: 299115
Pull Request: https://github.com/freebsd/freebsd-ports/pull/644
---
lang/bun/Makefile | 527 ++---
lang/bun/Makefile.crates | 222 ++
lang/bun/distinfo | 494 ++++-
.../files/bun-boringssl-disable-avx512-gcm.patch | 89 -
.../bun-libdeflate-adler32-disable-avx2.patch | 28 -
.../files/bun-libdeflate-crc32-disable-avx.patch | 18 -
lang/bun/files/package-lock-bun-error.json | 26 -
lang/bun/files/package-lock-node-fallbacks.json | 2028 ------------------
lang/bun/files/package-lock.json | 2217 --------------------
lang/bun/files/patch-build.zig | 42 -
lang/bun/files/patch-scripts_build.ts | 23 -
lang/bun/files/patch-scripts_build_codegen.ts | 17 -
lang/bun/files/patch-scripts_build_config.ts | 75 -
.../files/patch-scripts_build_depVersionsHeader.ts | 13 -
.../files/patch-scripts_build_deps_boringssl.ts | 50 -
.../files/patch-scripts_build_deps_libdeflate.ts | 49 -
lang/bun/files/patch-scripts_build_deps_libwebp.ts | 47 -
lang/bun/files/patch-scripts_build_deps_lolhtml.ts | 22 -
lang/bun/files/patch-scripts_build_deps_webkit.ts | 15 -
lang/bun/files/patch-scripts_build_deps_zlib.ts | 21 -
lang/bun/files/patch-scripts_build_deps_zstd.ts | 22 -
lang/bun/files/patch-scripts_build_flags.ts | 28 -
lang/bun/files/patch-scripts_build_tools.ts | 13 +-
lang/bun/files/patch-scripts_build_zig.ts | 26 -
lang/bun/files/patch-src_codegen_bake-codegen.ts | 48 -
lang/bun/files/patch-src_codegen_bundle-modules.ts | 32 -
lang/bun/files/patch-src_collections_lib.rs | 13 +
.../patch-src_collections_multi_array_list.rs | 200 ++
...src_jsc_bindings_BunAnalyzeTranspiledModule.cpp | 13 -
.../patch-src_jsc_bindings_BunCPUProfiler.cpp | 40 -
.../bun/files/patch-src_jsc_bindings_BunObject.cpp | 13 -
.../files/patch-src_jsc_bindings_BunProcess.cpp | 18 +
...tch-src_jsc_bindings_NodeVMSourceTextModule.cpp | 22 -
lang/bun/files/patch-src_jsc_bindings_bindings.cpp | 13 -
lang/bun/files/patch-src_runtime_cli_mod.rs | 15 +
...tion_next-pages_test_dev-server-ssr-100.test.ts | 39 -
...h-test_js_web_console_console-log-utf16.test.ts | 18 -
.../patch-test_regression_issue_10132.test.ts | 32 -
.../patch-test_regression_issue_18547.test.ts | 13 -
...patch-test_regression_issue_20144_20144.test.ts | 13 -
.../patch-test_regression_issue_24314.test.ts | 37 -
41 files changed, 1183 insertions(+), 5508 deletions(-)
diff --git a/lang/bun/Makefile b/lang/bun/Makefile
index 8580fe1759ee..f0c4699f2267 100644
--- a/lang/bun/Makefile
+++ b/lang/bun/Makefile
@@ -1,338 +1,277 @@
PORTNAME= bun
DISTVERSIONPREFIX= bun-v
-DISTVERSION= 1.3.14
-PORTREVISION= 6
+DISTVERSION= 1.4.2
CATEGORIES= lang
+
+LLVM_VER= 21
+NODE_VERSION= 26.3.0
+# samm-git/WebKit release = bun's pinned commit (2e2aa2290fac856d) + the FreeBSD
+# membarrier fix. bun keys its prebuilt cache/identity by the commit *it* pins,
+# so WEBKIT_COMMIT/WEBKIT_SHORT use that, not the fork's WEBKIT_VERSION.
+WEBKIT_VERSION= 808354a3cce576c0c9ac20ece440fee481e8737d
+WEBKIT_COMMIT= 2e2aa2290fac856d6f451ceacb58f7f5b44dd057
+WEBKIT_SHORT= 2e2aa2290fac856d
+# Full sha: bun's build const-slices it and the source tarball has no .git.
+BUN_GIT_SHA= 744846f844374847c902b5e7fd59b4342a51ef99
+
+# bun needs a Rust nightly: its source uses unstable `#![feature(...)]`s (stable
+# rustc fails E0554) and the release profile passes -Zbuild-std (which needs
+# rust-src). lang/rust-nightly is a moving target and its updates have broken
+# bun's type_info reflection patches, so depend on the pinned binary toolchain
+# in lang/rust-nightly-bun instead. Bumping that port is a deliberate change:
+# re-sync src/collections/multi_array_list.rs from bun main, regenerate
+# patch-src_collections_{multi_array_list,lib}.rs, update RUSTC_TESTED_VERSION
+# and the rust-nightly-bun pin together. On a bun bump, refresh
+# GH_TUPLE/_BUN_DEP_CACHE and run `make makesum`.
+RUSTC_TESTED_VERSION= 1.100.0-nightly (feaadeeac 2026-09-19)
+
MASTER_SITES= GH \
- https://github.com/oven-sh/zig/releases/download/autobuild-04e7f6ac1e009525bc00934f20199c68f04e0a24/:ovenzig \
- https://github.com/oven-sh/WebKit/releases/download/autobuild-${WEBKIT_VERSION}/:webkit \
- https://nodejs.org/dist/v${NODE_VERSION}/:nodejshdr \
- LOCAL/yuri/:bootstrap
-DISTFILES= bootstrap-x86_64-linux-musl.zip:ovenzig \
- bun-webkit-freebsd-amd64.tar.gz:webkit \
- node-v${NODE_VERSION}-headers.tar.gz:nodejshdr \
- bun-1.3.13-93-bootstrap:bootstrap \
- bun-node-modules-${DISTVERSION}.tar.gz:bootstrap \
- bun-dep-tarballs-${DISTVERSION}.tar.gz:bootstrap \
- bun-cargo-vendor-lolhtml-${DISTVERSION}.tar.gz:bootstrap
+ https://github.com/oven-sh/bun/releases/download/${DISTVERSIONPREFIX}${DISTVERSION}/:bootstrap \
+ https://github.com/samm-git/WebKit/releases/download/autobuild-${WEBKIT_VERSION}/:webkit \
+ https://nodejs.org/dist/v${NODE_VERSION}/:nodehdr
+DISTFILES= bun-freebsd-${BUN_ASSET_ARCH}.zip:bootstrap \
+ bun-webkit-freebsd-${WEBKIT_ASSET_ARCH}.tar.gz:webkit \
+ node-v${NODE_VERSION}-headers.tar.gz:nodehdr
DIST_SUBDIR= ${PORTNAME}
-# Only auto-extract the GitHub source tarball; everything else is handled in post-extract.
-EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
+# Only the GitHub source tarball is auto-extracted; the bootstrap/WebKit/headers
+# tarballs are unpacked by hand in post-extract.
+EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} \
+ ${CARGO_CRATES:S/^/rust\/crates\//:S/$/.crate/}
MAINTAINER= yuri@FreeBSD.org
COMMENT= JavaScript runtime, bundler, test runner, and package manager
WWW= https://bun.com/ \
https://github.com/oven-sh/bun
-LICENSE= LGPL20
-
-BROKEN= Checksum error
+LICENSE= MIT LGPL20
+LICENSE_COMB= multi
-ONLY_FOR_ARCHS= amd64
-ONLY_FOR_ARCHS_REASON= bootstrap binary is only available for amd64 for now
-
-# do-fetch requires npm (node_modules build) and cargo (lolhtml vendor)
-FETCH_DEPENDS= ${LOCALBASE}/bin/npm:www/npm-node24 \
- git:devel/git \
- cargo:lang/rust \
- ${LOCALBASE}/llvm${LLVM_VER}/bin/clang++:devel/llvm${LLVM_VER} \
- cmake:devel/cmake-core \
- ninja:devel/ninja \
- ${LOCALBASE}/bin/node:www/node24
-BUILD_DEPENDS= ${LOCALBASE}/llvm${LLVM_VER}/bin/clang++:devel/llvm${LLVM_VER} \
- cmake:devel/cmake-core \
- git:devel/git \
- ninja:devel/ninja \
- cargo:lang/rust \
- ${LOCALBASE}/bin/node:www/node24 \
- ${LOCALBASE}/bin/npm:www/npm-node24
-TEST_DEPENDS= bash:shells/bash
-
-USES= shebangfix
+ONLY_FOR_ARCHS= aarch64 amd64
+ONLY_FOR_ARCHS_REASON= requires an upstream FreeBSD bootstrap binary (only aarch64/amd64 are published)
+USES= shebangfix cargo
USE_GITHUB= yes
GH_ACCOUNT= oven-sh
-GH_TUPLE= simdutf:simdutf:v${SIMDUTF_VERSION}:simdutf_src
-
+GH_TUPLE= oven-sh:boringssl:41bf9b59c2ebf277a7aa427e1ecad5cc80dd4d4f:boringssl \
+ google:brotli:v1.1.0:brotli \
+ c-ares:c-ares:c7a3138dcfe3bb0eaaf10c0c24c36dc66dc790ab:cares \
+ HdrHistogram:HdrHistogram_c:be60a9987ee48d0abf0d7b6a175bad8d6c1585d1:hdrhistogram \
+ google:highway:2607d3b5b0113992fe84d3848859eae13b3b52c1:highway \
+ libarchive:libarchive:ded82291ab41d5e355831b96b0e1ff49e24d8939:libarchive \
+ ebiggers:libdeflate:c8c56a20f8f621e6a966b716b31f1dedab6a41e3:libdeflate \
+ libjpeg-turbo:libjpeg-turbo:e352b02f794f701407b39af08576035ba3360d60:libjpeg_turbo \
+ randy408:libspng:fb768002d4288590083a476af628e51c3f1d47cd:libspng \
+ oven-sh:libuv:8023581113b276e7c1aee3f82da57ca0893faab1:libuv \
+ webmproject:libwebp:b7e29b9d75bd31422b00c2a446d49d7af06c328d:libwebp \
+ oven-sh:lol-html:725ce499aa9b71e38b7a2d0a9fbb6d7294a4079e:lolhtml \
+ litespeedtech:ls-hpack:8905c024b6d052f083a3d11d0a169b3c2735c8a1:lshpack \
+ litespeedtech:ls-qpack:1e9c5b8e59f8161c54f168a570c8bfdc59ded0c3:lsqpack \
+ litespeedtech:lsquic:3181911301b1aa4f54c1ed690901abc674ee08fb:lsquic \
+ oven-sh:mimalloc:6a64e1ba7f5b2130d4efccb67ec87fd0003f0f6a:mimalloc \
+ h2o:picohttpparser:066d2b1e9ab820703db0837a7255d92d30f0c9f5:picohttpparser \
+ sru-systems:rust-argon2:ed81866f163f0c7026aa6fd8388adf37242eb32a:rust_argon2 \
+ oven-sh:tinycc:05f0fafaa3be31e31d7b4b5c17dc60f62c991171:tinycc \
+ zlib-ng:zlib-ng:12731092979c6d07f42da27da673a9f6c7b13586:zlib \
+ facebook:zstd:f8745da6ff1ad1e7bab384bd1f9d742439278e99:zstd
SHEBANG_FILES= test/regression/issue/18239/data-generator.sh
-LLVM_VER= 21 # build fails with llvm-19: error: unknown warning option '-Wno-character-conversion'
+BUILD_DEPENDS= ${LOCALBASE}/llvm${LLVM_VER}/bin/clang++:devel/llvm${LLVM_VER} \
+ ${LOCALBASE}/llvm${LLVM_VER}/bin/ld.lld:devel/llvm${LLVM_VER} \
+ ${RUST_PREFIX}/bin/cargo:lang/rust-nightly-bun \
+ ${LOCALBASE}/bin/cmake:devel/cmake-core \
+ ${LOCALBASE}/bin/ninja:devel/ninja \
+ git:devel/git
+# do-fetch builds the offline caches, so the toolchain is needed at fetch too.
+FETCH_DEPENDS= ${RUST_PREFIX}/bin/cargo:lang/rust-nightly-bun
+
+RUST_PREFIX= ${LOCALBASE}/rust-nightly-bun
+CARGO_BUILDDEP= no
+CARGO= ${RUST_PREFIX}/bin/cargo
+RUSTC= ${RUST_PREFIX}/bin/rustc
+RUSTDOC= ${RUST_PREFIX}/bin/rustdoc
+CARGO_CONFIGURE= no
+CARGO_BUILD= no
+CARGO_INSTALL= no
+CARGO_TEST= no
-# WebKit/JavaScriptCore FreeBSD prebuilt
-WEBKIT_VERSION= bdf6aab38a9c6f99df3fd1486406ab6b74180fbb
-WEBKIT_SHORT= bdf6aab38a9c6f99
-# simdutf source (used to rebuild SIMDUTF.cpp.o in libWTF.a for baseline builds)
-SIMDUTF_VERSION= 8.2.0
-# Node.js headers (official tarball from nodejs.org; do-fetch trims unused dirs)
-NODE_VERSION= 24.3.0
+.include <bsd.port.pre.mk>
-# Custom tarballs are built by do-fetch and stored in DD.
-# They are NOT listed in DISTFILES so checksum phase does not verify them.
+# Asset names: bun uses x64/aarch64, the WebKit prebuilt amd64/arm64.
+.if ${ARCH} == amd64
+BUN_ASSET_ARCH= x64
+WEBKIT_ASSET_ARCH= amd64
+WEBKIT_CACHE_SUFFIX=
+# bun assembles x86-only crypto code (BoringSSL) with nasm at build time.
+BUILD_DEPENDS+= ${LOCALBASE}/bin/nasm:devel/nasm
+.elif ${ARCH} == aarch64
+BUN_ASSET_ARCH= aarch64
+WEBKIT_ASSET_ARCH= arm64
+WEBKIT_CACHE_SUFFIX= -arm64
+.endif
-# Dep tarball cache names and their upstream GitHub URLs.
-# Names are {depname}-{sha256(url)[0:16]}.tar.gz (computed by bun's fetch-cli.ts).
-# Used by do-fetch to pre-populate the bun dep tarballs cache.
-_BUN_DEP_TARBALLS= \
- boringssl-5e15ff9594809574.tar.gz:https://github.com/oven-sh/boringssl/archive/0c5fce43b7ed5eb6001487ee48ac65766f5ddcd1.tar.gz \
- brotli-723494d4c3a9902a.tar.gz:https://github.com/google/brotli/archive/v1.1.0.tar.gz \
- cares-4e43539b43c0f4ae.tar.gz:https://github.com/c-ares/c-ares/archive/3ac47ee46edd8ea40370222f91613fc16c434853.tar.gz \
- hdrhistogram-97084f213075a65e.tar.gz:https://github.com/HdrHistogram/HdrHistogram_c/archive/be60a9987ee48d0abf0d7b6a175bad8d6c1585d1.tar.gz \
- highway-b2dcc6002e95cc47.tar.gz:https://github.com/google/highway/archive/2607d3b5b0113992fe84d3848859eae13b3b52c1.tar.gz \
- libarchive-4296b191210d6b1b.tar.gz:https://github.com/libarchive/libarchive/archive/ded82291ab41d5e355831b96b0e1ff49e24d8939.tar.gz \
- libdeflate-ce0e2d9805b30dcc.tar.gz:https://github.com/ebiggers/libdeflate/archive/c8c56a20f8f621e6a966b716b31f1dedab6a41e3.tar.gz \
- libjpeg-turbo-297099166a01f75e.tar.gz:https://github.com/libjpeg-turbo/libjpeg-turbo/archive/e352b02f794f701407b39af08576035ba3360d60.tar.gz \
- libspng-e6aca86c593b51ad.tar.gz:https://github.com/randy408/libspng/archive/fb768002d4288590083a476af628e51c3f1d47cd.tar.gz \
- libwebp-2ced709f169b40bd.tar.gz:https://github.com/webmproject/libwebp/archive/b7e29b9d75bd31422b00c2a446d49d7af06c328d.tar.gz \
- lolhtml-929339b1d898e66b.tar.gz:https://github.com/cloudflare/lol-html/archive/77127cd2b8545998756e8d64e36ee2313c4bb312.tar.gz \
- lshpack-73e0c55d12ea4fc2.tar.gz:https://github.com/litespeedtech/ls-hpack/archive/8905c024b6d052f083a3d11d0a169b3c2735c8a1.tar.gz \
- lsqpack-ceeb8e315778b938.tar.gz:https://github.com/litespeedtech/ls-qpack/archive/1e9c5b8e59f8161c54f168a570c8bfdc59ded0c3.tar.gz \
- lsquic-d3ef6cf1fbedd7f9.tar.gz:https://github.com/litespeedtech/lsquic/archive/3181911301b1aa4f54c1ed690901abc674ee08fb.tar.gz \
- mimalloc-4a1c4f1f45e31b88.tar.gz:https://github.com/oven-sh/mimalloc/archive/f15aecb94fc8096008bf87b90c53ed682026914a.tar.gz \
- picohttpparser-fad59b16ad4752cc.tar.gz:https://github.com/h2o/picohttpparser/archive/066d2b1e9ab820703db0837a7255d92d30f0c9f5.tar.gz \
- tinycc-2f1f629056328c7b.tar.gz:https://github.com/oven-sh/tinycc/archive/12882eee073cfe5c7621bcfadf679e1372d4537b.tar.gz \
- zlib-655c6ecdb6fc9cd5.tar.gz:https://github.com/zlib-ng/zlib-ng/archive/12731092979c6d07f42da27da673a9f6c7b13586.tar.gz \
- zstd-e010993a24072468.tar.gz:https://github.com/facebook/zstd/archive/f8745da6ff1ad1e7bab384bd1f9d742439278e99.tar.gz
+# Keep checksums for both supported architectures in distinfo. A normal
+# fetch only needs the current architecture, but `make makesum` must include
+# both so it does not drop the other one.
+.if make(makesum)
+DISTFILES= bun-freebsd-x64.zip:bootstrap \
+ bun-webkit-freebsd-amd64.tar.gz:webkit \
+ node-v${NODE_VERSION}-headers.tar.gz:nodehdr \
+ bun-freebsd-aarch64.zip:bootstrap \
+ bun-webkit-freebsd-arm64.tar.gz:webkit
+.endif
DD= ${DISTDIR}/${DIST_SUBDIR}
-BUN_CACHE_DIR= ${WRKDIR}/bun-cache
-BUN_ZIG_DIR= ${WRKDIR}/oven-zig
-BUN_BUILD_DIR= ${WRKSRC}/build/release
+BUN_BOOTSTRAP_DIR= ${WRKDIR}/bun-bootstrap
+BUN_BOOTSTRAP= ${BUN_BOOTSTRAP_DIR}/bun
+BUN_CACHE_DIR= ${WRKDIR}/bun-cache
+BUN_BUILD_DIR= ${WRKSRC}/build/release
+BUN_INSTALL_CACHE_DIR= ${WRKDIR}/bun-install-cache
+CARGO_HOME= ${WRKDIR}/cargo-home
+# USES=cargo adds crate distfiles after ALLFILES is first expanded; keep
+# makesum/checksum aware of them.
+_CKSUMFILES= ${ALLFILES:S/^/${DIST_SUBDIR}\//} \
+ ${CARGO_CRATES:S/^/rust\/crates\//:S/$/.crate/:S/^/${DIST_SUBDIR}\//}
+WEBKIT_CACHE_DIR= ${BUN_CACHE_DIR}/webkit-${WEBKIT_SHORT}-freebsd${WEBKIT_CACHE_SUFFIX}
+NODE_HEADERS_CACHE_DIR= ${BUN_CACHE_DIR}/nodejs-headers-${NODE_VERSION}
PLIST_FILES= bin/${PORTNAME}
-.include <bsd.port.pre.mk>
+# Upstream dependency archives are fetched as normal distfiles (GH_TUPLE) and
+# copied into the build's tarball cache in post-extract. The cache name is
+# <dep>-<sha256(url)[0:16]>.tar.gz, as expected by scripts/build/fetch-cli.ts.
+# Keep this list in sync with GH_TUPLE. On a bun bump, take the dependency
+# URLs from scripts/build/deps/*.ts, refresh GH_TUPLE and the cache names here,
+# then run `make makesum`.
+_BUN_DEP_CACHE= \
+ boringssl-ce854d7300ee8a35.tar.gz:oven-sh-boringssl-41bf9b59c2ebf277a7aa427e1ecad5cc80dd4d4f_GH0.tar.gz \
+ brotli-723494d4c3a9902a.tar.gz:google-brotli-v1.1.0_GH0.tar.gz \
+ cares-1685a3355527fdec.tar.gz:c-ares-c-ares-c7a3138dcfe3bb0eaaf10c0c24c36dc66dc790ab_GH0.tar.gz \
+ hdrhistogram-97084f213075a65e.tar.gz:HdrHistogram-HdrHistogram_c-be60a9987ee48d0abf0d7b6a175bad8d6c1585d1_GH0.tar.gz \
+ highway-b2dcc6002e95cc47.tar.gz:google-highway-2607d3b5b0113992fe84d3848859eae13b3b52c1_GH0.tar.gz \
+ libarchive-4296b191210d6b1b.tar.gz:libarchive-libarchive-ded82291ab41d5e355831b96b0e1ff49e24d8939_GH0.tar.gz \
+ libdeflate-ce0e2d9805b30dcc.tar.gz:ebiggers-libdeflate-c8c56a20f8f621e6a966b716b31f1dedab6a41e3_GH0.tar.gz \
+ libjpeg-turbo-297099166a01f75e.tar.gz:libjpeg-turbo-libjpeg-turbo-e352b02f794f701407b39af08576035ba3360d60_GH0.tar.gz \
+ libspng-e6aca86c593b51ad.tar.gz:randy408-libspng-fb768002d4288590083a476af628e51c3f1d47cd_GH0.tar.gz \
+ libuv-0f29c74cc80722ca.tar.gz:oven-sh-libuv-8023581113b276e7c1aee3f82da57ca0893faab1_GH0.tar.gz \
+ libwebp-2ced709f169b40bd.tar.gz:webmproject-libwebp-b7e29b9d75bd31422b00c2a446d49d7af06c328d_GH0.tar.gz \
+ lolhtml-d63099fc6ce4f6e5.tar.gz:oven-sh-lol-html-725ce499aa9b71e38b7a2d0a9fbb6d7294a4079e_GH0.tar.gz \
+ lshpack-73e0c55d12ea4fc2.tar.gz:litespeedtech-ls-hpack-8905c024b6d052f083a3d11d0a169b3c2735c8a1_GH0.tar.gz \
+ lsqpack-ceeb8e315778b938.tar.gz:litespeedtech-ls-qpack-1e9c5b8e59f8161c54f168a570c8bfdc59ded0c3_GH0.tar.gz \
+ lsquic-d3ef6cf1fbedd7f9.tar.gz:litespeedtech-lsquic-3181911301b1aa4f54c1ed690901abc674ee08fb_GH0.tar.gz \
+ mimalloc-46af79b3cf5b6977.tar.gz:oven-sh-mimalloc-6a64e1ba7f5b2130d4efccb67ec87fd0003f0f6a_GH0.tar.gz \
+ picohttpparser-fad59b16ad4752cc.tar.gz:h2o-picohttpparser-066d2b1e9ab820703db0837a7255d92d30f0c9f5_GH0.tar.gz \
+ rust-argon2-87c5404c7fc9aa9c.tar.gz:sru-systems-rust-argon2-ed81866f163f0c7026aa6fd8388adf37242eb32a_GH0.tar.gz \
+ tinycc-e715321533b32b83.tar.gz:oven-sh-tinycc-05f0fafaa3be31e31d7b4b5c17dc60f62c991171_GH0.tar.gz \
+ zlib-655c6ecdb6fc9cd5.tar.gz:zlib-ng-zlib-ng-12731092979c6d07f42da27da673a9f6c7b13586_GH0.tar.gz \
+ zstd-e010993a24072468.tar.gz:facebook-zstd-f8745da6ff1ad1e7bab384bd1f9d742439278e99_GH0.tar.gz
-.if empty(CPUTYPE)
-_BUN_CPU_FLAGS= --baseline=true
-.else
-_BUN_CPU_FLAGS= --cpu=${CPUTYPE} --baseline=false
-.endif
+_BUN_LOLHTML_DISTFILE= oven-sh-lol-html-725ce499aa9b71e38b7a2d0a9fbb6d7294a4079e_GH0.tar.gz
+_BUN_RUST_ARGON2_DISTFILE= sru-systems-rust-argon2-ed81866f163f0c7026aa6fd8388adf37242eb32a_GH0.tar.gz
-# do-fetch: download the standard distfiles, then build the 3 custom archives
-# (node_modules, dep tarballs, cargo vendor) if they are not already cached.
-# All files land in ${DD} so make checksum and poudriere can reuse them.
-do-fetch:
- @${MKDIR} ${DD}
- # Fetch directly-downloadable distfiles (GH0 uses DEFAULT master site, no group suffix)
- @${MKDIR} ${WRKDIR}; \
- ${RM} ${_MASTER_SITES_FILE} ${_DISTFILES_FILE}; \
- for site in ${_MASTER_SITES_ENV}; do \
- printf '%s\n' "$${site}" | sed -e 's/ /\\ /g' >> ${_MASTER_SITES_FILE}; \
- done; \
- for file in ${DISTNAME}${EXTRACT_SUFX} \
- ${DISTFILES:M*\:ovenzig} \
- ${DISTFILES:M*\:webkit} \
- ${DISTFILES:M*\:nodejshdr} \
- ${DISTFILES:M*\:simdutf_src} \
- ${DISTFILES:M*\:bootstrap:N*node-modules-*:N*dep-tarballs-*:N*cargo-vendor-*} \
- ; do \
- printf '%s\n' "$${file}" >> ${_DISTFILES_FILE}; \
- done; \
- ${SETENV} \
- ${_DO_FETCH_ENV} \
- dp_SITES_FILE=${_MASTER_SITES_FILE} \
- dp_FILES_FILE=${_DISTFILES_FILE} \
- dp_SITE_FLAVOR=MASTER \
- ${SH} ${SCRIPTSDIR}/do-fetch.sh
- # Build bun-node-modules tarball (npm ci with vendored package-lock*.json).
- # Uses deterministic tar so the checksum is reproducible across builds.
- @if ! [ -f "${DD}/bun-node-modules-${DISTVERSION}.tar.gz" ]; then \
- ${ECHO_CMD} "===> Building bun-node-modules-${DISTVERSION}.tar.gz" && \
- _NTmp=$$(mktemp -d /tmp/bun-nmod.XXXXXX) && \
- bsdtar xzf ${DD}/${DISTNAME}${EXTRACT_SUFX} -C $$_NTmp && \
- _NSrc=$$_NTmp/${WRKSRC:T} && \
- ${SED} -i '' \
- 's|"@types/bun": "workspace:\*"|"@types/bun": "file:packages/@types/bun"|' \
- $$_NSrc/package.json && \
- ${SED} -i '' \
- 's|"bun-types": "workspace:"|"bun-types": "file:../bun-types"|' \
- $$_NSrc/packages/@types/bun/package.json && \
- ${CP} ${FILESDIR}/package-lock.json $$_NSrc/package-lock.json && \
- ${CP} ${FILESDIR}/package-lock-bun-error.json \
- $$_NSrc/packages/bun-error/package-lock.json && \
- ${CP} ${FILESDIR}/package-lock-node-fallbacks.json \
- $$_NSrc/src/node-fallbacks/package-lock.json && \
- (cd $$_NSrc && ${LOCALBASE}/bin/npm ci --ignore-scripts) && \
- (cd $$_NSrc/packages/bun-error && \
- ${LOCALBASE}/bin/npm ci --ignore-scripts) && \
- (cd $$_NSrc/src/node-fallbacks && \
- ${LOCALBASE}/bin/npm ci --ignore-scripts) && \
- ${FIND} $$_NSrc/node_modules \
- $$_NSrc/packages/bun-error/node_modules \
- $$_NSrc/src/node-fallbacks/node_modules \
- -name '.package-lock.json' -delete && \
- ${FIND} $$_NSrc/node_modules \
- $$_NSrc/packages/bun-error/node_modules \
- $$_NSrc/src/node-fallbacks/node_modules \
- -type d -name '@*' -empty -delete && \
- ${FIND} $$_NSrc/node_modules \
- $$_NSrc/packages/bun-error/node_modules \
- $$_NSrc/src/node-fallbacks/node_modules \
- -exec ${TOUCH} -h -d 1970-01-01T00:00:00Z {} \; && \
- (cd $$_NSrc && \
- ${FIND} node_modules packages/bun-error/node_modules \
- src/node-fallbacks/node_modules -print0 \
- | ${SORT} -z \
- | ${SETENV} -i ${TAR} czf ${DD}/bun-node-modules-${DISTVERSION}.tar.gz \
- --format=cpio --gid 0 --uid 0 --options gzip:!timestamp \
- --no-recursion --null -T -) && \
- ${RM} -rf $$_NTmp; \
- fi
- # Build bun-dep-tarballs + bun-cargo-vendor-lolhtml tarballs.
- # Uses deterministic tar so checksums are reproducible across builds.
- @if ! [ -f "${DD}/bun-dep-tarballs-${DISTVERSION}.tar.gz" ] || \
- ! [ -f "${DD}/bun-cargo-vendor-lolhtml-${DISTVERSION}.tar.gz" ]; then \
- ${ECHO_CMD} "===> Downloading bun dep tarballs" && \
- _DTmp=$$(mktemp -d /tmp/bun-dtp.XXXXXX) && \
- ${MKDIR} $$_DTmp/tarballs && \
- for _tu in ${_BUN_DEP_TARBALLS}; do \
- _tc=$${_tu%%:*}; _url=$${_tu#*:}; \
- if ! [ -f "$$_DTmp/tarballs/$$_tc" ]; then \
- ${FETCH_CMD} ${FETCH_BEFORE_ARGS} $$_url ${FETCH_AFTER_ARGS} \
- -o $$_DTmp/tarballs/$$_tc || exit 1; \
- fi; \
- done && \
- if ! [ -f "${DD}/bun-dep-tarballs-${DISTVERSION}.tar.gz" ]; then \
- ${ECHO_CMD} "===> Packaging bun-dep-tarballs-${DISTVERSION}.tar.gz" && \
- ( cd $$_DTmp && \
- ${FIND} tarballs -exec ${TOUCH} -h -d 1970-01-01T00:00:00Z {} \; && \
- ${FIND} tarballs -print0 \
- | ${SORT} -z \
- | ${SETENV} -i ${TAR} czf ${DD}/bun-dep-tarballs-${DISTVERSION}.tar.gz \
- --format=cpio --gid 0 --uid 0 --options gzip:!timestamp \
- --no-recursion --null -T - ); \
- fi && \
- if ! [ -f "${DD}/bun-cargo-vendor-lolhtml-${DISTVERSION}.tar.gz" ]; then \
- ${ECHO_CMD} "===> Vendoring lolhtml Rust crates" && \
- _LTmp=$$(mktemp -d /tmp/bun-lol.XXXXXX) && \
- bsdtar xzf $$_DTmp/tarballs/lolhtml-929339b1d898e66b.tar.gz \
- -C $$_LTmp --strip-components 1 && \
- (cd $$_LTmp/c-api && \
- ${SETENV} HOME=$$_LTmp \
- ${LOCALBASE}/bin/cargo vendor vendor) && \
- ${FIND} $$_LTmp/c-api/vendor -exec ${TOUCH} -h -d 1970-01-01T00:00:00Z {} \; && \
- ( cd $$_LTmp/c-api && \
- ${FIND} vendor -print0 \
- | ${SORT} -z \
- | ${SETENV} -i ${TAR} czf ${DD}/bun-cargo-vendor-lolhtml-${DISTVERSION}.tar.gz \
- --format=cpio --gid 0 --uid 0 --options gzip:!timestamp \
- --no-recursion --null -T - ) && \
- ${RM} -rf $$_LTmp; \
- fi && \
- ${RM} -rf $$_DTmp; \
+# post-fetch builds the derived bun install cache. Dependency source archives
+# and Rust crates are normal distfiles (GH_TUPLE and USES=cargo).
+post-fetch:
+ @${ECHO_MSG} "===> Building bun install cache"
+ @${MKDIR} ${BUN_BOOTSTRAP_DIR}
+ @cd ${BUN_BOOTSTRAP_DIR} && ${TAR} xf ${DD}/bun-freebsd-${BUN_ASSET_ARCH}.zip
+ @${MV} ${BUN_BOOTSTRAP_DIR}/bun-freebsd-${BUN_ASSET_ARCH}/bun ${BUN_BOOTSTRAP}
+ @${CHMOD} +x ${BUN_BOOTSTRAP}
+ # 1. Dependency archives are standard distfiles (GH_TUPLE); they are
+ # copied into the build cache in post-extract.
+ # 2. extract the pristine source once, for bun install cache warming
+ @${RM} -rf ${WRKDIR}/gen && ${MKDIR} ${WRKDIR}/gen
+ @${TAR} xf ${DD}/${DISTNAME}${EXTRACT_SUFX} -C ${WRKDIR}/gen
+ # 3. warm the bun install cache (root + the two standalone package dirs)
+ @if [ ! -f "${DD}/bun-install-cache-${DISTVERSION}.tar.gz" ]; then \
+ ${ECHO_MSG} " bun install (warming cache)"; \
+ cd ${WRKDIR}/gen/${WRKSRC:T} && \
+ ${SETENV} BUN_INSTALL_CACHE_DIR=${BUN_INSTALL_CACHE_DIR} \
+ ${BUN_BOOTSTRAP} install --frozen-lockfile && \
+ cd ${WRKDIR}/gen/${WRKSRC:T}/packages/bun-error && \
+ ${SETENV} BUN_INSTALL_CACHE_DIR=${BUN_INSTALL_CACHE_DIR} \
+ ${BUN_BOOTSTRAP} install --frozen-lockfile && \
+ cd ${WRKDIR}/gen/${WRKSRC:T}/src/node-fallbacks && \
+ ${SETENV} BUN_INSTALL_CACHE_DIR=${BUN_INSTALL_CACHE_DIR} \
+ ${BUN_BOOTSTRAP} install --frozen-lockfile && \
+ ${TAR} czf ${DD}/bun-install-cache-${DISTVERSION}.tar.gz \
+ -C ${BUN_INSTALL_CACHE_DIR} .; \
fi
post-extract:
- # Set up bun cache directory structure
+ # Bootstrap bun (official upstream FreeBSD release binary)
+ @${MKDIR} ${BUN_BOOTSTRAP_DIR}
+ @cd ${BUN_BOOTSTRAP_DIR} && ${TAR} xf ${DD}/bun-freebsd-${BUN_ASSET_ARCH}.zip
+ @${MV} ${BUN_BOOTSTRAP_DIR}/bun-freebsd-${BUN_ASSET_ARCH}/bun ${BUN_BOOTSTRAP}
+ @${CHMOD} +x ${BUN_BOOTSTRAP}
+ # WebKit prebuilt (JSC/WTF), including its bundled ICU headers
+ @${MKDIR} ${WEBKIT_CACHE_DIR}
+ @${TAR} xf ${DD}/bun-webkit-freebsd-${WEBKIT_ASSET_ARCH}.tar.gz \
+ -C ${WEBKIT_CACHE_DIR} --strip-components 1
+ @${ECHO_CMD} "${WEBKIT_COMMIT}" > ${WEBKIT_CACHE_DIR}/.identity
+ # Node.js headers into the build cache
+ @${MKDIR} ${NODE_HEADERS_CACHE_DIR}
+ @${TAR} xf ${DD}/node-v${NODE_VERSION}-headers.tar.gz \
+ -C ${NODE_HEADERS_CACHE_DIR} --strip-components 1
+ @${RM} -rf ${NODE_HEADERS_CACHE_DIR}/include/node/openssl \
+ ${NODE_HEADERS_CACHE_DIR}/include/node/uv \
+ ${NODE_HEADERS_CACHE_DIR}/include/node/uv.h
+ @${ECHO_CMD} "${NODE_VERSION}" > ${NODE_HEADERS_CACHE_DIR}/.identity
+ # dependency tarball cache + warmed bun install cache
@${MKDIR} ${BUN_CACHE_DIR}/tarballs
- # Extract oven-sh/zig fork (Linux binary, via linux compat)
- @${MKDIR} ${BUN_ZIG_DIR}
- @cd ${BUN_ZIG_DIR} && bsdtar -xf ${DD}/bootstrap-x86_64-linux-musl.zip
- @${CHMOD} +x ${BUN_ZIG_DIR}/bootstrap-x86_64-linux-musl/zig
- # Install pre-built native FreeBSD bun bootstrap binary
- @${MKDIR} ${WRKDIR}/bun-bootstrap
- @${CP} ${DD}/bun-1.3.13-93-bootstrap ${WRKDIR}/bun-bootstrap/bun
- @${CHMOD} +x ${WRKDIR}/bun-bootstrap/bun
- # Extract WebKit prebuilt into cache
- @${MKDIR} ${BUN_CACHE_DIR}/webkit-${WEBKIT_SHORT}-freebsd
- @tar xzf ${DD}/bun-webkit-freebsd-amd64.tar.gz \
- -C ${BUN_CACHE_DIR}/webkit-${WEBKIT_SHORT}-freebsd \
- --strip-components 1
- @${ECHO_CMD} "${WEBKIT_VERSION}" > \
- ${BUN_CACHE_DIR}/webkit-${WEBKIT_SHORT}-freebsd/.identity
- # Extract dep tarballs into cache
- @tar xzf ${DD}/bun-dep-tarballs-${DISTVERSION}.tar.gz \
- -C ${BUN_CACHE_DIR}
- # Extract vendored Rust crates for lolhtml
- @${MKDIR} ${WRKDIR}/cargo-vendor-lolhtml
- @tar xzf ${DD}/bun-cargo-vendor-lolhtml-${DISTVERSION}.tar.gz \
- -C ${WRKDIR}/cargo-vendor-lolhtml
- # Configure cargo to use vendored sources (via CARGO_HOME config)
- @${MKDIR} ${WRKDIR}/.cargo
- @${PRINTF} '[source.crates-io]\nreplace-with = "vendored-sources"\n\n[source.vendored-sources]\ndirectory = "%s/vendor"\n' \
- ${WRKDIR}/cargo-vendor-lolhtml > ${WRKDIR}/.cargo/config.toml
- # Extract nodejs headers into bun cache and remove dirs bun doesn't need
- @${MKDIR} ${BUN_CACHE_DIR}/nodejs-headers-${NODE_VERSION}
- @tar xzf ${DD}/node-v${NODE_VERSION}-headers.tar.gz \
- -C ${BUN_CACHE_DIR}/nodejs-headers-${NODE_VERSION} \
- --strip-components 1
- @${RM} -rf \
- ${BUN_CACHE_DIR}/nodejs-headers-${NODE_VERSION}/include/node/openssl \
- ${BUN_CACHE_DIR}/nodejs-headers-${NODE_VERSION}/include/node/uv \
- ${BUN_CACHE_DIR}/nodejs-headers-${NODE_VERSION}/include/node/uv.h
- @${ECHO_CMD} "${NODE_VERSION}" > \
- ${BUN_CACHE_DIR}/nodejs-headers-${NODE_VERSION}/.identity
- # Extract node_modules into WRKSRC
- @tar xzf ${DD}/bun-node-modules-${DISTVERSION}.tar.gz \
- -C ${WRKSRC}
-.if empty(CPUTYPE)
- # Baseline build: rebuild SIMDUTF.cpp.o from simdutf ${SIMDUTF_VERSION} without
- # the icelake (AVX-512) and haswell (AVX2) runtime-dispatch targets. The
- # pre-built FreeBSD WebKit lacks a "-baseline" variant (unlike Linux/Windows),
- # so its libWTF.a SIMDUTF.cpp.o contains AVX-512 icelake dispatch code that
- # would otherwise appear in the final binary.
- @${ECHO_CMD} "===> Rebuilding SIMDUTF.cpp.o for baseline (no icelake/haswell)"
- @_SDTmp=$$(mktemp -d /tmp/bun-simdutf.XXXXXX) && \
- bsdtar xzf ${DD}/simdutf-simdutf-v${SIMDUTF_VERSION}_GH0.tar.gz \
- -C $$_SDTmp --strip-components 1 && \
- ${LOCALBASE}/llvm${LLVM_VER}/bin/clang++ \
- -std=c++17 -march=nehalem -O2 \
- -ffunction-sections -fdata-sections \
- -fno-exceptions -fno-rtti \
- -DSIMDUTF_IMPLEMENTATION_ICELAKE=0 \
- -DSIMDUTF_IMPLEMENTATION_HASWELL=0 \
- -I$$_SDTmp/include -I$$_SDTmp/src \
- -c $$_SDTmp/src/simdutf.cpp \
- -o $$_SDTmp/SIMDUTF.cpp.o && \
- ${LOCALBASE}/llvm${LLVM_VER}/bin/llvm-ar d \
- ${BUN_CACHE_DIR}/webkit-${WEBKIT_SHORT}-freebsd/lib/libWTF.a \
- SIMDUTF.cpp.o && \
- ${LOCALBASE}/llvm${LLVM_VER}/bin/llvm-ar r \
- ${BUN_CACHE_DIR}/webkit-${WEBKIT_SHORT}-freebsd/lib/libWTF.a \
- $$_SDTmp/SIMDUTF.cpp.o && \
- ${RM} -rf $$_SDTmp
-.endif
+ @for _e in ${_BUN_DEP_CACHE}; do \
+ _cache=$${_e%%:*}; _dist=$${_e#*:}; \
+ ${CP} ${DD}/$${_dist} ${BUN_CACHE_DIR}/tarballs/$${_cache}; \
+ done
+ @${MKDIR} ${BUN_INSTALL_CACHE_DIR}
+ # Cargo uses the vendored crates fetched by USES=cargo. Keep this in
+ # $CARGO_HOME rather than the project .cargo/config.toml, which the bun
+ # build regenerates for its own linker settings.
+ @${MKDIR} ${CARGO_HOME}
+ @${ECHO_CMD} "[source.cargo]" > ${CARGO_HOME}/config.toml
+ @${ECHO_CMD} "directory = '${CARGO_VENDOR_DIR}'" >> ${CARGO_HOME}/config.toml
+ @${ECHO_CMD} "[source.crates-io]" >> ${CARGO_HOME}/config.toml
+ @${ECHO_CMD} "replace-with = 'cargo'" >> ${CARGO_HOME}/config.toml
+ @${TAR} xf ${DD}/bun-install-cache-${DISTVERSION}.tar.gz -C ${BUN_INSTALL_CACHE_DIR}
-post-patch:
- # Install FreeBSD-specific bun-internal patches applied by bun's build
- # system (fetchDep) when it extracts each vendor tarball from cache.
- # These disable AVX2/AVX/AVX-512 code paths that would otherwise appear
- # in the ELF binary even with -march=x86-64.
- @${MKDIR} ${WRKSRC}/patches/libdeflate
- @${CP} ${FILESDIR}/bun-libdeflate-adler32-disable-avx2.patch \
- ${WRKSRC}/patches/libdeflate/adler32-disable-avx2.patch
- @${CP} ${FILESDIR}/bun-libdeflate-crc32-disable-avx.patch \
- ${WRKSRC}/patches/libdeflate/crc32-disable-avx.patch
- @${MKDIR} ${WRKSRC}/patches/boringssl
- @${CP} ${FILESDIR}/bun-boringssl-disable-avx512-gcm.patch \
- ${WRKSRC}/patches/boringssl/disable-avx512-gcm.patch
+# Fail early if the pinned toolchain is not the one these patches target.
+pre-configure:
+ @if ${RUST_PREFIX}/bin/rustc --version | ${GREP} -Fq "${RUSTC_TESTED_VERSION}"; then \
+ ${ECHO_MSG} "Rust nightly matches ${RUSTC_TESTED_VERSION}"; \
+ else \
+ ${ECHO_MSG} "bun requires Rust ${RUSTC_TESTED_VERSION}; installed:"; \
+ ${RUST_PREFIX}/bin/rustc --version | ${SED} 's/^/ /'; \
+ if [ "${ALLOW_UNTESTED_RUST}" != "yes" ]; then \
+ ${ECHO_MSG} "Refusing to build; set ALLOW_UNTESTED_RUST=yes to override."; \
+ exit 1; \
+ fi; \
+ ${ECHO_MSG} "ALLOW_UNTESTED_RUST=yes set; continuing."; \
+ fi
do-build:
- @cd ${WRKSRC} && \
- ${SETENV} PATH=${LOCALBASE}/llvm${LLVM_VER}/bin:${LOCALBASE}/bin:/usr/bin:/bin \
- BUN_ZIG_PATH=${BUN_ZIG_DIR}/bootstrap-x86_64-linux-musl \
- BUN_HOST_OS=freebsd \
- FREEBSD_SYSROOT=/ \
- CARGO_HOME=${WRKDIR}/.cargo \
- GIT_SHA=${DISTVERSIONSUFFIX:S/-g//} \
- ${WRKDIR}/bun-bootstrap/bun scripts/build.ts \
- --os=freebsd \
+ @cd ${WRKSRC} && ${SETENV} \
+ PATH=${RUST_PREFIX}/bin:${LOCALBASE}/llvm${LLVM_VER}/bin:${LOCALBASE}/bin:/usr/bin:/bin \
+ BUN_TOOLCHAIN_LLVM=${LOCALBASE}/llvm${LLVM_VER} \
+ BUN_TOOLCHAIN_RUST=${RUST_PREFIX} \
+ BUN_TOOLCHAIN_CARGO=${RUST_PREFIX}/bin/cargo \
+ CC=clang \
+ CXX=clang++ \
+ CARGO_HOME=${CARGO_HOME} \
+ CARGO_NET_OFFLINE=true \
+ BUN_INSTALL_CACHE_DIR=${BUN_INSTALL_CACHE_DIR} \
+ GIT_SHA=${BUN_GIT_SHA} \
+ ${BUN_BOOTSTRAP} scripts/build.ts \
+ --profile=release \
+ --canary=off \
--cacheDir=${BUN_CACHE_DIR} \
--buildDir=${BUN_BUILD_DIR} \
- --profile=release \
- -j${MAKE_JOBS_NUMBER} \
- ${_BUN_CPU_FLAGS}
+ -j${MAKE_JOBS_NUMBER}
do-install:
${INSTALL_PROGRAM} ${BUN_BUILD_DIR}/bun ${STAGEDIR}${PREFIX}/bin/
do-test:
- @${ECHO_CMD} "==> Running Bun version check..."
+ @${ECHO_MSG} "==> Running Bun smoke tests..."
${STAGEDIR}${PREFIX}/bin/bun --version
- @${ECHO_CMD} "==> Installing test dependencies..."
- cd ${WRKSRC}/test && ${STAGEDIR}${PREFIX}/bin/bun install \
- --frozen-lockfile --ignore-scripts
- @${ECHO_CMD} "==> Running Bun regression tests..."
- cd ${WRKSRC} && ${STAGEDIR}${PREFIX}/bin/bun test --timeout 120000 --parallel 1
+ ${STAGEDIR}${PREFIX}/bin/bun -e 'console.log("hello from", process.platform, process.arch)'
.include <bsd.port.post.mk>
diff --git a/lang/bun/Makefile.crates b/lang/bun/Makefile.crates
new file mode 100644
index 000000000000..a1af932c08a2
--- /dev/null
+++ b/lang/bun/Makefile.crates
@@ -0,0 +1,222 @@
+# Generated from Cargo.lock by `make cargo-crates`. To refresh after a bun
+# update:
+# { sed -n '/^#/p' lang/bun/Makefile.crates; \
+# make -C lang/bun cargo-crates | sed -n '/^CARGO_CRATES=/,$p'; } \
+# > lang/bun/Makefile.crates.new && \
+# mv lang/bun/Makefile.crates.new lang/bun/Makefile.crates
+# make -C lang/bun makesum
+# The second sed drops the make(1) progress lines before CARGO_CRATES; the
+# first one preserves this header.
+# For -Zbuild-std, merge in the crates from the pinned toolchain's
+# lib/rustlib/src/rust/library/Cargo.lock as well; makesum must checksum the
+# union of bun's lock and the toolchain's std lock.
+CARGO_CRATES= addr2line-0.27.1 \
+ adler2-2.0.1 \
+ aho-corasick-1.1.4 \
+ allocator-api2-0.2.21 \
+ anes-0.1.6 \
+ anstyle-1.0.14 \
+ anyhow-1.0.102 \
+ arrayref-0.3.9 \
+ arrayvec-0.7.6 \
+ autocfg-1.5.0 \
+ base64-0.22.1 \
+ bcrypt-0.19.0 \
+ bitflags-2.11.1 \
+ blake2-0.10.6 \
+ blake2b_simd-1.0.4 \
+ block-buffer-0.10.4 \
+ blowfish-0.9.1 \
+ bstr-1.12.1 \
+ bumpalo-3.20.2 \
+ bytemuck-1.25.0 \
+ byteorder-1.5.0 \
+ cast-0.3.0 \
+ cc-1.4.3 \
+ cfg-if-1.0.4 \
+ ciborium-0.2.2 \
+ ciborium-io-0.2.2 \
+ ciborium-ll-0.2.2 \
+ cipher-0.4.4 \
+ clap-4.6.1 \
+ clap_builder-4.6.0 \
+ clap_lex-1.1.0 \
+ const_format-0.2.36 \
+ const_format_proc_macros-0.2.34 \
+ constant_time_eq-0.4.2 \
+ cpufeatures-0.2.17 \
+ criterion-0.5.1 \
+ criterion-plot-0.5.0 \
+ crossbeam-deque-0.8.6 \
+ crossbeam-epoch-0.9.18 \
+ crossbeam-utils-0.8.21 \
+ crunchy-0.2.4 \
+ crypto-common-0.1.7 \
+ cssparser-0.36.0 \
+ cssparser-macros-0.6.1 \
+ darling-0.21.3 \
+ darling_core-0.21.3 \
+ darling_macro-0.21.3 \
+ derive_more-2.1.1 \
+ derive_more-impl-2.1.1 \
+ digest-0.10.7 \
+ dlmalloc-0.2.14 \
+ dtoa-1.0.11 \
+ dtoa-short-0.3.5 \
+ either-1.15.0 \
+ encoding_rs-0.8.35 \
+ enum-map-2.7.3 \
+ enum-map-derive-0.17.0 \
+ enumset-1.1.10 \
+ enumset_derive-0.14.0 \
+ equivalent-1.0.2 \
+ errno-0.3.14 \
+ fastrand-2.4.1 \
+ find-msvc-tools-0.1.11 \
+ fnv-1.0.7 \
+ foldhash-0.1.5 \
+ foldhash-0.2.0 \
+ fortanix-sgx-abi-0.6.1 \
+ futures-core-0.3.32 \
+ futures-task-0.3.32 \
+ futures-util-0.3.32 \
+ generic-array-0.14.7 \
+ getopts-0.2.24 \
+ getrandom-0.4.2 \
+ gimli-0.34.0 \
+ half-2.7.1 \
+ hashbrown-0.15.5 \
+ hashbrown-0.16.1 \
+ hashbrown-0.17.0 \
+ hashbrown-0.17.1 \
+ heck-0.5.0 \
+ hermit-abi-0.5.2 \
+ hermit-abi-0.5.3 \
+ id-arena-2.3.0 \
+ ident_case-1.0.1 \
+ indexmap-2.14.0 \
+ inout-0.1.4 \
+ is-terminal-0.4.17 \
+ itertools-0.10.5 \
+ itoa-1.0.18 \
+ js-sys-0.3.98 \
+ keccak-0.1.6 \
+ konst-0.2.20 \
+ konst_macro_rules-0.2.19 \
+ leb128fmt-0.1.0 \
+ libc-0.2.186 \
+ libc-0.2.189 \
+ linux-raw-sys-0.4.15 \
+ log-0.4.29 \
+ memchr-2.8.0 \
+ memchr-2.8.3 \
+ mime-0.3.17 \
+ miniz_oxide-0.9.1 \
+ moto-rt-0.17.4 \
+ new_debug_unreachable-1.0.6 \
+ num-traits-0.2.19 \
+ object-0.39.1 \
+ once_cell-1.21.4 \
+ oorandom-11.1.5 \
+ paste-1.0.15 \
+ phf-0.13.1 \
+ phf_codegen-0.13.1 \
+ phf_generator-0.13.1 \
+ phf_macros-0.13.1 \
+ phf_shared-0.13.1 \
+ pin-project-lite-0.2.17 \
+ plotters-0.3.7 \
+ plotters-backend-0.3.7 \
+ plotters-svg-0.3.7 \
+ precomputed-hash-0.1.1 \
+ prettyplease-0.2.37 \
+ proc-macro2-1.0.106 \
+ quick-xml-0.38.4 \
+ quote-1.0.45 \
+ r-efi-5.3.0 \
+ r-efi-6.0.0 \
+ r-efi-alloc-2.1.0 \
+ rand-0.9.5 \
+ rand_core-0.9.5 \
+ rand_xorshift-0.4.0 \
+ rayon-1.12.0 \
+ rayon-core-1.13.0 \
+ regex-1.12.3 \
+ regex-automata-0.4.14 \
+ regex-syntax-0.8.10 \
+ roxmltree-0.20.0 \
+ rustc-demangle-0.1.28 \
+ rustc-hash-2.1.2 \
+ rustc-literal-escaper-0.0.8 \
+ rustc_version-0.4.1 \
+ rustix-0.38.44 \
+ rustversion-1.0.22 \
+ same-file-1.0.6 \
+ scopeguard-1.2.0 \
+ selectors-0.33.0 \
+ semver-1.0.28 \
+ serde-1.0.228 \
+ serde_core-1.0.228 \
+ serde_derive-1.0.228 \
+ serde_json-1.0.149 \
+ servo_arc-0.4.3 \
+ sha3-0.10.9 \
+ shlex-2.0.1 \
+ siphasher-1.0.3 \
+ slab-0.4.12 \
+ smallvec-1.15.1 \
+ stable_deref_trait-1.2.1 \
+ strum-0.26.3 \
+ strum_macros-0.26.4 \
+ subtle-2.6.1 \
+ syn-2.0.117 \
+ thiserror-2.0.18 \
+ thiserror-impl-2.0.18 \
+ tinytemplate-1.2.1 \
+ typed-arena-2.0.2 \
+ typenum-1.20.0 \
+ unicode-ident-1.0.24 \
+ unicode-xid-0.2.6 \
+ unwinding-0.2.10 \
+ version_check-0.9.5 \
+ vex-sdk-0.27.1 \
+ walkdir-2.5.0 \
+ wasip1-1.0.0 \
+ wasip2-1.0.3+wasi-0.2.9 \
+ wasip2-2.0.0+wasi-0.2.12 \
+ wasip3-0.4.0+wasi-0.3.0-rc-2026-01-06 \
+ wasip3-0.8.0+wasi-0.3.0 \
+ wasm-bindgen-0.2.121 \
+ wasm-bindgen-macro-0.2.121 \
+ wasm-bindgen-macro-support-0.2.121 \
+ wasm-bindgen-shared-0.2.121 \
+ wasm-encoder-0.244.0 \
+ wasm-metadata-0.244.0 \
+ wasmparser-0.244.0 \
+ web-sys-0.3.98 \
+ winapi-util-0.1.11 \
+ windows-link-0.2.1 \
+ windows-sys-0.59.0 \
+ windows-sys-0.61.2 \
+ windows-targets-0.52.6 \
+ windows_aarch64_gnullvm-0.52.6 \
+ windows_aarch64_msvc-0.52.6 \
+ windows_i686_gnu-0.52.6 \
+ windows_i686_gnullvm-0.52.6 \
+ windows_i686_msvc-0.52.6 \
+ windows_x86_64_gnu-0.52.6 \
+ windows_x86_64_gnullvm-0.52.6 \
+ windows_x86_64_msvc-0.52.6 \
+ wit-bindgen-0.51.0 \
+ wit-bindgen-0.57.1 \
+ wit-bindgen-0.61.1 \
+ wit-bindgen-core-0.51.0 \
+ wit-bindgen-rust-0.51.0 \
+ wit-bindgen-rust-macro-0.51.0 \
+ wit-component-0.244.0 \
+ wit-parser-0.244.0 \
+ xml-rs-0.8.29 \
+ zerocopy-0.8.48 \
+ zerocopy-derive-0.8.48 \
+ zeroize-1.8.2 \
+ zmij-1.0.21
diff --git a/lang/bun/distinfo b/lang/bun/distinfo
index 47226f8ef255..5afc3343f7f9 100644
--- a/lang/bun/distinfo
+++ b/lang/bun/distinfo
@@ -1,19 +1,475 @@
-TIMESTAMP = 1779128958
-SHA256 (bun/bootstrap-x86_64-linux-musl.zip) = 0c09b44c0b2432d7ad8a759b685ba8ae1f883902851ac52e282ad60a89bebe42
-SIZE (bun/bootstrap-x86_64-linux-musl.zip) = 100112252
-SHA256 (bun/bun-webkit-freebsd-amd64.tar.gz) = 2bbab3f44e3b3d7961408c703271285ca3cc4d128d7ff9fc54dc5ab112e89fbf
-SIZE (bun/bun-webkit-freebsd-amd64.tar.gz) = 37660405
-SHA256 (bun/node-v24.3.0-headers.tar.gz) = 045e9bf477cd5db0ec67f8c1a63ba7f784dedfe2c581e3d0ed09b88e9115dd07
-SIZE (bun/node-v24.3.0-headers.tar.gz) = 8747815
-SHA256 (bun/bun-1.3.13-93-bootstrap) = aea7f1c221f812d726aad220ecc879914bbe49b05e5bd4e76c3155ec0a133f54
-SIZE (bun/bun-1.3.13-93-bootstrap) = 105685712
-SHA256 (bun/bun-node-modules-1.3.14.tar.gz) = 5fa07dc80359b9144253c67e67e8519840de9652b40a8fda223db4e74d91c0c6
-SIZE (bun/bun-node-modules-1.3.14.tar.gz) = 31861513
-SHA256 (bun/bun-dep-tarballs-1.3.14.tar.gz) = 8cf5f1aaae1f3494bde36d358fd5d8046e62a4aea48431f99b1317e33dc603ac
-SIZE (bun/bun-dep-tarballs-1.3.14.tar.gz) = 98808662
-SHA256 (bun/bun-cargo-vendor-lolhtml-1.3.14.tar.gz) = 55bd5cbcd4c430c8f8fe8ef3f2bb097da7bfd017a76472d17fb973bb3b49edbb
-SIZE (bun/bun-cargo-vendor-lolhtml-1.3.14.tar.gz) = 4020543
-SHA256 (bun/oven-sh-bun-bun-v1.3.14_GH0.tar.gz) = 112a5915992807f04b183854d360c2bf87ac7c1587fb5da3c560bdbb75b8c92e
-SIZE (bun/oven-sh-bun-bun-v1.3.14_GH0.tar.gz) = 54898395
-SHA256 (bun/simdutf-simdutf-v8.2.0_GH0.tar.gz) = 033a91b1d7d1cb818c1eff49e61faaa1b64a3a530d59ef9efef0195e56bda8b1
-SIZE (bun/simdutf-simdutf-v8.2.0_GH0.tar.gz) = 2403142
+TIMESTAMP = 1792437323
+SHA256 (bun/bun-freebsd-x64.zip) = ec044ed91c370a16f5e434208dd502093e98ec86a3cb1aff3aad29b13426ecc2
+SIZE (bun/bun-freebsd-x64.zip) = 36206407
+SHA256 (bun/bun-webkit-freebsd-amd64.tar.gz) = 11c918a96d70c38c6ed5e350afc8be9bf3a2904f6917da079a48bb8a4a63d51c
+SIZE (bun/bun-webkit-freebsd-amd64.tar.gz) = 79730947
+SHA256 (bun/node-v26.3.0-headers.tar.gz) = fca113c5d5add8bfb1aa31129a24acb8d49aa69ab3c22a2cc569aec88960526d
+SIZE (bun/node-v26.3.0-headers.tar.gz) = 9957179
+SHA256 (bun/bun-freebsd-aarch64.zip) = a554958e5691c5036e576da78efb4114665da354c882cb0ca059bbd4a896b44a
+SIZE (bun/bun-freebsd-aarch64.zip) = 36307040
+SHA256 (bun/bun-webkit-freebsd-arm64.tar.gz) = dffcf1623b916fa367906f5821d8c280e7be3adc4a6dd37aca48d7ff38adabb5
+SIZE (bun/bun-webkit-freebsd-arm64.tar.gz) = 79128236
+SHA256 (bun/oven-sh-bun-bun-v1.4.2_GH0.tar.gz) = e14670b117d69012d828514d657f0a3133d1c25d13d69461184d05b6a8e9a876
+SIZE (bun/oven-sh-bun-bun-v1.4.2_GH0.tar.gz) = 64582774
+SHA256 (bun/oven-sh-boringssl-41bf9b59c2ebf277a7aa427e1ecad5cc80dd4d4f_GH0.tar.gz) = a5028d5475f1eaf0ad785c18666b330027a923121d601129f4a61e7bfc89a1dd
+SIZE (bun/oven-sh-boringssl-41bf9b59c2ebf277a7aa427e1ecad5cc80dd4d4f_GH0.tar.gz) = 74564872
+SHA256 (bun/google-brotli-v1.1.0_GH0.tar.gz) = e720a6ca29428b803f4ad165371771f5398faba397edf6778837a18599ea13ff
+SIZE (bun/google-brotli-v1.1.0_GH0.tar.gz) = 511969
+SHA256 (bun/c-ares-c-ares-c7a3138dcfe3bb0eaaf10c0c24c36dc66dc790ab_GH0.tar.gz) = c9ea1b3029b23b04376c229bd519489cee180874ec48cd863a5dcba628c0fe03
+SIZE (bun/c-ares-c-ares-c7a3138dcfe3bb0eaaf10c0c24c36dc66dc790ab_GH0.tar.gz) = 608129
+SHA256 (bun/HdrHistogram-HdrHistogram_c-be60a9987ee48d0abf0d7b6a175bad8d6c1585d1_GH0.tar.gz) = 811c5e5ae5303a75ade50688880af6aad5d2f951ec5785f68186bd18635cdfc9
+SIZE (bun/HdrHistogram-HdrHistogram_c-be60a9987ee48d0abf0d7b6a175bad8d6c1585d1_GH0.tar.gz) = 306742
+SHA256 (bun/google-highway-2607d3b5b0113992fe84d3848859eae13b3b52c1_GH0.tar.gz) = 741d705781e0b3e406beda8f1f994fbae01321237ce8023a1ad90fbaf7940c25
+SIZE (bun/google-highway-2607d3b5b0113992fe84d3848859eae13b3b52c1_GH0.tar.gz) = 3692133
+SHA256 (bun/libarchive-libarchive-ded82291ab41d5e355831b96b0e1ff49e24d8939_GH0.tar.gz) = 042f0efe7147063ff9ba10f1a38ed080e949bcbd04bdbf3592b8846dd11b1da2
+SIZE (bun/libarchive-libarchive-ded82291ab41d5e355831b96b0e1ff49e24d8939_GH0.tar.gz) = 6134289
+SHA256 (bun/ebiggers-libdeflate-c8c56a20f8f621e6a966b716b31f1dedab6a41e3_GH0.tar.gz) = 1e5cc06bdbf3e1245d8b89c9e3588f507e3c8bc53fe8b8229770a9e8661dea81
+SIZE (bun/ebiggers-libdeflate-c8c56a20f8f621e6a966b716b31f1dedab6a41e3_GH0.tar.gz) = 197522
+SHA256 (bun/libjpeg-turbo-libjpeg-turbo-e352b02f794f701407b39af08576035ba3360d60_GH0.tar.gz) = 440f3a94390c78eab88f74b92944d2f6b248e592e984412e389885dfb5796bf0
+SIZE (bun/libjpeg-turbo-libjpeg-turbo-e352b02f794f701407b39af08576035ba3360d60_GH0.tar.gz) = 2529165
+SHA256 (bun/randy408-libspng-fb768002d4288590083a476af628e51c3f1d47cd_GH0.tar.gz) = d656813290d70a750b69e768323ff3b3875adf8c2e8c2fdb4e57ca1467abf86a
+SIZE (bun/randy408-libspng-fb768002d4288590083a476af628e51c3f1d47cd_GH0.tar.gz) = 159282
+SHA256 (bun/oven-sh-libuv-8023581113b276e7c1aee3f82da57ca0893faab1_GH0.tar.gz) = 93bb95e613d8c324e673607282fac0ae25a07368eabcc12c0e2539eaa95b0ecc
+SIZE (bun/oven-sh-libuv-8023581113b276e7c1aee3f82da57ca0893faab1_GH0.tar.gz) = 1368857
+SHA256 (bun/webmproject-libwebp-b7e29b9d75bd31422b00c2a446d49d7af06c328d_GH0.tar.gz) = 76fb89b4454ff2161bb0cca2cf832e19b8b4001b0ef42fbcc2b4a437c945b2b6
+SIZE (bun/webmproject-libwebp-b7e29b9d75bd31422b00c2a446d49d7af06c328d_GH0.tar.gz) = 3834595
+SHA256 (bun/oven-sh-lol-html-725ce499aa9b71e38b7a2d0a9fbb6d7294a4079e_GH0.tar.gz) = afd83edbe1a2d4accb72e869cd4218bb8665fda2b7cb2c5106fc4be80001a748
+SIZE (bun/oven-sh-lol-html-725ce499aa9b71e38b7a2d0a9fbb6d7294a4079e_GH0.tar.gz) = 570130
+SHA256 (bun/litespeedtech-ls-hpack-8905c024b6d052f083a3d11d0a169b3c2735c8a1_GH0.tar.gz) = 07d8bf901bb1b15543f38eabd23938519e1210eebadb52f3d651d6ef130ef973
+SIZE (bun/litespeedtech-ls-hpack-8905c024b6d052f083a3d11d0a169b3c2735c8a1_GH0.tar.gz) = 952726
+SHA256 (bun/litespeedtech-ls-qpack-1e9c5b8e59f8161c54f168a570c8bfdc59ded0c3_GH0.tar.gz) = e9d8abe5b7c1e35b9908a9521e2acd7c1d17547babc01d73c7297e02aebbcc2d
+SIZE (bun/litespeedtech-ls-qpack-1e9c5b8e59f8161c54f168a570c8bfdc59ded0c3_GH0.tar.gz) = 710309
+SHA256 (bun/litespeedtech-lsquic-3181911301b1aa4f54c1ed690901abc674ee08fb_GH0.tar.gz) = f8cb90fb327eb91597c23163bf596c0d1882560be35b661d9ba84891cc461735
+SIZE (bun/litespeedtech-lsquic-3181911301b1aa4f54c1ed690901abc674ee08fb_GH0.tar.gz) = 1952886
+SHA256 (bun/oven-sh-mimalloc-6a64e1ba7f5b2130d4efccb67ec87fd0003f0f6a_GH0.tar.gz) = f36343416ad823dfcca61bd18ad4bb7f0d8814ab77e0fd5ef169f4a9cddeb8b8
+SIZE (bun/oven-sh-mimalloc-6a64e1ba7f5b2130d4efccb67ec87fd0003f0f6a_GH0.tar.gz) = 1582650
+SHA256 (bun/h2o-picohttpparser-066d2b1e9ab820703db0837a7255d92d30f0c9f5_GH0.tar.gz) = 637ff2ab6f5c7f7e05a5b5dc393d5cf2fea8d4754fcaceaaf935ffff5c1323ee
+SIZE (bun/h2o-picohttpparser-066d2b1e9ab820703db0837a7255d92d30f0c9f5_GH0.tar.gz) = 15163
+SHA256 (bun/sru-systems-rust-argon2-ed81866f163f0c7026aa6fd8388adf37242eb32a_GH0.tar.gz) = e77c797444f191faf488d49c76c4f45c10b3d9275e0364ee10b6d05cfbe57baf
+SIZE (bun/sru-systems-rust-argon2-ed81866f163f0c7026aa6fd8388adf37242eb32a_GH0.tar.gz) = 30025
+SHA256 (bun/oven-sh-tinycc-05f0fafaa3be31e31d7b4b5c17dc60f62c991171_GH0.tar.gz) = 50750680312923a59fdd36ae41f7091d8e35e51909d0e0b25b0b33ea9534bc08
+SIZE (bun/oven-sh-tinycc-05f0fafaa3be31e31d7b4b5c17dc60f62c991171_GH0.tar.gz) = 1036641
+SHA256 (bun/zlib-ng-zlib-ng-12731092979c6d07f42da27da673a9f6c7b13586_GH0.tar.gz) = a0d2a5d122c84b56a793a1553a9c3327fb2eb7469bf7a86b79e3c7be5d92e8d6
+SIZE (bun/zlib-ng-zlib-ng-12731092979c6d07f42da27da673a9f6c7b13586_GH0.tar.gz) = 2450038
+SHA256 (bun/facebook-zstd-f8745da6ff1ad1e7bab384bd1f9d742439278e99_GH0.tar.gz) = 4b0bd1f0cfb25e61b9103c35f27395530ff5b4c0d2513a00fd745849e85ea52c
+SIZE (bun/facebook-zstd-f8745da6ff1ad1e7bab384bd1f9d742439278e99_GH0.tar.gz) = 2453329
+SHA256 (bun/rust/crates/addr2line-0.27.1.crate) = e567177890eb1617b1f774005b66b26b2377afd138a2ca37aae7d8f0c81429d4
+SIZE (bun/rust/crates/addr2line-0.27.1.crate) = 43584
+SHA256 (bun/rust/crates/adler2-2.0.1.crate) = 320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa
+SIZE (bun/rust/crates/adler2-2.0.1.crate) = 13366
+SHA256 (bun/rust/crates/aho-corasick-1.1.4.crate) = ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301
+SIZE (bun/rust/crates/aho-corasick-1.1.4.crate) = 184015
+SHA256 (bun/rust/crates/allocator-api2-0.2.21.crate) = 683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923
+SIZE (bun/rust/crates/allocator-api2-0.2.21.crate) = 63622
+SHA256 (bun/rust/crates/anes-0.1.6.crate) = 4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299
+SIZE (bun/rust/crates/anes-0.1.6.crate) = 23857
+SHA256 (bun/rust/crates/anstyle-1.0.14.crate) = 940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000
+SIZE (bun/rust/crates/anstyle-1.0.14.crate) = 17787
+SHA256 (bun/rust/crates/anyhow-1.0.102.crate) = 7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c
+SIZE (bun/rust/crates/anyhow-1.0.102.crate) = 48658
+SHA256 (bun/rust/crates/arrayref-0.3.9.crate) = 76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb
+SIZE (bun/rust/crates/arrayref-0.3.9.crate) = 9186
+SHA256 (bun/rust/crates/arrayvec-0.7.6.crate) = 7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50
+SIZE (bun/rust/crates/arrayvec-0.7.6.crate) = 31237
+SHA256 (bun/rust/crates/autocfg-1.5.0.crate) = c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8
+SIZE (bun/rust/crates/autocfg-1.5.0.crate) = 18729
+SHA256 (bun/rust/crates/base64-0.22.1.crate) = 72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6
+SIZE (bun/rust/crates/base64-0.22.1.crate) = 81597
+SHA256 (bun/rust/crates/bcrypt-0.19.0.crate) = 523ab528ce3a7ada6597f8ccf5bd8d85ebe26d5edf311cad4d1d3cfb2d357ac6
+SIZE (bun/rust/crates/bcrypt-0.19.0.crate) = 14949
+SHA256 (bun/rust/crates/bitflags-2.11.1.crate) = c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3
+SIZE (bun/rust/crates/bitflags-2.11.1.crate) = 49082
+SHA256 (bun/rust/crates/blake2-0.10.6.crate) = 46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe
+SIZE (bun/rust/crates/blake2-0.10.6.crate) = 47234
+SHA256 (bun/rust/crates/blake2b_simd-1.0.4.crate) = b79834656f71332577234b50bfc009996f7449e0c056884e6a02492ded0ca2f3
+SIZE (bun/rust/crates/blake2b_simd-1.0.4.crate) = 34878
+SHA256 (bun/rust/crates/block-buffer-0.10.4.crate) = 3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71
+SIZE (bun/rust/crates/block-buffer-0.10.4.crate) = 10538
+SHA256 (bun/rust/crates/blowfish-0.9.1.crate) = e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7
+SIZE (bun/rust/crates/blowfish-0.9.1.crate) = 16734
+SHA256 (bun/rust/crates/bstr-1.12.1.crate) = 63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab
+SIZE (bun/rust/crates/bstr-1.12.1.crate) = 354916
+SHA256 (bun/rust/crates/bumpalo-3.20.2.crate) = 5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb
+SIZE (bun/rust/crates/bumpalo-3.20.2.crate) = 97696
+SHA256 (bun/rust/crates/bytemuck-1.25.0.crate) = c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec
+SIZE (bun/rust/crates/bytemuck-1.25.0.crate) = 53466
+SHA256 (bun/rust/crates/byteorder-1.5.0.crate) = 1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b
*** 6075 LINES SKIPPED ***