Skip to content

Commit 060edb3

Browse files
authored
Translate Ruby 3.3.0 preview2 released news post (zh_tw) (#3116)
1 parent 8d0e67a commit 060edb3

File tree

1 file changed

+187
-0
lines changed

1 file changed

+187
-0
lines changed
Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
---
2+
layout: news_post
3+
title: "Ruby 3.3.0-preview2 發布"
4+
author: "naruse"
5+
translator: "Bear Su"
6+
date: 2023-09-14 00:00:00 +0000
7+
lang: zh_tw
8+
---
9+
10+
{% assign release = site.data.releases | where: "version", "3.3.0-preview2" | first %}
11+
12+
我們很高興宣布 Ruby {{ release.version }} 發佈了。Ruby 3.3 新增了名為 RJIT,純 Ruby 開發的 JIT 編譯器,使用了 Lrama 做為 Parser 產生器,以及更多效能提升,尤其是 YJIT。
13+
14+
## RJIT
15+
16+
* 導入純 Ruby 開發的 JIT 編譯器 RJIT 並取代 MJIT。
17+
* RJIT 僅支援 x86\_64 架構的 Unix 平台。
18+
* 不同於 MJIT,RJIT 在執行時不需要 C 編譯器。
19+
* RJIT 目前還在實驗階段。
20+
* 您在生產環境應繼續使用 YJIT。
21+
* 如果您有興趣為 Ruby 開發 JIT,請參閱 [k0kubun's 在 RubyKaigi 第 3 天的演講](https://rubykaigi.org/2023/presentations/k0kubun.html#day3)
22+
23+
## 使用 Lrama 取代 Bison
24+
25+
* 使用 [Lrama LALR parser generator](https://github.com/yui-knk/lrama) [Feature #19637](https://bugs.ruby-lang.org/issues/19637) 取代 Bison。
26+
* 如果您感興趣,請參閱 [The future vision of Ruby Parser](https://rubykaigi.org/2023/presentations/spikeolaf.html)
27+
28+
## YJIT
29+
30+
* 自 3.2 主要效能提升
31+
* 改善 splat 和 rest arguments 的支援。
32+
* 虛擬機器分配了暫存器,用於堆疊操作。
33+
* 更多帶有可選參數的呼叫會被編譯。
34+
* 錯誤處理也會被編譯。
35+
* Megamorphic Object Shapes 的實體變數不再返回給直譯器。
36+
* 不支援的呼叫類型不再返回給直譯器。
37+
* 特別改善了 `Integer#!=``String#!=``Kernel#block_given?``Kernel#is_a?`
38+
`Kernel#instance_of?``Module#===`
39+
* 目前比 optcarrot 的直譯器快上 3 倍!
40+
* 已編譯的程式碼的 Metadata 使用更少的記憶體。
41+
* 在 ARM64 產生更緊湊的程式碼。
42+
* 選擇以暫停模式開啟 YJIT,然後再手動啟用
43+
* `--yjit-pause``RubyVM::YJIT.resume`
44+
* 這可用於僅在您的應用程式完成啟動後啟用 YJIT。
45+
* 發布版本現在提供透過 `--yjit-stats` 產生的 `ratio_in_yjit` 統計資訊,不再需要特殊的統計資訊或是開發版本。
46+
* Exit tracing 選項現在支援抽樣
47+
* `--trace-exits-sample-rate=N`
48+
* 更多測試與錯誤修復
49+
50+
51+
52+
## 其他值得注意的新功能
53+
54+
### 語言功能
55+
56+
57+
58+
## 效能提升
59+
60+
* `defined?(@ivar)` 透過 Object Shapes 提升效能。
61+
62+
## 自 3.2 以來其他值得注意的變更
63+
64+
### IRB
65+
66+
IRB 進行了數項改善,包括但不限於:
67+
68+
- 加強 `irb:rdbg` 整合以提供與 `pry-byebug` 相同的除錯體驗 ([文件](https://github.com/ruby/irb#debugging-with-irb))。
69+
- Pager 支援指令,例如 `ls``show_cmds`
70+
- `ls``show_source` 指令提供了更準確和有幫助的資訊。
71+
72+
此外,IRB 還進行了大量重構和修復了許多錯誤,以方便未來強化功能。
73+
74+
75+
## 相容性問題
76+
77+
注意:不包含功能問題的修正。
78+
79+
### 被移除的常數
80+
81+
下列廢棄的常數已被移除。
82+
83+
84+
85+
### 被移除的方法
86+
87+
下列廢棄的方法已被移除。
88+
89+
90+
91+
## Stdlib 相容性問題
92+
93+
### `ext/readline` 已被淘汰
94+
95+
* 我們使用純 Ruby 實作並相容於 `ext/readline` API 的 `reline`。未來我們將依賴 `reline`。如果您需要使用 `ext/readline`,您可以使用 `gem install readline-ext` 透過 rubygems.org 安裝 `ext/readline`
96+
* 我們將不再需要安裝函式庫例如 `libreadline``libedit`
97+
98+
99+
## C API 更新
100+
101+
### 更新的 C APIs
102+
103+
下列的 APIs 已被更新。
104+
105+
106+
107+
### 被移除的 C APIs
108+
109+
下列廢棄的 APIs 已被移除。
110+
111+
112+
113+
## 標準函式庫更新
114+
115+
如果使用者 require 的 gem 已排定在未來 Ruby 版本中變更為 bundled gems,RubyGems 和 Bundler 將會顯示警告。
116+
117+
更新了以下的預設 gem。
118+
119+
* RubyGems 3.5.0.dev
120+
* bigdecimal 3.1.4
121+
* bundler 2.5.0.dev
122+
* csv 3.2.8
123+
* erb 4.0.3
124+
* fiddle 1.1.2
125+
* fileutils 1.7.1
126+
* irb 1.7.4
127+
* nkf 0.1.3
128+
* optparse 0.4.0.pre.1
129+
* psych 5.1.0
130+
* reline 0.3.8
131+
* stringio 3.0.9
132+
* strscan 3.0.7
133+
* syntax_suggest 1.1.0
134+
* time 0.2.2
135+
* timeout 0.4.0
136+
* uri 0.12.2
137+
* yarp 0.9.0
138+
139+
更新了以下的 bundled gem。
140+
141+
* minitest 5.19.0
142+
* test-unit 3.6.1
143+
* rexml 3.2.6
144+
* rss 0.3.0
145+
* net-imap 0.3.7
146+
* rbs 3.2.1
147+
* typeprof 0.21.8
148+
* debug 1.8.0
149+
150+
下列的預設 gem 現在是 bundled gems。
151+
152+
* racc 1.7.1
153+
154+
請參閱 GitHub 發布如 [Logger](https://github.com/ruby/logger/releases) 和變更紀錄來了解更多關於預設 gems 與 bundled gems 的資訊。
155+
156+
參見 [NEWS](https://github.com/ruby/ruby/blob/{{ release.tag }}/NEWS.md)
157+
[commit logs](https://github.com/ruby/ruby/compare/v3_2_0...{{ release.tag }}) 來了解更多。
158+
159+
自 Ruby 3.2.0 以來,計[{{ release.stats.files_changed }} 檔案變更,{{ release.stats.insertions }} 行新增(+),{{ release.stats.deletions }} 行刪減(-)](https://github.com/ruby/ruby/compare/v3_2_0...{{ release.tag }}#file_bucket)。
160+
161+
162+
## 下載
163+
164+
* <{{ release.url.gz }}>
165+
166+
SIZE: {{ release.size.gz }}
167+
SHA1: {{ release.sha1.gz }}
168+
SHA256: {{ release.sha256.gz }}
169+
SHA512: {{ release.sha512.gz }}
170+
171+
* <{{ release.url.xz }}>
172+
173+
SIZE: {{ release.size.xz }}
174+
SHA1: {{ release.sha1.xz }}
175+
SHA256: {{ release.sha256.xz }}
176+
SHA512: {{ release.sha512.xz }}
177+
178+
* <{{ release.url.zip }}>
179+
180+
SIZE: {{ release.size.zip }}
181+
SHA1: {{ release.sha1.zip }}
182+
SHA256: {{ release.sha256.zip }}
183+
SHA512: {{ release.sha512.zip }}
184+
185+
## Ruby 是什麼
186+
187+
Ruby 最初由 Matz(Yukihiro Matsumoto)於 1993 年開發的開源軟體。可以在許多平台上執行。使用者來自世界各地,特別活躍於網路開發領域。

0 commit comments

Comments
 (0)