Skip to content

Latest commit

 

History

History
45 lines (44 loc) · 1.4 KB

TODO.md

File metadata and controls

45 lines (44 loc) · 1.4 KB

TODO

  • Easy
    • Type checking on function calls
    • Logical operators ( and / or / not )
    • Bitwise ( and / or )
    • Bitshift
    • Modulo / multiplication / division
    • Exponentiation
    • Unary negation
    • Grouping
    • Functions not checking return type FIXME!
    • Numerical hinting
    • Explicit numerical type conversions
    • Explicit return
    • Break/contiue for loops
    • Other loop types?
    • Import functions from external
    • Inline export syntax
    • Export memory
    • Add reserved names list to variable declaration
    • Add global variables
    • Fix block scopes outside of functions
    • Read tuple values back!
    • Tuple destructuring assignment
    • Add type casting inference
    • Allow assigning sized array to unsized array variable
    • Optimise const lookups into sized arrays
  • Hard
    • Array types
    • Structs
    • Tuples
    • Escape analysis
    • Object scalerisation ( convert non escaping object to numnerous local variables to avoid alloc )
    • Enums
    • Generics
    • Pointers
    • Basic type inference
    • Strings
    • Full inference prepass
    • Temporary memory allocation
    • Module system
    • Heap memory allocation
    • Only insert malloc and memory export IF alloc is used
    • Namespace objects ( useful for module system, static class methods, enums and foreign functions imports )