Gleam bỏ bước sinh source code Erlang để build nhanh hơn

Gleam vừa rút ngắn thời gian build nhờ bỏ hẳn bước sinh source code Erlang.
Trong bản Gleam v1.19.0, contributor Giacomo Cavalieri đã thay thế bộ sinh mã Erlang của ngôn ngữ này. Thay vì ghi ra các file text chứa source code Erlang, Gleam giờ đẩy thẳng định dạng nhị phân "Erlang abstract forms" vào luồng biên dịch của Erlang. Theo release note, cách này bỏ qua hoàn toàn bước tokenize và parse của Erlang.
Vì sao chuyện này lại quan trọng: Dự án build nhanh hơn thấy rõ, còn crash report giờ sẽ trỏ thẳng vào đúng dòng code Gleam của bạn thay vì đống mã Erlang được sinh ra. Gleam tăng tốc đáng kể mà không phải gánh thêm đống việc bảo trì nếu chọn compile thẳng ra BEAM bytecode.
Gleam chọn abstract forms thay vì BEAM bytecode thuần vì định dạng bytecode thường thay đổi qua các phiên bản máy ảo. Biên dịch ra abstract forms giúp Gleam vừa đạt tốc độ cao, vừa giữ công việc bảo trì compiler ở mức vừa sức với một dự án do cộng đồng đóng góp—đây cũng chính là chiến lược mà Elixir đang dùng.
Chưa kể, các maintainer từ giờ khỏi phải nghe ai gọi Gleam là một transpiler nữa.
Nguồn
- Gleam doesn't compile to Erlang source anymore — https://gleam.run/news/gleam-doesnt-compile-to-erlang-source-anymore/
- Hacker News Discussion — https://news.ycombinator.com/item?id=49975619

