]> ocean-lang.org Git - ocean-D/blobdiff - 00-TODO
updates
[ocean-D] / 00-TODO
diff --git a/00-TODO b/00-TODO
index 02c22eeb824840fa46eb41451eccba7a93bd0fb7..07109022d2e0f211d313d8b316beede85e7c32db 100644 (file)
--- a/00-TODO
+++ b/00-TODO
@@ -1,15 +1,10 @@
 # This is a living document - delete things when done.  Avoid discussion.
 
-## Needs implementations
+## Needs implementation
 
 ### Current version (Cataract Creek)
 
-- 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
+- use AddressOf instead of AssignRef
 - revise all commentary
 - blog post
 - release
 - 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"
 - 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
 - '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)
@@ -197,6 +198,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