Released Version 3.5.6
This incremental release allows a hash table to be defined directly using the syntax #hash(alist)
. For example, you may use #hash()
to create an empty table or #hash((a 1) (b . 2))
to create a table containing two elements. This syntax is not part of R5RS but seems less clumsy than the standard way, and a similar language feature is provided by Racket.
This release also fixes a bug where integer?
would always return false for negative rational numbers. For example, (integer? -2/2)
now correctly evaluates to #t
.
Finally, several important enhancements were made to the compiler:
- Hash tables are now fully supported by the compiler. This includes both parsing of hash table instances as well as the addition of special forms
hash-table-set!
andhash-table-delete!
. -
Enhanced the compiler to accept
load-ffi
as a special form, so a compiled version of a program does not have to wait for a module to be dynamically loaded. Instead, the module is included at compile time. This offers a nice speed improvement:$ time huski ffi-cputime.scm Seconds of CPU time spent: 2.756171 $ time ./ffi-cputime Seconds of CPU time spent: 2.4001e-2