Gleam v1.17.0 chính thức ra mắt: Đóng gói chương trình BEAM thành file đơn lẻ và nâng cấp trải nghiệm lập trình

Công nghệ02 tháng 6, 2026·4 phút đọc

Phiên bản Gleam v1.17.0 vừa được phát hành, mang đến tính năng `gleam export escript` giúp đóng gói ứng dụng thành một file duy nhất, cùng nhiều cải tiến đáng giá cho Language Server và tối ưu hóa hiệu suất khi biên dịch sang JavaScript.

Gleam v1.17.0 chính thức ra mắt: Đóng gói chương trình BEAM thành file đơn lẻ và nâng cấp trải nghiệm lập trình

Gleam v1.17.0 chính thức ra mắt: Đóng gói chương trình BEAM thành file đơn lẻ và nâng cấp trải nghiệm lập trình

Gleam, ngôn ngữ lập trình an toàn về kiểu dữ liệu (type-safe) và có khả năng mở rộng tốt cho máy ảo Erlang (BEAM) cũng như các môi trường chạy JavaScript, vừa phát hành phiên bản v1.17.0. Bản cập nhật này tập trung vào việc cải thiện quy trình phát triển, tối ưu hóa công cụ biên dịch và nâng cao trải nghiệm người dùng với nhiều tính năng mới hữu ích.

Đóng gói chương trình BEAM thành file đơn lẻ với Escripts

Trước đây, khi chạy trên máy ảo Erlang, mã Gleam được biên dịch thành một loạt các tệp .beam, mỗi tệp chứa bytecode cho một module. Điều này hoạt động tốt với các hệ thống quản lý gói hoặc container, nhưng lại khá bất tiện khi muốn chia sẻ các chương trình dòng lệnh (CLI) nhỏ gọn.

Để giải quyết vấn đề này, tương tự như cách "bundler" trong JavaScript gộp nhiều module thành một file, Gleam v1.17.0 giới thiệu lệnh gleam export escript. Lệnh này sẽ biên dịch dự án, xác minh hàm main hợp lệ và tạo ra một tệp escript duy nhất chứa bytecode đã biên dịch sẵn. File này có thể được sao chép và chạy trên bất kỳ máy tính nào đã cài đặt Erlang.

louis ~/src/my_project $ gleam export escript
Compiling gleam_stdlib
Compiling my_project
Compiled in 0.48s
Your escript has been generated to /home/louis/src/my_project/my_project.
louis ~/src/my_project $ ./my_project
Hello from my_project!

Cải thiện trải nghiệm trên Language Server

Gleam Language Server (LSP) nhận được nhiều nâng cấp quan trọng để hỗ trợ lập trình viên tốt hơn trong các trình soạn thảo mã:

  • Tô sáng tham chiếu (Highlight references): Tính năng textDocument/documentHighlight hiện đã được hỗ trợ, giúp tô sáng tất cả các vị trí sử dụng của một biến được chọn, giúp dễ dàng theo dõi luồng dữ liệu.
  • Gợi ý nhập khẩu (Import suggestions): Nếu bạn quên viết tên module khi gọi hàm (ví dụ viết println thay vì io.println), trình biên dịch giờ đây sẽ tự động tìm kiếm trong các module đã nhập và đưa ra gợi ý sửa lỗi chính xác.
  • Hiển thị kiểu dữ liệu thông minh: Các cảnh báo hiện sẽ hiển thị tên kiểu dữ liệu theo đúng cách bạn đã tham chiếu hoặc đặt bí danh (alias) trong mã, thay vì luôn hiển thị tên gốc chuẩn, giúp thông báo dễ hiểu hơn trong ngữ cảnh hiện tại.
  • Hover cho cập nhật bản ghi (Record update): Khi di chuột vào cú pháp cập nhật bản ghi, LSP sẽ hiển thị các trường chưa được thay đổi, giúp bạn tiết kiệm thời gian tra cứu định nghĩa.

Nâng cấp hiệu quả và tiện ích phát triển

Bản cập nhật này cũng mang lại những cải tiến tinh tế nhưng tác động lớn đến năng suất:

  • Hằng số Todo: Từ khóa todo giờ có thể được sử dụng trong các biểu thức hằng số. Điều này cho phép kiểm tra kiểu dữ liệu ngay cả khi mã chưa hoàn thiện, đồng thời kích hoạt tính năng "Fill labels" để tự động điền các trường còn thiếu.
  • Chế độ phát triển tĩnh (Quiet development): Lệnh gleam dev giờ đây chấp nhận cờ --no-print-progress, giúp ẩn các thông tin biên dịch không cần thiết và làm sạch đầu ra của terminal.
  • Kiểm tra phụ thuộc lỗi thời: Lệnh gleam deps outdated hiện hiển thị tổng số lượng gói có phiên bản mới, giúp lập trình viên nắm bắt nhanh tình trạng cập nhật của dự án.
  • Tối ưu hóa khớp mẫu (Pattern matching) cho JavaScript: Mã được tạo ra cho khớp mẫu khi biên dịch sang JavaScript đã được tối ưu hóa thêm, loại bỏ các kiểm tra dư thừa và làm gọn mã gán.

Cộng đồng mã nguồn mởCộng đồng mã nguồn mở

Sửa lỗi bảo mật và các hành động mã (Code Actions)

Đội ngũ phát triển đã khắc phục một số lỗ hổng cấu hình (CVE-2026-43965, CVE-2026-32685, CVE-2026-42795) được báo cáo bởi các nhà nghiên cứu bảo mật. Ngoài ra, Language Server còn bổ sung nhiều Code Action mới tự động hóa việc sửa lỗi, bao gồm:

  • Tự động tạo module chưa tồn tại.
  • Loại bỏ các bản ghi cập nhật dư thừa.
  • Sửa toán tử sai trong biểu thức guard (ví dụ dùng + cho chuỗi thay vì .).
  • Mở rộng mẫu bỏ sót (discard pattern) thành các trường hợp khớp mẫu cụ thể.

Gleam là một dự án mã nguồn mở không nhận vốn đầu tư mạo hiểm và phụ thuộc hoàn toàn vào sự hỗ trợ của cộng đồng. Phiên bản v1.17.0 là minh chứng cho sự nỗ lực không ngừng nghỉ của đội ngũ core và các đóng góp từ cộng đồng nhằm làm cho ngôn ngữ này trở nên mạnh mẽ và thân thiện hơn.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗