Skip to content

mlkit-4.4.1

Compare
Choose a tag to compare
@melsman melsman released this 30 Jan 10:19
· 273 commits to master since this release
e9ceb56

MLKit now generates 64bit assembler under both Linux and macOS for all combinations of GC, region-based memory management, and profiling. All tests are working, including the following targets:

  • make mlkit
  • make mlkit_libs
  • (cd test_dev; make test)
  • (cd test; make test_mlkit)
  • make bootstrap

There are a number of possibilities for improvements and features that are not currently included. In particular, the KAM backend, which is the basis for SMLserver, has not yet been ported.

Possibilities for improvements include:

  • Elimination of the gen->b pointer (use alignment properties instead).
  • Inlining of allocation in regions (for the common case).
  • Figure out how to assign certain C callee-save registers to variables that are live across C calls.
  • Many peep-hole optimisations seem possible.
  • Eliminate the need for dynamic stack alignment on 16-byte boundaries.
  • Test the preliminary support for generational garbage collection.
  • Use conditional move instructions instead of conditional jumps when possible.
  • Add Word64 and Word63 modules and friends. Whenever we have WordX, we should also have IntX. We should then also modify the default word type to be Word64.word if GC is disabled and Word63.word if GC is enabled. Immediate constants of size 64 and 63 should also be supported.