2018-10-18 16:32:43 +02:00
|
|
|
# $NetBSD: Makefile,v 1.60 2018/10/18 14:32:43 jperkin Exp $
|
2002-08-20 16:53:18 +02:00
|
|
|
|
chicken: Update lang/chicken to 4.13.0
Patch provided by dziltener via PR pkg/52929, thanks!
Changes:
4.13.0
- Security fixes
- CVE-2017-6949: Remove unchecked malloc() call in SRFI-4 constructors
when allocating in non-GC memory, resulting in potential 1-word
buffer overrun and/or segfault (thanks to Lemonboy).
- CVE-2017-9334: `length' no longer crashes on improper lists (fixes
#1375, thanks to "megane").
- CVE-2017-11343: The randomization factor of the symbol table was
set before the random seed was set, causing it to have a fixed value
on many platforms.
- Core Libraries
- Unit "posix": If file-lock, file-lock/blocking or file-unlock are
interrupted by a signal, we now retry (thanks to Joerg Wittenberger).
- char-ready? on string ports now also returns #t at EOF, as per R5RS;
in other words, it always returns #t (thanks to Moritz Heidkamp)
- Unit srfi-4: Fixed typo that broke SRFI-17 generalised set! syntax
on s8vectors (thanks to Kristian Lein-Mathisen).
- Large literals no longer crash with "invalid encoded numeric literal"
on mingw-64 (#1344, thanks to Lemonboy).
- Unit irregex: Fix bug that prevented multibyte UTF-8 character sets
from being matched correctly (Thanks to Lemonboy and Chunyang Xu).
- Runtime system:
- The profiler no longer uses malloc from a signal handler which may
cause deadlocks (#1414, thanks to Lemonboy).
- The scheduler no longer indirectly hangs on to the old thread
when switching to a new one, which caused excessive memory
consumption (#1367, thanks to "megane").
- C++ programs no longer fail with a symbol lookup error when
compiled with debugger support (-d3 or -debug-info).
- Syntax expander
- Renaming an identifier twice no longer results in an undo of the
rename (fixes #1362, thanks to "megane").
- Build system
- Fixed broken compilation on NetBSD, due to missing _NETBSD_SOURCE.
- Fixed compilation on DragonflyBSD due to no feature macro support
in its standard C library (thanks to Markus Pfeiffer).
- Compiler
- The scrutinizer no longer uses 'fixnum as the type for fixnums
that might not fit into a fixnum on 32-bit architectures.
- Foreign function interface
- Correctly calculate memory requirements of Scheme objects produced
from foreign types with "const" qualifiers, avoiding memory
corruption (#1424, thanks to Vasilij Schneidermann and Lemonboy)
- Do not read beyond temporary stack buffer, which could lead to
a crash when returning from a foreign callback (#1428).
4.12.0
- Security fixes
- CVE-2016-6830: Fix buffer overrun due to excessively long argument
or environment lists in process-execute and process-spawn (#1308).
This also removes unnecessary limitations on the length of
these lists (thanks to Vasilij Schneidermann).
- CVE-2016-6831: Fix memory leak in process-execute and
process-spawn. If, during argument and environment list
processing, a list item isn't a string, an exception is thrown,
in which case previously malloc()ed strings weren't freed.
- CVE-2016-9954: Irregex has been updated to 0.9.6, which fixes
an exponential explosion in compilation of nested "+" patterns.
- Compiler:
- define-constant now correctly keeps symbol values quoted.
- Warnings are now emitted when using vector-{ref,set!} or one
of take, drop, list-ref or list-tail with an out of range index
for vectors and proper lists of a definitely known length.
- The scrutinizer will no longer drop knowledge of the length of a
vector. It still drops types of its contents (which may be mutated).
- Fixed incorrect argvector restoration after GC in directly
recursive functions (#1317).
- "Direct" procedure invocations now also maintain debug info (#894).
- Syntax expander
- DSSSL lambda lists have improved hygiene, so they don't need
the chicken or scheme modules to be imported in full (#806).
- The let-optionals* macro no longer needs "quote", "car" and "cdr"
to be imported and bound to their default values (#806).
- Runtime system:
- C_locative_ref has been deprecated in favor of C_a_i_locative_ref,
which is faster because it is inlined (#1260, thanks to Kooda).
- The default error handler now truncates very long condition
messages (thanks to Lemonboy).
- Weak symbol GC (-:w) no longer drops random symbols (#1173).
- The number of arguments to procedures, both via "apply" and direct
invocation, are now limited only by the C stack size (#1098).
- "time" macro now shows peak memory usage (#1318, thanks to Kooda).
- Avoid crashes in ffi callbacks after GC (#1337, thanks to cosarara).
- Core libraries:
- Irregex has been updated to 0.9.5, which fixes matching of all "bow"
occurrances beyond the first with irregex-fold (upstream issue #14).
- Keywords are more consistently read/written, like symbols (#1332).
- SRFI-39: When jumping out of a parameterized dynamic extent,
"parameterize" now remember the actual values, so when jumping back
in, they are restored (fixes #1336, thanks to Joo ChurlSoo).
This was a regression caused by the fix for #1227.
- Tools:
- "chicken-install"
- When installing eggs in deploy mode with "-keep-installed", eggs
under the prefix won't unnecessarily be reinstalled (#1144).
- Added new option "-no-install-deps" which inhibits automatic
installation of dependencies, useful with "-prefix" (#1298).
2018-10-14 11:07:24 +02:00
|
|
|
DISTNAME= chicken-4.13.0
|
2002-08-20 16:53:18 +02:00
|
|
|
CATEGORIES= lang
|
2018-01-01 19:16:35 +01:00
|
|
|
MASTER_SITES= http://code.call-cc.org/releases/${PKGVERSION_NOREV}/
|
|
|
|
MASTER_SITES+= 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 to CHICKEN 4.11.0
From Leonardo Taccari.
This release introduces several large changes, the one with the most
impact being a completely new calling convention for compiled CPS
procedures in C code. Instead of expecting "regular" C arguments,
the compiled C functions now accept a so-called "argvector" which
holds the arguments. This should greatly improve the portability of
CHICKEN programs, because it relies less on ill-specified parts of C.
It also removes the assembly code required for manyargs, so that the
limitation of 128 arguments for platforms without an "apply hack" has
finally been removed.
On the tooling front we've also added two new features: a statistical
profiler for analysing performance, and a graphical debugger called
"feathers", which allows you to inspect your Scheme programs over the
network. These have both been documented in the manual. The debugger
has its own chapter at https://wiki.call-cc.org/man/4/Debugging and the
profiler's new -:p runtime option is documented at
https://wiki.call-cc.org/man/4/Using%20the%20compiler#runtime-options
As usual, many bugs have been fixed with this release, including several
bugs that would cause programs to crash. All in all, this new release
should be much more robust and reliable.
For the complete list of changes since 4.10.0, see the NEWS file:
https://code.call-cc.org/releases/4.11.0/NEWS
2016-06-08 16:44:54 +02:00
|
|
|
OWN_DIRS= ${PREFIX}/lib/chicken ${PREFIX}/lib/chicken/8
|
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
|
2016-04-11 06:22:33 +02:00
|
|
|
PKG_SKIP_REASON+= "${OPSYS} is not supported"
|
2008-03-11 00:41:05 +01:00
|
|
|
.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
|
2018-01-01 19:16:35 +01:00
|
|
|
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}
|
Update to CHICKEN 4.10.0
This is mostly a bugfix release, containing quite a lot of accumulated
bug fixes but relatively few new features. Nevertheless, there are a
great many changes in this release since 4.9.0. It has three security
bugfixes: for CVE-2014-6310, CVE-2014-9651 and CVE-2015-4556.
Another important security-related cleanup/improvement is related to path
expansion: many file procedures in CHICKEN used to automatically and
implicitly convert paths containing tilde ("~") characters to $HOME,
and expand shell variables. This behaviour was deprecated in 4.9.0,
and has now been removed, in favor of the "pathname-expand" egg.
A few of the build variables have been renamed, so if you have a custom
build script, please review the NEWS file carefully.
Other notable changes:
* The performance of reading and writing SRFI-4 u8vectors has been
substantially improved.
* Various bugs in the functors implementation have been fixed, making
them better usable.
* chicken.h can once more be correctly compiled with a C++ compiler.
* The -r5rs-syntax flag has been fixed to enforce r5rs syntax.
For the full list of changes, see bundled NEWS or
http://code.call-cc.org/releases/4.10.0/NEWS-4.10.0
2015-08-05 22:41:14 +02:00
|
|
|
MAKE_FLAGS+= MANDIR=${PREFIX:Q}/${PKGMANDIR}
|
2008-03-11 00:41:05 +01:00
|
|
|
MAKE_FLAGS+= INFODIR=${PREFIX:Q}/${PKGINFODIR:Q}
|
|
|
|
MAKE_FLAGS+= DOCDIR=${PREFIX:Q}/share/doc/${PKGNAME_NOREV}
|
2018-10-18 16:32:43 +02:00
|
|
|
MAKE_FLAGS+= INSTALL_PROGRAM=${INSTALL:Q}
|
2008-03-11 00:41:05 +01:00
|
|
|
|
Update to Chicken 4.9.0.1
Tests now work without installing package first.
Changes since previous package:
4.9.0.1
- Runtime library
- C_MINOR_VERSION changed to 9; feature identifier chicken-4.8 => chicken-4.9
4.9.0
- Security fixes
- CVE-2014-3776: read-u8vector! no longer reads beyond its buffer when
length is #f (thanks to Seth Alves).
- CVE-2013-4385: read-string! no longer reads beyond its buffer when
length is #f.
- CVE-2013-1874: ./.csirc is no longer loaded from the current directory
upon startup of csi, which could lead to untrusted code execution.
(thanks to Florian Zumbiehl)
- CVE-2013-2024: On *nix, the qs procedure now single-quotes everything
instead of relying on a blacklist of shell characters to be escaped.
On Windows, it properly duplicates double-quote characters. (thanks
to Florian Zumbiehl)
- CVE-2013-2075: Use POSIX poll() in other places where select() was
still being used. (thanks to Florian Zumbiehl and Joerg Wittenberger)
- CVE-2012-6122: Use POSIX poll() on systems where available. This avoids a
design flaw in select(); it supports no more than FD_SETSIZE descriptors.
- Core libraries
- Fix subvector when the TO optional argument equals the given vector
length (#1097)
- Unit extras now implicitly depends on ports. ports no longer
implicitly depends on extras. This may break programs which don't
use modules and forgot to require ports but use procedures from it.
- Support has been added for the space-safe R7RS macro "delay-force".
- Export file-type from the posix unit (thanks to Alan Post).
- SRFI-4 s8vectors now work correctly in compiled code on PowerPC and ARM.
- thread-join! now works correctly even if the waiting thread was
prematurely woken up by a signal.
- unsetenv has been fixed on Windows.
- The process procedure has been fixed on Windows.
- Nonblocking behaviour on sockets has been fixed on Windows.
- Possible race condition while handling TCP errors has been fixed.
- The posix unit will no longer hang upon any error in Windows.
- resize-vector no longer crashes when reducing the size of the vector.
- Distinct types for boolean true and false have been added to the
scrutinizer.
- Fixed bugs in string-trim-right, string-index-right and
string-skip-right, from SRFI-13
- read-line no longer returns trailing CRs in rare cases on TCP ports (#568)
- write and pp now correctly use escape sequences for control characters
(thanks to Florian Zumbiehl)
- posix: memory-mapped file support for Windows (thanks to "rivo")
- posix: find-file's test argument now also accepts SRE forms.
- numerator and denominator now accept inexact numbers, as per R5RS
(reported by John Cowan).
- Implicit $VAR- and ~-expansion in pathnames have been deprecated (#1001)
- Fixed EINTR handling in process-wait and when reading from file ports.
- Irregex is updated to 0.9.2, which includes bugfixes and faster submatches.
- Compile-time expansions for "[sf]printf" are slightly more efficient.
- Removed the deprecated "always?", "never?", "shuffle" and "none?" procedures.
- Fixed problem "make-pathname" that returned an absolute path if given
a relative one without a directory argument.
- The implementation of promises has been made more efficient.
- Removed the deprecated "c-runtime", "null-pointer?" and "pointer-offset"
procedures.
- The deprecated alias "mutate-procedure" for "mutate-procedure!" has
been removed.
- On 64-bit systems the feature identifier "64bit" is registered.
- "process-fork" accepts an optional argument that specifies
wether other threads should be terminated in the child process.
- The "signal/bus" signal identifier was missing.
- Added setter-procedure for "signal-mask".
- Added "recursive-hash-max-length" and "recursive-hash-max-depth"
parameters (srfi-69).
- Platform support
- CHICKEN can now be built on AIX (contributed by Erik Falor)
- CHICKEN can now be built on GNU Hurd (contributed by Christian Kellermann)
- Basic support has been added for building Android and iOS binaries (see
the "README" file for caveats and pitfalls) (contributed by Felix Winkelmann
from bevuta IT GmbH)
- Added support for 64-bit Windows (consult the "README" file for more
information).
- Runtime system
- finalizers on constants are ignored in compiled code because compiled
constants are never GCed (before, the finalizer would be incorrectly
invoked after the first GC). (Reported by "Pluijzer")
- The call trace buffer is now also resizable at runtime via ##sys#resize-trace-buffer.
- C_zap_strings and ##sys#zap-strings (undocumented) have been deprecated.
- Special events in poll() are now handled, avoiding hangs in threaded apps.
- When invoking procedures with many rest arguments directly (not via APPLY),
raise an error when argument count limit was reached instead of crashing.
- When the maximum allowed heap size is reached, panic instead of crashing.
- The code generated for mutating data destructively is partially inlined
and thus slightly more efficient.
- Fixed incorrect code in the foreign argument conversion for
"unsigned-integer64" (#955). For unsigned-integer, integer64 and
unsigned-integer64, disallow floating-point numbers. Fix behavior
on 32-bit systems.
- On systems that provide sigprocmask(2), segmentation violations, illegal
instruction signals, bus errors and floating-point exceptions are now caught
and trigger normal error-processing (including a backtrace). The handling
of these so called "serious" signals can be disabled by passing the
"-:S" runtime option to executables.
- Reclamation of unused interned symbols (enabled with the "-:w" runtime option)
works much better now.
- Build system
- The tests can now be run without having to first install CHICKEN.
- Fixed a dependency problem that made it impossible to build the distribution
tarball on Windows with the mingw compiler.
- Increased the "binary compatibility version" to 7.
- Tools
- "csc"
- "-z origin" is now passed as a linker option on FreeBSD when
compiling for deployment (thanks to Jules Altfas & Vitaly Magerya)
- "-deploy" works now on FreeBSD (thanks to Jules Altfas and
Vitaly Magerya), OpenBSD and NetBSD (see README for NetBSD).
- added "-oi"/"-ot" options as alternatives to "-emit-inline-file"
and "-emit-type-file", respectively; "-n" has been deprecated.
- .c/.o files are no longer overwritten when they have the same basename
as a Scheme source file (i.e. "csc foo.scm foo.c -o foo" works now).
- "chicken-install"
- "-deploy" now correctly installs dependencies of
deployed eggs under the deployment directory instead of globally.
- Full URI syntax is now supported for proxy environment variables
(thanks to Michele La Monaca)
- "chicken-status"
- Added -eggs command line option to list installed eggs
- misc
- Removed the deprecated "-v" options (use "-version" instead) in various
core programs.
- The runtime linker path for compiled executables was not set correctly
on FreeBSD systems. This has now been fixed.
- Removed the deprecated "make" and "make/proc" facility from the
"setup-api" module; also removed the deprecated "required-extension-version"
and "required-chicken-version" procedures.
- Syntax
- Added the aliases "&optional" and "&rest" as alternatives to "#!optional"
and "#!rest" in type-declarations (suggested by Joerg Wittenberger).
- Vectors, SRFI-4 number vectors and blobs are now self-evaluating for
R7RS compatibility. Being literal constants, they are implicitly quoted.
- For R7RS compatibility, named character literals #\escape and #\null are
supported as aliases for #\esc and #\nul. WRITE will output R7RS names.
- The CASE form accepts => proc syntax, like COND (as specified by R7RS).
- letrec* was added for R7RS compatibility. Plain letrec no longer behaves
like letrec*.
- Compiler
- the "inline" declaration does not force inlining anymore as recursive
inlining could lead to non-termination of the compiler (thanks to
Andrei Barbu).
- Type-analysis ("scrutiny") is enabled by default now, unless
"-optimize-level 0" or "-no-usual-integrations" is given.
- The "-scrutinize" compiler option has been deprecated.
- A new lightweight flow-analysis pass ("lfa2") has been added.
Enable by passing the "-lfa2" option to the compiler.
- The deprecated options "-disable-warning", "-heap-growth", "-heap-shrinkage"
and "-heap-initial-size" have been removed.
- Removed the deprecated "constant" declaration.
- Removed the deprecated "-lambda-lift" and "-unboxing" compiler options.
- Removed the deprecated "-V" compiler option.
- Generated names for formal parameters of foreign functions are slightly
more informative.
- Unused references to variables that name intrinsics can be removed.
- In the flow-analysis pass, matching of combinations of "list"/"list-of" and
"or" types with has been made more reliable.
- Fixed various bugs in the type database.
- Syntax expander
- added "require-extension-for-syntax" and "use-for-syntax".
- Extended syntactic definitions are now available by default in all
evaluated code, particularly in code evaluated at runtime in compiled
applications.
- Removed the deprecated variant "(define-compiler-syntax (NAME . LLIST) BODY ...)"
of "define-compiler-syntax".
- C API
- Deprecated C_get_argument[_2] and C_get_environment_variable[_2] functions.
- Removed the deprecated "__byte_vector" type.
2014-06-12 09:22:12 +02:00
|
|
|
TEST_TARGET= check
|
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"
|