Phát hành Ruby 2.5.0
Đăng bởi naruse vào 25 Dec 2017
Chúng tôi vui mừng thông báo phát hành Ruby 2.5.0.
Ruby 2.5.0 là phiên bản ổn định đầu tiên của dòng Ruby 2.5. Phiên bản này giới thiệu nhiều tính năng mới và cải thiện hiệu suất. Các thay đổi đáng chú ý bao gồm:
Tính năng mới
rescue/else/ensurehiện được phép sử dụng trực tiếp với khốido/end. [Feature #12906]- Thêm
yield_selfđể yield block đã cho trong ngữ cảnh của nó. Khác vớitap, nó trả về kết quả của block. [Feature #6721] - Hỗ trợ đo lường độ phủ nhánh và độ phủ phương thức. Độ phủ nhánh cho biết nhánh nào được thực thi và nhánh nào không. Độ phủ phương thức cho biết phương thức nào được gọi và phương thức nào không. Bằng cách chạy bộ test với các tính năng mới này, bạn sẽ biết được nhánh và phương thức nào được thực thi, và đánh giá tổng độ phủ của bộ test một cách chặt chẽ hơn. [Feature #13901]
- Hash#slice [Feature #8499] và Hash#transform_keys [Feature #13583]
- Struct.new có thể tạo các lớp chấp nhận đối số từ khóa. [Feature #11925]
- Enumerable#any?, all?, none?, và one? chấp nhận đối số pattern. [Feature #11286]
- Tìm kiếm hằng số cấp cao nhất không còn khả dụng. [Feature #11547]
- Một trong những thư viện được yêu thích nhất, pp.rb, hiện được tải tự động.
Bạn không cần phải viết
require "pp"nữa. [Feature #14123] - In backtrace và thông báo lỗi theo thứ tự ngược (lời gọi cũ nhất trước, lời gọi gần nhất sau). Khi một backtrace dài xuất hiện trên terminal (TTY) của bạn, bạn có thể dễ dàng tìm dòng gây lỗi ở cuối backtrace. Lưu ý rằng thứ tự chỉ được đảo ngược khi backtrace được in trực tiếp ra terminal. [Feature #8661] [thử nghiệm]
Cải thiện hiệu suất
- Cải thiện hiệu suất khoảng 5-10% bằng cách loại bỏ tất cả lệnh
tracekhỏi toàn bộ bytecode (chuỗi lệnh). Lệnhtraceđược thêm để hỗ trợTracePoint. Tuy nhiên, trong hầu hết các trường hợp,TracePointkhông được sử dụng và lệnhtracelà chi phí thuần túy. Thay vào đó, bây giờ chúng tôi sử dụng kỹ thuật instrumentation động. Xem [Feature #14104] để biết thêm chi tiết. - Truyền block bằng tham số block (ví dụ
def foo(&b); bar(&b); end) nhanh hơn khoảng 3 lần so với Ruby 2.4 nhờ kỹ thuật “Lazy Proc allocation”. [Feature #14045] - Mutex được viết lại nhỏ hơn và nhanh hơn. [Feature #13517]
- ERB hiện tạo mã từ template nhanh gấp đôi so với Ruby 2.4.
- Cải thiện hiệu suất của một số phương thức tích hợp bao gồm
Array#concat,Enumerable#sort_by,String#concat,String#index,Time#+, và nhiều hơn nữa. - IO.copy_stream sử dụng copy_file_range(2) để giảm tải sao chép. [Feature #13867]
Các thay đổi đáng chú ý khác kể từ 2.4
- SecureRandom hiện ưu tiên nguồn do hệ điều hành cung cấp thay vì OpenSSL. [Bug #9569]
- Nâng cấp cmath, csv, date, dbm, etc, fcntl, fiddle, fileutils, gdbm, ipaddr, scanf, sdbm, stringio, strscan, webrick, zlib từ thư viện chuẩn thành gem mặc định.
- Cập nhật Onigmo lên 6.1.3.
- Nó thêm toán tử vắng mặt.
- Lưu ý rằng Ruby 2.4.1 cũng bao gồm thay đổi này.
- Cập nhật Psych lên 3.0.2.
- Cập nhật RubyGems lên 2.7.3.
- Cập nhật RDoc lên 6.0.1.
- Chuyển lexer từ dựa trên IRB sang Ripper. Điều này cải thiện đáng kể hiệu suất tạo tài liệu.
- Sửa một lượng lớn lỗi tồn tại hơn mười năm.
- Thêm hỗ trợ cú pháp Ruby mới từ các phiên bản gần đây.
- Cập nhật phiên bản Unicode được hỗ trợ lên 10.0.0.
Thread.report_on_exceptionhiện được đặt thành true theo mặc định. Thay đổi này giúp gỡ lỗi các chương trình đa luồng. [Feature #14143]- IO#write hiện nhận nhiều đối số. [Feature #9323]
Xem NEWS hoặc nhật ký thay đổi để biết chi tiết.
Với những thay đổi đó, 6158 tập tin thay đổi, 348484 dòng thêm(+), 82747 dòng xóa(-) kể từ Ruby 2.4.0!
Chúc Giáng sinh vui vẻ, Chúc mừng ngày lễ, và hãy tận hưởng lập trình với Ruby 2.5!
Tải về
-
https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.gz
SIZE: 15834941 bytes SHA1: 58f77301c891c1c4a08f301861c26b1ea46509f6 SHA256: 46e6f3630f1888eb653b15fa811d77b5b1df6fd7a3af436b343cfe4f4503f2ab SHA512: 0712fe68611f5d0cd6dd54b814f825478e64b6a62bdf67bce431f4dca2dc00b1a33f77bebfbcd0a151118a1152554ab457decde435b424aa1f004bc0aa40580d -
https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.zip
SIZE: 19495617 bytes SHA1: 700b6f55d689a5c8051c8c292b9e77a1b50bf96e SHA256: 94559ea6e3c619423da604e503ce1dc1c465d6e0747a07fbdc5f294acaf14c24 SHA512: e4324064cee8c65b80192e3eff287e915d2d40464d300744c36fb326ae4b1846911400a99d4332192d8a217009d3a5209b43eb5e8bc0b739035bef89cc493e84 -
https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.bz2
SIZE: 13955820 bytes SHA1: 827b9a3bcffa86d1fc9ed96d403cb9dc37731688 SHA256: d87eb3021f71d4f62e5a5329628ac9a6665902173296e551667edd94362325cc SHA512: 8f6fdf6708e7470f55bc009db2567cd8d4e633ad0678d83a015441ecf5b5d88bd7da8fb8533a42157ff83b74d00b6dc617d39bbb17fc2c6c12287a1d8eaa0f2c -
https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.0.tar.xz
SIZE: 11292472 bytes SHA1: 9c7babcf9e299be3f197d9091024ae458f1a1273 SHA256: 1da0afed833a0dab94075221a615c14487b05d0c407f991c8080d576d985b49b SHA512: 55714a33d7661fe8b432f73c34fd67b49699f8b79df1cbd680a74899124d31111ab0f444677672aac1ba725820182940d485efb2db0bf2bc96737c5d40c54578
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