[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-gcc-webassembly-back-end-proposal-zh":3,"tags-gcc-webassembly-back-end-proposal-zh":37,"related-lang-gcc-webassembly-back-end-proposal-zh":48,"related-posts-gcc-webassembly-back-end-proposal-zh":52,"series-tools-31d76621-fb04-4a06-8b6a-f4b63db43dca":89},{"id":4,"title":5,"content":6,"summary":7,"source":8,"source_url":9,"author":10,"image_url":11,"keywords":12,"language":21,"translated_content":10,"views":22,"is_premium":23,"created_at":24,"updated_at":24,"cover_image":11,"published_at":25,"rewrite_status":26,"rewrite_error":10,"rewritten_from_id":27,"slug":28,"category":29,"related_article_id":30,"status":31,"google_indexed_at":32,"x_posted_at":10,"tweet_text":10,"title_rewritten_at":10,"title_original":10,"key_takeaways":33,"topic_cluster_id":10,"embedding":10,"is_canonical_seed":23},"31d76621-fb04-4a06-8b6a-f4b63db43dca","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",[13,14,15,16,17,18,19,20],"GCC","WebAssembly","LLVM","Clang","WASM","編譯器","C++","GNU","zh",1,false,"2026-05-08T13:20:29.419322+00:00","2026-05-08T13:20:29.396+00:00","done","14e1ea8f-377b-4d85-912e-eb925a7a293d","gcc-webassembly-back-end-proposal-zh","tools","0c995f99-a733-48c2-b11c-1369b82da98c","published","2026-05-09T09:00:15.114+00:00",[34,35,36],"GCC 重新提出 WebAssembly 後端 RFC，但目前只有約 3,000 行程式碼。","這個後端還缺 reference types、tables、exceptions、debug info、data sections。","LLVM 目前仍是 WebAssembly 的主流工具鏈，GCC 要追上還需要長期維護。",[38,40,42,44,46],{"name":16,"slug":39},"clang",{"name":13,"slug":41},"gcc",{"name":14,"slug":43},"webassembly",{"name":17,"slug":45},"wasm",{"name":15,"slug":47},"llvm",{"id":30,"slug":49,"title":50,"language":51},"gcc-webassembly-back-end-proposal-en","GCC Gets a New WebAssembly Back-End Proposal","en",[53,59,65,71,77,83],{"id":54,"slug":55,"title":56,"cover_image":57,"image_url":57,"created_at":58,"category":29},"68e4be16-dc38-4524-a6ea-5ebe22a6c4fb","why-vidhub-huiyuan-hutong-bushi-quan-shebei-tongyong-zh","為什麼 VidHub 會員互通不是「買一次全設備通用」","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778789450987-advz.png","2026-05-14T20:10:24.048988+00:00",{"id":60,"slug":61,"title":62,"cover_image":63,"image_url":63,"created_at":64,"category":29},"7a1e174f-746b-4e82-a0e3-b2475ab39747","why-buns-zig-to-rust-experiment-is-right-zh","為什麼 Bun 的 Zig-to-Rust 實驗是對的","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778767879127-5dna.png","2026-05-14T14:10:26.886397+00:00",{"id":66,"slug":67,"title":68,"cover_image":69,"image_url":69,"created_at":70,"category":29},"e742fc73-5a65-4db3-ad17-88c99262ceb7","why-openai-api-pricing-is-product-strategy-zh","為什麼 OpenAI API 定價是產品策略，不是註腳","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778749859485-chvz.png","2026-05-14T09:10:26.003818+00:00",{"id":72,"slug":73,"title":74,"cover_image":75,"image_url":75,"created_at":76,"category":29},"c757c5d8-eda9-45dc-9020-4b002f4d6237","why-claude-code-prompt-design-beats-ide-copilots-zh","為什麼 Claude Code 的提示設計贏過 IDE Copilot","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778742645084-dao9.png","2026-05-14T07:10:29.371901+00:00",{"id":78,"slug":79,"title":80,"cover_image":81,"image_url":81,"created_at":82,"category":29},"4adef3ab-9f07-4970-91cf-77b8b581b348","why-databricks-model-serving-is-right-default-zh","為什麼 Databricks Model Serving 是生產推論的正確預設","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778692245329-a2wt.png","2026-05-13T17:10:30.659153+00:00",{"id":84,"slug":85,"title":86,"cover_image":87,"image_url":87,"created_at":88,"category":29},"b3305057-451d-48e4-9fb9-69215f7effad","why-ibm-bob-right-kind-ai-coding-assistant-zh","為什麼 IBM 的 Bob 才是對的 AI 寫碼助手","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778664653510-64hc.png","2026-05-13T09:30:21.881547+00:00",[90,95,100,105,110,115,120,125,130,135],{"id":91,"slug":92,"title":93,"created_at":94},"de769291-4574-4c46-a76d-772bd99e6ec9","googles-biggest-gemini-launches-in-2026-zh","Google 2026 最大 Gemini 盤點","2026-03-26T07:26:39.21072+00:00",{"id":96,"slug":97,"title":98,"created_at":99},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":101,"slug":102,"title":103,"created_at":104},"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":106,"slug":107,"title":108,"created_at":109},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":111,"slug":112,"title":113,"created_at":114},"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":116,"slug":117,"title":118,"created_at":119},"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":121,"slug":122,"title":123,"created_at":124},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":126,"slug":127,"title":128,"created_at":129},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":131,"slug":132,"title":133,"created_at":134},"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":136,"slug":137,"title":138,"created_at":139},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00"]