Released Cyclone Scheme 0.28.0
April 8th, 2021
Features
-
Updated the compiler and runtime to allow a practically unlimited number of function arguments.
Although the calling conventions of our generated C code and runtime functions were changed, there is no impact to application developers. Existing code will continue to work without requiring modifications. This includes code using our FFI, though it may be necessary to update
define-cdefinitions if there are unused parameters in order to prevent warnings from the C compiler. For example by refactoring to use the new calling conventions:(define-c read-error "(void *data, object _, int argc, object *args)" " object port = args[1]; object filename = args[2]; object msg = args[3]; ...No changes are a required if
(cyclone foreign)is used to integrate with C. -
Provided alternative library names for each of the SRFI libraries. Generally these names follow the recommendations from R7RS Large - for example
(scheme list)as a friendlier alternative to(srfi 1). Where such a name does not exist we provide a name with the(cyclone)prefix:Library Name SRFI Number Description External Documentation scheme listsrfi 1List library Link cyclone and-let*srfi 2AND-LET*: anANDwith local bindings, a guardedLET*special formLink N/A srfi 8Binding to multiple values - Included as part of scheme base.Link cyclone threadssrfi 18Multithreading support Link cyclone randomsrfi 27Sources of random bits Link cyclone formatsrfi 28Basic format strings Link cyclone integer-bitssrfi 60Integers as bits Link scheme hash-tablesrfi 69Basic hash tables Link cyclone socketsrfi 106Basic socket interface Link scheme boxsrfi 111Boxes Link scheme setsrfi 113Sets and bags Link scheme list-queuesrfi 117Mutable queues Link scheme generatorsrfi 121Generators Link scheme comparatorsrfi 128Comparators Link scheme sortsrfi 132Sort libraries Link scheme vectorsrfi 133Vector library (R7RS-compatible) Link cyclone fixnumsrfi 143Fixnums Link -
We are modifying version numbers going forward to use explicit three digit semantic versioning
major.minor.bugfix.
Bug Fixes
- Arthur Maciel replaced high resolution code in the runtime to use
clock_gettimeinstead ofgettimeofday. - Fixed the REPL to no longer automatically exit if an expression evaluates to EOF. However, the REPL will exit as a special case if the EOF character is entered directly, for example via CTRL-D on Linux.
