./lang/chicken, Scheme to C compiler, handling R5RS

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 4.13.0, Package name: chicken-4.13.0, Maintainer: asau

CHICKEN is a Scheme-to-C compiler supporting most of the language
features as defined in the Revised^5 Report on Scheme. CHICKEN
generates quite portable C code, and files compiled by it (including
itself) should work without any changes on most platforms.

The whole package is distributed under a BSD license and as such free
to use and modify as long as you adhere to its terms (see the manual).
Linkage to C modules and C-library functions is straightforward, so
it's easy to access C from Scheme. Compiled code can be embedded into
existing C programs without problems. The generated code supports
full tail-recursion, first-class continuations, multiple values and

Required to build:

Master sites:

SHA1: ebbef7206f7f2faa3ac430a8c1e50f841d5db23e
RMD160: aff50d0949bb753002c01fbe50906735f4330abf
Filesize: 4144.881 KB

Version history: (Expand)

CVS history: (Expand)

   2020-01-26 18:32:28 by Roland Illig | Files touched by this commit (981)
Log message:
all: migrate homepages from http to https

pkglint -r --network --only "migrate"

As a side-effect of migrating the homepages, pkglint also fixed a few
indentations in unrelated lines. These and the new homepages have been
checked manually.
   2019-11-03 20:04:09 by Roland Illig | Files touched by this commit (159)
Log message:
lang: align variable assignments

pkglint -Wall -F --only aligned --only indent -r

No manual corrections.
   2018-10-18 16:32:43 by Jonathan Perkin | Files touched by this commit (1)
Log message:
chicken: Set INSTALL_PROGRAM, fixes install on SunOS.
   2018-10-14 11:07:25 by Leonardo Taccari | Files touched by this commit (2) | Package updated
Log message:
chicken: Update lang/chicken to 4.13.0

Patch provided by dziltener via PR pkg/52929, thanks!


- 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).


- 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-01-01 19:16:39 by Roland Illig | Files touched by this commit (47)
Log message:
Replaced $(ROUND) with ${CURLY} variable references.

This has been a pkglint warning for several years now, and pkglint can even
fix it automatically. And it did for this commit.

Only in lang/mercury, two passes of autofixing were necessary because there
were nested variables.
   2017-01-19 19:52:30 by Alistair G. Crooks | Files touched by this commit (352)
Log message:
Convert all occurrences (353 by my count) of

	MASTER_SITES= 	site1 \

style continuation lines to be simple repeated


lines. As previewed on tech-pkg. With thanks to rillig for fixing pkglint
   2016-06-08 16:44:54 by Aleksej Saushev | Files touched by this commit (3) | Package updated
Log message:
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%20 … me-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:
   2016-04-11 06:22:35 by Darrin B. Jewell | Files touched by this commit (11) | Package updated
Log message:
update PKG_{FAIL,SKIP}_REASON with +=