This is the second snapshot in the 5.x release series. The most
important change is that this version completes the previous change
of how "qualified" symbols are read. Keywords were still encoded with
a leading NUL byte, so if you tried to read or convert a string to a
symbol which started with a NUL byte, it would be interned and seen as
a keyword, even though it was a symbol.
This caused problems when printing non-qualified symbols that contained
NUL bytes. See https://bugs.call-cc.org/ticket/1576 for more
information. Changing this representation is backwards-incompatible,
which means that the git version of CHICKEN must now be built with a
CHICKEN that's from this snapshot or newer.
Related to this change is the fact that keywords (unlike "real" symbols)
no longer have a plist. If you try to access a keyword's plist, it will
raise a runtime error with condition types (exn type).
Another backwards-incompatible change is that we reverted the change of
how all "standard" continuations were allowed to accept multiple values
for #1390. This caused a lot of trouble due to assumptions made
throughout the compiler that standard continuations accept exactly one
value, found out in #1601. This basically restores the behaviour to
how it was in CHICKEN 4, so hopefully nobody has started to rely on
this behaviour that was new to CHICKEN 5.0.0.
An important bug fix is that the perm/* permission constants from the
(chicken file posix) module have been fixed; they were all defined as
the "usr" versions, even the "grp" and "oth" ones (#1602).