Ruby 3.4.0 ra mắt
(ruby-lang.org)-
Giống như các năm trước, Ruby 3.4.0 đã được phát hành vào ngày 12/25.
-
Các cập nhật chính bao gồm thêm tham chiếu tham số khối
it, chuyển trình phân tích cú pháp mặc định sang Prism, thêm hỗ trợ Happy Eyeballs phiên bản 2 cho thư viện socket, cải thiện YJIT, bổ sung GC mô-đun, v.v. -
Tham chiếu tham số khối
it- Đã giới thiệu
it, cho phép tham chiếu biến tham số khối mà không cần tên biến. Nó hoạt động tương tự như_1và rất tiện dụng cho các block đơn giản.
- Đã giới thiệu
-
Chuyển đổi trình phân tích cú pháp mặc định sang Prism
- Bộ phân tích cú pháp mặc định đã chuyển từ
parse.ysang Prism. Với người dùng sẽ không có thay đổi đáng kể; nếu có vấn đề về tương thích, hãy báo cáo.
- Bộ phân tích cú pháp mặc định đã chuyển từ
-
Happy Eyeballs Version 2 cho thư viện socket
- Đã bổ sung hỗ trợ Happy Eyeballs Version 2 (RFC 8305) trong thư viện socket, cung cấp kết nối mạng hiệu quả và đáng tin cậy hơn phù hợp với môi trường internet hiện đại.
-
Cải thiện YJIT
- Có cải thiện hiệu năng trong hầu hết các benchmark, giảm mức sử dụng bộ nhớ, sửa nhiều lỗi và bổ sung các tính năng mới.
-
GC mô-đun
- Đã bổ sung tính năng GC mô-đun để có thể nạp động các triển khai thu gom rác (GC) thay thế. Cần có Rust toolchain.
-
Thay đổi ngôn ngữ
- Phát sinh cảnh báo khi literal chuỗi trong file không có comment
frozen_string_literalbị thay đổi. Bao gồm nhiều thay đổi khác như hỗ trợ keyword splatting**nil.
- Phát sinh cảnh báo khi literal chuỗi trong file không có comment
-
Cập nhật lớp lõi
- Bao gồm nhiều cập nhật lớp lõi khác, chẳng hạn cho phép
Exception#set_backtracenhận mảngThread::Backtrace::Location.
- Bao gồm nhiều cập nhật lớp lõi khác, chẳng hạn cho phép
-
Cập nhật thư viện chuẩn
- Cải thiện hiệu năng và bổ sung tính năng cho nhiều thư viện chuẩn như RubyGems, Bundler, JSON và Tempfile.
-
Các vấn đề tương thích
- Bao gồm các thay đổi liên quan đến tương thích như thay đổi cách hiển thị thông điệp lỗi và backtrace, thay đổi cách hiển thị
Hash#inspect.
- Bao gồm các thay đổi liên quan đến tương thích như thay đổi cách hiển thị thông điệp lỗi và backtrace, thay đổi cách hiển thị
-
Cập nhật C API
- Bao gồm các cập nhật C API như việc loại bỏ các hàm
rb_newobjvàrb_newobj_of.
- Bao gồm các cập nhật C API như việc loại bỏ các hàm
-
Thay đổi khác
- Bao gồm nhiều thay đổi khác, chẳng hạn như cảnh báo khi truyền một block không dùng tới cho một phương thức.
2 bình luận
Ý kiến Hacker News
Việc đổi mới bộ phân tích cú pháp của Ruby rất đáng mong đợi. Trước đây người ta dạy dùng
yacc, nhưng giờ Ruby đã bước vào nhóm ngôn ngữ có bộ parser viết tay.parse.y16k dòng bằngprism.c22k dòng là một bước đi khá táo bạo.Phiên bản Ruby 3.4.1 đã lỗi thời rồi.
Hiệu năng của Ruby, đặc biệt trong vài năm gần đây, đã cải thiện đáng kể. Kể từ bản 3.3 trở đi, tôi chạy mọi app với tùy chọn
--yjit, và thấy sự khác biệt rất rõ.Chiến lược của Shopify cũng giống với câu chuyện về YJIT: nếu không thể refactor service, họ sẵn sàng refactor Ruby.
Việc cải thiện hiệu năng ở mức JIT và GC là một điểm cộng rất đáng mừng.
Như truyền thống Giáng sinh mỗi năm, tôi rất mong chờ bản phát hành Ruby.
Mỗi năm cuối năm, tôi thường cập nhật các ứng dụng Rails, và gần đây việc cập nhật dễ dàng hơn nhờ nó ổn định hơn và hiệu năng tốt hơn.
Gửi lời chúc mừng và cảm ơn đội ngũ Ruby.
Sau thông tin về Rails 8 tôi muốn thử Ruby nhưng đã bỏ cuộc vì việc cài đặt quá khó.
html.erbtrong Rails bị hỏng hoàn toàn.Trên macOS có một script giúp cài đặt Rails rất dễ dàng. =>
https://rails.new/