]> ocean-lang.org Git - ocean-D/blob - 00-TODO
updates
[ocean-D] / 00-TODO
1 This is a living document - delete things when done.  Avoid discussion.
2
3 Current version (Cataract Creek)
4 - use precedence levels for expressions
5 - structs
6    - const fields
7    - anonymous field - array or struct (or pointer to these)
8       multiple anon struct ar allowed if they don't conflict
9    - [] can apply to anon array field
10    - anon struct field gets fields interpolated
11
12 - manifest values for arrays and structs [a,b,c]
13 - yet more operators
14      << >> #
15      bit-ops & | ~ &~
16      op=
17 - split values so I can have an array of just the value (1 byte for u8)
18 - integers, unsigned, bitfield, float
19 - pointers
20    - owned or borrowed
21    - pure, loaded, overloaded, augmented
22    - owned: once, counted, collected
23 - array slice
24 - array buffer - can be added to and grows.
25 - char, string search, regexp search
26
27 - allow "do stuff" as a stand-alone statement (scope)
28
29 Next version (Govetts Creek):
30 - functions and procedures
31 - Finalize what a "main" program looks like.
32
33 Much later
34 - per-field attributes
35     constant, stable, add-only, read-only, mutable, owned, borrowed, dependant, pure
36 - records
37 - enum
38 - classes
39    - constructors and destructors - or "after" ??
40    - vtables, fat pointers, list of approaches
41 - operators as interface methods
42 - interfaces, inheritance
43 - modules, imports and exports
44 - closures, threads, co-routines, generators
45 - introspection / reflection ?
46       e.g. support serialization
47       find function given a string holding the name
48       measure coverage, adjust based on performance metrics
49       auto-create mock objects
50       Is this just parsing the details in the obj file?
51 - % formatting
52 - string / slice / strbuf
53 - parsing library - sscanf equiv, regexp, LALR
54 - FFI
55 - GTK
56 - sockets / http / HTML
57 - parameterised types, and dependant types
58 - message passing primitives
59 - overloading for numbers
60 - exceptions ??
61 - ensure list_head type concept can work
62 - "union" type ??
63 - pattern matching for destructuring??
64 - casts??
65 - typeswitch?
66 - iso suffixes for number?
67 - foreach?
68 - case fall-through or go-to
69 - break/continue or "next","last"
70 - algebraic types