From c4dc8dc3a27a37b6272f30a368114145902fabf3 Mon Sep 17 00:00:00 2001 From: Mattia Giambirtone Date: Wed, 7 Dec 2022 10:52:51 +0100 Subject: [PATCH] Updated README --- README.md | 50 ++++++++++++++++++++++---------------------------- 1 file changed, 22 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index ba94678..d6f5397 100644 --- a/README.md +++ b/README.md @@ -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)