Erlang 29, một ngôn ngữ lập trình chức năng được thiết kế để phát triển các ứng dụng phân tán, chịu lỗi và hỗ trợ xử lý song song, thời gian thực, đã được phát hành. Ngôn ngữ này đã được sử dụng rộng rãi trong các lĩnh vực như viễn thông, ngân hàng, thương mại điện tử, điện thoại máy tính và nhắn tin tức thời. OTP 29 (Open Telecom Platform), một bộ thư viện và thành phần bổ trợ để phát triển các hệ thống phân tán trong Erlang, cũng được phát hành đồng thời.
Những đổi mới chính:
- Các dịch vụ shell và exec, cũng như hệ thống con SFTP, đều bị vô hiệu hóa theo mặc định trên máy chủ SSH. Việc thực thi mã Erlang bởi người dùng đã xác thực thông qua SSH hiện yêu cầu thay đổi cấu hình. Thuật toán trao đổi khóa lai mlkem768x25519-sha256 được bật theo mặc định trong SSH.
- Cấu hình mặc định của thư viện SSL đặt ưu tiên cao nhất cho thuật toán trao đổi khóa lai chống lượng tử "x25519mlkem768", là sự kết hợp giữa thuật toán X25519 ECDH và thuật toán ML-KEM (CRYSTALS-Kyber).
- Thuộc tính "-unsafe" đã được thêm vào để đánh dấu các hàm là không an toàn. Trong thư viện Erlang/OTP, các hàm như vậy được đánh dấu và trình biên dịch hiện đưa ra cảnh báo cho chúng. Khả năng theo dõi các lệnh gọi đến các hàm không an toàn và các hàm không có tài liệu thông qua tham chiếu chéo (xref) đã được thêm vào.
- Để đảm bảo hoạt động đúng đắn của các công cụ xây dựng của bên thứ ba như Rebar3, việc lọc các lệnh gọi bị bỏ qua (ignore_xref) hiện được thực hiện trực tiếp bên trong xref.
- Đã thêm mô-đun ct_doctest để tự động kiểm thử các ví dụ mã từ tài liệu.
- Đã thêm mô-đun io_ansi để tạo các ứng dụng dòng lệnh hỗ trợ thay thế các chuỗi ANSI (Chuỗi thiết bị đầu cuối ảo) vào thiết bị đầu cuối, ví dụ: để thay đổi kiểu và màu sắc của văn bản.
- Khi tìm kiếm đường dẫn tệp bằng mã (PATH), thư mục hiện tại ("."") đã được chuyển từ vị trí đầu tiên xuống vị trí cuối cùng trong danh sách và hiện được kiểm tra sau cùng.
- Đã ngừng tạo mã assembly 32-bit cho Windows.
- Một kiểu dữ liệu riêng biệt hoàn chỉnh dành cho bản ghi (bản ghi gốc, EEP-79) đã được triển khai, có thể được sử dụng thay cho các bản ghi truyền thống được xây dựng trên các bộ dữ liệu.
- Đã thêm bộ kiểm tra "is_integer/3" để kiểm tra xem các số nguyên có nằm trong một phạm vi nhất định hay không (ví dụ: "is_integer(I, 0, 100)").
- Đã triển khai các biểu thức tạo danh sách đa giá trị (EEP-78) trả về nhiều mục trong mỗi lần lặp (ví dụ: "[-I, I || I 42 || K
Nguồn: opennet.ru
