Phát hành Ruby 3.4.0 preview2
Đăng bởi naruse vào 7 Oct 2024
Chúng tôi vui mừng thông báo phát hành Ruby 3.4.0-preview2.
Prism
Chuyển trình phân tích mặc định từ parse.y sang Prism. [Feature #20564]
Thay đổi ngôn ngữ
-
Các chuỗi ký tự trong các tập tin không có comment
frozen_string_literalgiờ đây phát ra cảnh báo deprecation khi chúng bị thay đổi. Các cảnh báo này có thể được bật với-W:deprecatedhoặc bằng cách đặtWarning[:deprecated] = true. Để tắt thay đổi này, bạn có thể chạy Ruby với tham số dòng lệnh--disable-frozen-string-literal. [Feature #20205] -
itđược thêm để tham chiếu đến tham số block. [Feature #18980] -
Giờ đây hỗ trợ keyword splatting
nilkhi gọi phương thức.**nilđược xử lý tương tự như**{}, không truyền keyword nào, và không gọi bất kỳ phương thức chuyển đổi nào. [Bug #20064] -
Không còn cho phép truyền block trong index. [Bug #19918]
-
Không còn cho phép keyword arguments trong index. [Bug #20218]
Cập nhật các lớp lõi
Lưu ý: Chúng tôi chỉ liệt kê các cập nhật lớp nổi bật.
-
Exception
Exception#set_backtracegiờ đây chấp nhận mảngThread::Backtrace::Location.Kernel#raise,Thread#raisevàFiber#raisecũng chấp nhận định dạng mới này. [Feature #13557]
-
Range
Range#sizegiờ đây némTypeErrornếu range không thể lặp. [Misc #18984]
Vấn đề tương thích
Lưu ý: Không bao gồm các bản sửa lỗi tính năng.
- Thông báo lỗi và hiển thị backtrace đã được thay đổi.
- Sử dụng dấu nháy đơn thay vì dấu backtick làm dấu mở ngoặc. [Feature #16495]
- Hiển thị tên lớp trước tên phương thức (chỉ khi lớp có tên cố định). [Feature #19117]
Kernel#caller, các phương thức củaThread::Backtrace::Location, v.v. cũng được thay đổi tương ứng.
Old: test.rb:1:in `foo': undefined method `time' for an instance of Integer from test.rb:2:in `<main>' New: test.rb:1:in 'Object#foo': undefined method 'time' for an instance of Integer from test.rb:2:in '<main>' - Hiển thị
Hash#inspectđã được thay đổi. [Bug #20433]- Các khóa Symbol được hiển thị bằng cú pháp khóa symbol hiện đại:
"{user: 1}" - Các khóa khác giờ đây có khoảng trắng xung quanh
=>:'{"user" => 1}', trong khi trước đó không có:'{"user"=>1}'
- Các khóa Symbol được hiển thị bằng cú pháp khóa symbol hiện đại:
Cập nhật C API
rb_newobjvàrb_newobj_of(và các macro tương ứngRB_NEWOBJ,RB_NEWOBJ_OF,NEWOBJ,NEWOBJ_OF) đã được loại bỏ. [Feature #20265]- Loại bỏ hàm deprecated
rb_gc_force_recycle. [Feature #18290]
Cải thiện triển khai
Array#eachđược viết lại bằng Ruby để có hiệu suất tốt hơn [Feature #20182].
Thay đổi khác
-
Truyền block cho một phương thức không sử dụng block đã truyền sẽ hiển thị cảnh báo ở chế độ verbose (
-w). [Feature #15554] -
Định nghĩa lại một số phương thức lõi được tối ưu hóa đặc biệt bởi trình thông dịch và JIT như
String.freezehoặcInteger#+giờ đây sẽ phát ra cảnh báo hiệu suất (-W:performancehoặcWarning[:performance] = true). [Feature #20429]
Xem các bản phát hành trên GitHub như Logger hoặc changelog để biết chi tiết về các gem mặc định hoặc gem đi kèm.
Xem NEWS hoặc nhật ký commit để biết thêm chi tiết.
Với những thay đổi đó, 4422 tập tin thay đổi, 163889 thêm vào(+), 243380 xóa đi(-) kể từ Ruby 3.3.0!
Tải về
-
https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.0-preview2.tar.gz
SIZE: 22722332 SHA1: c23265acf6c07b4c1df1e41eebf8b4cf2f25b97b SHA256: 443cd7ec54ade4786bc974ce9f5d49f172a60f8edc84b597b7fe2bd2a94b8371 SHA512: 0946d256587597bdf13437a50f7a3298c151133edea161a1c4806a04dcbd8c2e8a7fd617f3eda16c5c05f6e6346317562cc30ba67698f1fdd92237c03bdbd23e -
https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.0-preview2.tar.xz
SIZE: 16878876 SHA1: dbff404b969012702dc500cac72f4d6b3822068e SHA256: 626bf4fe952323c15ec9a8999f470ec136ef91c0fc34c484646aaaa9a0b62ca7 SHA512: f23257896a35d3a581cbf5e8c94fe28e45725e39608a7669f47f31085338b1b4929a4db40d826d8fee628afb97b0c25b2f9e7bda4cd42e80c1208c46caf54265 -
https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.0-preview2.zip
SIZE: 28101194 SHA1: 479bd223bca3225fb3a15984e3eae4efb9a40189 SHA256: e00a6fbf6f9e25a725711a8aac7e38be6bed61de4db9862a405172b96bf38b5b SHA512: 0d9ee1c41920e4d594b0f2c40d02339b4e9a2cd5232f5ee914cab5a685cb4a2279fbbfd8fbad40ef0a53866db4e1de96068c62580ede6d8fab02550393bcbe81
Ruby là gì
Ruby được phát triển lần đầu bởi Matz (Yukihiro Matsumoto) vào năm 1993, và hiện được phát triển dưới dạng Mã nguồn Mở. Nó chạy trên nhiều nền tảng và được sử dụng trên toàn thế giới, đặc biệt cho phát triển web.
Tin mới nhất
Phát hành Ruby 3.2.10
Ruby 3.2.10 đã được phát hành.
Đăng bởi hsbt vào 14 Jan 2026
Phát hành Ruby 4.0.1
Ruby 4.0.1 đã được phát hành.
Đăng bởi k0kubun vào 13 Jan 2026
Phát hành Ruby 4.0.0
Chúng tôi vui mừng thông báo phát hành Ruby 4.0.0. Ruby 4.0 giới thiệu “Ruby Box” và “ZJIT”, cùng nhiều cải tiến khác.
Đăng bởi naruse vào 25 Dec 2025
Diện mạo mới cho tài liệu Ruby
Tiếp theo việc thiết kế lại ruby-lang.org, chúng tôi có thêm tin vui để kỷ niệm 30 năm Ruby: docs.ruby-lang.org có diện mạo hoàn toàn...
Đăng bởi Stan Lo vào 23 Dec 2025