![]()
Gleam 1.14.0版本正式發(fā)布,這是一個運行在Erlang虛擬機(jī)和JavaScript運行時的靜態(tài)類型語言的重要更新,主要增強(qiáng)了對外部類型的支持。
該版本于12月25日發(fā)布,可在GitHub上獲取。據(jù)Gleam語言創(chuàng)建者Louis Pilfold介紹,本次更新為外部類型添加了@external注解支持,允許程序員指定要使用的Erlang或TypeScript類型定義。Gleam的外部類型功能用于聲明可在Gleam中引用的Erlang或JavaScript類型,但由于這些類型來自Gleam外部,編譯器無法在生成的Erlang或TypeScript類型定義中產(chǎn)生精確定義,只能回退到模糊但正確的"any"類型。
增強(qiáng)推理型剪枝優(yōu)化
Gleam 1.14.0還改進(jìn)了基于推理的剪枝優(yōu)化,這項優(yōu)化能夠提升性能并在二進(jìn)制數(shù)據(jù)模式匹配時檢測出更多冗余模式。新版本將這一優(yōu)化擴(kuò)展到整數(shù)段,從而提高其有效性。
數(shù)字規(guī)范化性能提升
該版本還提供了模式匹配分析中的數(shù)字規(guī)范化功能,使代碼運行更快。在Gleam中,數(shù)字可以用不同格式編寫(十進(jìn)制、八進(jìn)制、十六進(jìn)制等,或使用科學(xué)計數(shù)法表示浮點數(shù))。編譯器現(xiàn)在內(nèi)部將這些值規(guī)范化為單一的規(guī)范表示形式,模式匹配分析引擎使用這種表示形式,進(jìn)一步實現(xiàn)了基于推理的剪枝等優(yōu)化。
其他改進(jìn)功能
相等性測試速度得到提升。在編譯到JavaScript時,無字段自定義類型變體的==和!=操作符性能有所改善。
記錄更新語法現(xiàn)在可以在常量定義中使用,允許從其他常量記錄構(gòu)造常量記錄。
該版本更新到最新的Elixir編譯器API,修復(fù)了之前版本的Gleam與最新版Elixir一起使用時會出現(xiàn)的一些警告。
Q&A
Q1:Gleam 1.14.0的@external注解有什么作用?
A:@external注解為外部類型提供支持,允許程序員指定要使用的Erlang或TypeScript類型定義。之前編譯器只能使用模糊的"any"類型,現(xiàn)在可以提供更精確的類型定義。
Q2:推理型剪枝優(yōu)化能帶來什么好處?
A:推理型剪枝優(yōu)化能夠提升程序性能,并在進(jìn)行二進(jìn)制數(shù)據(jù)模式匹配時檢測出更多冗余模式。新版本將此優(yōu)化擴(kuò)展到整數(shù)段,進(jìn)一步提高了優(yōu)化效果。
Q3:Gleam 1.14.0在性能方面有哪些改進(jìn)?
A:主要包括三個方面:數(shù)字規(guī)范化使模式匹配分析更快,相等性測試速度提升(特別是編譯到JavaScript時的==和!=操作),以及推理型剪枝優(yōu)化的擴(kuò)展應(yīng)用。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.