First to be more in line with how the literature treats these types. But also to make them workable with type classes.
42 lines
2.3 KiB
Markdown
42 lines
2.3 KiB
Markdown
# TODO
|
|
|
|
- Decide between lineair types / uniqueness vs garbage collector
|
|
- https://borretti.me/article/how-australs-linear-type-checker-works
|
|
|
|
- Rename constant to literal
|
|
|
|
- Implement a trace() builtin for debugging
|
|
- Check if we can use DataView in the Javascript examples, e.g. with setUint32
|
|
- Storing u8 in memory still claims 32 bits (since that's what you need in local variables). However, using load8_u / loadu_s we can optimize this.
|
|
- Implement a FizzBuzz example
|
|
- Also, check the codes for FIXME and TODO
|
|
- Allocation is done using pointers for members, is this desired?
|
|
- Functions don't seem to be a thing on typing level yet?
|
|
- static_array and tuple should probably not be PrimitiveType3, but instead subclass AppliedType3?
|
|
- See if we want to replace Fractional with Real, and add Rational, Irrationl, Algebraic, Transendental
|
|
- Does Subscript do what we want? It's a language feature rather a normal typed thing. How would you implement your own Subscript-able type?
|
|
- Have a set of rules or guidelines for the constraint comments, they're messy.
|
|
|
|
- Find pytest.mark.skip
|
|
- There's a weird resolve_as reference in calculate_alloc_size
|
|
- Either there should be more of them or less
|
|
- At first glance, looks like failure in the typing system
|
|
- Related to the FIXME in phasm_type3?
|
|
- Related: Parser is putting stuff in ModuleDataBlock
|
|
- WEBASSEMBLY_BUILTIN_BYTES_OPS is special cased
|
|
- Should be part of a prelude (?)
|
|
- In Haskell this is not a type class
|
|
- Casting is not implemented except u32 which is special cased
|
|
- Make prelude more an actual thing
|
|
- Merge in type3types.LOOKUP_TABLE
|
|
- Implemented Bounded: https://hackage.haskell.org/package/base-4.21.0.0/docs/Prelude.html#t:Bounded
|
|
- Try to implement the min and max functions using select
|
|
- Filter out methods that aren't used; other the other way around (easier?) only add __ methods when needed
|
|
- Move UnaryOp.operator into type class methods
|
|
- Move foldr into type class methods
|
|
- PrimitiveType is just the type, nothing primitive about it (change the name). u32 are still basic types or something.
|
|
- Clean up Subscript implementation - it's half implemented in the compiler. Makes more sense to move more parts to stdlib_types.
|
|
- Type constuctor should also be able to constuct placeholders - somehow.
|
|
- Make struct a type constructor?
|
|
- Add InternalPassAsPointer to Struct?
|