Skip to content

Latest commit

 

History

History
95 lines (95 loc) · 3.78 KB

TODO.md

File metadata and controls

95 lines (95 loc) · 3.78 KB
  • Fix Dickinson modules? lol
  • Take notes on phases, revisit Appel book

ABI support

  • Kempe ABI proper
  • Fortran?

Documentation

Examples

Backends

  • Linear scan register allocator
  • Graph (?) register allocator

Code

  • typed-process?

Performance

Data Structures

Bugs

  • Specific error for mismatched pattern wildcards
  • The current setup ignores extern imports -> no it doesn't
  • Exported functions w/ C ABI should be there (so it can link)
  • Throw error when return value in C ABI is too big
  • Constructors aren't monomorphized
    • Tries to monomorphize constructors that aren't exported
    • http://mlton.org/Monomorphise
    • Constructors that call constructors don't dispatch/monomorphize properly?
  • Correctly restore registers (C ABI)
  • Warn on >256 constructors
    • Error on >256 constructors?
  • Constructors not inlined; need type specializations when one calls a constructor on a constructor!
  • Save callee-save registers on C call
    • caller-save registers (popa?)
    • Something block-like that only saves registers that are actually used

Pipeline

  • Inliner (all non-recursive?)

Features

Builtins

Test Cases

  • Unit tests for type merge?
  • Unit tests for catTypes?
  • Test foreign calls (e.g. random)