Phát hành SBCL 2.4.1, triển khai ngôn ngữ Common Lisp

Việc phát hành SBCL 2.4.1 (Steel Bank Common Lisp), một bản triển khai miễn phí của ngôn ngữ lập trình Common Lisp, đã được xuất bản. Mã dự án được viết bằng Common Lisp và C và được phân phối theo giấy phép BSD.

Trong bản phát hành mới:

  • Đã thêm hỗ trợ một phần cho các tiêu đề phiên bản nhỏ gọn vào trình thu gom rác song song bằng thuật toán vùng đánh dấu.
  • Đối với các hàm có kiểu trả về được khai báo, các chế độ tối ưu hóa AN TOÀN và DEBUG 3 lớn đảm bảo rằng việc kiểm tra kiểu được thực hiện trên các giá trị trả về.
  • Trên nền tảng FreeBSD, việc liên kết với libpthread được triển khai và tính năng ngẫu nhiên hóa không gian địa chỉ (ASLR) bị tắt.
  • Việc lắp ráp trên kiến ​​trúc riscv và ppc 64-bit đã được khôi phục.
  • Hỗ trợ Fastrem-32 đã được triển khai cho tất cả các nền tảng (để tính toán SÀN được tối ưu hóa).
  • Đã sửa lỗi khiến các dòng đã di chuyển bị xóa lại sau khi nén bộ nhớ bằng trình thu gom rác song song vùng đánh dấu.
  • Vấn đề với trình biên dịch lặp khi xử lý một số cấu trúc có kiểu SATISFIES đã được giải quyết.
  • Các bảng băm được sử dụng trong các phần khác nhau của hệ thống (gói, bảng Unicode) được chuyển đổi để sử dụng các hàm băm không có xung đột (hoàn hảo).
  • Macro TYPECASE cho hệ thống phân cấp cấu trúc lớp được triển khai bằng cách sử dụng hàm băm không xung đột.
  • Để tối ưu hóa hiệu suất, việc kiểm tra giới hạn đã bị loại bỏ đối với các chỉ mục có độ lệch không đổi, trong đó trình biên dịch biết rằng chỉ mục nhỏ hơn chênh lệch giữa kích thước và độ lệch.
  • Trình biên dịch sẽ tính đến dữ liệu tối ưu hóa DIGIT-CHAR bổ sung.
  • Trình biên dịch đã triển khai khả năng loại trừ các giá trị trung gian trong một số lệnh gọi APPLY, CONCATENATE và MAKE-ARRAY cho các đối số được xây dựng từ các chuỗi có sửa đổi nhược điểm mới.
  • Hoạt động của vòng lặp “(LOOP FOR X IN (REVERSE LIST) ...)” đã được tăng tốc, hiện sử dụng ít khuyết điểm hơn.
  • Vòng lặp "(LOOP... APPEND...)" nhỏ gọn hơn và hoạt động ít hơn khi thêm NIL.
  • Việc kiểm tra kiểu cho các mảng khác nhau đã được tăng tốc và rút ngắn.

Nguồn: opennet.ru

Thêm một lời nhận xét