Skip to content

Add some predefined descriptors, values, and a copying collector (adapted from the ABC interpreter)

The native run time system currently used for Clean is written in Assembly. The idea here is to take the run time system from the ABC interpreter, which is written in C, and cross-compile it to native code and Wasm, to avoid duplicating work.

The code mainly comes from:

There are outstanding issues with the interpreter RTS, with arrays:

  • Packed arrays ({32# 1,2,3}), with types INT32/REAL32 and descriptors _ARRAY_INT32_/_ARRAY_REAL32_, are not supported (abc-interpreter#89)
  • There may be bugs in the handling of arrays by the GC (abc-interpreter#130)

In this MR, garbage collection is added to the native RTS but not to Wasm: !17 (comment 2448414249)

Edited by Camil Staps

Merge request reports

Loading