9 ポイント 投稿者 GN⁺ 9 시간 전 | 4件のコメント | WhatsAppで共有
  • PR #30412 は、BunをRustで書き換える変更で、2026年5月14日に claude/phase-a-port ブランチから main にマージされた
  • 変更規模は 6,755件のコミット、2,188ファイル、+1,009,257/-4,024 行と表示されている
  • Jarred-Sumner は、詳細をまとめた ブログ記事 がまもなく公開されると明らかにした
  • この変更は Bun の既存の テストスイート をすべてのプラットフォームで通過し、複数のメモリリークと不安定なテストを修正したと説明されている
  • バイナリサイズは 3MB〜8MB減少 し、ベンチマークは中立的またはより高速な範囲だと説明されている
  • 最も重要な理由として、チームが長年にわたり大きな開発・デバッグ時間を費やしてきた メモリバグ を、コンパイラ支援ツールで検出し予防できるようになったことが挙げられている
  • コードベースは概ね同一で、アーキテクチャとデータ構造 もそのまま維持されていると説明されている
  • Bun は引き続きサードパーティライブラリの使用を抑えており、async Rust は使っていないと明記されている
  • ユーザーは bun upgrade --canary でこの変更を試すことができる
  • Jarred-Sumner は、問題が発生したら issue を上げてほしいと依頼し、スレッドが過熱した場合はロックする可能性があると述べた
  • non-canary バージョンに入る前に、まだ 最適化作業 が残っている
  • 整理作業もまだ残っており、これは後続の PR シリーズとして進められる予定である

4件のコメント

 
xguru 9 시간 전

うわ、100万行級のPRがマージ。ZigからRustへそのまま一気に移行してますね。
これがマージされるかどうか分からないよ〜〜って話していたのに、たった1週間で、ちゃんと動いていたコードの言語を一発で置き換えるとは(笑)
なんだかAIアシストコーディングによって記念碑的な出来事が起きている感じ。

 
heycalmdown 5 시간 전

マジで、ただのテストで使わない可能性が高いって言ってたのに

 
freedomzero 4 시간 전

Zigでやってくれないから、すぐRustに乗り換える大胆さよw

 
GN⁺ 9 시간 전
Hacker Newsのコメント
  • 発表ではリライトに 1週間 かかったとされているが、Zig のイディオムを Rust のイディオムに対応付けるこの非常に詳細な指針ファイルを用意するのに、どれだけ時間がかかったのか気になる: https://github.com/oven-sh/bun/commit/46d3bc29f270fa881dd573...
    しかも Pointers & ownershipCollections のセクションを見ると、Bun のコードベースはすでに内部スマートポインタ型を使っていて Rust の対応物に 1:1 でマッピングできるよう準備されていたし、bun_collections Rust クレートもすでに存在していた
    このリライトはかなり前から準備されていて、Anthropic 買収交渉中に Bun チームが提案したもののように見える

    • LLM 関連の記事を読むときは何が事実なのかわからないし、ここの Hacker News のコメントも同じだ
      動いている金額が大きすぎるので、コミュニティに ステルスマーケター を紛れ込ませる誘因が明らかにあり、一部は単に陣営論理に陥っている
      Anthropic が Bun を所有している以上、この作業を実際より簡単に見せたい誘因も十分にある
    • 生成された Rust コードの品質が高いか、行数が適切か、そもそもコードベースがどれだけこの作業に備えていたかといった要素を脇に置けば、約 100万行の出力 の一貫性や品質を高められる事前成果物として 622 行の文書は比較的小さなコストだと見なせるのではないかと思う
      出力規模が非常に大きいので、ここには乗数効果があるように見える
      ただ、このルールを作るためにどれだけの暗黙知が必要だったのか、このファイルをどれだけ反復的に改善したのかは気になる
      たとえば、このルールのうちどれほどが変換の反復過程で遭遇した失敗例から生まれたのか知りたい
    • using internal smart pointer types that map 1-to-1 to Rust equivalents と言っているが、スマートポインタ は Rust が発明したものではない
      ポインタのある他の言語でコードを書くなら、すでに頭の中で同じ型をモデル化している
      それに bun_collections Rust クレートがすでにあったというのは誤りだ
      コードベース内の PR の一部にすぎず、以前から存在していたわけではない
    • これは Anthropic の gcc デモ のときと同じだ
      疑念を減らし IPO ムードをさらに盛り上げるのは簡単なことで、AI を推し進めるために必要だった隠れた作業を別リポジトリで公開し、誰もが結果を再現できるようにすればいい
      結局のところ顧客が実現したいのも「7日」で使える 100 万行のコードではないのか
      みんなが自分のワークフローで再現しようとすれば Anthropic の利用指標も上がるだろう
      本当に素晴らしい結果だったなら、リンクと手順付きのブログ記事を先に出していた気がする
      まあ今この瞬間にブログ記事が書かれていて、私が間違っていると証明される可能性はあるけれど
    • Zig 版 Bun には、既存の Rust ポインタ型にきれいにマッピングできるポインタ型が 3 つあって、残りの 7~8 個については新しい型を作る必要があったようだ
      それが陰謀論の核心なのか
      bun_collections も移植ガイドよりずっと古いようには見えない
  • +1009257 -4024 とは、Bun はこれで Rust コード 100 万行 を超えた
    Rust コンパイラ本体の規模に近づいている
    ただし BunJS は大部分が JavaScript インタプリタのラッパーと NodeJS ライブラリの再実装、つまり Rust 標準ライブラリのラッパーに近い
    BunJS は LLM 時代の ソフトウェア複雑性管理 を示すカナリアになりつつあるようだ

    • mostly a JavaScript interpreter wrapper は正確ではない
      Bun はバッテリー同梱の JavaScript および CSS トランスパイラ(パーサ)、ミニファイア、バンドラ、npm のようなパッケージマネージャ、Jest のようなテストランナーであり、組み込みの Postgres、MySQL、Redis クライアントのようなランタイム API も備えている
      当然ながらコード量は膨大になりうる
    • Bun は JavaScript インタプリタというより NodeJS ライブラリやさまざまな他のライブラリの再実装に近い
      Bun は JavaScriptCore を JS エンジンとして使っているので、Bun 自体は JavaScript のパース、解釈、JIT を行っていない、少なくとも行うべきではない
      修正: 読み違えていた。「JavaScript interpreter wrapper」と言っていたのでその表現で正しい
    • iOS で電話番号として検出されるのが先頭の + のせいなのか他の要因もあるのかわからないが、モバイルでは 行数変更量 に下線が付き、タップすると電話をかけられる
      diff のサイズが原因ならかなり面白い
    • Bun のコードベースはリライト前から 似たようなコード行数 だった
      リライト結果が近い LOC になるのは不思議ではない
    • JavaScriptCore のラッパーが 100 万行 というのは、エージェントに何ができるかを示す素晴らしい例だ
  • $ rg 'unsafe [{]' src/ | wc -l の結果が 10428 で、$ rg 'unsafe [{]' src/ -l | wc -l の結果が 736 だった
    言語別では Rust 1443 ファイル 929213 行、Zig 1298 ファイル 711112 行、TypeScript 2604 ファイル 654684 行、JavaScript 4370 ファイル 364928 行、C 111 ファイル 305123 行、C++ 586 ファイル 262475 行、C Header 779 ファイル 100979 行とのこと

    • Rust では潜在的に安全でないコードをこうやって特定して検索できるのは良い
      Zig では unsafe なコード はどうやって検索するんだろう
      それとも単にどこにでもあると仮定するしかないのか
    • ファイルの半分に unsafe キーワードが入っているなら、良いリライトには見えない
      コードの半分近くが依然として unsafe なら、Rust にリライトする 意味 は何なのか
    • Mythos が自分たちの主張どおり世界最高であることを願うよ。今や本当に必要になりそうだから
    • うちにも メモリ安全性 あるよ!
      うちにあるもの: 10428
  • まだこの件を扱うブログ記事を書いているところで、もっと詳しく共有する予定だ
    背景が気になるなら Bun v1.3.14 とそれ以前のリリースノートにあるバグ修正一覧をざっと見るといい
    Rust がこれらすべてを防いでくれるわけではない。参照を長く持ちすぎることによるリークや、JS 境界をまたいだ再入の問題は依然として自分たちで責任を負う必要がある
    しかしその一覧のかなりの部分は use-after-freedouble-free、エラーパスで解放を忘れる問題で、こうしたものはコンパイルエラーになるか自動クリーンアップに置き換わる

    • 9 日前にはこう言っていた[0]:
      I work on Bun and this is my branch
      This whole thread is an overreaction. 302 comments about code that does not work. We haven’t committed to rewriting. There’s a very high chance all this code gets thrown out completely.
      もしかすると過剰反応ではなかったのかもしれない?
      [0]: https://news.ycombinator.com/item?id=48019226
    • ブログ記事が楽しみだ
      バグをふるい分けるために Zig と Rust のバイナリを幅広い実アプリケーションで並行実行したり、可能なら本番で シャドー実行 したりする計画があるのか気になる
    • 有料顧客ならこの作業にどれくらい費用がかかったのか気になる
      おおよその見積もりは出せるのか
    • 2 つのバイナリを比較するような エンドツーエンドのファズテスト を実装した、または実装する予定があるのか気になる
      このリリースをユーザーのワークフローを壊さずに出すための具体的な計画も知りたい
    • これは Bun Workers API の安定性問題を解決する可能性があるのか? https://bun.com/docs/runtime/workers
  • およそ 9 日前、Jarred はこれがマージされるかまったく確実ではなく、過剰反応だと書いていた
    皮肉だ

    • オープンソースのリーダーシップ の模範例のようだ
      Linus が Linux カーネルをリライトしないと言っておきながら、ある日目覚めたら機械支援の Rust リライトを全部マージしていたらどれほどの騒ぎになったか想像してみてほしい
    • 会社をもう所有していないなら、その人の言うことは安心して無視してよい
      使った トークン費用 を正当化する必要があるのは明らかだった
    • だからといってマージされる可能性が排除されるわけではない
  • うわ、今後見ていて面白そうだ
    このコードがレビューされた可能性はまったくないが、もしかすると今やモデルがコードを書いてレビューするのを信頼できる ポストヒューマン時代 に入ったのかもしれない
    これは Gastown っぽいが、はるかに有名なプロジェクトで起きたことだ
    今後このプロジェクトがどうやって新機能を追加できるのか、そもそも追加できるのかが興味深い
    Anthropic が Bun を具体的にどう使っているのか知っている人はいる?
    Claude Code の一部なのか?
    今後 Bun を使うのはかなり不安だが、その不安が Claude の利用にもどの程度当てはまるのかはよくわからない

    • モデルがコードを書いてレビューするのを信頼できる、なんてことは絶対にない
    • すべてのテストを通過した
      自動言語変換を見抜ける テストスイート を信頼できないなら、そもそもそのテストスイートをまったく信頼すべきではない :)
    • Anthropic が Bun をどう使っているのかは知らないが、数百万行を 無造作にマージ しても問題ない、という方向へ議論の窓をずらすために使っているように見える
    • テストスイートはどんな状態なんだ
  • 自動変換を試すのは実際わくわくするが、後方互換性の問題 がたくさん起きそうで心配だ
    コミットを見始めたが、基本的に「テストが通らない」問題をテスト自体を変えることで解決している
    すでに配布されたプログラムで正しく動くようにする本当の作業は、これから始まるにすぎない
    それでも救いなのは、サーバーサイド JS コミュニティがなぜかすでに頻繁な破壊的変更に慣れていることだ

    • 自分が使う ランタイム に誰一人目を通していないコードが入ると思うと落ち着かない
      だが、これが大きな問題なく本当に動くならかなり驚くべきことだ
    • これらの判断を LLM がしたのかはわからないが、Claude は正しい解決策を見つけるより、テストを修正することで問題を解決するような 怪しい挙動 をしがちだと前から感じていた
      GPT/Codex のほうがこの点では正直だ
    • すぐに安定版リリースになるとは思わないが、間違っていたと証明されるなら喜んで受け入れる
      このリライト全体に懐疑的だし、Jarred Sumner はネット上のフォロワーが非常に多いので広告のようにも感じる
    • 「テストが通らない」問題をテスト自体を変えて解決している例: https://github.com/oven-sh/bun/pull/30412/changes/68a34bf8ed...
      素晴らしい! テストに適当に sleep(1) を追加するだけでいい。心配しなくていい、全部うまくいくさ!
    • テストをざっと見て本当に重要な変更があったのか確認したいのに、GitHub が diff すら読み込めない
  • Bun を使っている数少ない自分のプロジェクトは別のものに移す予定だ
    こういう 無謀な変更 を許すガバナンスは信頼できない

    • Deno は素晴らしいのに、それほど愛されていない気がする
      そもそもよく書かれているからリライトする必要もない
    • 自分もただ node を使い続けるつもりだ
      一方で 火の洗礼 がどうなるか見守るのは興味深いし、長期的には結局問題は解決される気もする
  • 教育的に見る価値のあるスレッドがある。1 週間前に Jarred が再びマージ判断から距離を置き、すぐマージされると予測した人たちを大勢の歩兵が攻撃していたスレッドだ:
    https://news.ycombinator.com/item?id=48073680
    今見ると、うまく持ちこたえられなかった発言だったな?

    • 「このスレッド全体が過剰反応だ。動かないコードに 302 コメントも付いている。私たちはリライトを確約していない。このコードが全部捨てられる可能性は非常に高い」から、実験的な好奇心程度に見えたものまで含めて 10 日で全面マージ というのは、本当に狂っているように見える
    • 世の中には、どのブーツを舐めるかをあまり気にしない 権力追従者 がどれほど多いのか、見るたびに驚かされる
  • これが少しでもうまくいかなければ、自分の商品に酔ったドラッグディーラーという嘲りが延々と暗い形で続くだろう

    • 少しも失敗しない可能性に感情的に備えられていない人が多すぎる
    • 流出した Claude Code のソースを見ただけでも、すでに十分嘲笑の対象ではなかったか
    • すでに自分の商品に酔っている
      Mythos の論文を読んだことがあるか? 擬人化が本当にひどい
      ただの安っぽい注目集めなのかもしれないが、本気で LLM に意識があると信じているなら……すごい話だ