Updated README

This commit is contained in:
Mattia Giambirtone 2022-12-07 10:52:51 +01:00
parent f1875736e3
commit c4dc8dc3a2
1 changed files with 22 additions and 28 deletions

View File

@ -62,36 +62,32 @@ like an import system, exception handling, a package manager, etc.
### TODO List ### TODO List
In no particular order, here's a list of stuff that's done/to do (might be incomplete/out of date): In no particular order, here's a list of stuff that's done/to do (might be incomplete/out of date):
- User-defined types
Toolchain: - Function calls ✅
- Control flow (if-then-else, switch) ✅
- Tokenizer (with dynamic symbol table) ✅ - Looping (while) ✅
- Parser (with support for custom operators, even builtins) ✅ - Iteration (foreach)
- Compiler ✅ - Type conversions
- VM ✅ - Type casting
- Bytecode (de-)serializer ✅
- Static code debugger ✅
- Runtime debugger/inspection tool ✅
Type system:
- Custom types
- Intrinsics ✅ - Intrinsics ✅
- Type unions ✅ - Type unions ✅
- Generics ✅
- Functions ✅ - Functions ✅
- Closures ✅ - Closures
- Managed references
Misc: - Unmanaged references
- Named scopes/blocks ✅
- Inheritance
- Interfaces
- Indexing operator
- Generics ✅
- Automatic types ✅
- Iterators/Generators
- Coroutines
- Pragmas ✅ - Pragmas ✅
- Attribute resolution ✅ - Attribute resolution ✅
- UFCS (Universal Function Call Syntax) - Universal Function Call Syntax
- Import system (with namespaces and visibility control) ✅ - Import system ✅
- Exceptions
__Note__: Since peon isn't complete yet, the toolchain (lexer, parser, compiler and VM) may change, but since they
currently work and run, they're marked as "complete" even if technically speaking they aren't. They're functional, though
## Feature wishlist ## Feature wishlist
@ -103,8 +99,6 @@ have been implemented alredady):
- C/C++ backend - C/C++ backend
- Nim backend - Nim backend
- Structured concurrency (must-have!) - Structured concurrency (must-have!)
- Capability-based programming (i.e. functions are passed objects to act on the real world. This is just a maybe)
- Parametric Polymorphism ✅
- Simple OOP (with multiple dispatch!) - Simple OOP (with multiple dispatch!)
- RTTI, with methods that dispatch at runtime based on the true type of a value - RTTI, with methods that dispatch at runtime based on the true type of a value
- Limited compile-time evaluation (embed the Peon VM in the C/C++/Nim backend and use that to execute peon code at compile time) - Limited compile-time evaluation (embed the Peon VM in the C/C++/Nim backend and use that to execute peon code at compile time)