Released Version 3.12
Significant enhancements have been made to the huski REPL in this release:
- Allow using huski to run Scheme scripts from the shell, as specified by SRFI 22. The script needs to start with the line
#! /usr/bin/env huskior equivalent, and amainfunction may be defined to receive command line arguments. Theexamples/scriptsdirectory contains example programscat.scmandsum.scmthat demonstrate how this works in practice. - Add tab completion for Scheme variables and special forms. Tab completion will still fill in filenames when tab is pressed within double-quotes. This makes it easy to find a file in certain cases such as for a
load. - Accept (and ignore) inputs of just whitespace. Previously this would display a nasty error message.
This release also includes the following features:
- Added the
(scheme time)library from R7RS. - Added the
systemfunction to make system calls from a husk program. The syntax is(system "command"). An integer status code is returned with the same value that the executing program returned to the OS.
Bug fixes:
- Duplicate or otherwise invalid lambda parameters are not allowed, and will throw an error. For example:
(lambda (a a 1) a) - It is now a parse error to have a form that includes an empty car cell, for example:
'( . 1) - Ensure all of husk’s exports are included in the Haskell API documentation.