KonLang English

Trạng thái và lộ trình

Kon đang được xây dựng và chưa phát hành. Chưa có gì ở đây là cam kết ổn định.

Ngôn ngữ

PhầnTrạng tháiGhi chú
Số nguyên, số thực, boolĐã chạy
Struct, method, enum, matchĐã chạy
Option, Result, tryĐã chạy
List, mảng cố định, String, str, BoxĐã chạyCó kiểm tra biên và ranh giới UTF-8
view, edit, take, có kiểm tra lỗiĐã chạyLỗi chỉ đúng dòng
const, module, defer, let chỉ gán một lầnĐã chạy
Mạng: TCP, UDP, server theo dòngĐã chạyTrong std/net. Chưa có HTTP hay TLS
Dự án với phụ thuộc trên máyĐã chạykon new, kon add. Chưa có kho gói
Hàm và struct generic, ràng buộc interfaceĐã chạyVẫn đang mở rộng
Gọi CMột phầnSố và giá trị đơn giản đã chạy; truyền con trỏ chưa được xác nhận
Dùng String và str thay nhauChưa cóHiện phải viết tay
Enum chứa List của chính nóChưa cóTạm thay bằng chỉ số
ClosureChưa có
Nội suy chuỗiChưa cóCó trong spec, chưa có trong compiler
ThreadChưa cóChờ closure và interface
Build thư viện dùng chungChưa có

Nền tảng

PhầnTrạng tháiGhi chú
Windows x64Đã chạykon.exe một file
LinuxMột phầnPhần C của thư viện đã chạy trên Linux; compiler chưa được kiểm tra ở đây, và chưa có kon một file
macOSChưa có
Android, iOSChưa cóChưa có target
WebAssemblyChưa cóCân nhắc sau khi có backend riêng

Self-hosting

Compiler được dự định viết bằng chính ngôn ngữ nó biên dịch. Hiện mới được một phần, nên vẫn cần một compiler cũ hơn để build. Tính đến ngày 31 tháng 10 năm 2026:

  • 24 trên 63 file mã nguồn compiler đã chạy qua pipeline mới. Một số file trong đó là bản song song, chưa thay thế bản gốc.
  • Bộ conformance đạt 237 trên 280 trường hợp.
  • Dòng lệnh, frontend, phần lớn backend và bộ kiểm tra ownership vẫn cần compiler cũ đó để build.

Bằng chứng an toàn

Bộ kiểm tra từ chối đúng các chương trình sai đã được thử, và ở lần kiểm tra đầy đủ gần nhất 58 fixture ownership và 76 fixture native đều qua. Một fuzzer đã so 1.133 chương trình tự sinh với C và không thấy kết quả sai, trên một số dạng ngôn ngữ giới hạn. Đây không phải chứng minh. Chưa có đợt tấn công độc lập nào, nên việc code an toàn không thể làm hỏng bộ nhớ vẫn là mục tiêu thiết kế cho đến khi có.

Nguyên tắc

Khi các mục tiêu xung đột, mục tiêu cao hơn thắng:

  1. An toàn. Code không có unsafe không thể làm hỏng bộ nhớ. Lời hứa về an toàn không được nới lỏng sau này.
  2. Dễ đọc. Người có kiến thức lập trình cơ bản đọc code là thấy ai giữ dữ liệu, không cần học lifetime.
  3. Hiệu năng. Bản release chạy ngang C. Vượt hơn thì nhờ compiler hoặc unsafe rõ ràng.
  4. Nhẹ. Chương trình nhỏ, không garbage collector, không runtime nặng.
  5. Tính năng. Chỉ thêm tính năng khi không phá vỡ các điều trên.

Kèm theo là hai quy tắc cứng: tính năng mới không được làm chậm code cũ, và tính năng làm code khó đọc hơn phải chứng minh được lý do tồn tại.

Lộ trình

  1. Hoàn thiện phần cơ bản và self-hosting, để compiler tự build được chính nó.
  2. Hoàn thiện closure, kiểu đệ quy, con trỏ qua C và thread.
  3. Backend riêng của Kon cho bản debug nhanh, rồi đến WebAssembly.
  4. kon một file cho Linux, rồi macOS.
  5. Một đợt tấn công toàn diện vào compiler và chương trình nó tạo ra, gồm cả người kiểm thử không viết bộ kiểm tra.
  6. Bản phát hành đầu tiên, rồi mở rộng sang ứng dụng và công cụ.

Thứ tự có thể thay đổi, và chưa mục nào có ngày cụ thể.

Tài liệu