RC RANDOM CHAOS

CHICKEN Scheme 6.0 Goes UTF-8 and R7RS, Breaking a Decade of Compatibility

· via Hacker News

Original source

Chicken Scheme 6.0

Hacker News →

The CHICKEN Scheme compiler, which translates the Lisp dialect to portable C, has shipped its 6.0 release with two structural changes that reshape how the language handles text and standards. Strings are now stored internally as UTF-8, giving CHICKEN full Unicode support at the core level rather than through bolt-on libraries. Alongside that, every module defined by the R7RS-small standard now ships in the core system, moving the implementation much closer to modern Scheme conformance and letting it drop its old compatibility aliases for a batch of SRFIs (0, 6, 9, 11, 23, 39, and 98) that R7RS now subsumes.

The upgrade is deliberately breaking. Process-spawning procedures return process objects instead of raw PIDs, so existing code must switch to record accessors to read exit status and I/O ports. Keywords are now a distinct type rather than a flavor of symbol, the old blob type is replaced by R7RS bytevectors with #u8(…) read syntax, and several I/O procedures such as read-u8vector and write-u8vector have moved into the (chicken io) module. File locking is now backed by flock(2) with a thread-safe implementation, and new binary-port constructors and a port-encoding query round out the text/binary handling.

For anyone maintaining CHICKEN code, this is a migration release rather than a drop-in update — the Unicode and R7RS shifts touch string handling, the module namespace, and process management all at once. A new configure-based build system with stronger platform checks signals a broader modernization of the toolchain. The payoff is a leaner, standards-aligned core that treats Unicode and binary data as first-class concerns instead of legacy afterthoughts.

Read the full article

Continue reading at Hacker News →

This is an AI-generated summary. Read the original for the full story.