Phát hành trình dịch ngôn ngữ lập trình Vala 0.54.0

Phiên bản mới của trình dịch ngôn ngữ lập trình Vala 0.54.0 đã được phát hành. Ngôn ngữ Vala là ngôn ngữ lập trình hướng đối tượng cung cấp cú pháp tương tự như C# hoặc Java. Mã Vala được dịch sang chương trình C, sau đó được biên dịch bởi trình biên dịch C tiêu chuẩn thành tệp nhị phân và được thực thi ở tốc độ của ứng dụng được biên dịch thành mã đối tượng của nền tảng đích. Có thể chạy chương trình ở chế độ tập lệnh. Ngôn ngữ này đang được phát triển dưới sự bảo trợ của dự án Gnome. Gobject (Hệ thống đối tượng Glib) được sử dụng làm mô hình đối tượng. Mã trình biên dịch được phân phối theo giấy phép LGPLv2.1.

Ngôn ngữ này hỗ trợ tính năng xem xét nội tâm, hàm lambda, giao diện, đại biểu và đóng, tín hiệu và vị trí, ngoại lệ, thuộc tính, loại không null, suy luận kiểu cho biến cục bộ (var). Việc quản lý bộ nhớ được thực hiện dựa trên việc đếm tham chiếu. Thư viện lập trình tổng quát libgee đã được phát triển cho ngôn ngữ này, cung cấp khả năng tạo bộ sưu tập cho các loại dữ liệu tùy chỉnh. Hỗ trợ việc liệt kê các phần tử bộ sưu tập bằng câu lệnh foreach. Việc lập trình các chương trình đồ họa được thực hiện bằng thư viện đồ họa GTK.

Bộ công cụ này đi kèm với một số lượng lớn liên kết với các thư viện bằng ngôn ngữ C. Trình dịch Vala cung cấp hỗ trợ cho ngôn ngữ Genie, ngôn ngữ này cung cấp các khả năng tương tự nhưng có cú pháp lấy cảm hứng từ ngôn ngữ lập trình Python. Các chương trình như ứng dụng email Geary, trình bao đồ họa Budgie, chương trình tổ chức tệp ảnh và video Shotwell và các chương trình khác được viết bằng ngôn ngữ Vala. Ngôn ngữ này được sử dụng tích cực trong quá trình phát triển bản phân phối Hệ điều hành cơ bản.

Những đổi mới chính:

  • Đã thêm hỗ trợ cho các đại biểu có số lượng tham số thay đổi;
  • Đã thêm cấu hình LIBC, đồng nghĩa với cấu hình POSIX;
  • Cải thiện việc tạo ở chế độ hồ sơ POSIX;
  • Đã thêm khả năng khai báo các biến có thể có giá trị null với suy luận kiểu (var?);
  • Đã thêm khả năng khai báo các lớp bị cấm kế thừa (đã niêm phong);
  • Đã thêm toán tử truy cập an toàn vào các trường lớp có thể rỗng (a.?b.?c);
  • Cho phép khởi tạo nội dung cấu trúc thành null (const Foo[] BARS = { { "bar", 42 }, null };);
  • Thao tác thay đổi kích thước() bị cấm đối với các mảng không đổi;
  • Đã thêm đầu ra cảnh báo khi cố gắng thực hiện lệnh gọi hàm tới void ((void)not_void_func(););
  • Đã xóa hạn chế đối với các loại phần tử GLib.Array;
  • Đã sửa lỗi kế thừa quyền sở hữu "unowned var" trong câu lệnh foreach();
  • Liên kết với webkit2gtk-4.0 đã được cập nhật lên phiên bản 2.33.3;
  • Liên kết với gstreamer đã được cập nhật lên phiên bản 1.19.0+ git master;
  • Liên kết với gtk4 đã được cập nhật lên phiên bản 4.5.0~e681fdd9;
  • Liên kết cho gtk+-3.0 đã được cập nhật lên phiên bản 3.24.29+f9fe28ce
  • Liên kết với gio-2.0,glib-2.0 đã được cập nhật lên phiên bản 2.69.0;
  • Đối với linux, các ràng buộc với SocketCAN đã được thêm vào;
  • Sửa các liên kết cho glib-2.0, gio-2.0, gstreamer-rtp-1.0, javascriptcoregtk-4.0, gobject-2.0, pango, linux, gsl, Rest-0.7, libusb, libusb-1.0, pixman-1, webkit2gtk-web- tiện ích mở rộng-4.0, x11, zlib, gnutls;
  • Đã xóa các ràng buộc gedit-2.20 và webkit-1.0;
  • Các ràng buộc được cập nhật dựa trên GIR;
  • Khả năng kiểm tra mã C được tạo đã được thêm vào hệ thống thử nghiệm;
  • Cải tiến girparser, girwriter, valadoc, libvaladoc/girimporter;
  • Các lỗi tích lũy và thiếu sót của các thành phần trình biên dịch khác nhau đã được sửa.

Nguồn: opennet.ru

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