- Arrays
- Structs
- Enums
- Pointers
- else if
- for
- switch
- Global variables
- Implemented signed and unsigned types
- Strings
- Size directive
- [-] Modules
- Libraries
- Debug information
- Operator precedence / parenthesis expressions
- Implement directives (importing modules, libraries, etc.)
- Fusion parser and IR and create a true IR
- defer
- create language native complex types
- Unions
- Fix char and string literals lexing
- Expression vs statement, block vs compound statement
- Function body is compound statement
- Amplify function calling
- Provide sense of scope
- Symbol types are values
- Array-based parser (bunch of nodes in dynamic arrays, indices as pointer to node). Profile gains
- rework reallocation. If there is enough space ahead of the allocated space, just modify block metadata (amplify allocation boundaries) and don't copy already existent data
- when doing standard library, redesign memcpy/memcmp so they are all safe and check size on BOTH ends