This is a living document - delete things when done. Avoid discussion.
-Current version (?? Creek)
- - handle free_type more cleanly??
- - rethink line-like parsing. Should element also start a line?
- - review simple/complex parsing options in various situations
-- spaces in numbers
-- # not comment?? - automatic if used as a mark.
-- can I move 'ok' into the parse context? Then error functions can set it.
-- allow something so I don't need to call config2context so often
- Some code stanza to be added to do_reduce()
+Current version (Cataract Creek)
+- handle free_type more cleanly??
+- change 'labels' to only be created for 'use'
+- handle syntax errors better - recover quickly.
+- use precedence levels for expressions
- structs
- const fields
- anonymous field - array or struct (or pointer to these)
- [] can apply to anon array field
- anon struct field gets fields interpolated
-- change 'labels' to only be created for 'use'
-- handle syntax errors better - recover quickly.
- manifest values for arrays and structs [a,b,c]
- yet more operators
<< >> #
- integers, unsigned, bitfield, float
- pointers
- owned or borrowed
- - overloaded or pure
+ - pure, loaded, overloaded, augmented
+ - owned: once, counted, collected
- array slice
- array buffer - can be added to and grows.
- char, string search, regexp search
-- allow "do stuff" as a stand-allow statement (scope)
-
-Next version:
+- allow "do stuff" as a stand-alone statement (scope)
+Next version (Govetts Creek):
+- functions and procedures
+- Finalize what a "main" program looks like.
Much later
-- functions and procedures
- per-field attributes
+ constant, stable, add-only, read-only, mutable, owned, borrowed, dependant, pure
- records
- enum
- classes
+ - constructors and destructors - or "after" ??
+ - vtables, fat pointers, list of approaches
- operators as interface methods
- interfaces, inheritance
- modules, imports and exports
-- closures, threads, co-routines
-- introspection?
+- closures, threads, co-routines, generators
+- introspection / reflection ?
+ e.g. support serialization
+ find function given a string holding the name
+ measure coverage, adjust based on performance metrics
+ auto-create mock objects
+ Is this just parsing the details in the obj file?
+- % formatting
+- string / slice / strbuf
+- parsing library - sscanf equiv, regexp, LALR
+- FFI
+- GTK
+- sockets / http / HTML
+- parameterised types, and dependant types
+- message passing primitives
+- overloading for numbers
+- exceptions ??
+- ensure list_head type concept can work
+- "union" type ??
+- pattern matching for destructuring??
+- casts??
+- typeswitch?
+- iso suffixes for number?
+- foreach?
+- case fall-through or go-to
+- break/continue or "next","last"
+- algebraic types