GNU Guile 3.0 đã được phát hành

diễn ra giải phóng GNU Guile 3.0, triển khai miễn phí ngôn ngữ lập trình chức năng Kế hoạch, hỗ trợ khả năng nhúng mã vào các ứng dụng bằng các ngôn ngữ lập trình khác. Guile có thể được sử dụng làm ngôn ngữ để phát triển các phần mở rộng ứng dụng, xác định cấu hình hoặc phát triển các thành phần để kết nối các nguyên hàm khác nhau do ứng dụng cung cấp. Guile là ngôn ngữ phát triển phần mở rộng chính thức cho hệ điều hành GNU.

Trung tâm của Guile là một máy ảo hiệu quả thực thi một bộ hướng dẫn di động được tạo bởi trình biên dịch tối ưu hóa đặc biệt. Máy ảo Guile dễ dàng tích hợp với mã ứng dụng trong C và C++. Ngoài ngôn ngữ Đề án, hỗ trợ đặc tả được triển khai R5RS, R6RS и R7RS, dự án Guile đã phát triển trình biên dịch cho các ngôn ngữ khác, chẳng hạn như ECMAScript, Emacs Lisp và Lua (đang được phát triển). Gói này bao gồm một thư viện các mô-đun triển khai các chức năng dịch vụ tiêu chuẩn, chẳng hạn như làm việc với giao thức HTTP, phân tích cú pháp XML và sử dụng các phương pháp lập trình hướng đối tượng.

Một cải tiến quan trọng trong GNU Guile 3.0 là sự ra đời của trình biên dịch JIT, ngoài trình biên dịch mã byte và trình thông dịch được cung cấp trước đó, được thực thi trong một máy ảo đặc biệt gắn liền với ứng dụng dưới dạng thư viện. JIT cho phép bạn tạo mã máy một cách nhanh chóng và tăng tốc đáng kể việc thực thi các ứng dụng Guile (các thử nghiệm cho thấy tốc độ tăng lên tới 4 lần). Trình biên dịch JIT hỗ trợ các kiến ​​trúc x86-64, i686, ARMv7 và AArch64.

Một số cải tiến khác:

  • Hỗ trợ đặc tả ngôn ngữ Đề án mới R7RS và các mô-đun thư viện được xác định trong đó;
  • Máy ảo Guile cung cấp hỗ trợ cho mã byte cấp thấp hơn, cho phép tối ưu hóa nâng cao;
  • Hỗ trợ kết hợp các định nghĩa và biểu thức nội bộ (ví dụ: "(define _ (begin (foo) #f))");
  • Đề xuất triển khai thống nhất loại dữ liệu có cấu trúc (“bản ghi”);
  • Các nguyên tắc xử lý ngoại lệ (ném và bắt) đã được làm lại;
  • Các ràng buộc được xác định cho cú pháp mở rộng "else", "=>", "..." và "_";
  • Trong yêu cầu http, http-get và các quy trình khác liên quan đến ứng dụng khách web, khả năng tải xuống nội dung qua kênh liên lạc được mã hóa bằng TLS với xác minh chứng chỉ chính xác đã được thêm vào.

Nguồn: opennet.ru

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