How to Undertake a Port

We recommend a highly incremental approach to implementing a port. The broad idea is:

  • Start with the NoGC plan and gradually move to more advanced collectors
  • Focus on simplicity and correctness.
  • Optimize the port later.

In MMTk’s language, a plan is essentially a configuration which specifies a GC algorithm. Plans can be selected at run time. Not all plans will be suitable for all runtimes. For example, a runtime that for some reason cannot support object movement won’t be able to use plans that use copying garbage collection.