Ruby 3.3.0-preview2 đã được phát hành
Đăng bởi naruse vào 14 Sep 2023
Chúng tôi vui mừng thông báo phiên bản Ruby 3.3.0-preview2 đã được phát hành. Ruby 3.3 bổ sung một trình biên dịch JIT thuần Ruby mới có tên RJIT, sử dụng Lrama làm trình tạo parser, và nhiều cải thiện hiệu suất đặc biệt là YJIT.
RJIT
- Giới thiệu trình biên dịch JIT thuần Ruby RJIT và thay thế MJIT.
- RJIT chỉ hỗ trợ kiến trúc x86_64 trên các nền tảng Unix.
- Không giống như MJIT, nó không yêu cầu trình biên dịch C tại thời điểm chạy.
- RJIT chỉ tồn tại cho mục đích thử nghiệm.
- Bạn nên tiếp tục sử dụng YJIT trong môi trường sản xuất.
- Nếu bạn quan tâm đến việc phát triển JIT cho Ruby, vui lòng xem bài thuyết trình của k0kubun vào Ngày 3 của RubyKaigi.
Sử dụng Lrama thay thế Bison
- Thay thế Bison bằng trình tạo parser LALR Lrama Feature #19637
- Nếu bạn quan tâm, vui lòng xem Tầm nhìn tương lai của Ruby Parser
YJIT
- Cải thiện hiệu suất lớn so với 3.2
- Hỗ trợ cho splat và rest arguments đã được cải thiện.
- Các thanh ghi được phân bổ cho các thao tác ngăn xếp của máy ảo.
- Nhiều lời gọi với tham số tùy chọn được biên dịch hơn.
- Các trình xử lý ngoại lệ cũng được biên dịch.
- Các biến instance không còn thoát ra trình thông dịch với Object Shapes đa hình.
- Các loại lời gọi không được hỗ trợ không còn thoát ra trình thông dịch.
Integer#!=,String#!=,Kernel#block_given?,Kernel#is_a?,Kernel#instance_of?,Module#===được tối ưu hóa đặc biệt.- Hiện nhanh hơn 3 lần so với trình thông dịch trên optcarrot!
- Metadata cho mã đã biên dịch sử dụng ít bộ nhớ hơn nhiều.
- Sinh mã nhỏ gọn hơn trên ARM64
- Tùy chọn khởi động YJIT ở chế độ tạm dừng và sau đó bật thủ công
--yjit-pausevàRubyVM::YJIT.resume- Điều này có thể được sử dụng để chỉ bật YJIT sau khi ứng dụng của bạn đã khởi động xong
- Thống kê
ratio_in_yjitđược tạo bởi--yjit-statshiện có sẵn trong các bản phát hành chính thức, không còn cần bản build stats hoặc dev đặc biệt. - Tùy chọn theo dõi exit hiện hỗ trợ lấy mẫu
--trace-exits-sample-rate=N
- Kiểm thử kỹ lưỡng hơn và nhiều bản sửa lỗi
Các tính năng mới đáng chú ý khác
Ngôn ngữ
Cải thiện hiệu suất
defined?(@ivar)được tối ưu hóa với Object Shapes.
Các thay đổi đáng chú ý khác kể từ 3.2
IRB
IRB đã nhận được nhiều cải tiến, bao gồm nhưng không giới hạn:
- Tích hợp
irb:rdbgnâng cao cung cấp trải nghiệm gỡ lỗi tương đương vớipry-byebug(tài liệu). - Hỗ trợ phân trang cho các lệnh như
lsvàshow_cmds. - Thông tin chính xác và hữu ích hơn được cung cấp bởi các lệnh
lsvàshow_source.
Ngoài ra, IRB cũng đã trải qua quá trình tái cấu trúc rộng rãi và nhận được hàng chục bản sửa lỗi để tạo điều kiện cho các cải tiến trong tương lai.
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.
Các hằng số đã bị loại bỏ
Các hằng số không còn được dùng sau đây đã bị loại bỏ.
Các phương thức đã bị loại bỏ
Các phương thức không còn được dùng sau đây đã bị loại bỏ.
Vấn đề tương thích thư viện chuẩn
ext/readline đã ngừng hoạt động
- Chúng tôi có
relinelà bản triển khai thuần Ruby tương thích với APIext/readline. Chúng tôi sẽ dựa vàorelinetrong tương lai. Nếu bạn cần sử dụngext/readline, bạn có thể cài đặtext/readlinethông qua rubygems.org vớigem install readline-ext. - Chúng tôi không còn cần cài đặt các thư viện như
libreadlinehaylibedit.
Cập nhật C API
Các C API đã được cập nhật
Các API sau đây đã được cập nhật.
Các C API đã bị loại bỏ
Các API không còn được dùng sau đây đã bị loại bỏ.
Cập nhật thư viện chuẩn
RubyGems và Bundler cảnh báo nếu người dùng require gem được lên kế hoạch trở thành bundled gem trong phiên bản Ruby tương lai.
Các default gem sau đây đã được cập nhật.
- RubyGems 3.5.0.dev
- bigdecimal 3.1.4
- bundler 2.5.0.dev
- csv 3.2.8
- erb 4.0.3
- fiddle 1.1.2
- fileutils 1.7.1
- irb 1.7.4
- nkf 0.1.3
- optparse 0.4.0.pre.1
- psych 5.1.0
- reline 0.3.8
- stringio 3.0.9
- strscan 3.0.7
- syntax_suggest 1.1.0
- time 0.2.2
- timeout 0.4.0
- uri 0.12.2
- yarp 0.9.0
Các bundled gem sau đây đã được cập nhật.
- minitest 5.19.0
- test-unit 3.6.1
- rexml 3.2.6
- rss 0.3.0
- net-imap 0.3.7
- rbs 3.2.1
- typeprof 0.21.8
- debug 1.8.0
Default gem sau đây hiện là bundled.
- racc 1.7.1
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 default gem hoặc bundled gem.
Xem NEWS hoặc nhật ký commit để biết thêm chi tiết.
Với những thay đổi đó, 4970 tệp đã thay đổi, 239635 thêm vào(+), 165275 xóa đi(-) kể từ Ruby 3.2.0!
Tải về
-
https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.tar.gz
SIZE: 21074209 SHA1: cf7329019235dc36b8e3f382a8b8b744922b1163 SHA256: 30ce8b0fe11b37b5ac088f5a5765744b935eac45bb89a9e381731533144f5991 SHA512: 1c5a13e519e8487fd40d932b96d14fa729521925c288e7841ab5eada628e506ceca2605bae36eea1aa505d9253383d53cd933b7a4bff96e6de5b1130c7c558e6 -
https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.tar.xz
SIZE: 15600992 SHA1: 606d6423137a24eef4f6b07d167596b63c7aaa17 SHA256: 62b1c4f586c70bf1cb58f2d909d0d824506315782e835f9dd3fcc0b659a70fc1 SHA512: 5ff609a66b7359006df0d87477cf70e6e26c5f40ced81b8254f8154f4fc82c77fed297471b55706c1a4466f2a4257999e933b2ed085f695ace265757ab9500a2 -
https://cache.ruby-lang.org/pub/ruby/3.3/ruby-3.3.0-preview2.zip
SIZE: 26095651 SHA1: 4441cd0db23d133e6e2f7dea28f931a68dac6ca5 SHA256: c9771d24c9b1eab532c04ed076087285601693e4d1c63f131fd078c47c5c0cea SHA512: bfeed21d011f891fe22510fe7242992c98f7fd2ce863d8be5740f56a34b726134cb3f5304e8b2dcd468fbc939648f10aae482eee15c1bf6c64b705484ed9e197
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