o42a-0.1.8 Release Notes

Garbage Collector

This release contains a simple concurrent mark-and-sweep garbage collector.

The garbage collection thread is always running if there is a data to process. The delays however are minimal and may be caused only by concurrent locks when submitting a data block to garbage collector. Such a locks are extremely short-lived and can’t noticeably slow down the application.

Thread Safety

The internal representation (IR) of objects is thread safe now.

Each object has a mutex and condition. They are used to prevent races while initializing fields or evaluating object values. Only one thread at a time can perform one of such operations on the same object, the others will wait for the operation to complete and then will reuse it’s result.

Dependency Upgrade

LLVM version 3.1 is required now.