前端前線 2026 年 4 月 25 日

2026-04-25 — raylib 6.0 純軟體渲染器、Gleam 1.16.0 JavaScript Source Maps

raylib 6.0:無 GPU 的純軟體渲染器與三個新平台…

raylib 6.0:無 GPU 的純軟體渲染器與三個新平台後端

GitHub Releases · 2026-04-24

raylib 6.0 是此遊戲/多媒體程式庫迄今規模最大的一次版本更新,核心亮點是在不需要任何 GPU 的條件下完成渲染。

軟體渲染器 rlsw

新增 rlsw(raylib software renderer) 模組,讓 raylib 在缺少 GPU 或 OpenGL 支援的嵌入式環境中也能正常運行。rlsw 實作了與 OpenGL 相容的渲染管線,包含頂點變換、光柵化與片段著色,全部在 CPU 上執行,並輸出至標準幀緩衝。

三個新平台後端

  • Win32:原生 Windows 實作,不依賴 GLFW,減少外部依賴。
  • Emscripten:網頁部署後端,不需額外外部依賴即可編譯至 WebAssembly。
  • Memory:無頭渲染後端,直接輸出到記憶體幀緩衝,適合伺服器端圖像生成與測試自動化。

API 擴充

此次版本總計新增 20 個新函數,使 API 達到 600 個。其中:

  • 40+ 檔案系統管理函數整合入核心模組(原分散於 utils)
  • 30+ 文字處理函數
  • 骨骼動畫新增幀間與不同動畫間的混合(blending)支援
  • 全螢幕模式與 High-DPI 縮放全部重寫,優先採用無邊框模式

建置簡化

raylib 6.0 刪除了 utils 模組,整個函式庫精簡為 6–7 個 C 檔案。建置設定透過改進的 feature flags 管理,降低從源碼整合的複雜度。

規模指標

自上一版本以來,專案累積 2,000 次 commit(總計 9,760 次)、70 個新範例(總計 215 個)、210 位新貢獻者(總計 850 位)、關閉 330 個 issue(累計 2,150 個)。

原始來源:raylib 6.0 GitHub Release


Gleam 1.16.0:JavaScript Source Maps 讓偵錯回到原始碼

gleam.run · 2026-04-24

Gleam v1.16.0 帶來了 JavaScript 目標最受期待的功能:Source Maps 支援。Gleam 以靜態型別為核心,編譯至 JavaScript(或 Erlang),過去在瀏覽器或 Node.js 執行期的錯誤訊息只能顯示編譯後的 JS 行號,導致偵錯困難。

啟用方式

在專案的 gleam.toml 設定中加入:

[javascript]
source_maps = true

編譯器會在 JavaScript 輸出旁生成對應的 .map 檔案。使用 Lustre dev-tools 或直接服務 build 目錄時,瀏覽器自動讀取映射;其他部署環境需確保 .map 檔案可公開存取。

偵錯效果

啟用後,瀏覽器開發者工具(已在 Safari 確認)與 Node.js 的例外堆疊追蹤可直接顯示原始 Gleam 程式碼的行號與函數名稱,並支援在原始碼設定中斷點進行互動式偵錯。

效能優化

編譯器新增對單字元字串前綴匹配的特化處理:JavaScript 輸出中以字元碼比較取代字串切片,相關套件的執行期效能提升約 30%

其他變更

  • 套件級容錯編譯:單一模組失敗不再中止整個套件的編譯流程。
  • Language Server 改進:新增匿名函數增刪、extract function、type hole 填充等 code actions。
  • 格式化:改進巢狀 tuple 排版;支援 TypeScript 與 JSX 副檔名。

原始來源:Gleam v1.16.0 Release Notes


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