2013-10-04 17:55:38 +02:00
|
|
|
# $NetBSD: Makefile,v 1.50 2013/10/04 15:55:38 asau Exp $
|
2002-08-20 16:53:18 +02:00
|
|
|
|
2013-10-04 17:55:38 +02:00
|
|
|
DISTNAME= chicken-4.8.0.5
|
2002-08-20 16:53:18 +02:00
|
|
|
CATEGORIES= lang
|
2013-01-18 21:56:14 +01:00
|
|
|
MASTER_SITES= http://code.call-cc.org/releases/$(PKGVERSION_NOREV)/ \
|
|
|
|
http://code.call-cc.org/releases/$(PKGVERSION_NOREV:R)/
|
2002-08-20 16:53:18 +02:00
|
|
|
|
2008-03-11 00:41:05 +01:00
|
|
|
MAINTAINER= asau@inbox.ru #, airhead@users.sourceforge.net
|
Update to Chicken 4.6.0
Contributed by Peter Bex via IRC.
Changes in 4.6.0
- the licenses used in all components of the core system have
been collected in the LICENSE file (Thanks to Peter Bex)
- Added new compiler option `-no-module-registration' which
omits generation of module registration code, even when
generation of import libraries has not been enabled
- running `chicken' without arguments now hints at the
existence of `csi' and `csc'
- `caar', `cdar' and `cddr' generate faster code
- calls to `list', `vector' and the internal structure
allocation primitive that take 1 to 8 arguments generate
faster code
- `chicken-install' now checks the version of the setup
configuration file `setup.defaults'
- added option `-exact' to `chicken-status' and `chicken-uninstall',
which treats the pattern argument as the literal name of the
extension to be listed/deinstalled
- `assert' shows line-number information, if available
(suggested by Alejandro Forero Cuervo)
- interpreted code records the lexical-environment at call-
sites, which can in case of an error be inspected with the
new `,c', `,f' and `,g' csi toplevel commands
- the evaluation-result history in `csi' can be inspected and
cleared (to reduce memory load) with the toplevel commands
`,h' and `,ch'
- unit `data-structures': deprecated `left-section' and
`right-section'
- fixed bug that caused the static syntax-environment of
syntax exported by a module to be incomplete
- module `setup-api': Documented the `version>=?' and
`extension-name-and-version' proceedures
- unit `posix': `utc-time->seconds' is considerably
faster on Mac OS X (thanks to Jim Ursetto);
added new procedure `file-type'
- the `time' macro now shows the correct number of minor
garbage collections
- the immediate-object check inside the marking procedure
of the garbage collector has been manually inlined which
results in a significant GC speedup, depending on memory
load
- unit `srfi-18' and `scheduler': various bugfixes (thanks
to Joerg Wittenberger)
- unit `srfi-4': bugfix in 8-bit vector allocation routines
(thanks to Kon Lovett)
- added `-:H' runtime option to dump heap state on exit
- fixed missing change in Makefile.cygwin (thanks to John Cowan)
- fixed bug in `let-optionals' macro that caused problems when the
rest-variable was actually named `rest' (thanks to Alejandro
Forero Cuervo)
- when Scheme files are translated to C++ or Objective-C, `csc'
will register the feature-identifiers `chicken-scheme-to-c++'/
`chicken-scheme-to-objc' ar compile-time
- fixed bug in expansion of `#!key' parameters in lambda-lists
- debug-output for forcing finalizers on exit goes to stderr now
(thanks to Joerg Wittenberger)
- the installation routines for extensions automatically add
version-number information if none is given in the extension
property list (suggested by Alejandro Forero Cuervo)
- `standard-extension' accepts `#f' now for the version number
and will use the version that has been obtained via
`chicken-install'
- `fifo?', `symbolic-link?', `directory?', `regular-file?', `socket?',
`character-device?' and `block-device?' now accepts file-descriptors
or filenames
- `find-files' takes keyword arguments, now (including the options
to process dotfiles and ignore symbolic links); the old argument
signature is still supported but deprecated
- removed dependency on `symbol-append' in some macros used in
srfi-4.scm to be able to compile the system with older chickens
- fixed bug in script that generates development snapshot
- added build-variable `TARGET_FEATURES', which can be used to pass
extra options enabling or disabling fetures for a system configured
for cross-compilation
- added compiler and interpreter option `-no-feature FEATURENAME' that
disables predefined feature identifiers
- code compiled with interrupts disabled will not emit inline files
for global inlining since they may execute in a context where
interrupts are enabled
- the `setup.defaults' file that holds download sources for
`chicken-install' now allows aliases for locations
- CHICKEN systems build from cross-compilation now by default
transparently build and install extensions for both the host
and target parts of the cross-compilation setup; the options
`-host' and `-target' can now be used to selectively build
an extensions for the host- and the target system, respectively
- also added `-host' and `-target' options to `chicken-status' and
`chicken-uninstall'
- `chicken-install' now respects the `http_proxy' environment variable
(contributed by Stephen Eilert)
- the `srfi-4' library unit has been heavily cleaned up and optimized
- optimization-level 3 now enables global inlining
- fixed the case that declarations listing global identifiers did not
correctly rename them
- deprecated `-N' option shortcut for `-no-usual-integrations' option in
`csc'
- `csi' now offers a toplevel command `,e' for invoking an external
editor (suggested by Oivind Binde)
- the `describe' command in `csi' now detects many circular lists
(contributed by Christian Kellermann)
- `csi' doesn't depend on the `srfi-69' library unit anymore
- when a closing sequence delimiter is missing or incorrect, the
reader also reports the starting line of the sequence
- the reader signals an error when a file contains certain characters
that indicate that it is a binary file
- procedure-information shown by the printer for procedures is now
corrected for some library procedures that where missing the correct
information; `getter-with-setter' copies procedure-information objects
into the newly created accessor procedure, if available
- calls to some known pure standard- or extended procedures are removed, if
the procedures are called with side-effect free arguments and the
result is not used (this can also by enabled for user procedures with
the `constant' declaration)
- fixed some build-system bugs related to installation
- fixed a problem in the C runtime code that prevented it to be compileable
without a configuration header-file
- the makefile-target to build a bootstrapping `chicken' executable
performs multi-stage build now
- changed error message when required extension is out of date (thanks to
Mario Goulart)
- documented library units loaded by default in `csi' (thanks to Moritz
Heidkamp)
- added `boot-chicken' makefile target to simplify bootstrapping
the system from sources and documented this in the README
(suggested by Jim Ursetto)
- CHICKEN can now be built on haiku (contributed by Chris Roberts)
- on Solaris, the system can be compiled with the SunPro C compiler
(thanks to Semih Cemiloglu)
- removed the `-disable-warnings' compiler option and `disable-warnings'
declaration specifier
- `fx/' and `fxmod' generate now faster code in safe mode
- cleaned up manual pages
- slightly optimized variable- and procedure-access
- in the compiler `-debug-level 2' implies `-scrutinize'
- internal compiler-transformation for `for-each' and `map'
apply now with any expression as the procedure argument
- the compiler warns about non-intrinsic exported toplevel variables
which are declared to be safe
- `csc' didn't handle the `-verbose' option (thanks to Mario Goulart)
- the `,d' command in `csi' now detects circular lists (thanks to
Christian Kellermann)
- strings passed to C runtime functions and which are converted to
0-terminated C strings are now checked for not containing embedded
`\0' characters (thanks to Peter Bex)
- errors in user-defined record printers are caught and shown in the
output instead of throwing an error to avoid endless recursion when
an error message is printed
- a feature identifier named `chicken-MAJOR.MINOR' is now defined
to simplify conditionalization of code on the CHICKEN version
- `getter-with-setter' copies the lambda-information (if available) from
the getter to the generated procedure
- `time' uses a somewhat more concise output format and outputs timing
information to stderr instead of stdout
- added a new chapter on cross-development to the manual
- added the `safe-globals' declaration specifier
- split up manual chapter `Modules and macros' into two chapters
(named `Modules' and `Macros', respectively - suggested by
Mario Goulart)
- the last 5 non-precompiled regular expressions are now internally
cached in compiled form, which speeds up repeated matching of
the same uncompiled regular expression dramatically
- added the new procedure `yes-or-no?' to the `utils' library unit
- added a `bench' makefile target that runs some non-trivial
benchmark programs
- added `install-target' and `install-dev' makefile target for
installing only target system libraries in cross-mode and
development files (static libraries and headers)
- added `[-]no-procedure-checks-for-toplevel-bindings' compiler
option and declaration
- usage of unimported syntax in modules gives more usable
error messages; in particular, used but unimported FFI forms are
now detected
- invalid syntactic forms (mostly `()') encountered by the compiler
or interpreter show the contextual form containing the expression,
or, if indicated by the context warns about missing imports
- simplified manual pages of all core tools - they now refer to
the output shown by invoking `<tool> -help'
- added new option `-feature FEATURE' to `chicken-install' tool
to pass feature-identifiers to invocations of `csc'
- removed deprecated `-host-extension' option from `chicken-install'
- `chicken-status' in a system built for cross-compilation now
lists extensions installed in the target prefix, unless the
new `-host' option is given on the command line
- `chicken-uninstall' in a system built for cross-compilation now
removes extensions installed in the target prefix, unless the
new `-host' option is given on the command line
- added missing entry for `finite?' to the `chicken' module
exports
- added new procedure `port-closed?' to the `library' unit
(contributed by Peter Bex)
- added new procedure `symbol-append' to the library unit
- the compiler-option `-optimize-level 0' is equivalent to
`-no-compiler-syntax -no-usual-integrations`
- internal rewritings of `map' and `for-each' ensure correct
evaluation order of the arguments and does a better job
at detecting non-list arguments (thanks to Jim Ursetto)
- `void' now takes arbitrary arguments and ignores them
- deprecated `noop' (from the `data-structures' unit) which
is now replaced by `void'
- the `time' macro now performs a major garbage collection
before executing the contained expressions and writes
the timings in a more compact format to the port given
by `(current-error-port)' instead of the standard output
port
- definitions of the form `(define define ...)' and
`(define-syntax define-syntax ...)' now trigger an error,
as required by R5RS (thanks to Jeronimo Pellegrini and Alex
Shinn)
- deprecated `random-seed' from the `extras' unit, since it
is identical to `randomize'
- added new procedure `create-temporary-directory' to the
`files' unit
- deprecated the optional path separator argument to
`make-pathname'
- slightly improved the performance of keyword argument
processing
- removed the deprecated `canonical-path' and `current-environment'
procedures from the `posix' unit
- warnings that mostly refer to programming style issues are
now coined `notes' and are only shown in the interpreter
or when debug-mode is enabled or when scrutiny is enabled
when compiling
2010-09-13 14:43:16 +02:00
|
|
|
HOMEPAGE= http://www.call-cc.org/
|
2003-07-21 18:45:54 +02:00
|
|
|
COMMENT= Scheme to C compiler, handling R5RS
|
Update to 4.1.0, provided by Peter Bex via pkgsrc-wip (wip/chicken-current).
4.1.0
- The new parameter "parantheses-synonyms" and the command-line
option "-no-parantheses-synonyms" allows disabling list-like behaviour
of "{ ... }" and "[ ... ]" tokens
- The new parameter "symbol-escape" and the command-line
option "-no-symbol-escape" allows disabling "| ... |" symbol escape
syntax
- Added command-line option "-r5rs-syntax" to disable CHICKEN-specific
read-syntax
- Added compiler command-line-option "-no-compiler-syntax"
- Deprecated "getenv" (use "get-environment-variable" instead)
- Removed "macro?" and "undefine-macro!"
- Support for Microsoft Visual Studio / MSVC has been dropped
- The compiler provides now a simple flow-analysis pass that does
basic checking of argument-count and -types for core library procedures
(new option "-scrutinize")
- New compiler-options "-no-argc-checks", "-no-bound-checks",
"-no-procedure checks", "-no-procedure-checks-for-usual-bindings",
"-types TYPEFILE" and "-consult-inline-file FILENAME"
- Added a "chicken-setup" stub-application to catch incorrect use of
this tool (which has been replaced in 4.0.0 with "chicken-install")
- Changed "setup-install-flag" and "setup-verbose-flag" to
"setup-install-mode" and "setup-verbose-mode" in "setup-api" module,
the old names are still available but deprecated
- Posix unit:
added "socket?", "block-device?" and "character-device?", deprecated
redundant "stat-..." procedures
- Also in Posix unit: "canonical-path" has been deprecated, "normalize-pathname"
from the "files" unit provides now most of the functionality
- Added "directory-exists?"
- "(for-each (lambda ...) X)" is compiled as a loop
- The argument-count check for format-strings for "[sf]printf" with a constant
string argument is done at compile-time
- A stub application named "chicken-setup" is installed to catch when a
user invokes theobsolete tool instead of the new "chicken-install".
4.0.0
- removed `apropos' and `apropos-list' from the "utils" library unit;
available as an extension
- removed texinfo and PDF documentation - this will possible be added back
later
- replaced PCRE regex engine with Alex Shinn's "irregex" regular expression
package
- removed `-extension' option
- removed `-static-extensions' csc option and added `-static-extension NAME'
- `regex' unit: removed `regexp*' and `regex-optimize'
- added `CHICKEN_new_finalizable_gc_root()'
- `length' checks its argument for being cyclic
- removed custom declarations and "link-options" and "c-options" declarations
- deprecated "-quiet" option to "chicken" program
- added "-update-db" option to chicken-install
- the compiler now suggests possibly required module-imports
- moved non-standard syntax-definitions into "chicken-syntax" library unit
- the pretty-printer prints the end-of-file object readably now
- alternative conditional execution paths have separate allocation computation
(previously the allocation of all alternatives was coalesced)
- removed unused "%kmp-search" from "srfi-13" library unit
- expander handles syntax-reexports and makes unexported syntax available
for exported expanders in import libraries
- added checks in some procedures in the "tcp" library unit
- the macro system has been completely overhauled and converted
to hygienic macros
- a macro-aware module system has been added
- added "-sx" option to csi
- removed the following deprecated functions:
[un]shift!
andmap ormap
byte-vector? byte-vector-fill!
make-byte-vector byte-vector
byte-vector-set! byte-vector-ref
byte-vector->list list->byte-vector
string->byte-vector byte-vector->string
byte-vector-length
make-static-byte-vector static-byte-vector->pointer
byte-vector-move! byte-vector-append!
set-file-position! set-user-id! set-group-id!
set-process-group-id!
macro? undefine-macro!
- the situation-identifiers "run-time" and "compile-time" have
been removed
- the compiler options "-check-imports", "-import" and "-emit-exports"
have been removed
- new procedures:
strip-syntax
expand
- new macros
define-syntax
module
export
- the following macros have been removed:
define-foreign-record
define-foreign-enum
define-macro
define-extension
- "local" mode, in which locally defined exported toplevel variables can
be inlined
- new options and declarations "[-]local", "[-]inline-global" and "-emit-inline-file"
- optimization levels changed to use inlining:
-optimize-level 3: enables -inline -local (but *not* -unsafe)
-optimize-level 4: enables -inline -local -unsafe
- increased default inlining-limit to 20
- support for cross-module inlining
- "make <VARIABLES> bench" runs the benchmark suite
- "chicken-setup" has been replaced by new command line tools
"chicken-install", "chicken-uninstall" and "chicken-status", which are
more flexible and allow greater freedom when creating local or application-
specific repositories
- extension-installation can be done directly from SVN repositories or a local
file tree
- enabled chicken mirror site as alternative download location
2009-08-08 17:12:24 +02:00
|
|
|
LICENSE= modified-bsd
|
2002-08-20 16:53:18 +02:00
|
|
|
|
Update to 4.1.0, provided by Peter Bex via pkgsrc-wip (wip/chicken-current).
4.1.0
- The new parameter "parantheses-synonyms" and the command-line
option "-no-parantheses-synonyms" allows disabling list-like behaviour
of "{ ... }" and "[ ... ]" tokens
- The new parameter "symbol-escape" and the command-line
option "-no-symbol-escape" allows disabling "| ... |" symbol escape
syntax
- Added command-line option "-r5rs-syntax" to disable CHICKEN-specific
read-syntax
- Added compiler command-line-option "-no-compiler-syntax"
- Deprecated "getenv" (use "get-environment-variable" instead)
- Removed "macro?" and "undefine-macro!"
- Support for Microsoft Visual Studio / MSVC has been dropped
- The compiler provides now a simple flow-analysis pass that does
basic checking of argument-count and -types for core library procedures
(new option "-scrutinize")
- New compiler-options "-no-argc-checks", "-no-bound-checks",
"-no-procedure checks", "-no-procedure-checks-for-usual-bindings",
"-types TYPEFILE" and "-consult-inline-file FILENAME"
- Added a "chicken-setup" stub-application to catch incorrect use of
this tool (which has been replaced in 4.0.0 with "chicken-install")
- Changed "setup-install-flag" and "setup-verbose-flag" to
"setup-install-mode" and "setup-verbose-mode" in "setup-api" module,
the old names are still available but deprecated
- Posix unit:
added "socket?", "block-device?" and "character-device?", deprecated
redundant "stat-..." procedures
- Also in Posix unit: "canonical-path" has been deprecated, "normalize-pathname"
from the "files" unit provides now most of the functionality
- Added "directory-exists?"
- "(for-each (lambda ...) X)" is compiled as a loop
- The argument-count check for format-strings for "[sf]printf" with a constant
string argument is done at compile-time
- A stub application named "chicken-setup" is installed to catch when a
user invokes theobsolete tool instead of the new "chicken-install".
4.0.0
- removed `apropos' and `apropos-list' from the "utils" library unit;
available as an extension
- removed texinfo and PDF documentation - this will possible be added back
later
- replaced PCRE regex engine with Alex Shinn's "irregex" regular expression
package
- removed `-extension' option
- removed `-static-extensions' csc option and added `-static-extension NAME'
- `regex' unit: removed `regexp*' and `regex-optimize'
- added `CHICKEN_new_finalizable_gc_root()'
- `length' checks its argument for being cyclic
- removed custom declarations and "link-options" and "c-options" declarations
- deprecated "-quiet" option to "chicken" program
- added "-update-db" option to chicken-install
- the compiler now suggests possibly required module-imports
- moved non-standard syntax-definitions into "chicken-syntax" library unit
- the pretty-printer prints the end-of-file object readably now
- alternative conditional execution paths have separate allocation computation
(previously the allocation of all alternatives was coalesced)
- removed unused "%kmp-search" from "srfi-13" library unit
- expander handles syntax-reexports and makes unexported syntax available
for exported expanders in import libraries
- added checks in some procedures in the "tcp" library unit
- the macro system has been completely overhauled and converted
to hygienic macros
- a macro-aware module system has been added
- added "-sx" option to csi
- removed the following deprecated functions:
[un]shift!
andmap ormap
byte-vector? byte-vector-fill!
make-byte-vector byte-vector
byte-vector-set! byte-vector-ref
byte-vector->list list->byte-vector
string->byte-vector byte-vector->string
byte-vector-length
make-static-byte-vector static-byte-vector->pointer
byte-vector-move! byte-vector-append!
set-file-position! set-user-id! set-group-id!
set-process-group-id!
macro? undefine-macro!
- the situation-identifiers "run-time" and "compile-time" have
been removed
- the compiler options "-check-imports", "-import" and "-emit-exports"
have been removed
- new procedures:
strip-syntax
expand
- new macros
define-syntax
module
export
- the following macros have been removed:
define-foreign-record
define-foreign-enum
define-macro
define-extension
- "local" mode, in which locally defined exported toplevel variables can
be inlined
- new options and declarations "[-]local", "[-]inline-global" and "-emit-inline-file"
- optimization levels changed to use inlining:
-optimize-level 3: enables -inline -local (but *not* -unsafe)
-optimize-level 4: enables -inline -local -unsafe
- increased default inlining-limit to 20
- support for cross-module inlining
- "make <VARIABLES> bench" runs the benchmark suite
- "chicken-setup" has been replaced by new command line tools
"chicken-install", "chicken-uninstall" and "chicken-status", which are
more flexible and allow greater freedom when creating local or application-
specific repositories
- extension-installation can be done directly from SVN repositories or a local
file tree
- enabled chicken mirror site as alternative download location
2009-08-08 17:12:24 +02:00
|
|
|
MAKE_JOBS_SAFE= no
|
|
|
|
|
2008-03-11 00:41:05 +01:00
|
|
|
USE_LIBTOOL= yes
|
Update to Chicken 4.6.0
Contributed by Peter Bex via IRC.
Changes in 4.6.0
- the licenses used in all components of the core system have
been collected in the LICENSE file (Thanks to Peter Bex)
- Added new compiler option `-no-module-registration' which
omits generation of module registration code, even when
generation of import libraries has not been enabled
- running `chicken' without arguments now hints at the
existence of `csi' and `csc'
- `caar', `cdar' and `cddr' generate faster code
- calls to `list', `vector' and the internal structure
allocation primitive that take 1 to 8 arguments generate
faster code
- `chicken-install' now checks the version of the setup
configuration file `setup.defaults'
- added option `-exact' to `chicken-status' and `chicken-uninstall',
which treats the pattern argument as the literal name of the
extension to be listed/deinstalled
- `assert' shows line-number information, if available
(suggested by Alejandro Forero Cuervo)
- interpreted code records the lexical-environment at call-
sites, which can in case of an error be inspected with the
new `,c', `,f' and `,g' csi toplevel commands
- the evaluation-result history in `csi' can be inspected and
cleared (to reduce memory load) with the toplevel commands
`,h' and `,ch'
- unit `data-structures': deprecated `left-section' and
`right-section'
- fixed bug that caused the static syntax-environment of
syntax exported by a module to be incomplete
- module `setup-api': Documented the `version>=?' and
`extension-name-and-version' proceedures
- unit `posix': `utc-time->seconds' is considerably
faster on Mac OS X (thanks to Jim Ursetto);
added new procedure `file-type'
- the `time' macro now shows the correct number of minor
garbage collections
- the immediate-object check inside the marking procedure
of the garbage collector has been manually inlined which
results in a significant GC speedup, depending on memory
load
- unit `srfi-18' and `scheduler': various bugfixes (thanks
to Joerg Wittenberger)
- unit `srfi-4': bugfix in 8-bit vector allocation routines
(thanks to Kon Lovett)
- added `-:H' runtime option to dump heap state on exit
- fixed missing change in Makefile.cygwin (thanks to John Cowan)
- fixed bug in `let-optionals' macro that caused problems when the
rest-variable was actually named `rest' (thanks to Alejandro
Forero Cuervo)
- when Scheme files are translated to C++ or Objective-C, `csc'
will register the feature-identifiers `chicken-scheme-to-c++'/
`chicken-scheme-to-objc' ar compile-time
- fixed bug in expansion of `#!key' parameters in lambda-lists
- debug-output for forcing finalizers on exit goes to stderr now
(thanks to Joerg Wittenberger)
- the installation routines for extensions automatically add
version-number information if none is given in the extension
property list (suggested by Alejandro Forero Cuervo)
- `standard-extension' accepts `#f' now for the version number
and will use the version that has been obtained via
`chicken-install'
- `fifo?', `symbolic-link?', `directory?', `regular-file?', `socket?',
`character-device?' and `block-device?' now accepts file-descriptors
or filenames
- `find-files' takes keyword arguments, now (including the options
to process dotfiles and ignore symbolic links); the old argument
signature is still supported but deprecated
- removed dependency on `symbol-append' in some macros used in
srfi-4.scm to be able to compile the system with older chickens
- fixed bug in script that generates development snapshot
- added build-variable `TARGET_FEATURES', which can be used to pass
extra options enabling or disabling fetures for a system configured
for cross-compilation
- added compiler and interpreter option `-no-feature FEATURENAME' that
disables predefined feature identifiers
- code compiled with interrupts disabled will not emit inline files
for global inlining since they may execute in a context where
interrupts are enabled
- the `setup.defaults' file that holds download sources for
`chicken-install' now allows aliases for locations
- CHICKEN systems build from cross-compilation now by default
transparently build and install extensions for both the host
and target parts of the cross-compilation setup; the options
`-host' and `-target' can now be used to selectively build
an extensions for the host- and the target system, respectively
- also added `-host' and `-target' options to `chicken-status' and
`chicken-uninstall'
- `chicken-install' now respects the `http_proxy' environment variable
(contributed by Stephen Eilert)
- the `srfi-4' library unit has been heavily cleaned up and optimized
- optimization-level 3 now enables global inlining
- fixed the case that declarations listing global identifiers did not
correctly rename them
- deprecated `-N' option shortcut for `-no-usual-integrations' option in
`csc'
- `csi' now offers a toplevel command `,e' for invoking an external
editor (suggested by Oivind Binde)
- the `describe' command in `csi' now detects many circular lists
(contributed by Christian Kellermann)
- `csi' doesn't depend on the `srfi-69' library unit anymore
- when a closing sequence delimiter is missing or incorrect, the
reader also reports the starting line of the sequence
- the reader signals an error when a file contains certain characters
that indicate that it is a binary file
- procedure-information shown by the printer for procedures is now
corrected for some library procedures that where missing the correct
information; `getter-with-setter' copies procedure-information objects
into the newly created accessor procedure, if available
- calls to some known pure standard- or extended procedures are removed, if
the procedures are called with side-effect free arguments and the
result is not used (this can also by enabled for user procedures with
the `constant' declaration)
- fixed some build-system bugs related to installation
- fixed a problem in the C runtime code that prevented it to be compileable
without a configuration header-file
- the makefile-target to build a bootstrapping `chicken' executable
performs multi-stage build now
- changed error message when required extension is out of date (thanks to
Mario Goulart)
- documented library units loaded by default in `csi' (thanks to Moritz
Heidkamp)
- added `boot-chicken' makefile target to simplify bootstrapping
the system from sources and documented this in the README
(suggested by Jim Ursetto)
- CHICKEN can now be built on haiku (contributed by Chris Roberts)
- on Solaris, the system can be compiled with the SunPro C compiler
(thanks to Semih Cemiloglu)
- removed the `-disable-warnings' compiler option and `disable-warnings'
declaration specifier
- `fx/' and `fxmod' generate now faster code in safe mode
- cleaned up manual pages
- slightly optimized variable- and procedure-access
- in the compiler `-debug-level 2' implies `-scrutinize'
- internal compiler-transformation for `for-each' and `map'
apply now with any expression as the procedure argument
- the compiler warns about non-intrinsic exported toplevel variables
which are declared to be safe
- `csc' didn't handle the `-verbose' option (thanks to Mario Goulart)
- the `,d' command in `csi' now detects circular lists (thanks to
Christian Kellermann)
- strings passed to C runtime functions and which are converted to
0-terminated C strings are now checked for not containing embedded
`\0' characters (thanks to Peter Bex)
- errors in user-defined record printers are caught and shown in the
output instead of throwing an error to avoid endless recursion when
an error message is printed
- a feature identifier named `chicken-MAJOR.MINOR' is now defined
to simplify conditionalization of code on the CHICKEN version
- `getter-with-setter' copies the lambda-information (if available) from
the getter to the generated procedure
- `time' uses a somewhat more concise output format and outputs timing
information to stderr instead of stdout
- added a new chapter on cross-development to the manual
- added the `safe-globals' declaration specifier
- split up manual chapter `Modules and macros' into two chapters
(named `Modules' and `Macros', respectively - suggested by
Mario Goulart)
- the last 5 non-precompiled regular expressions are now internally
cached in compiled form, which speeds up repeated matching of
the same uncompiled regular expression dramatically
- added the new procedure `yes-or-no?' to the `utils' library unit
- added a `bench' makefile target that runs some non-trivial
benchmark programs
- added `install-target' and `install-dev' makefile target for
installing only target system libraries in cross-mode and
development files (static libraries and headers)
- added `[-]no-procedure-checks-for-toplevel-bindings' compiler
option and declaration
- usage of unimported syntax in modules gives more usable
error messages; in particular, used but unimported FFI forms are
now detected
- invalid syntactic forms (mostly `()') encountered by the compiler
or interpreter show the contextual form containing the expression,
or, if indicated by the context warns about missing imports
- simplified manual pages of all core tools - they now refer to
the output shown by invoking `<tool> -help'
- added new option `-feature FEATURE' to `chicken-install' tool
to pass feature-identifiers to invocations of `csc'
- removed deprecated `-host-extension' option from `chicken-install'
- `chicken-status' in a system built for cross-compilation now
lists extensions installed in the target prefix, unless the
new `-host' option is given on the command line
- `chicken-uninstall' in a system built for cross-compilation now
removes extensions installed in the target prefix, unless the
new `-host' option is given on the command line
- added missing entry for `finite?' to the `chicken' module
exports
- added new procedure `port-closed?' to the `library' unit
(contributed by Peter Bex)
- added new procedure `symbol-append' to the library unit
- the compiler-option `-optimize-level 0' is equivalent to
`-no-compiler-syntax -no-usual-integrations`
- internal rewritings of `map' and `for-each' ensure correct
evaluation order of the arguments and does a better job
at detecting non-list arguments (thanks to Jim Ursetto)
- `void' now takes arbitrary arguments and ignores them
- deprecated `noop' (from the `data-structures' unit) which
is now replaced by `void'
- the `time' macro now performs a major garbage collection
before executing the contained expressions and writes
the timings in a more compact format to the port given
by `(current-error-port)' instead of the standard output
port
- definitions of the form `(define define ...)' and
`(define-syntax define-syntax ...)' now trigger an error,
as required by R5RS (thanks to Jeronimo Pellegrini and Alex
Shinn)
- deprecated `random-seed' from the `extras' unit, since it
is identical to `randomize'
- added new procedure `create-temporary-directory' to the
`files' unit
- deprecated the optional path separator argument to
`make-pathname'
- slightly improved the performance of keyword argument
processing
- removed the deprecated `canonical-path' and `current-environment'
procedures from the `posix' unit
- warnings that mostly refer to programming style issues are
now coined `notes' and are only shown in the interpreter
or when debug-mode is enabled or when scrutiny is enabled
when compiling
2010-09-13 14:43:16 +02:00
|
|
|
USE_TOOLS+= gmake
|
2008-03-11 00:41:05 +01:00
|
|
|
UNLIMIT_RESOURCES= datasize
|
2002-08-20 16:53:18 +02:00
|
|
|
|
2008-03-11 00:41:05 +01:00
|
|
|
INSTALLATION_DIRS= share/chicken
|
Update Chicken to version 4.7.0
Provided by Peter Bex on IRC.
Changes in 4.7.0
- Build system
- On BSD, libchicken.so is linked with -lpthread, as this seems
to be required for linking libraries that require pthreads
- The C header-files are now installed in a subdirectory below
the "PRFIX/include" directory to allow installation of multiple
chickens with different PROGRAM_PREFIX/PROGRAM_SUFFIX settings
in the same prefix; to avoid conflicts with existing CHICKEN
headers, it is recommended to completely remove any old
installation before installing the new version
- the PROGRAM_PREFIX and PROGRAM_SUFFIX configuration settings
are applied to generated files and directories which allows
perform differently named installations into the same PREFIX
- increaded binary-compatibility version from 5 to 6, which
means installed extensions in an existing installations will
have to be re-installed
- bugfixes in mingw/msys makefiles
- Sven Hartrumpf contributed a bugfix to the internal helper
script for creating distribution directories
- Peter Bex has cleaned up the makefiles heavily, making the
build more maintainable and easier to modify; thanks to all
who helped testing this new build
- renamed the makefile to `GNUmakefile' to catch using the
a make(3) other than GNU make
- configuration-header fix for BSD systems (thanks to Peter Bex
and Christian Kellermann)
- Core libraries
- the `regex' library unit has been removed and is separately
available as an extension which should be fully backwards-
compatible
- `irregex' is now a core library unit and replaces the `regex' API
- "extras" unit
- fixed pretty-printer output of certain escaped character
sequences inside strings (thanks to Mario Domenech Goulart,
thanks to Kon Lovett for pointing out a missing test-file)
- The pretty printer did not escape some control characters correctly
(reported by Alan Post)
- control-characters in symbol-names are now properly escaped if
the symbol is printed readably (thanks to Alaric Snell-Pym
for pointing this out)
- the deprecated `random-seed' function has been removed
- "files" unit
- fixed bug in `normalize-pathname'
- `file-copy' and `file-move' check whether the source-file is a
directory
- `delete-directory' now optionally deletes directories recursively
- "irregex" unit
- Peter Bex has contributed various bugfixes and performance
enhancements
- "library" unit
- Added "condition->list" (thanks to Christian Kellermann)
- The reader accepts now escaped octal character codes in string
literals
- Read-syntax can return zero values to indicate ignored objects
- R5RS output output routines now always return a "void" result
- "\|" was not correctly escaped when occurring inside
symbol print names
- added `condition->list', contributed by Christian Kellermann
- added `equal=?'
- removed deprecated `getenv', `left-section', `right-section',
`project', `c-runtime' and `noop'
- added missing import-library entry for `vector-copy!' (thanks
to Jules Altfas)
- circular or excessively deeply nested data generates a more
useful error message when encountered by `equal?'
- `list-tail' gives now a better error message when passed a
non-list argument
- fixed bug in `getter-with-setter' that modified the first
argument if it already had a setter procedure attached
- fixed incorrect size of internal data vector used in `time'
(thanks to Kon Lovett)
- "lolevel" unit
- removed deprecated `global-bound?', `global-make-unbound',
`global-ref' and `global-set!' procedures
- added support for `pointer-vectors':
- make-pointer-vector
- pointer-vector?
- pointer-vector-length
- pointer-vector-ref
- pointer-vector-set!
- "posix" unit
- "close-input-pipe" did not return the status code of a
terminated process on Windows (reported by Mario Domenech Goulart)
- added `file-creation-mode' (suggested by Mario Domenech Goulart)
- "setup-api" unit
- `required-extension-version' and `required-chicken-version' have
been deprecated
- "srfi-18" unit
- removed deprecated `milliseconds->time' and `time->milliseconds'
procedures
- `make-mutex' incorrectly created mutexes as initially owned by
the current threads (thanks to Joerg Wittenberger)
- the file-descriptor handling in the scheduler has been simplified
and performs some sanity checks
- deadlock in the scheduler now terminates the process instead of
attempting to throw an error
- added some sanity checks to the scheduler
- "tcp" unit
- Fixed bug in "tcp-abandon-port" (reported by Jim Ursetto)
- "utils" unit
- `compile-file' now returns `#f' when the compilation fails,
instead of raising an error
- Compiler
- Removed unreliable lambda-lifting optimization (now, really!);
the "-lambda-lift" option is still accepted but produces a
warning
- When "-scrutinize" is given, installed ".types" files will be
automatically consulted for extensions and used units
- Fixed optimizer bug in handling of "let" forms with multiple
bindings which could result in toplevel assignments being
silently dropped (reported by Moritz Heidkamp)
- the `-accumulate-profile' option did not provide a way to
specify the target profile data file - now `-profile-name'
must always be given when accumulated profiling is done
(thanks to Taylor Venable)
- added `-module' option, which wraps the code into an implicit
module
- removed check for unsafe toplevel calls in safe mode
- intrinsic handling of `exact->inexact' and `string->number' is
now more efficient
- fixed bug in leaf-routine optimization (thanks to David
Dreisigmeyer)
- unit-toplevel entry-points are now named differently, which
may break binary-compatibility with existing compiled Scheme
code modules
- fixed invalid dropping of unused external entry-points in
block-mode
- fixed incorrect lambda-list check in scrutinizer (thanks to
Alan Post)
- Kon Lovett reported numerous bugs in the type-database used
by the scrutinizer
- `-fwrapv' is disabled on OpenBSD, since the default compiler
does not support this option (thanks to Christian Kellermann)
- on Solaris `gcc' is used by default, override `C_COMPILER'
to use the Sun compiler instead
- declaring a function `notinline' will prevent direct-call
optimization for known procedure calls
- the implementation of overflow-detection for arithmetic operations
on fixnums have been replaced and now allow using the full 63-bit
range of fixnums on 64-bit systems
- fixed serious inlining-bug (thanks to Sven Hartrumpf)
- constant-folding in the compiler has been simplified and
is more reliable (thanks to Sven Hartrumpf)
- optimization-levels 3 and higher imply `-unboxing -inline-global'
- added new declaration `unsafe-specialized-arithmetic' which allows
optimizing unboxed floating-point arithmetic in safe mode
- removed `scrutinize' declaration
- the warning shown when unimported identifiers are used in compiled
modules now also shows the name of the procedure where the
identifier is referenced (suggested by Alaric Snell-Pym)
- Documentation
- Added list of installed files to README
- Documented remaining "c...r" standard procedures (thanks to
Juergen Lorenz)
- The manual is now installed in HTML format in
PREFIX/share/chicken/doc, many thanks to Jim Ursetto for
contributing is excellent `manual-labor' extension which made
this possible
- Foreign function interface
- Added support for missing "(const [XXX-]c-string)" foreign type
(thanks to Moritz Heidkamp)
- removed deprecated `pointer', `nonnull-pointer', `byte-vector'
and `nonnull-byte-vector' types
- added missing result-type handling for `unsigned-integer64'
(thanks to Moritz Heidkamp)
- added `foreign-type-size' macro
- added the new foreign type `size_t' (suggested by Moritz
Heidkamp)
- added the missing `unsigned-integer64' foreign type (thanks
to Moritz for catching this)
- added new foreign type `pointer-vector' which maps to `void **'
and provided a low-level API in the `lolevel' library unit for
manipulating pointer vectors
- Runtime system
- Fixed typo in "runtime.c" (thanks to Sven Hartrumpf)
- Little-endian detection on MIPS systems was not correct (thanks
to Christian Kellermann)
- Fixed bug in handling of runtime-options with arguments (also
reported by Christian Kellermann)
- `equal?' does not compare procedures recursively anymore
- fixed incorrect use of alloca.h on OpenBSD (thanks to
Christian Kellermann and Alan Post)
- checks for NaN and infinity are now done using ISO C99
operations, which required various changes to `chicken.h'
to make the code compile in ISO C99 mode
- remaining debris regarding MSVC builds has been removed
- fixed bug in argument-type check for 64-bit integer (thanks
to Kon Lovett)
- increased default trace-buffer size from 10 to 16
- fixed bug in low-level termination routine (thanks to
Jeronimo Pellegrini)
- the scheduler handles violations of internal invariants
regarding threads slightly more gracefully (thanks to Jim
Ursetto)
- fixed broken sleep-time conversion (thanks to Karel Miklav)
- repaired broken handling of multiple finalizers that referred
to the same object (reported by Moritz Heidkamp)
- fixed problem with reader and escaping of single-char symbols
- Syntax expander
- For-syntax syntax definitions where not correctly retained inside
modules
- Peter Bex fixed various critical bugs in the expander
- The simplification for quasiquote expressions was unable
to handle certain circular data (reported by Moritz Heidkamp)
- `syntax-rules' now supports tail-patterns and is now fully
SRFI-46 compatible - many thanks to Peter Bex for implementing
this
- Peter Bex provided a bugfix for resolution of primitive imports
- handling of internal definitions with shadowed defining
forms is now done correctly - fix once again from Peter Bex
- corrected non-standard behaviour of quasiquote with respect
to nested quasiquotations - another bugfix by our mighty macro
master
- removed stub-implementation of `define-macro'
- handled case where a global redefinition of `cons' influenced
a non-inlined internal use in the expander (thanks to David
Steiner)
- `define-record' now allows defining SRFI-17 setter procedures
for accessing slots
- the expansion of DSSSL lambda-lists uses now `let-optionals*'
internally instead of `let-optionals' and so allows
back-references to earlier formal variables; this also results in
faster and more compact code for argument-list destructuring
(thanks to Alan Post)
- new "implicit renaming" macro facility contributed by Peter Bex
(see `ir-macro-transformer')
- record-definitions are now made local to the module in which
they are defined (thanks to Jim Ursetto)
- parameters are now settable and can be modified using `set!'
(SRFI-17)
- added a SRFI-17 setter to `list-ref'
- added literal blob syntax ("#{ ... }")
- Tools
- chicken-install
- option "-deploy" does not compile deployed extensions with
"-setup-mode" anymore to avoid problems with dynamic loading on
some platforms (specifically Mac OS X)
- option "-deploy" option did not copy the correct library
(including the version-number) (thanks to Christian Kellermann)
- added support for proxy-authentification (thanks to Iruata Souza)
- when installing from a local directory `chicken-install' now
removes existing `*.so' files in that location to avoid stale
binaries when the `make' syntax is used in setup scripts
- chicken-bug
- removed disabled e-mail support
- csc
- removed `-static-extension' option
- removed deprecated `-windows' option
- fixed incorrect use of `chicken.rc' on non-Windows platforms
in `-gui' mode (thanks to "ddp")
- when compiling in C++ mode, the compiler will be called with the
`-Wno-write-strings' option
- `-frwapv' has been added to the default C compiler options
- csi
- the ",m" toplevel command now accepts "#f" to switch back to
the initial empty module context (suggested by Christian Kellermann)
- fixed broken `,g' toplevel command
- deprecated `script' feature identifier (use `chicken-script'
instead)
- options `-p' and `-P' and `-e' imply `-no-init'
- the call-trace reported will not include exception-handler code
anymore (suggested by Christian Kellermann)
2011-05-26 22:06:13 +02:00
|
|
|
OWN_DIRS= ${PREFIX}/lib/chicken ${PREFIX}/lib/chicken/6
|
2004-03-23 08:42:55 +01:00
|
|
|
|
Update to 4.1.0, provided by Peter Bex via pkgsrc-wip (wip/chicken-current).
4.1.0
- The new parameter "parantheses-synonyms" and the command-line
option "-no-parantheses-synonyms" allows disabling list-like behaviour
of "{ ... }" and "[ ... ]" tokens
- The new parameter "symbol-escape" and the command-line
option "-no-symbol-escape" allows disabling "| ... |" symbol escape
syntax
- Added command-line option "-r5rs-syntax" to disable CHICKEN-specific
read-syntax
- Added compiler command-line-option "-no-compiler-syntax"
- Deprecated "getenv" (use "get-environment-variable" instead)
- Removed "macro?" and "undefine-macro!"
- Support for Microsoft Visual Studio / MSVC has been dropped
- The compiler provides now a simple flow-analysis pass that does
basic checking of argument-count and -types for core library procedures
(new option "-scrutinize")
- New compiler-options "-no-argc-checks", "-no-bound-checks",
"-no-procedure checks", "-no-procedure-checks-for-usual-bindings",
"-types TYPEFILE" and "-consult-inline-file FILENAME"
- Added a "chicken-setup" stub-application to catch incorrect use of
this tool (which has been replaced in 4.0.0 with "chicken-install")
- Changed "setup-install-flag" and "setup-verbose-flag" to
"setup-install-mode" and "setup-verbose-mode" in "setup-api" module,
the old names are still available but deprecated
- Posix unit:
added "socket?", "block-device?" and "character-device?", deprecated
redundant "stat-..." procedures
- Also in Posix unit: "canonical-path" has been deprecated, "normalize-pathname"
from the "files" unit provides now most of the functionality
- Added "directory-exists?"
- "(for-each (lambda ...) X)" is compiled as a loop
- The argument-count check for format-strings for "[sf]printf" with a constant
string argument is done at compile-time
- A stub application named "chicken-setup" is installed to catch when a
user invokes theobsolete tool instead of the new "chicken-install".
4.0.0
- removed `apropos' and `apropos-list' from the "utils" library unit;
available as an extension
- removed texinfo and PDF documentation - this will possible be added back
later
- replaced PCRE regex engine with Alex Shinn's "irregex" regular expression
package
- removed `-extension' option
- removed `-static-extensions' csc option and added `-static-extension NAME'
- `regex' unit: removed `regexp*' and `regex-optimize'
- added `CHICKEN_new_finalizable_gc_root()'
- `length' checks its argument for being cyclic
- removed custom declarations and "link-options" and "c-options" declarations
- deprecated "-quiet" option to "chicken" program
- added "-update-db" option to chicken-install
- the compiler now suggests possibly required module-imports
- moved non-standard syntax-definitions into "chicken-syntax" library unit
- the pretty-printer prints the end-of-file object readably now
- alternative conditional execution paths have separate allocation computation
(previously the allocation of all alternatives was coalesced)
- removed unused "%kmp-search" from "srfi-13" library unit
- expander handles syntax-reexports and makes unexported syntax available
for exported expanders in import libraries
- added checks in some procedures in the "tcp" library unit
- the macro system has been completely overhauled and converted
to hygienic macros
- a macro-aware module system has been added
- added "-sx" option to csi
- removed the following deprecated functions:
[un]shift!
andmap ormap
byte-vector? byte-vector-fill!
make-byte-vector byte-vector
byte-vector-set! byte-vector-ref
byte-vector->list list->byte-vector
string->byte-vector byte-vector->string
byte-vector-length
make-static-byte-vector static-byte-vector->pointer
byte-vector-move! byte-vector-append!
set-file-position! set-user-id! set-group-id!
set-process-group-id!
macro? undefine-macro!
- the situation-identifiers "run-time" and "compile-time" have
been removed
- the compiler options "-check-imports", "-import" and "-emit-exports"
have been removed
- new procedures:
strip-syntax
expand
- new macros
define-syntax
module
export
- the following macros have been removed:
define-foreign-record
define-foreign-enum
define-macro
define-extension
- "local" mode, in which locally defined exported toplevel variables can
be inlined
- new options and declarations "[-]local", "[-]inline-global" and "-emit-inline-file"
- optimization levels changed to use inlining:
-optimize-level 3: enables -inline -local (but *not* -unsafe)
-optimize-level 4: enables -inline -local -unsafe
- increased default inlining-limit to 20
- support for cross-module inlining
- "make <VARIABLES> bench" runs the benchmark suite
- "chicken-setup" has been replaced by new command line tools
"chicken-install", "chicken-uninstall" and "chicken-status", which are
more flexible and allow greater freedom when creating local or application-
specific repositories
- extension-installation can be done directly from SVN repositories or a local
file tree
- enabled chicken mirror site as alternative download location
2009-08-08 17:12:24 +02:00
|
|
|
BUILD_TARGET= all
|
2006-10-10 17:04:38 +02:00
|
|
|
|
2008-03-11 00:41:05 +01:00
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
|
|
|
|
# PLATFORM detection:
|
Update to 4.1.0, provided by Peter Bex via pkgsrc-wip (wip/chicken-current).
4.1.0
- The new parameter "parantheses-synonyms" and the command-line
option "-no-parantheses-synonyms" allows disabling list-like behaviour
of "{ ... }" and "[ ... ]" tokens
- The new parameter "symbol-escape" and the command-line
option "-no-symbol-escape" allows disabling "| ... |" symbol escape
syntax
- Added command-line option "-r5rs-syntax" to disable CHICKEN-specific
read-syntax
- Added compiler command-line-option "-no-compiler-syntax"
- Deprecated "getenv" (use "get-environment-variable" instead)
- Removed "macro?" and "undefine-macro!"
- Support for Microsoft Visual Studio / MSVC has been dropped
- The compiler provides now a simple flow-analysis pass that does
basic checking of argument-count and -types for core library procedures
(new option "-scrutinize")
- New compiler-options "-no-argc-checks", "-no-bound-checks",
"-no-procedure checks", "-no-procedure-checks-for-usual-bindings",
"-types TYPEFILE" and "-consult-inline-file FILENAME"
- Added a "chicken-setup" stub-application to catch incorrect use of
this tool (which has been replaced in 4.0.0 with "chicken-install")
- Changed "setup-install-flag" and "setup-verbose-flag" to
"setup-install-mode" and "setup-verbose-mode" in "setup-api" module,
the old names are still available but deprecated
- Posix unit:
added "socket?", "block-device?" and "character-device?", deprecated
redundant "stat-..." procedures
- Also in Posix unit: "canonical-path" has been deprecated, "normalize-pathname"
from the "files" unit provides now most of the functionality
- Added "directory-exists?"
- "(for-each (lambda ...) X)" is compiled as a loop
- The argument-count check for format-strings for "[sf]printf" with a constant
string argument is done at compile-time
- A stub application named "chicken-setup" is installed to catch when a
user invokes theobsolete tool instead of the new "chicken-install".
4.0.0
- removed `apropos' and `apropos-list' from the "utils" library unit;
available as an extension
- removed texinfo and PDF documentation - this will possible be added back
later
- replaced PCRE regex engine with Alex Shinn's "irregex" regular expression
package
- removed `-extension' option
- removed `-static-extensions' csc option and added `-static-extension NAME'
- `regex' unit: removed `regexp*' and `regex-optimize'
- added `CHICKEN_new_finalizable_gc_root()'
- `length' checks its argument for being cyclic
- removed custom declarations and "link-options" and "c-options" declarations
- deprecated "-quiet" option to "chicken" program
- added "-update-db" option to chicken-install
- the compiler now suggests possibly required module-imports
- moved non-standard syntax-definitions into "chicken-syntax" library unit
- the pretty-printer prints the end-of-file object readably now
- alternative conditional execution paths have separate allocation computation
(previously the allocation of all alternatives was coalesced)
- removed unused "%kmp-search" from "srfi-13" library unit
- expander handles syntax-reexports and makes unexported syntax available
for exported expanders in import libraries
- added checks in some procedures in the "tcp" library unit
- the macro system has been completely overhauled and converted
to hygienic macros
- a macro-aware module system has been added
- added "-sx" option to csi
- removed the following deprecated functions:
[un]shift!
andmap ormap
byte-vector? byte-vector-fill!
make-byte-vector byte-vector
byte-vector-set! byte-vector-ref
byte-vector->list list->byte-vector
string->byte-vector byte-vector->string
byte-vector-length
make-static-byte-vector static-byte-vector->pointer
byte-vector-move! byte-vector-append!
set-file-position! set-user-id! set-group-id!
set-process-group-id!
macro? undefine-macro!
- the situation-identifiers "run-time" and "compile-time" have
been removed
- the compiler options "-check-imports", "-import" and "-emit-exports"
have been removed
- new procedures:
strip-syntax
expand
- new macros
define-syntax
module
export
- the following macros have been removed:
define-foreign-record
define-foreign-enum
define-macro
define-extension
- "local" mode, in which locally defined exported toplevel variables can
be inlined
- new options and declarations "[-]local", "[-]inline-global" and "-emit-inline-file"
- optimization levels changed to use inlining:
-optimize-level 3: enables -inline -local (but *not* -unsafe)
-optimize-level 4: enables -inline -local -unsafe
- increased default inlining-limit to 20
- support for cross-module inlining
- "make <VARIABLES> bench" runs the benchmark suite
- "chicken-setup" has been replaced by new command line tools
"chicken-install", "chicken-uninstall" and "chicken-status", which are
more flexible and allow greater freedom when creating local or application-
specific repositories
- extension-installation can be done directly from SVN repositories or a local
file tree
- enabled chicken mirror site as alternative download location
2009-08-08 17:12:24 +02:00
|
|
|
.if !empty(OPSYS:M*BSD) || ${OPSYS} == "DragonFly"
|
2008-03-11 00:41:05 +01:00
|
|
|
PLATFORM= bsd
|
|
|
|
.elif ${OPSYS} == "Linux"
|
|
|
|
PLATFORM= linux
|
|
|
|
.elif ${OPSYS} == "Darwin"
|
|
|
|
PLATFORM= macosx
|
|
|
|
.elif ${OPSYS} == "SunOS"
|
|
|
|
PLATFORM= solaris
|
Update to Chicken 4.6.0
Contributed by Peter Bex via IRC.
Changes in 4.6.0
- the licenses used in all components of the core system have
been collected in the LICENSE file (Thanks to Peter Bex)
- Added new compiler option `-no-module-registration' which
omits generation of module registration code, even when
generation of import libraries has not been enabled
- running `chicken' without arguments now hints at the
existence of `csi' and `csc'
- `caar', `cdar' and `cddr' generate faster code
- calls to `list', `vector' and the internal structure
allocation primitive that take 1 to 8 arguments generate
faster code
- `chicken-install' now checks the version of the setup
configuration file `setup.defaults'
- added option `-exact' to `chicken-status' and `chicken-uninstall',
which treats the pattern argument as the literal name of the
extension to be listed/deinstalled
- `assert' shows line-number information, if available
(suggested by Alejandro Forero Cuervo)
- interpreted code records the lexical-environment at call-
sites, which can in case of an error be inspected with the
new `,c', `,f' and `,g' csi toplevel commands
- the evaluation-result history in `csi' can be inspected and
cleared (to reduce memory load) with the toplevel commands
`,h' and `,ch'
- unit `data-structures': deprecated `left-section' and
`right-section'
- fixed bug that caused the static syntax-environment of
syntax exported by a module to be incomplete
- module `setup-api': Documented the `version>=?' and
`extension-name-and-version' proceedures
- unit `posix': `utc-time->seconds' is considerably
faster on Mac OS X (thanks to Jim Ursetto);
added new procedure `file-type'
- the `time' macro now shows the correct number of minor
garbage collections
- the immediate-object check inside the marking procedure
of the garbage collector has been manually inlined which
results in a significant GC speedup, depending on memory
load
- unit `srfi-18' and `scheduler': various bugfixes (thanks
to Joerg Wittenberger)
- unit `srfi-4': bugfix in 8-bit vector allocation routines
(thanks to Kon Lovett)
- added `-:H' runtime option to dump heap state on exit
- fixed missing change in Makefile.cygwin (thanks to John Cowan)
- fixed bug in `let-optionals' macro that caused problems when the
rest-variable was actually named `rest' (thanks to Alejandro
Forero Cuervo)
- when Scheme files are translated to C++ or Objective-C, `csc'
will register the feature-identifiers `chicken-scheme-to-c++'/
`chicken-scheme-to-objc' ar compile-time
- fixed bug in expansion of `#!key' parameters in lambda-lists
- debug-output for forcing finalizers on exit goes to stderr now
(thanks to Joerg Wittenberger)
- the installation routines for extensions automatically add
version-number information if none is given in the extension
property list (suggested by Alejandro Forero Cuervo)
- `standard-extension' accepts `#f' now for the version number
and will use the version that has been obtained via
`chicken-install'
- `fifo?', `symbolic-link?', `directory?', `regular-file?', `socket?',
`character-device?' and `block-device?' now accepts file-descriptors
or filenames
- `find-files' takes keyword arguments, now (including the options
to process dotfiles and ignore symbolic links); the old argument
signature is still supported but deprecated
- removed dependency on `symbol-append' in some macros used in
srfi-4.scm to be able to compile the system with older chickens
- fixed bug in script that generates development snapshot
- added build-variable `TARGET_FEATURES', which can be used to pass
extra options enabling or disabling fetures for a system configured
for cross-compilation
- added compiler and interpreter option `-no-feature FEATURENAME' that
disables predefined feature identifiers
- code compiled with interrupts disabled will not emit inline files
for global inlining since they may execute in a context where
interrupts are enabled
- the `setup.defaults' file that holds download sources for
`chicken-install' now allows aliases for locations
- CHICKEN systems build from cross-compilation now by default
transparently build and install extensions for both the host
and target parts of the cross-compilation setup; the options
`-host' and `-target' can now be used to selectively build
an extensions for the host- and the target system, respectively
- also added `-host' and `-target' options to `chicken-status' and
`chicken-uninstall'
- `chicken-install' now respects the `http_proxy' environment variable
(contributed by Stephen Eilert)
- the `srfi-4' library unit has been heavily cleaned up and optimized
- optimization-level 3 now enables global inlining
- fixed the case that declarations listing global identifiers did not
correctly rename them
- deprecated `-N' option shortcut for `-no-usual-integrations' option in
`csc'
- `csi' now offers a toplevel command `,e' for invoking an external
editor (suggested by Oivind Binde)
- the `describe' command in `csi' now detects many circular lists
(contributed by Christian Kellermann)
- `csi' doesn't depend on the `srfi-69' library unit anymore
- when a closing sequence delimiter is missing or incorrect, the
reader also reports the starting line of the sequence
- the reader signals an error when a file contains certain characters
that indicate that it is a binary file
- procedure-information shown by the printer for procedures is now
corrected for some library procedures that where missing the correct
information; `getter-with-setter' copies procedure-information objects
into the newly created accessor procedure, if available
- calls to some known pure standard- or extended procedures are removed, if
the procedures are called with side-effect free arguments and the
result is not used (this can also by enabled for user procedures with
the `constant' declaration)
- fixed some build-system bugs related to installation
- fixed a problem in the C runtime code that prevented it to be compileable
without a configuration header-file
- the makefile-target to build a bootstrapping `chicken' executable
performs multi-stage build now
- changed error message when required extension is out of date (thanks to
Mario Goulart)
- documented library units loaded by default in `csi' (thanks to Moritz
Heidkamp)
- added `boot-chicken' makefile target to simplify bootstrapping
the system from sources and documented this in the README
(suggested by Jim Ursetto)
- CHICKEN can now be built on haiku (contributed by Chris Roberts)
- on Solaris, the system can be compiled with the SunPro C compiler
(thanks to Semih Cemiloglu)
- removed the `-disable-warnings' compiler option and `disable-warnings'
declaration specifier
- `fx/' and `fxmod' generate now faster code in safe mode
- cleaned up manual pages
- slightly optimized variable- and procedure-access
- in the compiler `-debug-level 2' implies `-scrutinize'
- internal compiler-transformation for `for-each' and `map'
apply now with any expression as the procedure argument
- the compiler warns about non-intrinsic exported toplevel variables
which are declared to be safe
- `csc' didn't handle the `-verbose' option (thanks to Mario Goulart)
- the `,d' command in `csi' now detects circular lists (thanks to
Christian Kellermann)
- strings passed to C runtime functions and which are converted to
0-terminated C strings are now checked for not containing embedded
`\0' characters (thanks to Peter Bex)
- errors in user-defined record printers are caught and shown in the
output instead of throwing an error to avoid endless recursion when
an error message is printed
- a feature identifier named `chicken-MAJOR.MINOR' is now defined
to simplify conditionalization of code on the CHICKEN version
- `getter-with-setter' copies the lambda-information (if available) from
the getter to the generated procedure
- `time' uses a somewhat more concise output format and outputs timing
information to stderr instead of stdout
- added a new chapter on cross-development to the manual
- added the `safe-globals' declaration specifier
- split up manual chapter `Modules and macros' into two chapters
(named `Modules' and `Macros', respectively - suggested by
Mario Goulart)
- the last 5 non-precompiled regular expressions are now internally
cached in compiled form, which speeds up repeated matching of
the same uncompiled regular expression dramatically
- added the new procedure `yes-or-no?' to the `utils' library unit
- added a `bench' makefile target that runs some non-trivial
benchmark programs
- added `install-target' and `install-dev' makefile target for
installing only target system libraries in cross-mode and
development files (static libraries and headers)
- added `[-]no-procedure-checks-for-toplevel-bindings' compiler
option and declaration
- usage of unimported syntax in modules gives more usable
error messages; in particular, used but unimported FFI forms are
now detected
- invalid syntactic forms (mostly `()') encountered by the compiler
or interpreter show the contextual form containing the expression,
or, if indicated by the context warns about missing imports
- simplified manual pages of all core tools - they now refer to
the output shown by invoking `<tool> -help'
- added new option `-feature FEATURE' to `chicken-install' tool
to pass feature-identifiers to invocations of `csc'
- removed deprecated `-host-extension' option from `chicken-install'
- `chicken-status' in a system built for cross-compilation now
lists extensions installed in the target prefix, unless the
new `-host' option is given on the command line
- `chicken-uninstall' in a system built for cross-compilation now
removes extensions installed in the target prefix, unless the
new `-host' option is given on the command line
- added missing entry for `finite?' to the `chicken' module
exports
- added new procedure `port-closed?' to the `library' unit
(contributed by Peter Bex)
- added new procedure `symbol-append' to the library unit
- the compiler-option `-optimize-level 0' is equivalent to
`-no-compiler-syntax -no-usual-integrations`
- internal rewritings of `map' and `for-each' ensure correct
evaluation order of the arguments and does a better job
at detecting non-list arguments (thanks to Jim Ursetto)
- `void' now takes arbitrary arguments and ignores them
- deprecated `noop' (from the `data-structures' unit) which
is now replaced by `void'
- the `time' macro now performs a major garbage collection
before executing the contained expressions and writes
the timings in a more compact format to the port given
by `(current-error-port)' instead of the standard output
port
- definitions of the form `(define define ...)' and
`(define-syntax define-syntax ...)' now trigger an error,
as required by R5RS (thanks to Jeronimo Pellegrini and Alex
Shinn)
- deprecated `random-seed' from the `extras' unit, since it
is identical to `randomize'
- added new procedure `create-temporary-directory' to the
`files' unit
- deprecated the optional path separator argument to
`make-pathname'
- slightly improved the performance of keyword argument
processing
- removed the deprecated `canonical-path' and `current-environment'
procedures from the `posix' unit
- warnings that mostly refer to programming style issues are
now coined `notes' and are only shown in the interpreter
or when debug-mode is enabled or when scrutiny is enabled
when compiling
2010-09-13 14:43:16 +02:00
|
|
|
.elif ${OPSYS} == "Haiku"
|
|
|
|
PLATFORM= haiku
|
2008-03-11 00:41:05 +01:00
|
|
|
.else
|
|
|
|
#PLATFORM+= ${OPSYS} == "Interix"
|
|
|
|
# possible choices left: mingw-msys mingw cygwin cross-linux-mingw
|
|
|
|
PKG_FAIL_REASON= "${OPSYS} is not supported"
|
|
|
|
.endif
|
|
|
|
|
Update Chicken to version 4.7.0
Provided by Peter Bex on IRC.
Changes in 4.7.0
- Build system
- On BSD, libchicken.so is linked with -lpthread, as this seems
to be required for linking libraries that require pthreads
- The C header-files are now installed in a subdirectory below
the "PRFIX/include" directory to allow installation of multiple
chickens with different PROGRAM_PREFIX/PROGRAM_SUFFIX settings
in the same prefix; to avoid conflicts with existing CHICKEN
headers, it is recommended to completely remove any old
installation before installing the new version
- the PROGRAM_PREFIX and PROGRAM_SUFFIX configuration settings
are applied to generated files and directories which allows
perform differently named installations into the same PREFIX
- increaded binary-compatibility version from 5 to 6, which
means installed extensions in an existing installations will
have to be re-installed
- bugfixes in mingw/msys makefiles
- Sven Hartrumpf contributed a bugfix to the internal helper
script for creating distribution directories
- Peter Bex has cleaned up the makefiles heavily, making the
build more maintainable and easier to modify; thanks to all
who helped testing this new build
- renamed the makefile to `GNUmakefile' to catch using the
a make(3) other than GNU make
- configuration-header fix for BSD systems (thanks to Peter Bex
and Christian Kellermann)
- Core libraries
- the `regex' library unit has been removed and is separately
available as an extension which should be fully backwards-
compatible
- `irregex' is now a core library unit and replaces the `regex' API
- "extras" unit
- fixed pretty-printer output of certain escaped character
sequences inside strings (thanks to Mario Domenech Goulart,
thanks to Kon Lovett for pointing out a missing test-file)
- The pretty printer did not escape some control characters correctly
(reported by Alan Post)
- control-characters in symbol-names are now properly escaped if
the symbol is printed readably (thanks to Alaric Snell-Pym
for pointing this out)
- the deprecated `random-seed' function has been removed
- "files" unit
- fixed bug in `normalize-pathname'
- `file-copy' and `file-move' check whether the source-file is a
directory
- `delete-directory' now optionally deletes directories recursively
- "irregex" unit
- Peter Bex has contributed various bugfixes and performance
enhancements
- "library" unit
- Added "condition->list" (thanks to Christian Kellermann)
- The reader accepts now escaped octal character codes in string
literals
- Read-syntax can return zero values to indicate ignored objects
- R5RS output output routines now always return a "void" result
- "\|" was not correctly escaped when occurring inside
symbol print names
- added `condition->list', contributed by Christian Kellermann
- added `equal=?'
- removed deprecated `getenv', `left-section', `right-section',
`project', `c-runtime' and `noop'
- added missing import-library entry for `vector-copy!' (thanks
to Jules Altfas)
- circular or excessively deeply nested data generates a more
useful error message when encountered by `equal?'
- `list-tail' gives now a better error message when passed a
non-list argument
- fixed bug in `getter-with-setter' that modified the first
argument if it already had a setter procedure attached
- fixed incorrect size of internal data vector used in `time'
(thanks to Kon Lovett)
- "lolevel" unit
- removed deprecated `global-bound?', `global-make-unbound',
`global-ref' and `global-set!' procedures
- added support for `pointer-vectors':
- make-pointer-vector
- pointer-vector?
- pointer-vector-length
- pointer-vector-ref
- pointer-vector-set!
- "posix" unit
- "close-input-pipe" did not return the status code of a
terminated process on Windows (reported by Mario Domenech Goulart)
- added `file-creation-mode' (suggested by Mario Domenech Goulart)
- "setup-api" unit
- `required-extension-version' and `required-chicken-version' have
been deprecated
- "srfi-18" unit
- removed deprecated `milliseconds->time' and `time->milliseconds'
procedures
- `make-mutex' incorrectly created mutexes as initially owned by
the current threads (thanks to Joerg Wittenberger)
- the file-descriptor handling in the scheduler has been simplified
and performs some sanity checks
- deadlock in the scheduler now terminates the process instead of
attempting to throw an error
- added some sanity checks to the scheduler
- "tcp" unit
- Fixed bug in "tcp-abandon-port" (reported by Jim Ursetto)
- "utils" unit
- `compile-file' now returns `#f' when the compilation fails,
instead of raising an error
- Compiler
- Removed unreliable lambda-lifting optimization (now, really!);
the "-lambda-lift" option is still accepted but produces a
warning
- When "-scrutinize" is given, installed ".types" files will be
automatically consulted for extensions and used units
- Fixed optimizer bug in handling of "let" forms with multiple
bindings which could result in toplevel assignments being
silently dropped (reported by Moritz Heidkamp)
- the `-accumulate-profile' option did not provide a way to
specify the target profile data file - now `-profile-name'
must always be given when accumulated profiling is done
(thanks to Taylor Venable)
- added `-module' option, which wraps the code into an implicit
module
- removed check for unsafe toplevel calls in safe mode
- intrinsic handling of `exact->inexact' and `string->number' is
now more efficient
- fixed bug in leaf-routine optimization (thanks to David
Dreisigmeyer)
- unit-toplevel entry-points are now named differently, which
may break binary-compatibility with existing compiled Scheme
code modules
- fixed invalid dropping of unused external entry-points in
block-mode
- fixed incorrect lambda-list check in scrutinizer (thanks to
Alan Post)
- Kon Lovett reported numerous bugs in the type-database used
by the scrutinizer
- `-fwrapv' is disabled on OpenBSD, since the default compiler
does not support this option (thanks to Christian Kellermann)
- on Solaris `gcc' is used by default, override `C_COMPILER'
to use the Sun compiler instead
- declaring a function `notinline' will prevent direct-call
optimization for known procedure calls
- the implementation of overflow-detection for arithmetic operations
on fixnums have been replaced and now allow using the full 63-bit
range of fixnums on 64-bit systems
- fixed serious inlining-bug (thanks to Sven Hartrumpf)
- constant-folding in the compiler has been simplified and
is more reliable (thanks to Sven Hartrumpf)
- optimization-levels 3 and higher imply `-unboxing -inline-global'
- added new declaration `unsafe-specialized-arithmetic' which allows
optimizing unboxed floating-point arithmetic in safe mode
- removed `scrutinize' declaration
- the warning shown when unimported identifiers are used in compiled
modules now also shows the name of the procedure where the
identifier is referenced (suggested by Alaric Snell-Pym)
- Documentation
- Added list of installed files to README
- Documented remaining "c...r" standard procedures (thanks to
Juergen Lorenz)
- The manual is now installed in HTML format in
PREFIX/share/chicken/doc, many thanks to Jim Ursetto for
contributing is excellent `manual-labor' extension which made
this possible
- Foreign function interface
- Added support for missing "(const [XXX-]c-string)" foreign type
(thanks to Moritz Heidkamp)
- removed deprecated `pointer', `nonnull-pointer', `byte-vector'
and `nonnull-byte-vector' types
- added missing result-type handling for `unsigned-integer64'
(thanks to Moritz Heidkamp)
- added `foreign-type-size' macro
- added the new foreign type `size_t' (suggested by Moritz
Heidkamp)
- added the missing `unsigned-integer64' foreign type (thanks
to Moritz for catching this)
- added new foreign type `pointer-vector' which maps to `void **'
and provided a low-level API in the `lolevel' library unit for
manipulating pointer vectors
- Runtime system
- Fixed typo in "runtime.c" (thanks to Sven Hartrumpf)
- Little-endian detection on MIPS systems was not correct (thanks
to Christian Kellermann)
- Fixed bug in handling of runtime-options with arguments (also
reported by Christian Kellermann)
- `equal?' does not compare procedures recursively anymore
- fixed incorrect use of alloca.h on OpenBSD (thanks to
Christian Kellermann and Alan Post)
- checks for NaN and infinity are now done using ISO C99
operations, which required various changes to `chicken.h'
to make the code compile in ISO C99 mode
- remaining debris regarding MSVC builds has been removed
- fixed bug in argument-type check for 64-bit integer (thanks
to Kon Lovett)
- increased default trace-buffer size from 10 to 16
- fixed bug in low-level termination routine (thanks to
Jeronimo Pellegrini)
- the scheduler handles violations of internal invariants
regarding threads slightly more gracefully (thanks to Jim
Ursetto)
- fixed broken sleep-time conversion (thanks to Karel Miklav)
- repaired broken handling of multiple finalizers that referred
to the same object (reported by Moritz Heidkamp)
- fixed problem with reader and escaping of single-char symbols
- Syntax expander
- For-syntax syntax definitions where not correctly retained inside
modules
- Peter Bex fixed various critical bugs in the expander
- The simplification for quasiquote expressions was unable
to handle certain circular data (reported by Moritz Heidkamp)
- `syntax-rules' now supports tail-patterns and is now fully
SRFI-46 compatible - many thanks to Peter Bex for implementing
this
- Peter Bex provided a bugfix for resolution of primitive imports
- handling of internal definitions with shadowed defining
forms is now done correctly - fix once again from Peter Bex
- corrected non-standard behaviour of quasiquote with respect
to nested quasiquotations - another bugfix by our mighty macro
master
- removed stub-implementation of `define-macro'
- handled case where a global redefinition of `cons' influenced
a non-inlined internal use in the expander (thanks to David
Steiner)
- `define-record' now allows defining SRFI-17 setter procedures
for accessing slots
- the expansion of DSSSL lambda-lists uses now `let-optionals*'
internally instead of `let-optionals' and so allows
back-references to earlier formal variables; this also results in
faster and more compact code for argument-list destructuring
(thanks to Alan Post)
- new "implicit renaming" macro facility contributed by Peter Bex
(see `ir-macro-transformer')
- record-definitions are now made local to the module in which
they are defined (thanks to Jim Ursetto)
- parameters are now settable and can be modified using `set!'
(SRFI-17)
- added a SRFI-17 setter to `list-ref'
- added literal blob syntax ("#{ ... }")
- Tools
- chicken-install
- option "-deploy" does not compile deployed extensions with
"-setup-mode" anymore to avoid problems with dynamic loading on
some platforms (specifically Mac OS X)
- option "-deploy" option did not copy the correct library
(including the version-number) (thanks to Christian Kellermann)
- added support for proxy-authentification (thanks to Iruata Souza)
- when installing from a local directory `chicken-install' now
removes existing `*.so' files in that location to avoid stale
binaries when the `make' syntax is used in setup scripts
- chicken-bug
- removed disabled e-mail support
- csc
- removed `-static-extension' option
- removed deprecated `-windows' option
- fixed incorrect use of `chicken.rc' on non-Windows platforms
in `-gui' mode (thanks to "ddp")
- when compiling in C++ mode, the compiler will be called with the
`-Wno-write-strings' option
- `-frwapv' has been added to the default C compiler options
- csi
- the ",m" toplevel command now accepts "#f" to switch back to
the initial empty module context (suggested by Christian Kellermann)
- fixed broken `,g' toplevel command
- deprecated `script' feature identifier (use `chicken-script'
instead)
- options `-p' and `-P' and `-e' imply `-no-init'
- the call-trace reported will not include exception-handler code
anymore (suggested by Christian Kellermann)
2011-05-26 22:06:13 +02:00
|
|
|
MAKE_FILE= GNUmakefile
|
|
|
|
MAKE_ENV+= C_COMPILER=$(CC:Q)
|
2008-03-11 00:41:05 +01:00
|
|
|
MAKE_ENV+= HOST= # fix ${HOST} prepending ${CC}
|
|
|
|
# Need to have these in MAKE_FLAGS, MAKE_ENV is not enough due to the
|
|
|
|
# way the build system overrides them.
|
|
|
|
MAKE_FLAGS+= PLATFORM=${PLATFORM:Q} PREFIX=${PREFIX:Q} DESTDIR=${DESTDIR:Q}
|
|
|
|
MAKE_FLAGS+= TOPMANDIR=${PREFIX:Q}/${PKGMANDIR}
|
|
|
|
MAKE_FLAGS+= INFODIR=${PREFIX:Q}/${PKGINFODIR:Q}
|
|
|
|
MAKE_FLAGS+= DOCDIR=${PREFIX:Q}/share/doc/${PKGNAME_NOREV}
|
|
|
|
|
Update to Chicken 4.6.0
Contributed by Peter Bex via IRC.
Changes in 4.6.0
- the licenses used in all components of the core system have
been collected in the LICENSE file (Thanks to Peter Bex)
- Added new compiler option `-no-module-registration' which
omits generation of module registration code, even when
generation of import libraries has not been enabled
- running `chicken' without arguments now hints at the
existence of `csi' and `csc'
- `caar', `cdar' and `cddr' generate faster code
- calls to `list', `vector' and the internal structure
allocation primitive that take 1 to 8 arguments generate
faster code
- `chicken-install' now checks the version of the setup
configuration file `setup.defaults'
- added option `-exact' to `chicken-status' and `chicken-uninstall',
which treats the pattern argument as the literal name of the
extension to be listed/deinstalled
- `assert' shows line-number information, if available
(suggested by Alejandro Forero Cuervo)
- interpreted code records the lexical-environment at call-
sites, which can in case of an error be inspected with the
new `,c', `,f' and `,g' csi toplevel commands
- the evaluation-result history in `csi' can be inspected and
cleared (to reduce memory load) with the toplevel commands
`,h' and `,ch'
- unit `data-structures': deprecated `left-section' and
`right-section'
- fixed bug that caused the static syntax-environment of
syntax exported by a module to be incomplete
- module `setup-api': Documented the `version>=?' and
`extension-name-and-version' proceedures
- unit `posix': `utc-time->seconds' is considerably
faster on Mac OS X (thanks to Jim Ursetto);
added new procedure `file-type'
- the `time' macro now shows the correct number of minor
garbage collections
- the immediate-object check inside the marking procedure
of the garbage collector has been manually inlined which
results in a significant GC speedup, depending on memory
load
- unit `srfi-18' and `scheduler': various bugfixes (thanks
to Joerg Wittenberger)
- unit `srfi-4': bugfix in 8-bit vector allocation routines
(thanks to Kon Lovett)
- added `-:H' runtime option to dump heap state on exit
- fixed missing change in Makefile.cygwin (thanks to John Cowan)
- fixed bug in `let-optionals' macro that caused problems when the
rest-variable was actually named `rest' (thanks to Alejandro
Forero Cuervo)
- when Scheme files are translated to C++ or Objective-C, `csc'
will register the feature-identifiers `chicken-scheme-to-c++'/
`chicken-scheme-to-objc' ar compile-time
- fixed bug in expansion of `#!key' parameters in lambda-lists
- debug-output for forcing finalizers on exit goes to stderr now
(thanks to Joerg Wittenberger)
- the installation routines for extensions automatically add
version-number information if none is given in the extension
property list (suggested by Alejandro Forero Cuervo)
- `standard-extension' accepts `#f' now for the version number
and will use the version that has been obtained via
`chicken-install'
- `fifo?', `symbolic-link?', `directory?', `regular-file?', `socket?',
`character-device?' and `block-device?' now accepts file-descriptors
or filenames
- `find-files' takes keyword arguments, now (including the options
to process dotfiles and ignore symbolic links); the old argument
signature is still supported but deprecated
- removed dependency on `symbol-append' in some macros used in
srfi-4.scm to be able to compile the system with older chickens
- fixed bug in script that generates development snapshot
- added build-variable `TARGET_FEATURES', which can be used to pass
extra options enabling or disabling fetures for a system configured
for cross-compilation
- added compiler and interpreter option `-no-feature FEATURENAME' that
disables predefined feature identifiers
- code compiled with interrupts disabled will not emit inline files
for global inlining since they may execute in a context where
interrupts are enabled
- the `setup.defaults' file that holds download sources for
`chicken-install' now allows aliases for locations
- CHICKEN systems build from cross-compilation now by default
transparently build and install extensions for both the host
and target parts of the cross-compilation setup; the options
`-host' and `-target' can now be used to selectively build
an extensions for the host- and the target system, respectively
- also added `-host' and `-target' options to `chicken-status' and
`chicken-uninstall'
- `chicken-install' now respects the `http_proxy' environment variable
(contributed by Stephen Eilert)
- the `srfi-4' library unit has been heavily cleaned up and optimized
- optimization-level 3 now enables global inlining
- fixed the case that declarations listing global identifiers did not
correctly rename them
- deprecated `-N' option shortcut for `-no-usual-integrations' option in
`csc'
- `csi' now offers a toplevel command `,e' for invoking an external
editor (suggested by Oivind Binde)
- the `describe' command in `csi' now detects many circular lists
(contributed by Christian Kellermann)
- `csi' doesn't depend on the `srfi-69' library unit anymore
- when a closing sequence delimiter is missing or incorrect, the
reader also reports the starting line of the sequence
- the reader signals an error when a file contains certain characters
that indicate that it is a binary file
- procedure-information shown by the printer for procedures is now
corrected for some library procedures that where missing the correct
information; `getter-with-setter' copies procedure-information objects
into the newly created accessor procedure, if available
- calls to some known pure standard- or extended procedures are removed, if
the procedures are called with side-effect free arguments and the
result is not used (this can also by enabled for user procedures with
the `constant' declaration)
- fixed some build-system bugs related to installation
- fixed a problem in the C runtime code that prevented it to be compileable
without a configuration header-file
- the makefile-target to build a bootstrapping `chicken' executable
performs multi-stage build now
- changed error message when required extension is out of date (thanks to
Mario Goulart)
- documented library units loaded by default in `csi' (thanks to Moritz
Heidkamp)
- added `boot-chicken' makefile target to simplify bootstrapping
the system from sources and documented this in the README
(suggested by Jim Ursetto)
- CHICKEN can now be built on haiku (contributed by Chris Roberts)
- on Solaris, the system can be compiled with the SunPro C compiler
(thanks to Semih Cemiloglu)
- removed the `-disable-warnings' compiler option and `disable-warnings'
declaration specifier
- `fx/' and `fxmod' generate now faster code in safe mode
- cleaned up manual pages
- slightly optimized variable- and procedure-access
- in the compiler `-debug-level 2' implies `-scrutinize'
- internal compiler-transformation for `for-each' and `map'
apply now with any expression as the procedure argument
- the compiler warns about non-intrinsic exported toplevel variables
which are declared to be safe
- `csc' didn't handle the `-verbose' option (thanks to Mario Goulart)
- the `,d' command in `csi' now detects circular lists (thanks to
Christian Kellermann)
- strings passed to C runtime functions and which are converted to
0-terminated C strings are now checked for not containing embedded
`\0' characters (thanks to Peter Bex)
- errors in user-defined record printers are caught and shown in the
output instead of throwing an error to avoid endless recursion when
an error message is printed
- a feature identifier named `chicken-MAJOR.MINOR' is now defined
to simplify conditionalization of code on the CHICKEN version
- `getter-with-setter' copies the lambda-information (if available) from
the getter to the generated procedure
- `time' uses a somewhat more concise output format and outputs timing
information to stderr instead of stdout
- added a new chapter on cross-development to the manual
- added the `safe-globals' declaration specifier
- split up manual chapter `Modules and macros' into two chapters
(named `Modules' and `Macros', respectively - suggested by
Mario Goulart)
- the last 5 non-precompiled regular expressions are now internally
cached in compiled form, which speeds up repeated matching of
the same uncompiled regular expression dramatically
- added the new procedure `yes-or-no?' to the `utils' library unit
- added a `bench' makefile target that runs some non-trivial
benchmark programs
- added `install-target' and `install-dev' makefile target for
installing only target system libraries in cross-mode and
development files (static libraries and headers)
- added `[-]no-procedure-checks-for-toplevel-bindings' compiler
option and declaration
- usage of unimported syntax in modules gives more usable
error messages; in particular, used but unimported FFI forms are
now detected
- invalid syntactic forms (mostly `()') encountered by the compiler
or interpreter show the contextual form containing the expression,
or, if indicated by the context warns about missing imports
- simplified manual pages of all core tools - they now refer to
the output shown by invoking `<tool> -help'
- added new option `-feature FEATURE' to `chicken-install' tool
to pass feature-identifiers to invocations of `csc'
- removed deprecated `-host-extension' option from `chicken-install'
- `chicken-status' in a system built for cross-compilation now
lists extensions installed in the target prefix, unless the
new `-host' option is given on the command line
- `chicken-uninstall' in a system built for cross-compilation now
removes extensions installed in the target prefix, unless the
new `-host' option is given on the command line
- added missing entry for `finite?' to the `chicken' module
exports
- added new procedure `port-closed?' to the `library' unit
(contributed by Peter Bex)
- added new procedure `symbol-append' to the library unit
- the compiler-option `-optimize-level 0' is equivalent to
`-no-compiler-syntax -no-usual-integrations`
- internal rewritings of `map' and `for-each' ensure correct
evaluation order of the arguments and does a better job
at detecting non-list arguments (thanks to Jim Ursetto)
- `void' now takes arbitrary arguments and ignores them
- deprecated `noop' (from the `data-structures' unit) which
is now replaced by `void'
- the `time' macro now performs a major garbage collection
before executing the contained expressions and writes
the timings in a more compact format to the port given
by `(current-error-port)' instead of the standard output
port
- definitions of the form `(define define ...)' and
`(define-syntax define-syntax ...)' now trigger an error,
as required by R5RS (thanks to Jeronimo Pellegrini and Alex
Shinn)
- deprecated `random-seed' from the `extras' unit, since it
is identical to `randomize'
- added new procedure `create-temporary-directory' to the
`files' unit
- deprecated the optional path separator argument to
`make-pathname'
- slightly improved the performance of keyword argument
processing
- removed the deprecated `canonical-path' and `current-environment'
procedures from the `posix' unit
- warnings that mostly refer to programming style issues are
now coined `notes' and are only shown in the interpreter
or when debug-mode is enabled or when scrutiny is enabled
when compiling
2010-09-13 14:43:16 +02:00
|
|
|
TEST_TARGET= check # works only after installation
|
Update to 4.1.0, provided by Peter Bex via pkgsrc-wip (wip/chicken-current).
4.1.0
- The new parameter "parantheses-synonyms" and the command-line
option "-no-parantheses-synonyms" allows disabling list-like behaviour
of "{ ... }" and "[ ... ]" tokens
- The new parameter "symbol-escape" and the command-line
option "-no-symbol-escape" allows disabling "| ... |" symbol escape
syntax
- Added command-line option "-r5rs-syntax" to disable CHICKEN-specific
read-syntax
- Added compiler command-line-option "-no-compiler-syntax"
- Deprecated "getenv" (use "get-environment-variable" instead)
- Removed "macro?" and "undefine-macro!"
- Support for Microsoft Visual Studio / MSVC has been dropped
- The compiler provides now a simple flow-analysis pass that does
basic checking of argument-count and -types for core library procedures
(new option "-scrutinize")
- New compiler-options "-no-argc-checks", "-no-bound-checks",
"-no-procedure checks", "-no-procedure-checks-for-usual-bindings",
"-types TYPEFILE" and "-consult-inline-file FILENAME"
- Added a "chicken-setup" stub-application to catch incorrect use of
this tool (which has been replaced in 4.0.0 with "chicken-install")
- Changed "setup-install-flag" and "setup-verbose-flag" to
"setup-install-mode" and "setup-verbose-mode" in "setup-api" module,
the old names are still available but deprecated
- Posix unit:
added "socket?", "block-device?" and "character-device?", deprecated
redundant "stat-..." procedures
- Also in Posix unit: "canonical-path" has been deprecated, "normalize-pathname"
from the "files" unit provides now most of the functionality
- Added "directory-exists?"
- "(for-each (lambda ...) X)" is compiled as a loop
- The argument-count check for format-strings for "[sf]printf" with a constant
string argument is done at compile-time
- A stub application named "chicken-setup" is installed to catch when a
user invokes theobsolete tool instead of the new "chicken-install".
4.0.0
- removed `apropos' and `apropos-list' from the "utils" library unit;
available as an extension
- removed texinfo and PDF documentation - this will possible be added back
later
- replaced PCRE regex engine with Alex Shinn's "irregex" regular expression
package
- removed `-extension' option
- removed `-static-extensions' csc option and added `-static-extension NAME'
- `regex' unit: removed `regexp*' and `regex-optimize'
- added `CHICKEN_new_finalizable_gc_root()'
- `length' checks its argument for being cyclic
- removed custom declarations and "link-options" and "c-options" declarations
- deprecated "-quiet" option to "chicken" program
- added "-update-db" option to chicken-install
- the compiler now suggests possibly required module-imports
- moved non-standard syntax-definitions into "chicken-syntax" library unit
- the pretty-printer prints the end-of-file object readably now
- alternative conditional execution paths have separate allocation computation
(previously the allocation of all alternatives was coalesced)
- removed unused "%kmp-search" from "srfi-13" library unit
- expander handles syntax-reexports and makes unexported syntax available
for exported expanders in import libraries
- added checks in some procedures in the "tcp" library unit
- the macro system has been completely overhauled and converted
to hygienic macros
- a macro-aware module system has been added
- added "-sx" option to csi
- removed the following deprecated functions:
[un]shift!
andmap ormap
byte-vector? byte-vector-fill!
make-byte-vector byte-vector
byte-vector-set! byte-vector-ref
byte-vector->list list->byte-vector
string->byte-vector byte-vector->string
byte-vector-length
make-static-byte-vector static-byte-vector->pointer
byte-vector-move! byte-vector-append!
set-file-position! set-user-id! set-group-id!
set-process-group-id!
macro? undefine-macro!
- the situation-identifiers "run-time" and "compile-time" have
been removed
- the compiler options "-check-imports", "-import" and "-emit-exports"
have been removed
- new procedures:
strip-syntax
expand
- new macros
define-syntax
module
export
- the following macros have been removed:
define-foreign-record
define-foreign-enum
define-macro
define-extension
- "local" mode, in which locally defined exported toplevel variables can
be inlined
- new options and declarations "[-]local", "[-]inline-global" and "-emit-inline-file"
- optimization levels changed to use inlining:
-optimize-level 3: enables -inline -local (but *not* -unsafe)
-optimize-level 4: enables -inline -local -unsafe
- increased default inlining-limit to 20
- support for cross-module inlining
- "make <VARIABLES> bench" runs the benchmark suite
- "chicken-setup" has been replaced by new command line tools
"chicken-install", "chicken-uninstall" and "chicken-status", which are
more flexible and allow greater freedom when creating local or application-
specific repositories
- extension-installation can be done directly from SVN repositories or a local
file tree
- enabled chicken mirror site as alternative download location
2009-08-08 17:12:24 +02:00
|
|
|
|
2002-08-20 16:53:18 +02:00
|
|
|
.include "../../mk/bsd.pkg.mk"
|