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
In no particular order, here's a list of stuff that's done/to do (might be incomplete/out of date):
Toolchain:
- Tokenizer (with dynamic symbol table) ✅
- Parser (with support for custom operators, even builtins) ✅
- Compiler ✅
- VM ✅
- Bytecode (de-)serializer ✅
- Static code debugger ✅
- Runtime debugger/inspection tool ✅
Type system:
- Custom types
- User-defined types
- Function calls ✅
- Control flow (if-then-else, switch) ✅
- Looping (while) ✅
- Iteration (foreach)
- Type conversions
- Type casting
- Intrinsics ✅
- Type unions ✅
- Generics ✅
- Functions ✅
- Closures ✅
Misc:
- Closures
- Managed references
- Unmanaged references
- Named scopes/blocks ✅
- Inheritance
- Interfaces
- Indexing operator
- Generics ✅
- Automatic types ✅
- Iterators/Generators
- Coroutines
- Pragmas ✅
- Attribute resolution ✅
- UFCS (Universal Function Call Syntax)
- Import system (with namespaces and visibility control) ✅
__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
- Attribute resolution ✅
- Universal Function Call Syntax
- Import system ✅
- Exceptions
## Feature wishlist
@ -103,8 +99,6 @@ have been implemented alredady):
- C/C++ backend
- Nim backend
- 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!)
- 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)