From: NeilBrown Date: Sat, 4 Dec 2021 21:21:19 +0000 (+1100) Subject: updates X-Git-Url: https://ocean-lang.org/code/?p=ocean-D;a=commitdiff_plain;h=95060a31f56b05d2ac6dd87c9d102f76be1b8174;hp=bb468d738e5edf523e47206c7eafa0b293b736a6 updates --- diff --git a/00-TODO b/00-TODO index a973953..c4978a7 100644 --- a/00-TODO +++ b/00-TODO @@ -4,8 +4,12 @@ ### Current version (Cataract Creek) +- allow global names to be used before they are declared. Assume global + if undeclared, and complain in final analysis. + If used in 'use' and 'case', then make it a label +- avoid definition loops in global constants - allow type names to be used before declared. Need to re-evaluate all - type sizes after parse. + type sizes after parse. avoid loops - resolve the HACK of allowing assign from struct when name starts space. - '?' prefix operator returns Boolean, index operator for strings. Can be used to test for end-of-string @@ -18,6 +22,7 @@ - int nat cyc {i,n,c}{8,16,32,64} - maybe not cyc - it needs size. - ops: # & | ~ &~ - no shift: use (N * #shift) or (N / #shift) - op= +- make '.' modifier interpolate a deref if needed - 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 @@ -25,8 +30,6 @@ 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??