phasm/TODO.md
Johan B.W. de Vries 46dbc90475 Implements ceil, floor, trunc, nearest
To round of the f32 / f64 wasm supported opcodes.

This also means we can remove the now outdated
WEBASSEMBLY_BUILTIN_FLOAT_OPS.
2025-04-06 16:38:57 +02:00

1.7 KiB

TODO

  • Decide between lineair types / uniqueness vs garbage collector

  • 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

  • test_bitwise_or_inv_type

  • test_bytes_index_out_of_bounds vs static trap(?)

  • test_num.py is probably best as part of the generator?

  • 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?
  • 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

  • Parser is putting stuff in ModuleDataBlock

    • Compiler should probably do that
  • ourlang.BinaryOp should probably always be a Type3ClassMethod

    • Remove U32_OPERATOR_MAP / U64_OPERATOR_MAP
  • Make prelude more an actual thing

  • Implemented Bounded: https://hackage.haskell.org/package/base-4.21.0.0/docs/Prelude.html#t:Bounded