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