Cyclone Scheme  0.20
Changelog

0.20 - TBD

Features

0.19 - August 3, 2020

Features

Bug Fixes

0.18 - June 8, 2020

With this release we proudly present Cyclone-Winds, the official package manager for Cyclone Scheme. Cyclone-Winds contains a growing list of packages and is an easy way to distribute programs and libraries built using Cyclone. Please join me in thanking Arthur Maciel for writing Cyclone-Winds and making this release possible!

The cyclone-winds binary is installed as part of our bootstrap installation. Alternatively it can be built and installed separately if you already have a copy of Cyclone installed, though version 0.18 or higher is required.

Please visit the Cyclone-Winds site for more information.

Features

Bug Fixes

0.17 - April 6, 2020

Bug Fixes

0.16 - March 11, 2020

Features

Bug Fixes

0.15 - February 26, 2020

Features

Bug Fixes

0.14 - February 11, 2020

Cyclone now automatically relocates any stack objects when performing a mutation. This prevents a whole range of race conditions that had previously been possible in multithreaded application code. And since this work is done by the Cyclone runtime no special code needs to be added to your applications.

Special thanks to Daniel Mendler, whose discussions were the inspiration for these changes.

Some background:

There was a long-standing issue where a mutation (via set-car!, vector-set!, set!, etc) could allow a global object on the heap to reference objects on a thread's local stack. This is problematic because threads periodically relocate objects from their stack, and for performance reasons these objects are moved without any coordination between threads. Thus it is critical that objects on the stack are only used by the thread that owns them.

In the past we provided functions such as make-shared that could be called from application code to guarantee safety. However, this approach is error-prone and asks too much of anyone using Cyclone for multithreaded development. The proper solution is for Cyclone to avoid this situation in the first place.

Other Features

0.12 - January 17, 2020

Features

Bug Fixes

0.11.8 - December 30, 2019

Features

Bug Fixes

0.11.7 - December 5, 2019

Bug Fixes

0.11.6 - December 2, 2019

Features

Bug Fixes

Internals

0.11.5 - October 30, 2019

Features

Bug Fixes

0.11.4 - September 27, 2019

Bug Fixes

0.11.3 - August 14, 2019

Features

Bug Fixes

0.11.2 - July 7, 2019

Features

Bug Fixes

0.11.1 - May 25, 2019

Features

Bug Fixes

0.11 - April 16, 2019

Features

Bug Fixes

0.10 - March 28, 2019

Features

Bug Fixes

0.9.10 - March 5, 2019

Features

0.9.9 - February 19, 2019

Bug Fixes

If z is a complex number, then (real? z) is true if and only if (zero? (imag-part z)) is true.

0.9.8 - February 16, 2019

Features

Bug Fixes

Internal Compiler Enhancements

0.9.7 - January 19, 2019

Features

Bug Fixes

0.9.6 - December 9, 2018

Bug Fixes

0.9.5 - November 28, 2018

Features

0.9.4 - November 25, 2018

Compiler Optimizations

Features

Bug Fixes

0.9.3 - October 1, 2018

Features

Bug Fixes

0.9.2 - August 26, 2018

Features

0.9.1 - August 9, 2018

Bug Fixes

0.9 - July 31, 2018

This release significantly improves garbage collection performance by using lazy sweeping.

0.8.1 - July 2, 2018

Features

Bug Fixes

0.8 - May 30, 2018

Features

0.7.3 - May 7, 2018

Features

Bug Fixes

0.7.2 - February 15, 2018

Features

Bug Fixes

0.7.1 - December 21, 2017

Features

Internal Changes

Bug Fixes

0.7 - November 17, 2017

Features

Bug Fixes

0.6.3 - September 16, 2017

Features

Bug Fixes

0.6.2 - August 25, 2017

Features

Bug Fixes

0.6.1 - August 22, 2017

Bug Fixes

0.6 - August 21, 2017

Features

Bug Fixes

0.5.4 - August 3, 2017

Features

Bug Fixes

0.5.3 - June 29, 2017

Features

0.5.2 - June 5, 2017

Bug Fixes

0.5.1 - May 24, 2017

The main focus of 0.5.1 is performance but this is also the first release to provide installation instructions for both Windows and Mac.

Features

Bug Fixes

0.5 - April 14, 2017

Features

Bug Fixes

0.4 - March 9, 2017

0.3.4 - February 10, 2017

Features

-A directory

Append directory to the list of directories that are searched in order to locate imported libraries.

-I directory

Prepend directory to the list of directories that are searched in order to locate imported libraries.

-CP cc-commands

Specify a custom command line for the C compiler to compile a program module. See Makefile.config for an example of how to construct such a command line.

-CE cc-commands

Specify a custom command line for the C compiler to compile an executable.

-CL cc-commands

Specify a custom command line for the C compiler to compile a library module.

Bug Fixes

0.3.3 - December 19, 2016

Features:

Bug Fixes

0.3.2 - November 22, 2016

Features:

Bug Fixes

0.3.1 - November 20, 2016

Features:

Bug Fixes

0.3 - October 22, 2016

Features:

Bug Fixes

0.2 - September 7, 2016

Features:

Bug Fixes: