X-Git-Url: https://ocean-lang.org/code/?p=ocean-D;a=blobdiff_plain;f=00-TODO;h=a973953e12a8706bc8299e8e87cad186f1a17ecf;hp=56d26e39cb03bff4a43ccfb498fccc08b1a5c3f3;hb=bb468d738e5edf523e47206c7eafa0b293b736a6;hpb=eceb0a08424f3129775dfccc6de1a5f7f5b98d0a diff --git a/00-TODO b/00-TODO index 56d26e3..a973953 100644 --- a/00-TODO +++ b/00-TODO @@ -4,8 +4,6 @@ ### Current version (Cataract Creek) -- allow global names to be used before they are declared. Assume global - if undeclared, and complain in final analysis. - allow type names to be used before declared. Need to re-evaluate all type sizes after parse. - resolve the HACK of allowing assign from struct when name starts space. @@ -23,8 +21,12 @@ - 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. - set, with bool or int members. set foo { pinned, memalloc, priority(4) } bar:foo = .memalloc | .priority(2). if bar.pinned: bar.priority += 1 +- allow global names to be used before they are declared. Assume global + if undeclared, and complain in final analysis. . array slices - references to arrays - array access to read bytes from strings. How to get length? "?string[4]" ?? array[] gets length?? @@ -50,8 +52,12 @@ - const structures can inherit from another, and update select fields. - 'use' labels *must* appear in case statements. - 'then' can extend a case section into some other. - + ## Needs Design +- const arrays that are initialized incrementally throughout the code, + and post-processed at compile-time, e.g. to sort or derive LR tables. + Maybe even across modules. + Need a syntax - union types - how do I want to support these? inheritance with variance? - lambda - 'error' value for various types. NIL for pointer NaN for float, extra flag bit