From 7f5cd81bc506cf8007f83b5a36f32baaffbd0dfa Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Tue, 14 Dec 2021 09:38:58 +1100 Subject: [PATCH] updates --- 00-TODO | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/00-TODO b/00-TODO index 02c22ee..18e8006 100644 --- a/00-TODO +++ b/00-TODO @@ -4,12 +4,13 @@ ### Current version (Cataract Creek) +- track lvals when propagatign types, and ensure we have one when needed. - allow passing objects to functions by reference is requested -- '.' modifier to auto-add derefernce if needed - Assign/Decl to accept lvalue for assigning to reference - add [] as size-of-array - replace [foo::] declaration of array with [] - fix all main() calls - ensure all param passing and value return is handled correctly +- remove all UNTESTED - revise all commentary - blog post - release @@ -21,8 +22,7 @@ - enum, with multi-valued names. enum foo { yes, no, many(10) } bar:foo=.yes; if bar == .no... if ?bar.many: print bar.many, "items" Maybe .true and .false for Boolean -- change use/case labels in ".name" which creates a local enum if no - type is evident. +- change use/case labels to create a local enum if no type is evident. - set, with bool or int members. set foo { pinned, memalloc, priority(4) } bar:foo = .memalloc | .priority(2). if bar.pinned: bar.priority += 1 . array slices - references to arrays "foo: []bar" @@ -197,6 +197,16 @@ NO - pattern matching for destructuring?? NO- typeswitch? - ??? algebraic types +- code can appear in multiple forms: + - source code + - abstract syntax tree + - byte-code + - loadable machine code + - executable-only machine code + All but last can be loaded by 'ocean' and transformed into a later form, + or executed directly. byte-code and loadable machine code will likely + have ast content was well to describe types and provide template code. + ## Needed in library - augmented and overloaded pointers An augmented pointer can also store a flag- for a bitlock etc -- 2.43.0