diff --git a/Changelog.md b/Changelog.md index 2a3194e6a1c..74ff7be79b3 100644 --- a/Changelog.md +++ b/Changelog.md @@ -1,22 +1,24 @@ # Motoko compiler changelog +## 0.9.0 (2023-05-12) + * motoko (`moc`) * **For beta testing:** Add a new _incremental_ GC, enabled with new moc flag `--incremental-gc` (#3837). The incremental garbage collector is designed to scale for large program heap sizes. - The GC distributes its workload across multiple steps, called increments, that each pause the mutator - (user's program) for only a limited amount of time. As a result, the GC work can fit within the instruction-limited + The GC distributes its workload across multiple steps, called increments, that each pause the mutator + (user's program) for only a limited amount of time. As a result, the GC work can fit within the instruction-limited IC messages, regardless of the heap size and the object structures. - - According to GC benchmark measurements, the incremental GC is more efficient than the existing copying, compacting, + + According to GC benchmark measurements, the incremental GC is more efficient than the existing copying, compacting, and generational GC in the following regards: * Scalability: Able to use the full heap space, 3x more object allocations on average. * Shorter interruptions: The GC pause has a maximum limit that is up to 10x shorter. * Lower runtimes: The number of executed instructions is reduced by 10% on average (compared to the copying GC). * Less GC overhead: The amount of GC work in proportion to the user's program work drops by 10-16%. - - The GC incurs a moderate memory overhead: The allocated WASM memory has been measured to be 9% higher + + The GC incurs a moderate memory overhead: The allocated WASM memory has been measured to be 9% higher on average compared to the copying GC, which is the current default GC. To activate the incremental GC under `dfx`, the following command-line argument needs to be specified in `dfx.json`: @@ -29,6 +31,8 @@ ... ``` + * bugfix: `array.vals()` now returns a working iterator for mutable arrays (#3497, #3967). + ## 0.8.8 (2023-05-02) * motoko (`moc`)