[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-gcc-webassembly-back-end-proposal-zh":3,"article-related-gcc-webassembly-back-end-proposal-zh":32,"series-tools-31d76621-fb04-4a06-8b6a-f4b63db43dca":86},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":25,"views":29,"created_at":30,"published_at":31,"topic_cluster_id":11},"31d76621-fb04-4a06-8b6a-f4b63db43dca","gcc-webassembly-back-end-proposal-zh","GCC 重新挑戰 WebAssembly 後端","\u003Cp data-speakable=\"summary\">GCC 這次提出新的 WebAssembly 後端 RFC，代表 GNU 編譯器又開始碰 \u003Ca href=\"\u002Fnews\u002Fcopilot-studio-dotnet-10-wasm-performance-zh\">WASM\u003C\u002Fa> 了。\u003C\u002Fp>\u003Cp>說真的，這案子拖很久了。\u003Ca href=\"https:\u002F\u002Fgcc.gnu.org\u002F\" target=\"_blank\" rel=\"noopener\">GCC\u003C\u002Fa> 這次的 patch 大約 3,000 行，狀態還是 RFC。也就是說，它還在收意見，離正式合併還有一段路。\u003C\u002Fp>\u003Cp>你可能會想問，這有\u003Ca href=\"\u002Fnews\u002Fwhy-midjourney-81-raw-mode-better-default-style-zh\">什麼\u003C\u002Fa>好寫的。答案很簡單，\u003Ca href=\"https:\u002F\u002Fwebassembly.org\u002F\" target=\"_blank\" rel=\"noopener\">WebAssembly\u003C\u002Fa> 幾乎一直是 \u003Ca href=\"https:\u002F\u002Fclang.llvm.org\u002F\" target=\"_blank\" rel=\"noopener\">Clang\u003C\u002Fa> 和 \u003Ca href=\"https:\u002F\u002Fllvm.org\u002F\" target=\"_blank\" rel=\"noopener\">LLVM\u003C\u002Fa> 的地盤。現在 GCC 想回來搶一席，這件事本身就很有看頭。\u003C\u002Fp>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>項目\u003C\u002Fth>\u003Cth>內容\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>Patch 規模\u003C\u002Ftd>\u003Ctd>約 3,000 行程式碼\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>目前狀態\u003C\u002Ftd>\u003Ctd>RFC，尚未核准\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>缺少功能\u003C\u002Ftd>\u003Ctd>reference types、tables、exceptions、debug info、data sections\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>上次相關嘗試\u003C\u002Ftd>\u003Ctd>接近 10 年前\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2>這個提案為什麼重要\u003C\u002Fh2>\u003Cp>先講白的。GCC 不是沒人用。它在 Linux、嵌入式、系統軟體圈，還是很有份量。若它能補上 WebAssembly 後端，開發者就多一條路，不用全都擠在 LLVM 這條線上。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778246451160-9a07.png\" alt=\"GCC 重新挑戰 WebAssembly 後端\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>這件事對 C 和 C++ 開發者特別有感。很多人本來就熟 GCC 的旗標、診斷訊息、建置流程。若能直接把這套工作流搬到 WASM，切換成本會低很多。\u003C\u002Fp>\u003Cp>但現實也很直接。LLVM 早就把 WebAssembly 生態做起來了。它有 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fllvm\u002Fllvm-project\" target=\"_blank\" rel=\"noopener\">LLVM 專案\u003C\u002Fa> 的完整後端工作，也有更成熟的社群節奏。GCC 現在要追，不能只靠一句「我們也要做」。\u003C\u002Fp>\u003Cul>\u003Cli>WebAssembly 已經能跑瀏覽器和伺服器工作負載\u003C\u002Fli>\u003Cli>GCC 支援會讓編譯器選擇更多\u003C\u002Fli>\u003Cli>RFC 階段表示功能還很早期\u003C\u002Fli>\u003Cli>LLVM 目前仍是主流路線\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>這份 patch 到底做了什麼\u003C\u002Fh2>\u003Cp>這次的提案是 request for comments。講白了，就是先丟出來讓大家挑毛病。這種狀態很正常，因為後端最怕的不是「沒做完」，而是「方向錯了卻一路做下去」。\u003C\u002Fp>\u003Cp>目前已知的內容不算多，但缺口很清楚。它還沒有 reference types、tables、exceptions、debug info 和 data sections。這些都不是裝飾品。它們直接影響能不能拿來做真實專案。\u003C\u002Fp>\u003Cp>如果少了 debug info，除錯會很痛。少了 exceptions，很多語言綁定和 runtime 整合也會卡住。少了 data sections，實務上的模組佈局也不完整。講白了，現在比較像「先把骨架搭起來」。\u003C\u002Fp>\u003Cblockquote>“Nearly a decade ago there was a proposal for a GCC WebAssembly back-end that ultimately never ended up being merged.” — Michael Larabel, Phoronix\u003C\u002Fblockquote>\u003Cp>這句話很準。\u003Ca href=\"https:\u002F\u002Fwww.phoronix.com\u002F\" target=\"_blank\" rel=\"noopener\">Phoronix\u003C\u002Fa> 的 Michael Larabel 把歷史講得很直白。GCC 不是第一次碰 WASM，但上一次沒走到最後。\u003C\u002Fp>\u003Cp>所以這次的重點，不是能不能發 patch。重點是，這條線能不能被持續維護。後端開發最怕半途斷電。尤其是像 WebAssembly 這種還在演進的目標。\u003C\u002Fp>\u003Ch2>GCC 和 LLVM 怎麼比\u003C\u002Fh2>\u003Cp>如果只看現況，LLVM 還是贏面大。它在 WebAssembly 的支援比較完整，工具鏈也比較成熟。很多想把 C、C++ 編到 WASM 的團隊，第一個想到的還是 Clang。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778246459013-xhr5.png\" alt=\"GCC 重新挑戰 WebAssembly 後端\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>但 GCC 也不是沒優勢。它在傳統 native 編譯場景很穩，特別是 Linux 世界。對一些團隊來說，能少換一套編譯器，真的省很多事。\u003C\u002Fp>\u003Cp>我覺得這裡最值得看的，是兩邊的開發哲學。LLVM 比較像快速推進，GCC 比較像保守穩定。前者適合搶新目標，後者適合把既有生態吃乾抹淨。WebAssembly 這種新平台，前期通常是 LLVM 先衝。\u003C\u002Fp>\u003Cul>\u003Cli>LLVM\u002FClang 的 WASM 支援較成熟\u003C\u002Fli>\u003Cli>GCC 在 native 編譯與 Linux 生態很強\u003C\u002Fli>\u003Cli>GCC 若補上 WASM，會多一個可比較的工具鏈\u003C\u002Fli>\u003Cli>團隊可比較 codegen、診斷和建置整合\u003C\u002Fli>\u003C\u002Ful>\u003Cp>還有一個很現實的問題。誰來維護。後端不是丟上去就結束。它要跟 ABI、除錯、runtime、runtime library 一起跑。這些東西都需要人力，而且是長期人力。\u003C\u002Fp>\u003Cp>所以這次 RFC 的價值，不在於它已經完成多少。它的價值在於，它讓社群可以直接討論：GCC 值不值得在 WASM 再投一輪資源。\u003C\u002Fp>\u003Ch2>這件事放在產業脈絡裡看\u003C\u002Fh2>\u003Cp>WebAssembly 原本是瀏覽器技術。現在它早就不只在瀏覽器裡混。伺服器端、edge runtime、插件系統，甚至某些安全沙盒場景，都開始用到 WASM。\u003C\u002Fp>\u003Cp>這種轉變很關鍵。因為一旦 WASM 變成通用執行環境，編譯器選擇就不只是「能不能編」。它還會影響效能、除錯體驗、工具鏈整合，還有團隊既有的建置習慣。\u003C\u002Fp>\u003Cp>GCC 這次的提案，剛好踩在這個交叉點上。它不是在做一個純學術玩具，而是在碰一個已經進入實務層的目標平台。這也是為\u003Ca href=\"\u002Fnews\u002Fwhy-polyai-kong-deal-right-move-enterprise-ai-zh\">什麼\u003C\u002Fa>它會被拿來跟 LLVM 比，而不是只當成一篇 mailing list 討論。\u003C\u002Fp>\u003Cp>如果你是做 C、C++、系統軟體，這件事值得追。不是因為它一定會成功，而是因為它會告訴你，WebAssembly 的編譯器版圖還有沒有第二條主線。\u003C\u002Fp>\u003Ch2>接下來要看什麼\u003C\u002Fh2>\u003Cp>下一步很簡單。先看 GCC Steering Committee 會不會接球。再看 patch series 會不會繼續長大。現在只有約 3,000 行，功能缺口又不少，離能用還早。\u003C\u002Fp>\u003Cp>如果後續 review 順利，這案子就會從「有人試著做」變成「社群開始認真談整合」。到那時候，討論重點會變成 ABI、debug、exceptions，還有 GCC 要怎麼跟 LLVM 拉開差異。\u003C\u002Fp>\u003Cp>我的判斷是，這案子短期內不會立刻改變市場。可是一旦它真的往前走，對開發者來說會很實際。你會多一個可選的 WebAssembly 編譯器，也多一個能比較的工具鏈。\u003C\u002Fp>\u003Cp>如果你平常有在看 GCC patch 或 WASM 工具鏈，現在就可以把這條線加進觀察清單。接下來幾個月，才是看它會不會真的往前走的時間。\u003C\u002Fp>","GCC 提出新的 WebAssembly 後端 RFC patch series。這篇整理它的進度、缺少的功能、和 LLVM\u002FClang 的差距。","www.phoronix.com","https:\u002F\u002Fwww.phoronix.com\u002Fnews\u002FGCC-WASM-WebAssembly",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778246451160-9a07.png","tools","zh","0c995f99-a733-48c2-b11c-1369b82da98c",[17,18,19,20,21,22,23,24],"GCC","WebAssembly","LLVM","Clang","WASM","編譯器","C++","GNU",[26,27,28],"GCC 重新提出 WebAssembly 後端 RFC，但目前只有約 3,000 行程式碼。","這個後端還缺 reference types、tables、exceptions、debug info、data sections。","LLVM 目前仍是 WebAssembly 的主流工具鏈，GCC 要追上還需要長期維護。",1,"2026-05-08T13:20:29.419322+00:00","2026-05-08T13:20:29.396+00:00",{"tags":33,"relatedLang":45,"relatedPosts":49},[34,36,38,40,43],{"name":20,"slug":35},"clang",{"name":17,"slug":37},"gcc",{"name":18,"slug":39},"webassembly",{"name":41,"slug":42},"Wasm","wasm",{"name":19,"slug":44},"llvm",{"id":15,"slug":46,"title":47,"language":48},"gcc-webassembly-back-end-proposal-en","GCC Gets a New WebAssembly Back-End Proposal","en",[50,56,62,68,74,80],{"id":51,"slug":52,"title":53,"cover_image":54,"image_url":54,"created_at":55,"category":13},"bef47dbc-b0b4-439e-bae9-abe9473a321c","wei-shen-me-tether-ba-ben-di-ai-ji-yi-tui-jin-ri-chang-zhuan-zh","為什麼 Tether 把本地 AI 記憶推進日常裝置是對的","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780542170805-opi6.png","2026-06-04T03:02:19.599329+00:00",{"id":57,"slug":58,"title":59,"cover_image":60,"image_url":60,"created_at":61,"category":13},"d3ec03a8-a805-4a21-9826-72a74a72b625","databricks-model-serving-llm-deploy-guide-zh","Databricks Model Serving 讓 LLM 部署變簡單","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780525998117-7ur8.png","2026-06-03T22:32:51.005996+00:00",{"id":63,"slug":64,"title":65,"cover_image":66,"image_url":66,"created_at":67,"category":13},"4dd225a8-bf6c-4768-a486-a27956c7033d","opencode-digitalocean-model-freedom-zh","OpenCode+DigitalOcean 讓你切換模型","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780525116428-1q7g.png","2026-06-03T22:18:06.969758+00:00",{"id":69,"slug":70,"title":71,"cover_image":72,"image_url":72,"created_at":73,"category":13},"4bdcf208-fb80-484e-b4b6-06af035a6df1","modulate-aws-voice-chats-into-signals-zh","Modulate 用 AWS 把語音聊天做成訊號","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780519733892-rxue.png","2026-06-03T20:48:22.697917+00:00",{"id":75,"slug":76,"title":77,"cover_image":78,"image_url":78,"created_at":79,"category":13},"f44a28d3-2305-43de-b5fa-21217d561054","amazon-rekognition-content-moderation-filter-zh","Amazon Rekognition把審核變成過濾器","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780517005409-bxfc.png","2026-06-03T20:02:57.634353+00:00",{"id":81,"slug":82,"title":83,"cover_image":84,"image_url":84,"created_at":85,"category":13},"80f6f40b-3217-45e4-acff-7b2f6d261779","codex-workspace-limits-tell-you-why-zh","Codex 讓工作區限額錯誤說人話","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780514293711-ltqa.png","2026-06-03T19:17:41.340056+00:00",[87,92,97,102,107,112,117,122,127,132],{"id":88,"slug":89,"title":90,"created_at":91},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":93,"slug":94,"title":95,"created_at":96},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":98,"slug":99,"title":100,"created_at":101},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":103,"slug":104,"title":105,"created_at":106},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":108,"slug":109,"title":110,"created_at":111},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":113,"slug":114,"title":115,"created_at":116},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":118,"slug":119,"title":120,"created_at":121},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":123,"slug":124,"title":125,"created_at":126},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":128,"slug":129,"title":130,"created_at":131},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00",{"id":133,"slug":134,"title":135,"created_at":136},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]