後端工坊 2026 年 6 月 6 日

2026-06-06 — C++ 紀錄片上映、jujutsu v0.42.0 mimalloc

primary=https://herbsutter.com/2026/06/04/c-the-documentary-released-today/ primary=https://www.youtube.com/watch?v=lI7tMxzSJ7w primary=https://github.com/jj-vcs/jj/releases/tag/v0.42.0

C++:The Documentary 上映——四十年語言演化紀錄

herbsutter.com · YouTube 首映 · 2026-06-04

《C++: The Documentary》於 2026 年 6 月 4 日在 YouTube 正式上映(youtube.com/watch?v=lI7tMxzSJ7w),片長約 1 小時 8 分鐘,以 24 個章節追溯 C++ 從 1979 年 Bell Labs「C with Classes」到今日的四十年演化歷程。影片以 Herb Sutter 引用的數據作為開場:C++ 在過去 3.5 年增加了 90% 的使用者,是全球前四大語言中成長最快的。

受訪者陣容

影片收錄了 15 位業界人士的訪談,包含語言設計與工具鏈的核心人物:

  • Bjarne Stroustrup(C++ 設計者,Bell Labs)
  • Alexander Stepanov(STL 設計者)
  • Anders Hejlsberg(C#、TypeScript 創造者)
  • Brian Kernighan(Bell Labs,《The C Programming Language》共同作者)
  • Chris Lattner(LLVM、Clang、Swift 創造者)
  • John Romero(Doom、Quake 共同創造者)
  • Gabriel Dos Reis(Microsoft 工程師)

歷史脈絡

影片按時間軸結構化,涵蓋幾個關鍵轉折點。C++ 在 1990 年代中期進入標準化,ISO/IEC 14882:1998(C++98)建立了語言規範基礎,同時 STL 的引入讓泛型程式設計從概念變為標準工具箱。影片稱 2000 年代初期為「C++ winter」——Java 和 C# 在企業應用開發中取得主導地位,C++ 的學習曲線陡峭與未定義行為問題受到廣泛批評。

轉機出現在 C++11:move semantics、lambda、auto 型別推斷、std::thread 等功能使語言從根本上現代化,吸引了新一代開發者。遊戲(Unreal Engine)與金融交易是 C++ 從未失去主導地位的兩個領域,John Romero 和金融工程師的訪談呈現了實際的使用場景。

影響範圍

這部紀錄片的意義不僅在於記錄,更在於時機——C++23 剛完成、C++26 正在標準化中,Rust 則持續挑戰 C++ 在系統程式設計領域的地位。Chris Lattner(LLVM/Clang 作者)和 Anders Hejlsberg(後來設計了 TypeScript)的出現讓影片的視角超越 C++ 本身,觸及語言演化的更廣泛脈絡。對於理解現代工具鏈(Clang、LLVM IR、module system)的設計決策,影片提供了有用的歷史背景。

原始來源:Herb Sutter BlogYouTube(1h 8m)


jujutsu v0.42.0:切換至 mimalloc、evolution history 自動 rebase

GitHub · jj-vcs/jj · 2026-06-04

版本控制系統 jujutsu(jj)發布 v0.42.0,最值得注意的底層改動是從預設記憶體配置器切換到 mimalloc——一個由 Microsoft Research 開發、針對多執行緒高頻分配最佳化的配置器,在 Git 操作密集場景(大量物件操作、平行 fetch)下可觀察到效能改善。

核心改動

Evolution history 自動生成是此版本最重要的功能:執行 jj git fetch 時,系統根據 change ID 自動生成 evolution history,並在遠端父節點被重寫(rewrite,如 force-push)時自動 rebase 本地的後代修訂版本。這解決了 jujutsu 在與 force-push 頻繁的遠端倉庫互動時需要手動偵測並重新排列歷史的痛點,讓 jj 的工作流在混合使用 Git 的團隊中更為流暢。

jj show 現在接受複數個 revision 引數,依序展示,行為類似 git show rev1 rev2 rev3,方便在不切換 revision 的情況下快速審查多個修訂版本。新指令 jj util backend name 讓腳本可以程式化識別當前倉庫使用的 commit backend(native jj backend 或 git backend)。Diff editor 引入 edit-invocation-mode: file-by-file 設定,讓 vimdiff 等逐檔案工具能正確運作。

破壞性變更

此版本移除多個已棄用的設定選項與指令 flag:

  • git.auto-local-bookmark 設定選項已移除
  • git.push-new-bookmarks 設定選項已移除
  • jj commitjj describejj git pushjj metaedit 的已棄用選項已移除

使用 jj 包裝腳本的自動化工具應在升級前核查 breaking changes 清單,尤其是書籤(bookmark)相關操作的輸出訊息也有變更,可能影響依賴文字解析的腳本。

原始來源:jj v0.42.0 release notes


End of article
0
Would love your thoughts, please comment.x
()
x