X-Git-Url: https://ocean-lang.org/code/?p=ocean-D;a=blobdiff_plain;f=00-TODO;h=07109022d2e0f211d313d8b316beede85e7c32db;hp=18e8006d510a04f65ebbee1e3e0a7af8902b4a33;hb=4ce1db1a23db332cdb72a39def722c0392d5b884;hpb=7f5cd81bc506cf8007f83b5a36f32baaffbd0dfa diff --git a/00-TODO b/00-TODO index 18e8006..0710902 100644 --- a/00-TODO +++ b/00-TODO @@ -1,16 +1,10 @@ # This is a living document - delete things when done. Avoid discussion. -## Needs implementations +## Needs implementation ### 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 -- 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 +- use AddressOf instead of AssignRef - revise all commentary - blog post - release @@ -28,11 +22,14 @@ . array slices - references to arrays "foo: []bar" - array access to read bytes from strings. How to get length? "?string[4]" ?? array[] gets length?? +- remove all tests on type->functions +- use a type->function for performing function call - revise all commentary - blog post - release ### Subsequent version +- Maybe allow a reference to be passed to function where the by-value is expected - 'return' statement similar to 'use', but only valid a function context - 'return' can take no value when function has inline/transparent return value - simple methods. Define "func type.name...." and the name will only be visible @@ -55,6 +52,10 @@ - 'then' can extend a case section into some other. ## Needs Design +- review {} syntax issues - look at weird test cases +- do I need a 'rune' type? What are the elements of a string? + Are they small strings? Can I convert to codepoint by treating as number? + How much of this is in the utf8 library? Can a string literal be a number? - exactly where does auto enref/deref happen? .foo modifier does auto-deref (args) modifier does auto-deref (if that makes sense)