[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-users] CHICKEN 4.7.4 development snapshot available
From: |
Felix |
Subject: |
[Chicken-users] CHICKEN 4.7.4 development snapshot available |
Date: |
Sat, 11 Feb 2012 15:50:04 +0100 (CET) |
Hello!
A new development snapshot (4.7.4) of the core system is now available:
http://code.call-cc.org/dev-snapshots/2012/02/07/
Countless things have been fixed, cleaned up, tuned and extended. Give it a try!
A lot of people have participated in the recent improvements. Usually
I try to keep track of all contributors, but this time I'll be lazy
and just thank EVERYBODY heartily for the help!
What's new since 4.7.3:
- Security fixes
- improved hash table collision resistance and added randomization
to prevent malicious external causes of collisions. All SRFI-69
procedures accept extra arguments to control randomization for
testing/debugging.
- Build system
- the test-suite is now working on the mingw32 platform (with
a few tests disabled due to missing functionality)
- the version and branch of the sources are now properly compiled
into the core libraries and shown in the "csi" and "chicken"
version headers
- Runtime system
- deprecated "[+-]nan", "[+-]inf" and other notations "accidentally"
accepted by Chicken due to the underlying C library's strtod() function,
standardizing on "[+-]nan.0" and "[+-]inf.0" from R6RS (and soon R7RS),
when displaying numbers only these forms are generated now.
- signals are queued to some extent and the interrupt handling has
been cleaned up somewhat
- the interpreter handles SIGINT directly - loading the "posix" unit
is not needed anymore to handle this feature
- changed default nursery size slightly and fixed a bug that caused
incorrect (too small) nursery sizes on 64-bit platforms
- deprecated the compiler option "-heap-initial-size", "-heap-growth"
and "-heap-shrinkage"
- the assembly-language stub routine for the implementation of "apply"
was broken for Sparc64 systems - has been disabled for this platform
- Core libraries
- added a setter procedure to "signal-handler" ("posix" unit)
- EINTR is properly handled for input routines that may block
waiting for input
- the implementation of R5RS evaluation environments is now fully
standards compliant
- "file-exists?" and "directory-exists?" work now properly for files
> 2GB (EOVERFLOW handling in stat(3) system call)
- fixed bug in implementation of "fifo?"
- the procedure returned by "condition-predicate" accepts any type
of argument now
- blobs have a readable textual representation ("#{...}")
- "find-files" does not follow symlinks by default (as it did previously)
- also, the old non-keyword argument signature for "find-files" is not
supported anymore
- added "alist-update" ("data-structures" unit)
- "irregex-replace" returns the original string instead of #f when the
regex does not match
- added "change-directory*" ("posix" unit)
- number parsing has been made more reliable and standards compliant
- deprecated "none?", "always?" and "never?" ("data-structures" unit)
- "parameterize" does not invoke guard procedure when restoring a
parameter's value after execution of the body
- library procedures that take ports as arguments now all perform checks
on direction and open/closed state
- "mutate-procedure" has been renamed to "mutate-procedure!" - the old
name is still available but deprecated ("lolevel" unit)
- deprecated C_hash_string and C_hash_string_ci functions in the C API in
favor of the more secure versions C_u_i_string_hash, C_u_i_string_ci_hash
- a number of bugs in the irregex regular expression engine have been
fixed
- "with-input-from-file", "with-output-to-file", "with-input-from-pipe" and
"with-output-to-pipe" now properly restore the standard input/output
ports in case the body thunk escapes
- symbols with a single-char print-name where not always properly escaped
whrn printed readably
- Compiler
- fixed a bug in the compiler that could cause some variable bindings
to be optimized away in certain situations involving inlining
- added an experimental optimization called "clustering" (enable
with the compiler option of the same name)
- the optimizations done by the compiler are now listed inside a comment
in the generated C file
- the type-information obtained during flow-analysis ("scrutiny") is
now used for performing type-sensitive optimizations of calls to
most of the core-library procedures
- various improvements in the flow-analysis pass have been done and
countless bugs fixed
- deprecated the "constant" declaration specifier
- "unboxing" optimization has been completely removed - the implementation
was unreliable and unmaintainable; the "-unboxing" compiler option will
still be accepted but will produce a warning
- Peter Bex contributed an optimization to the analysis pass that
greatly reduces compile time for source code containing deeply nested
lexical bindings
- procedures that are known to have the value of a core library procedure
that is a "standard" or "extended binding" will be inlined
- Type system
- added new type-specifiers "input-port", "output-port", "(list-of T)"
and "(vector-of T)"
- the type-specifiers "(vector T ...)" and "(list T ...)" represent
fixed size lists and vectors now
- added qualified types ("forall"), optionally with type constrains
- added the "define-type" special form and type-abbreviations
- "-verbose" now shows scrutinizer-warnings and compiler notices
that are possibly non-critical (otherwise they are not listed)
- added "compiler-typecase", a compile-time typematching form
- Module system
- the "scheme" module has been integrated into the core library and
is not installed as a separate import library anymore
- added core module "r4rs" containing only bindings for R4RS identifiers
- added core module alias "r5rs" for "scheme" module
- added "module-environment" which returns an evaluation environment
for the bindings of a module
- Core tools
- "chicken-install"
- fixed handling of "-force" when a "chicken" dependency version did
not match
- added new option "-show-foreign-depends" which lists foreign egg
dependencies (if available)
- added new option "-show-depends" which lists egg dependencies
- Foreign function interface
- locatives are allowed as arguments declared "c-pointer"
cheers,
felix
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Chicken-users] CHICKEN 4.7.4 development snapshot available,
Felix <=