pkgsrc-WIP-cvs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: wip/chicken
Module name: wip
Committed by: airhead
Date: Wed Sep 26 19:04:17 UTC 2012
Modified Files:
wip/chicken: Makefile PLIST distinfo
Log Message:
Update Chicken wip "development snapshot" package to stable release 4.8.0,
while pkgsrc is still in freeze.
Changes since 4.7.0.6:
- 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.
- Added checks for embedded '\0' characters in strings passed to some
C functions on a lower level than Chicken's FFI.
- Build system
- version information has been moved into a separate unit to make the
build-version shown in the banner and accessible through library
procedures more accurate, this also speeds up the build on version-
changes (thanks to Jim Ursetto for contributing this)
- the build was made more reliable with respect to cross-compilation
and custom installation names
- 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
- Compiler
- Fixed bug in handling of symbols in constant-definitions (thanks to Peter
Bex)
- Stricter check for value-part of constant definition (thanks to Kon Lovett)
- Fixed bug that caused argument-signatures of external definitions to be
incorrectly modified during optimization (thanks to Peter Bex)
- Failing constant-folding expressions now produce a compile-time warning
- Fixed various bugs in the internal type-database (thanks to Kon Lovett and
Peter Bex)
- added "-specialize" option and "specialize" declaration which enables
optimizations of uses of core library procedures based on type-
information gathered during flow analysis
- "-optimize-level 3" and higher now implies "-specialize"
- added option "-strict-types" and "-emit-type-file"
- progress-information is now only shown with "-debug p"; the "-verbose"
option only shows informational but noncritical messages
- added optimizations for some library procedures
- variable propagation for global variable accesses is now done in certain
situations
- the algorithmic complexity of the closure-conversion pass has been
reduced which speeds up compilation noticably for large files
- the alternative branch in a conditional is dropped when the condition
is known to be a non-boolean value (suggested by Joerg Wittenberger)
- implemented numerous fixes and improvements for flow analysis
- 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 as 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
- 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
- enhanced line number tracking to get better error messages from
the scrutinizer.
- hygiene bugs related to compiler-syntax were fixed.
- the local flow-analysis was sometimes reporting multiple warnings
for the same type-conflict.
- the time/space-complexity of some algorithms used in the compiler
were reduced resulting in much better compile-times especially
for large source files.
- Interpreter
- ",q" leaves the currently active REPL invocation instead of
terminating the process (as suggested by John Cowan)
- ",m" properly switches between modules (thanks to Christian Kellermann)
- Core libraries
- Cleaned up the set of available internal SRFI-feature-identifiers
- The printer now does a better job at escaping certain single-character
symbol names
- Unit "lolevel"
- deprecated "null-pointer" and "null-pointer?"
- Disabled "-setup-mode" when compiling extensions for deployment (thanks
to Ivan Raikov)
- Got rid of some warnings in the C runtime system that were triggered on
the SunPro C compiler (thanks to Joe Python)
- added "foldl" and "foldr" procedures, which are more efficient and
have a more consistent argument order than the corresponding
SRFI-1 procedures
- "shuffle" has been deprecated
- added "queue-length"
- "queue->list" allocates and returns a fresh list now
- invoking a parameter-procedure with an argument will return the new
value
- added new procedure "quit"
- "repl" accepts an optional evaluator procedure (suggested by John
Cowan)
- 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
- irregex "real" built-in utility pattern now accepts a leading sign
- added "change-directory*" ("posix" unit)
- number parsing has been made more reliable and standards compliant
- deprecated "none?", "always?" and "never?"
- library procedures that take ports as arguments now all perform checks
on port-direction and open/closed state
- "mutate-procedure" has been renamed to "mutate-procedure!" - the old
name is still available but deprecated
- 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; it has been updated to upstream release 0.8.3
- the "make" facility of the "setup-api" module has been deprecated,
please use the "make" extension when your egg requires this during
setup.
- Core tools
- "csc"
- The environment-variables "CHICKEN_C_INCLUDE_PATH" and
"CHICKEN_C_LIBRARY_PATH" can now be used to add default include-
and link-directories to C-compiler invocations
- "-O5" passed expensive optimization flags to the C compiler which
could expose C-Compiler bugs, depending on the compiler version
(thanks to Sven Hartrumpf for pointing this out).
- "-rpath" is ignored on OS X (thanks to Kon Lovett).
- Fixed handling of "-output-file" (it was being ignored)
- "chicken-install"
- Added option "-override", which allows retrieving extension-
versions from a file - this may be useful to ensure specific
versions of a complete set of eggs are installed
- Added option "-keep-installed"/"-x" that only installs explicitly
named extensions given on the command line, if they are not
already installed
- Added option "-list" that lists all extensions available
- Added option "-csi" to specify what interpreter should be used
to execute the setup-script of an installed extension
- Added option "-scan" that scans a local directory for the highest
available extension versions available
- Added option "-reinstall" that reinstalls all currently installed
eggs, keeping their versions, if possible
- Fixed bug with "chicken-install -test" when multiple extensions where
given on the command line (thanks to Kon Lovett)
- installing subdirectories works now on Windows.
- 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
- added support for "or"-dependencies where a dependency is considered
installed if one of a set of candidates is available
- "chicken-profile"
- fixed some bugs in the profiler and the runtime support code for
profiling (thanks to Sven Hartrumpf)
- "chicken-status"
- Added option "-list" that dumps versions of installed extensions
in a format suitable for "chicken-install -override ..."
- the "pattern" argument is now actually treated as a pattern and not
as a regex
- Core syntax
- "assert" shows the line number of the form when a second argument
is not given or is a literal string
- "parameterize" now correctly omits invoking the guard procedure when
the old value is restored (thanks to Joo ChurlSoo)
- added ":", "the" and "assume" syntax for declaring types
- added "define-specialization" form to declare type-driven procedure
call rewrites in compiled code
- Syntax expander
- Fixed a bug that caused imported identifiers to leak into the
macroexpansion/compile-time environment (reported by Christian Kellermann)
- Peter Bex fixed a bug that caused bound variables to be incorrectly
renamed in quoted literals (thanks to Matthew Flatt)
- fixed devious bug in the invocation and generation of transformer
procedures
- using normal "lambda" forms as transformers for local or global
syntax definitions is deprecated - one should use "syntax-rules",
"er-macro-transformer" or "ir-macro-transformer" from now on
- Runtime system
- support for re-loading of compiled files has now been completely
removed
- the maximum length of strings is no longer limited to a 24-bit
number on 64-bit architectures but can be 56 bits.
- string-comparison handles embedded '\0' characters.
- numerical predicates handle infinity and NaN correctly.
- 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 and has been disabled for this platform
- signal masks were accidentally reset upon GC for some platforms; use
sigsetjmp/siglongjmp on BSD, Linux, MacOS X and Haiku
- 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
- added "compiler-typecase", a compile-time typematching form
- Module system
- Added "interfaces", which are named groups of exports
- Added "functors", which are parameterized modules
- Modules can now be aliased
- New syntax:
(define-interface NAME EXPORTS)
(functor (NAME ...) EXPORTS ...)
- Extended syntax of "module" for aliasing and functor-instantiation
- 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
- fixed bugs related to using "export"/"reexport" in combination with
wildcard ("*") module export lists (thanks to "megane")
- Foreign function interface
- locatives are allowed as arguments declared "c-pointer"
To generate a diff of this commit:
cvs -z3 rdiff -u -r1.3 -r1.4 wip/chicken/PLIST
cvs -z3 rdiff -u -r1.4 -r1.5 wip/chicken/distinfo
cvs -z3 rdiff -u -r1.7 -r1.8 wip/chicken/Makefile
To view a diff of this commit:
http://pkgsrc-wip.cvs.sourceforge.net/pkgsrc-wip/wip/chicken/PLIST?r1=1.3&r2=1.4
http://pkgsrc-wip.cvs.sourceforge.net/pkgsrc-wip/wip/chicken/distinfo?r1=1.4&r2=1.5
http://pkgsrc-wip.cvs.sourceforge.net/pkgsrc-wip/wip/chicken/Makefile?r1=1.7&r2=1.8
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
------------------------------------------------------------------------------
How fast is your code?
3 out of 4 devs don\\\'t know how their code performs in production.
Find out how slow your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219672;13503038;z?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
pkgsrc-wip-cvs mailing list
pkgsrc-wip-cvs%lists.sourceforge.net@localhost
https://lists.sourceforge.net/lists/listinfo/pkgsrc-wip-cvs
Home |
Main Index |
Thread Index |
Old Index