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 huski
or equivalent, and amain
function may be defined to receive command line arguments. Theexamples/scripts
directory contains example programscat.scm
andsum.scm
that 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
system
function 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.