From 9331ae1a40bcb9fad84a88c59232a1ee5e53bcf9 Mon Sep 17 00:00:00 2001 From: Jeff Date: Fri, 29 Nov 2024 19:30:08 -0500 Subject: [PATCH] Add some README --- README.md | 59 +++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 46 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index cf76845..8f4f770 100644 --- a/README.md +++ b/README.md @@ -3,22 +3,55 @@ Dust is a high-level interpreted programming language with static types that focuses on ease of use, performance and correctness. -## Features +## Feature Progress +- [X] Lexer +- [X] Compiler +- [X] VM +- [ ] Formatter +- CLI + - [X] Run source + - [X] Compile to chunk and show disassembly + - [ ] Tokenize using the lexer and show token list + - [ ] Format using the formatter and display the output + - [ ] Compile to and run from intermediate formats + - [ ] JSON + - [ ] Postcard - Values - - [x] no `null` or `undefined` - - [x] boolean - - [x] byte - - [x] character - - [x] integer - - [x] float - - [x] function - - [x] list - - [x] range - - [x] string + - [X] No `null` or `undefined` + - [X] Booleans + - [X] Bytes + - [X] Characters + - [ ] Enums + - [X] Integers + - [X] Floats + - [X] Functions + - [X] Lists + - [ ] Maps + - [X] Ranges + - [X] Strings + - [ ] Structs + - [ ] Tuples + - [ ] Runtime-efficient abstract values for lists and maps - Types - - [x] basic types: `bool`, `byte`, `char`, `int`, `float`, functions, lists, ranges, `str` - - [O] generalized types: `num`, `any` + - [X] Basic types for each kind of value + - [X] Generalized types: `num`, `any` + - [ ] `struct` types + - [ ] `enum` types + - [ ] Type arguments + - [ ] Type Checking + - [ ] Function returns + - [X] If/Else branches + - [ ] Instruction arguments +- Variables + - [X] Immutable by default + - [X] Block scope + - [X] Statically typed +- Functions + - [X] First-class value + - [X] Statically typed arguments and returns + - [X] Pure (does not "inherit" local variables - only arguments) + - [ ] Type arguments ## Implementation