From 663106951366ce61ad4cbcfea43963acc861a320 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Mon, 16 Aug 2021 21:50:25 -0400 Subject: [PATCH] New release --- ...21-08-16-Released-Cyclone-Scheme-0.32.0.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 _posts/2021-08-16-Released-Cyclone-Scheme-0.32.0.md diff --git a/_posts/2021-08-16-Released-Cyclone-Scheme-0.32.0.md b/_posts/2021-08-16-Released-Cyclone-Scheme-0.32.0.md new file mode 100644 index 00000000..684e4950 --- /dev/null +++ b/_posts/2021-08-16-Released-Cyclone-Scheme-0.32.0.md @@ -0,0 +1,22 @@ +--- +layout: post +title: Released Cyclone Scheme 0.32.0 +excerpt: Added support for Alpine Linux and made several improvements to the garbage collector. +--- + +Features + +- Initiate major garbage collections faster after allocating a huge object (larger than 500K). This allows the system to reclaim the memory faster and keep overall memory usage low for certain workloads. +- Cyclone will no longer memoize pure functions by default. +- Added build option `CYC_PTHREAD_SET_STACK_SIZE` to allow Cyclone to specify a thread stack size rather than using the OS default. EG: + + make CYC_PTHREAD_SET_STACK_SIZE=1 libcyclone.a + +Bug Fixes + +- @nmeum fixed `(scheme repl)` to flush the output port prior to writing the prompt, guaranteeing the prompt is written at the correct time. +- Fixed `fxbit-set?` to properly handle negative values of `i`. +- Avoid unnecessary renaming of identifiers when the interpreter performs macro expansion. +- When allocating a large vector we now guarantee all vector elements are initialized before the major collector can trace those elements. This avoids the potential for a race condition which could lead to a segmentation fault. +- Ensure atomic objects are properly traced by the major garbage collector. +