Phát hành phiên bản thử nghiệm của trình dịch ngôn ngữ lập trình Vala 0.51.1

Phiên bản mới của trình dịch ngôn ngữ lập trình Vala 0.51.1 đã đượ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. Gobject (Hệ thống đối tượng Glib) được sử dụng làm mô hình đối tượng. Việc quản lý bộ nhớ được thực hiện dựa trên việc đếm tham chiếu.

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). 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 các liên kết tới các thư viện bằng ngôn ngữ C.

Các chương trình Vala được dịch sang dạng biểu diễn C và sau đó được biên dịch bởi trình biên dịch tiêu chuẩn C. Có thể chạy các chương trình ở chế độ tập lệnh. 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.

Ngôn ngữ Vala được phát triển dưới sự bảo trợ của dự án Gnome. Vala được sử dụng để viết các chương trình như ứng dụng email Geary, giao diện đồ họa Budgie, chương trình quản lý bộ sưu tập ảnh và video Shotwell và các chương trình khác. Vala được sử dụng tích cực trong việc phát triển các thành phần của Hệ điều hành cơ bản phân phối Linux.

Trong phiên bản mới:

  • Đã thêm hỗ trợ cho việc thu hẹp loại tự động trong biểu thức; if (x is Foo){ x.SomeFooField // không cần truyền rõ ràng "x" thành "Foo" }
  • Đã thêm hỗ trợ gọi chuỗi hàm tạo cho mẫu;
  • Đã thêm kiểm tra phiên bản libvala khi chạy;
  • Đã thêm hỗ trợ cho các lớp nhỏ gọn mờ đục;
  • Hỗ trợ mở rộng cho các tham số mảng trong hàm tạo;
  • Đã thêm xử lý các đại biểu ẩn danh không được hỗ trợ bởi các phương thức hoặc tín hiệu ảo vào girparser;
  • Đã sửa lỗi trong valadoc, libvaladoc và girwriter;
  • Đã thêm liên kết vào SDL 2.x, ngừng hỗ trợ liên kết SDL 1.x;
  • Đã thêm liên kết vào Enchant 2.x;
  • Đã sửa lỗi rò rỉ bộ nhớ khi sao chép rõ ràng các mảng, sử dụng Glib.Value hoặc di chuyển cấu trúc được phân bổ trên Heap vào ngăn xếp;
  • Liên kết với gdk-pixbuf-2.0 đã được cập nhật lên phiên bản 2.42.3;
  • Đã thêm liên kết của hàm getopt_long() và một số hàm GNU khác;
  • Đã thêm liên kết vào libunwind-generic;
  • Đã sửa lỗi liên kết cho cairo, gobject-2.0, pango, goocanvas-2.0,curs, alsa, bzlib, sqlite3, libgvc, posix, gstreamer-1.0, gdk-3.0, gdk-x11-3.0, gtk+-3.0, gtk4, Fuse, libxml -2.0;
  • Liên kết với gio-2.0 đã được cập nhật lên phiên bản 2.67.3;
  • Liên kết với gobject-2.0 đã được cập nhật lên phiên bản 2.68;
  • 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.1.0+2712f536;
  • Đã thêm các liên kết vào API biểu thức chính quy cho POSIX, GNU và BSD;
  • Liên kết với webkit2gtk-4.0 đã được cập nhật lên phiên bản 2.31.1;
  • Các lỗi tích lũy và thiếu sót của trình biên dịch đã được sửa.

Nguồn: opennet.ru

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