Tập 71: Bootstrap truth baseline

Một compiler thực thụ không thể sống mãi bằng giàn giáo. Nó phải tự hiểu, tự biên dịch và tự bảo vệ mình trước những biến đổi của ngữ nghĩa.

Chương này đưa chúng ta chạm tới ranh giới hiện tại của dự án DUY — vùng biên của Phase S (Native Compiler Stabilization) và Phase T (Surface Language Features) từ Sprint 125 đến 145. Nếu các chương trước là những trang hồi ký của người đã đi qua trận đánh, thì Chương 8 là nhật ký chiến dịch được viết ngay trên yên ngựa.

Đây là lúc giàn giáo JavaScript bị đẩy lùi dần về vai trò tham chiếu đối chiếu (reference oracle). Mục tiêu tối thượng là native compiler viết bằng DUY phải tự chịu trách nhiệm hoàn toàn cho việc biên dịch: từ parser, checker, sinh IR, verifier cho đến codegen LLVM mà không cần đến Node.js hay C emitter ở runtime chính thức. Đồng thời, ngôn ngữ bắt đầu đạt được sức mạnh biểu đạt thật sự với methods, traits, attributes và generics đang dần hoàn thiện.



Khi bắt đầu Phase S (Sprint 125), tôi thấy trong đầu mình có rất nhiều mục tiêu đẹp đẽ: trình biên dịch chạy 100% độc lập, không còn phụ thuộc Node, không còn dùng C, chạy đa nền tảng hoàn hảo. Nhưng khi nhìn vào mã nguồn thực tế, tôi hiểu rằng nếu tuyên bố điều đó ngay lập tức, tôi đang tự lừa dối mình. Việc vẽ ra một viễn cảnh quá hoàn hảo trước khi có bằng chứng kỹ thuật thực chất là một sự lười biếng nguy hiểm.

Nhiệm vụ đầu tiên của Sprint 125 là dựng lên một support matrix máy-đọc được (machine-readable).

Bản đồ năng lực này ghi rõ từng caveat: - CLI nào vẫn đang chạy qua Node wrapper. - Stage nào trong bootstrap vẫn còn phải đối chiếu với JS oracle. - Backend LLVM hiện tại mới chỉ hỗ trợ structural subset, chưa thể gánh toàn bộ stdlib. - Target nào đang chạy thật, target nào mới chỉ là smoke test trên QEMU.

Chúng tôi cũng chốt lại corpus M7 gồm các fixtures accept, reject, diagnostics và IR. Mỗi fixture phải có một owner chịu trách nhiệm, có kết quả kỳ vọng rõ ràng và lý do tồn tại được ghi nhận.

Nghi lễ bootstrap-fixed-point từ nay được ghi kèm các cảnh báo chi tiết. Tôn trọng sự thật kỹ thuật dạy tôi rằng: compiler không lớn lên nhờ việc chúng ta vẽ ra một bức tranh hoàn hảo; nó lớn lên khi ta cắm mốc rõ ràng xem mình đang đứng ở độ cao nào, để không bước hụt chân vào vực sâu của sự tự ảo tưởng.


Bình luận (0)

Đang tải bình luận...