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ần | Trạng thái | Ghi 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ạy | Có kiểm tra biên và ranh giới UTF-8 |
| view, edit, take, có kiểm tra lỗi | Đã chạy | Lỗ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ạy | Trong std/net. Chưa có HTTP hay TLS |
| Dự án với phụ thuộc trên máy | Đã chạy | kon new, kon add. Chưa có kho gói |
| Hàm và struct generic, ràng buộc interface | Đã chạy | Vẫn đang mở rộng |
| Gọi C | Một phần | Số 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 nhau | Chư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ố |
| Closure | Chưa có | |
| Nội suy chuỗi | Chưa có | Có trong spec, chưa có trong compiler |
| Thread | Chưa có | Chờ closure và interface |
| Build thư viện dùng chung | Chưa có |
Nền tảng
| Phần | Trạng thái | Ghi chú |
|---|---|---|
| Windows x64 | Đã chạy | kon.exe một file |
| Linux | Một phần | Phầ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 |
| macOS | Chưa có | |
| Android, iOS | Chưa có | Chưa có target |
| WebAssembly | Chư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:
- An toàn. Code không có
unsafekhô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. - 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.
- Hiệu năng. Bản release chạy ngang C. Vượt hơn thì nhờ compiler hoặc
unsaferõ ràng. - Nhẹ. Chương trình nhỏ, không garbage collector, không runtime nặng.
- 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
- Hoàn thiện phần cơ bản và self-hosting, để compiler tự build được chính nó.
- Hoàn thiện closure, kiểu đệ quy, con trỏ qua C và thread.
- Backend riêng của Kon cho bản debug nhanh, rồi đến WebAssembly.
konmột file cho Linux, rồi macOS.- 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.
- 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
- Bắt đầu, Học ngôn ngữ và Tra cứu thư viện
- Danh sách mã lỗi và Hỏi đáp
- Repo mã nguồn hiện đang private. Kon dùng giấy phép MIT, và chương trình bạn build bằng Kon là của bạn.