cakeml icon indicating copy to clipboard operation
cakeml copied to clipboard

Unified compiler

Open sorear opened this issue 5 years ago • 0 comments

CakeML's intermediate representation semantics are parameterized by the size of pointers. This is a good thing, as it avoids an irrelevant multiplication of states, and the proof system can handle it easily.

CakeML's intermediate representation data structures are parameterized in the same way. While this may simplify some correspondence proofs, it's problematic for users:

  • There are two compilers, and you have to pick the correct one for your target platform.
  • x64-32 is itself confusing terminology and likely to be mistaken for a compiler that runs in long mode but uses 32-bit pointers.
  • The build artifacts are twice as big as they need to be and building them takes twice as long (well, 3/2 as long, because ag32 does not build the 64-bit compiler) as it needs to.

sorear avatar Sep 16 '20 21:09 sorear