Phát hành Ruby 3.4.0 preview1
Đăng bởi naruse vào 16 May 2024
Chúng tôi vui mừng thông báo phát hành Ruby 3.4.0-preview1.
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 hoạt động như thể chúng bị đóng băng. Nếu chúng bị thay đổi, một cảnh báo deprecation sẽ được phát ra. 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_backtrace giờ đây chấp nhận mảng
Thread::Backtrace::Location.Kernel#raise,Thread#raisevàFiber#raisecũng chấp nhận định dạng mới này. [Feature #13557]
- Exception#set_backtrace giờ đây chấp nhận mảng
-
Range
- Range#size giờ đây ném TypeError nế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>'
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 đó, 3283 tập tin thay đổi, 107449 thêm vào(+), 115380 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-preview1.tar.gz
SIZE: 22507726 SHA1: 1619cbe06b5a8c774711b3351d18bb0f84f1d017 SHA256: 1a3c322e90cb22e5fba0b5d257bb2be9988affa3867eba7642ed981fdde895bb SHA512: 29c0e32179f7b823b6708f5328e495cd333fe8dd88f7df7d9051deab47add67b14d899bba565bba1a77e1b04c9693d9708541445c112925777bb6891cb7b2b62 -
https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.0-preview1.tar.xz
SIZE: 16709536 SHA1: 6041ad2651527d01c36106de3d3cdab680ed3132 SHA256: 4ee4ec44366050d4b2ee1d88034cc63e0b9174a1a6650285777f3d3447213a97 SHA512: 4ce306b9beb1e2d88c76d7f809724b66bed17e354c07a2b54aa050fc2035652e4d83deadc8dbf7a375bbdb1c816f2996334bb8e7ff5e6c24b71a858bf6b0cb7c -
https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.0-preview1.zip
SIZE: 27731060 SHA1: 5d79834050369ea9241d86467bf93e9e89e2ab7a SHA256: bd2a6c0e8396698e6f6768c00b0f155510859bb6fb92420f7b7abec610e71dbb SHA512: 36ea6897e6ad769141516f4c1bb18989fbde27a76f0f3abcce947f8b6b79639846ba93907e085181f7d305ab06ad73f1bbb37928049c8c951d33176ee444abbf
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