91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Ruby 3.2.0正式發(fā)布 新增多項改進

OSC開源社區(qū) ? 來源: OSC開源社區(qū) ? 2022-12-27 10:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Ruby 3.2.0 現(xiàn)已發(fā)布,該版本添加了許多功能和性能改進。具體更新內(nèi)容如下:

基于 WASI 的 WebAssembly 支持

這是基于 WASI 的 WebAssembly 支持的初始移植。此項特性使得 CRuby 二進制文件可在 Web 瀏覽器、Serverless Edge 環(huán)境和其他 WebAssembly/WASI 嵌入器上使用。目前,此移植可在不使用 Thread API 的前提下通過基本和引導(dǎo)測試套件的測試。2cb1ef12-852e-11ed-bfe3-dac502259ad0.png

生產(chǎn)就緒的 YJIT

2cce2984-852e-11ed-bfe3-dac502259ad0.png
  • YJIT 不再是實驗性的

    • 已經(jīng)在生產(chǎn)工作負載上進行了一年多的測試,證明非常穩(wěn)定。

  • YJIT 現(xiàn)在支持 Linux、MacOS、BSD 和其他 UNIX 平臺上的 x86-64 和 arm64/aarch64 CPU

    • 此版本支持 Apple M1/M2、AWS Graviton、Raspberry Pi 4 等。

  • 構(gòu)建 YJIT 現(xiàn)在需要 Rust 1.58.0+。[Feature #18481 ]

    • 為了確保 CRuby 是使用 YJIT 構(gòu)建的,請在運行./configure腳本之前安裝rustc>= 1.58.0 。

  • YJIT 3.2 版本比 3.1 更快,內(nèi)存開銷大約是 3.1 的 1/3。

    • 總體而言,YJIT 比 yjit-bench 上的 Ruby 解釋器快 41%(幾何平均值)。

    • JIT 代碼的物理內(nèi)存是延遲分配的。與 Ruby 3.1 不同,Ruby 進程的 RSS 被最小化,因為--yjit-exec-mem-size分配的虛擬內(nèi)存頁在 JIT 代碼實際使用之前不會映射到物理內(nèi)存頁。

    • 引入 Code GC,當 JIT 代碼的內(nèi)存消耗達到--yjit-exec-mem-size時,釋放所有代碼頁。

    • RubyVM::YJIT.runtime_stats在現(xiàn)有的inline_code_sizeoutlined_code_sizekeys 之外,還返回 Code GC metrics:code_gc_countlive_page_count、freed_page_countfreed_code_size

  • RubyVM::YJIT.runtime_stats生成的大部分統(tǒng)計數(shù)據(jù)現(xiàn)在都可以在發(fā)布版本中使用。

    • 只需使用--yjit-stats運行 ruby 來計算和轉(zhuǎn)儲統(tǒng)計信息(會產(chǎn)生一些運行時開銷)。

  • YJIT 現(xiàn)在經(jīng)過優(yōu)化以利用 object shapes。[Feature #18776 ]

  • 在定義新常量時,利用更細粒度的常量失效來減少代碼的無效化。[Feature #18589 ]

  • 默認--yjit-exec-mem-size更改為 64 (MiB)。

  • 默認--yjit-call-threshold更改為 30。

針對 ReDoS 的正則表達式改進

由于正則表達式匹配會耗費不少時間,當代碼試圖向不受信任的輸入匹配低效的正則表達式時,攻擊者可能會利用它進行 DoS 攻擊(即正則表達式 DoS,或稱作 ReDoS)。因此新版本引入了兩項可顯著緩解 ReDoS 攻擊的改進。改進的正則表達式匹配算法從 Ruby 3.2 開始,Regexp 的匹配算法通過使用記憶技術(shù)得到了極大的改進。
# This match takes 10 sec. in Ruby 3.1, and 0.003 sec. in Ruby 3.2 /^a*b?a*$/ =~ "a" * 50000 + "x"
2ceafd02-852e-11ed-bfe3-dac502259ad0.png2d11e5c0-852e-11ed-bfe3-dac502259ad0.png改進后的匹配算法使得大多數(shù) Regexp 匹配(實驗中大約為 90%)在線性時間內(nèi)完成。對于 3.2.0 預(yù)覽版本的用戶:此優(yōu)化可能會消耗與每個匹配的輸入長度成比例的內(nèi)存。預(yù)計不會出現(xiàn)實際問題,因為此內(nèi)存分配通常會延遲,并且正常的 Regexp 匹配最多應(yīng)消耗 10 倍的內(nèi)存輸入長度。正則表達式超時退出機制此版本引入了正則表達式超時退出機制。
Regexp.timeout = 1.0

/^a*b?a*$/ =~ "a" * 50000 + "x"
#=> Regexp::TimeoutError is raised in one second
Regexp.timeout根據(jù) Ruby 應(yīng)用程序的要求進行配置,可以防止或顯著降低 DoS 的風險。請注意,Regexp.timeout是全局配置項,如果希望對某些特殊的正則表達式使用不同的超時設(shè)置,需要使用timeout關(guān)鍵字Regexp.new。
Regexp.timeout = 1.0

# This regexp has no timeout
long_time_re = Regexp.new("^a*b?a*$", timeout: nil)

long_time_re =~ "a" * 50000 + "x" # never interrupted
此項特性的最初提案:https://bugs.ruby-lang.org/issues/17837

其他值得注意的新功能

語法建議
  • syntax_suggest(以前的dead_end)的功能已集成到 Ruby 中,可以幫助找到錯誤的位置,例如丟失或多余的 end 。

Unmatched `end', missing keyword (`do', `def`, `if`, etc.) ?

  1  class Dog
> 2    defbark
> 4    end
  5  end
[Feature #18159]錯誤高亮
  • 現(xiàn)在它指向 TypeError 和 ArgumentError 的相關(guān)參數(shù)

test.rbin `+': nil can't be coerced into Integer (TypeError)

sum = ary[0] + ary[1]
               ^^^^^^
語言
  • 匿名 rest 和關(guān)鍵字 rest 參數(shù)可以作為參數(shù)傳遞,而不僅僅是在方法參數(shù)中使用。[Feature #18351]

  deffoo(*)
    bar(*)
  end
  defbaz(**)
    quux(**)
  end
更多詳情可查看官方公告:https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • ruby
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    3875

原文標題:Ruby 3.2.0正式發(fā)布,新增多項改進

文章出處:【微信號:OSC開源社區(qū),微信公眾號:OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    西門子PCB DFM分析工具Valor NPI 2510版本的新增功能

    Valor NPI 2510 版本新增多項檢查功能、提升制造風險識別,并推出令人矚目的 3D 可視化增強特性,這標志著產(chǎn)品的重大升級。Valor NPI 的 3D 視圖經(jīng)過重新設(shè)計,讓可制造性設(shè)計 (DFM) 結(jié)果的查看更直觀、精準。
    的頭像 發(fā)表于 01-04 16:10 ?413次閱讀
    西門子PCB DFM分析工具Valor NPI 2510版本的<b class='flag-5'>新增</b>功能

    淺談藍牙核心規(guī)范6.2的四項關(guān)鍵增強功能

    藍牙技術(shù)聯(lián)盟(Bluetooth SIG)近日宣布正式發(fā)布藍牙核心規(guī)范 6.2(Bluetooth Core 6.2)。作為一年兩次的規(guī)范更新之一,本次更新新增多項關(guān)鍵功能,旨在提升設(shè)備響應(yīng)速度、增強安全性,并加強通信與測試能力。
    的頭像 發(fā)表于 12-25 11:34 ?981次閱讀

    移遠GNSS產(chǎn)品再進化:新增自研RTKHOLD技術(shù),集成伽利略O(shè)SNMA與HAS服務(wù)

    近日,移遠通信高精度定位模組LG290P、LG580P及LG680P新增多項關(guān)鍵技術(shù)能力——移遠自研RTKHOLD技術(shù),以及伽利略衛(wèi)星導(dǎo)航系統(tǒng)(Galileo)的開放服務(wù)導(dǎo)航電文認證(OSNMA
    的頭像 發(fā)表于 12-11 19:04 ?408次閱讀
    移遠GNSS產(chǎn)品再進化:<b class='flag-5'>新增</b>自研RTKHOLD技術(shù),集成伽利略O(shè)SNMA與HAS服務(wù)

    Matter 1.5 正式發(fā)布

    景,包括對攝像頭、閉合設(shè)備、土壤傳感器的支持,同時還新增多項能源管理功能。此次更新延續(xù)了 Matter 的核心使命,即簡化智能家居開發(fā)流程、增強設(shè)備互操作性,為消費者與開發(fā)者打造更豐富、更可持續(xù)的互操作體驗。 今年早些時候聯(lián)盟發(fā)布的聚焦質(zhì)量優(yōu)化的 Matter 1.
    的頭像 發(fā)表于 12-01 14:45 ?645次閱讀
    Matter 1.5 正式<b class='flag-5'>發(fā)布</b>

    連接標準聯(lián)盟正式推出Matter 1.5版本

    、土壤傳感器的支持,同時還新增多項能源管理功能。此次更新延續(xù)了 Matter 的核心使命,即簡化智能家居開發(fā)流程、增強設(shè)備互操作性,為消費者與開發(fā)者打造更豐富、更可持續(xù)的互操作體驗。
    的頭像 發(fā)表于 11-30 10:34 ?1102次閱讀

    Imagination GPU 驅(qū)動更新:新增多項 Vulkan 與 OpenCL 擴展支持

    最近,ImaginationGPU驅(qū)動完成了重大更新。Imagination客戶現(xiàn)已可通過合作伙伴門戶(PartnerPortal)獲取最新版Linux與Android驅(qū)動開發(fā)套件(DDK)。我們整理了本次更新的重點內(nèi)容。Vulkan協(xié)作矩陣(CooperativeMatrix)支持為加速圖形后處理、神經(jīng)著色器、物理仿真以及GPU上的機器學(xué)習推理,DDK25
    的頭像 發(fā)表于 10-13 09:21 ?879次閱讀
    Imagination GPU 驅(qū)動更新:<b class='flag-5'>新增多項</b> Vulkan 與 OpenCL 擴展支持

    開鴻Bot系列大版本更新:體驗穩(wěn)定升級,樂享高效協(xié)同!

    V5.0.1.22版本開鴻Bot系列今日,開鴻Bot系列迎來第二次大版本更新——V5.0.1.22。此次版本更新致力于進一步提升系統(tǒng)穩(wěn)定性與用戶體驗,新增多項實用功能,并在磁盤管理、OTA升級、設(shè)備
    的頭像 發(fā)表于 09-26 17:06 ?1354次閱讀
    開鴻Bot系列大版本更新:體驗穩(wěn)定升級,樂享高效協(xié)同!

    NVIDIA RAPIDS 25.06版本新增多項功能

    RAPIDS 是一套面向 Python 數(shù)據(jù)科學(xué)的 NVIDIA CUDA-X 庫,最新發(fā)布的 25.06 版本引入了多項亮眼新功能,其中包括 Polars GPU 流執(zhí)行引擎——這是一種面向圖
    的頭像 發(fā)表于 09-09 09:54 ?1077次閱讀

    了解SOLIDWORKS202仿真方面的改進

    隨著SOLIDWORKS 2025版本的發(fā)布,這款三維CAD和仿真分析軟件的再次展現(xiàn)了其在技術(shù)創(chuàng)新上的強勁實力。SOLIDWORKS 2025在仿真方面進行了多項重大改進,旨在提升仿真精度、可靠性
    的頭像 發(fā)表于 09-04 10:36 ?691次閱讀
    了解SOLIDWORKS202仿真方面的<b class='flag-5'>改進</b>

    匠芯創(chuàng)發(fā)布新版GUI開發(fā)工具 新增多國語言設(shè)置等功能

    。此次版本更新,為用戶帶來了諸多實用的新功能,進一步提升了設(shè)計體驗和開發(fā)效率。在V1.3.0版本中,AiUIBuilder新增了多國語言切換功能,支持設(shè)計界面顯示
    的頭像 發(fā)表于 08-07 15:36 ?1328次閱讀
    匠芯創(chuàng)<b class='flag-5'>發(fā)布</b>新版GUI開發(fā)工具 <b class='flag-5'>新增多</b>國語言設(shè)置等功能

    商湯大裝置重磅發(fā)布多項標志性成果

    在2025世界人工智能大會(WAIC 2025)期間,作為“最懂大模型的AI基礎(chǔ)設(shè)施”,商湯大裝置重磅發(fā)布多項標志性成果,持續(xù)打造AI基礎(chǔ)設(shè)施發(fā)展新范式,力推動產(chǎn)業(yè)生態(tài)與應(yīng)用場景的系統(tǒng)化落地。
    的頭像 發(fā)表于 08-05 10:07 ?1077次閱讀

    亞馬遜云科技在2025紐約峰會發(fā)布多項AI agent創(chuàng)新

    七大核心服務(wù),幫助企業(yè)大規(guī)模、安全部署與運行AI agents 亞馬遜云科技Marketplace新增多項產(chǎn)品,助力企業(yè)發(fā)現(xiàn)、采購并部署領(lǐng)先的AI agents和工具 向亞馬遜云科技生成式AI創(chuàng)新中心
    的頭像 發(fā)表于 07-17 16:06 ?869次閱讀
    亞馬遜云科技在2025紐約峰會<b class='flag-5'>發(fā)布</b><b class='flag-5'>多項</b>AI agent創(chuàng)新

    匠芯創(chuàng)發(fā)布新版GUI開發(fā)工具 新增多國語言設(shè)置等功能

    。此次版本更新,為用戶帶來了諸多實用的新功能,進一步提升了設(shè)計體驗和開發(fā)效率。 在V1.3.0版本中,AiUIBuilder新增了 多國語言切換功能,支持設(shè)計界面顯示刻度尺,拖動控件與相鄰控件對齊停靠
    發(fā)表于 07-16 13:54

    u-blox發(fā)布首款車規(guī)級Wi-Fi 7模塊RUBY-W2

    基于高通技術(shù)公司Snapdragon汽車連接平臺先進Wi-Fi 7技術(shù),RUBY-W2支持更多并發(fā)用戶連接,以高吞吐量和低延遲實現(xiàn)車規(guī)級互聯(lián)體驗。
    的頭像 發(fā)表于 06-17 10:56 ?1934次閱讀

    光峰科技為2025款問界M9供應(yīng)智能激光投影巨幕系統(tǒng)2.0

    近日,鴻蒙智行2025款旗艦SUV問界M9正式發(fā)布,新增多項黑科技與升級版智駕體驗,打造50萬級銷冠巔峰之上的新氣象,僅上市兩小時,就實現(xiàn)了大定突破一萬輛。
    的頭像 發(fā)表于 03-24 17:49 ?1192次閱讀