Path to this page:
Subject: CVS commit: wip/hs-husk-scheme
From: Ryosuke Moro
Date: 2014-03-13 13:14:01
Message id: E1WO4Wh-0005P4-0p@sfs-ml-2.v29.ch3.sourceforge.com
Log Message:
Update to 3.16.1
ChangeLog:
v3.16.1
--------
- Allow import of a library in the same directory as a program. For example to \
import `lib.sld`:
(import (lib))
Bug Fixes:
- Husk no longer throws an error during expansion of a library macro that
references another macro which is not exported from the same library.
- Fixed a bug where a `syntax-rules` macro's literal identifier would not
match the input when both identifiers are equal and both have no
lexical binding.
v3.16
--------
- Improved import of libraries:
- Husk now detects cyclic dependencies and throws an error instead of going
into an infinite loop.
- Each library is only evaluated once during the import process.
- `begin` now has the ability to evaluate contained expressions and definitions
as if the enclosing `begin` were not present, per R7RS. For example:
huski> x
Getting an unbound variable: x
huski> (begin (define x 28) x)
28
huski> x
28
- Added the following R7RS I/O functions:
- `get-output-bytevector`
- `get-output-string`
- `open-input-bytevector`
- `open-input-string`
- `open-output-bytevector`
- `open-output-string`
- `read-string`
- `write-string`
- Added an `-i` command line option to `huski`. This option will start the
interactive REPL after a file specified on the command line is executed,
and has no effect if no file is specified.
Haskell API:
- The `Port` data type has been extended to include an optional in-memory buffer:
Port Handle (Maybe Knob)
These changes are isolated in husk, but if your code uses any `Port`
constructors, you would need to change them, EG: `Port _ Nothing`.
Files: