The Pancake compiler, i.e. a C-like compiler built from the lower parts of the CakeML compiler.
NEWS.md:
User-facing changes to the Pancake language and compiler are
documented here when they are merged into master.
crepLangScript.sml: Abstract syntax of Crepe language Crepe: instructions are similar to that of Pancake, but we flatten locals from struct-layout to word-layout
crep_arithScript.sml: Simplification of arithmetic in crepLang.
crep_inlineScript.sml: Function inlining pass in crepLang
crep_to_loopScript.sml: Compilation from crepLang to loopLang.
loopLangScript.sml: loopLang intermediate language
loop_callScript.sml: Call optimisation for loopLang
loop_liveScript.sml: Liveness analysis for loopLang.
loop_removeScript.sml: Loop removal pass for loopLang.
loop_to_wordScript.sml: Compilation from loopLang to wordLang.
panLangScript.sml: Abstract syntax for Pancake language. Pancake is an imperative language with instructions for conditionals, While loop, memory load and store, functions, and foreign function calls.
panStaticScript.sml: Static checking for Pancake.
pan_commonScript.sml: Common definitions for Pancake compiler
pan_globalsScript.sml: Allocate globals at the end of heap.
pan_passesScript.sml: Reformulates compile definition to expose the result of each internal compiler pass
pan_simpScript.sml: Simplification of panLang.
pan_to_crepScript.sml: Compilation from panLang to crepLang.
pan_to_targetScript.sml: Compiler from Pancake to machine code
pan_to_wordScript.sml: Compiler from pan to word
parser: The Pancake parser.
proofs: Proof files for compiling Pancake.
semantics: Semantics for Pancake and its intermediate languages.
static_checker: Support files for Pancake static checker.
temp: Temporary files