This MR adds dynamic memory allocation to the core language. We require this for RefinedRust, but RefinedC can just keep on not using it.
This is implemented in terms of a fairly canonical Alloc
expression and Free
statement, using the existing free_block
and alloc_new_block
definitions.