Up to [cvs.NetBSD.org] / pkgsrc / lang / chicken5
Request diff between arbitrary revisions
Default branch: MAIN
Revision 1.6 / (download) - annotate - [select for diffs], Wed Apr 26 18:11:51 2023 UTC (4 months, 4 weeks ago) by nikita
Branch: MAIN
CVS Tags: pkgsrc-2023Q2-base,
pkgsrc-2023Q2,
HEAD
Changes since 1.5: +5 -4
lines
Diff to previous 1.5 (colored)
chicken5: update to version 5.3.0 Changelog (taken from https://code.call-cc.org/releases/5.3.0/NEWS): 5.3.0 - Core libraries - In (chicken process-context posix), the setters for current-user-id, current-effective-user-id and current-group-id now check that the new user/group value is a fixnum instead of blindly passing it on to the C implementation (which would cause bogus user ids to be set). Fixes #1787, thanks to Christopher Brannon. - The srfi-17 module now exports the `getter-with-setter` and `setter` procedures, not just the set! macro (thanks to Lassi Kortela) - Fix hang in chicken-install -update-db on Windows (thanks to Mark Fisher for reporting and Jani Hakala for debugging and patch). - Fixed an inadvertant error during error reporting in the `numerator` and `denominator` procedures when passed non-finite flonums (#1730). - Fixed a bug where optimisations for `irregex-match?` would cause runtime errors due to the inlined specialisations not being fully-expanded (see #1690). - Irregex has been updated to upstream 0.9.10, which fixes behaviour of irregex-replace/all with positive lookbehind so all matches are replaced instead of only the first (reported by Kay Rhodes), and a regression regarding replacing empty matches which was introduced by the fixes in 0.9.7 (reported by Sandra Snan). Also, the http-url shorthand now allows any top-level domain and the old "top-level-domain" now also supports "edu" (fixed by Sandra Snan). Also, a problem was fixed with capturing groups inside a kleene star, which could sometimes return incorrect parts of the match. Finally, "bol" handling was fixed to handle newlines consistently so that multiple matches don't overlap (reported by Sandra Snan). - current-milliseconds has been deprecated in favor of the name current-process-milliseconds, to avoid confusion due to naming of current-milliseconds versus current-seconds, which do something quite different. Also, its definition has been tweaked to guarantee that it returns the time since process startup. On Windows, it will now return sane values after 24 days of uptime. On UNIX, the values returned will be precise to the millisecond instead of rounded down to the nearest second at startup (which would result in erratic startup times). - The default mode for files created by `file-open' has been changed to 0666 (plus whatever change the effective umask applies), rather than 0744 (see #1698). - Fixed type database entry for "log" with second arg (fixes #1725). - Made topological-sort behave better when dependency target is listed multiple times by concatenating dependencies (fixes #1185). - Module system - Reexported macros now work when the reexporting module redefines identifiers from the original (fixes #1757, reported by Sandra Snan). - When using "except" in "import" to omit reexported macros, they are really not imported (#1771, reported by Sandra Snan). - Runtime system - Sleeping primordial thread doesn't forget mutations made to parameters in interrupt handlers anymore. (See #1638. Fix contributed by Sebastien Marie) - A feature corresponding to the word size is available regardless of the word size (#1693) - The default maximum heap size on 64-bit platforms is now the theoretical maximum addressable memory size (#1675). Use -:m if you would like to override this at run-time. - Deprecated C_(a_i_current_)milliseconds in favor of C_(a_i_)current_process_milliseconds to match the Scheme-level deprecation of current-milliseconds. - Officially deprecated C_pair() in favor of C_a_pair(); it has been deprecated for years. - At program cleanup, finalizers are only forced when the live finalizer count is non-zero - The symbol `srfi-87` has been added to the list of built-in feature identifiers. - Garbage collection algorithm has been changed to reduce thrashing when heap is almost full, by growing the heap sooner. A new -:hf option was added to tweak when heap growth should occur. - Added `-:R' runtime option to initialize rand() state deterministically (should help with #1650 and benchmarking). - Compiler - Statically linked programs using built-in libraries are supported again (fixes #1788, a regression from 5.2.0). - Avoid re-using argvector when inline rest operations are being used in CPS calls (#1703, thanks to Jakob L. Keuze). - An `emit-types-file` declaration has been added, which corresponds to the compiler flag of the same name (#1644, thanks to Marco Maggi for the suggestion). - Fixed a bug caused by a bad interaction between two optimizations: argvector rest ops would be applied even if a procedure already got its rest arg consed at the call site (#1756, thanks to Sandra Snan). - Build system - Fix build with tcc. - Fix a few tests on Windows so the suite passes once again. - Auto-configure at build time on most platforms. Cross-compilation still requires PLATFORM to be set, and it can still be provided manually, but it is no longer required in the common case. - Fix Linux to MingW cross-compilation (#1768, thanks to Th©o Cavignac) - The `clean' target for make now also removes build configuration files. - The `distclean' target for make has been removed (now `clean' does what `distclean' used to do). - Tools - Fix a problem with egg installation scripts on Windows, where the platform was not correctly identified, depending on the shell used during installation of the core system (thanks again to Mark Fisher for reporting and helping in finding the culprit). - Fixed a bug in chicken-install (#1744) that would cause `Error: (string->number) bad argument type: #!eof` in some cases. - If chicken-install has a program prefix/suffix, it now writes to a cache directory matching its program name (#1713, thanks to Alice Maz) - Fixed bug in chicken-install regarding variable quotation on UNIX-like systems which prevented installation into paths with spaces (#1685). - Fixed a similar bug in chicken-install for paths with spaces on mingw and mingw-msys (#1727, thanks to Josh Helzer for reporting and Vasilij Schneidermann for the patch). - Module system - Fixed a memory leak when calling (import) multiple times in a row on the same module (#1772; reported by "plugd" on IRC).
Revision 1.5 / (download) - annotate - [select for diffs], Tue Oct 26 10:51:31 2021 UTC (22 months, 4 weeks ago) by nia
Branch: MAIN
CVS Tags: pkgsrc-2023Q1-base,
pkgsrc-2023Q1,
pkgsrc-2022Q4-base,
pkgsrc-2022Q4,
pkgsrc-2022Q3-base,
pkgsrc-2022Q3,
pkgsrc-2022Q2-base,
pkgsrc-2022Q2,
pkgsrc-2022Q1-base,
pkgsrc-2022Q1,
pkgsrc-2021Q4-base,
pkgsrc-2021Q4
Changes since 1.4: +2 -2
lines
Diff to previous 1.4 (colored)
lang: Replace RMD160 checksums with BLAKE2s checksums All checksums have been double-checked against existing RMD160 and SHA512 hashes The following distfiles could not be fetched (possibly fetched conditionally?): ./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-aarch64-unknown-linux-gnu.tar.gz ./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-aarch64-unknown-linux-musl.tar.gz ./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-aarch64-unknown-netbsd.tar.gz ./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-armv7-unknown-netbsd-eabihf.tar.gz ./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-i686-unknown-linux-gnu.tar.gz ./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-powerpc-unknown-netbsd90.tar.gz ./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-sparc64-unknown-netbsd.tar.gz ./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-apple-darwin.tar.gz ./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-unknown-freebsd.tar.gz ./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-unknown-linux-gnu.tar.gz ./lang/rust-bin/distinfo rust-bin-1.54.0/rust-1.54.0-x86_64-unknown-linux-musl.tar.gz ./lang/smlnj/distinfo smlnj-110.73/boot.ppc-unix.tgz ./lang/smlnj/distinfo smlnj-110.73/boot.sparc-unix.tgz ./lang/oracle-jre8/distinfo jce_policy-8.zip ./lang/oracle-jre8/distinfo jre-8u202-linux-i586.tar.gz ./lang/oracle-jre8/distinfo jre-8u202-linux-x64.tar.gz ./lang/oracle-jre8/distinfo jre-8u202-macosx-x64.tar.gz ./lang/oracle-jre8/distinfo jre-8u202-solaris-x64.tar.gz ./lang/oracle-jdk8/distinfo jdk-8u202-linux-i586.tar.gz ./lang/oracle-jdk8/distinfo jdk-8u202-linux-x64.tar.gz ./lang/oracle-jdk8/distinfo jdk-8u202-solaris-x64.tar.gz ./lang/ghc80/distinfo ghc-7.10.3-boot-x86_64-unknown-solaris2.tar.xz ./lang/ghc80/distinfo ghc-8.0.2-boot-i386-unknown-freebsd.tar.xz ./lang/ghc80/distinfo ghc-8.0.2-boot-x86_64-unknown-freebsd.tar.xz ./lang/gcc5-aux/distinfo ada-bootstrap.i386.freebsd.100B.tar.bz2 ./lang/gcc5-aux/distinfo ada-bootstrap.i386.freebsd.84.tar.bz2 ./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.dragonfly.41.tar.bz2 ./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.freebsd.100B.tar.bz2 ./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.freebsd.84.tar.bz2 ./lang/gcc5-aux/distinfo ada-bootstrap.x86_64.solaris.511.tar.bz2 ./lang/rust/distinfo rust-1.53.0-aarch64-apple-darwin.tar.gz ./lang/rust/distinfo rust-1.53.0-aarch64-unknown-linux-gnu.tar.gz ./lang/rust/distinfo rust-1.53.0-aarch64-unknown-netbsd.tar.gz ./lang/rust/distinfo rust-1.53.0-aarch64_be-unknown-netbsd.tar.gz ./lang/rust/distinfo rust-1.53.0-arm-unknown-linux-gnueabihf.tar.gz ./lang/rust/distinfo rust-1.53.0-armv7-unknown-linux-gnueabihf.tar.gz ./lang/rust/distinfo rust-1.53.0-i686-unknown-linux-gnu.tar.gz ./lang/rust/distinfo rust-1.53.0-powerpc-unknown-netbsd.tar.gz ./lang/rust/distinfo rust-1.53.0-powerpc-unknown-netbsd90.tar.gz ./lang/rust/distinfo rust-1.53.0-sparc64-unknown-netbsd.tar.gz ./lang/rust/distinfo rust-1.53.0-x86_64-apple-darwin.tar.gz ./lang/rust/distinfo rust-1.53.0-x86_64-unknown-freebsd.tar.gz ./lang/rust/distinfo rust-1.53.0-x86_64-unknown-illumos.tar.gz ./lang/rust/distinfo rust-1.53.0-x86_64-unknown-linux-gnu.tar.gz ./lang/rust/distinfo rust-std-1.53.0-aarch64-apple-darwin.tar.gz ./lang/rust/distinfo rust-std-1.53.0-aarch64-unknown-linux-gnu.tar.gz ./lang/rust/distinfo rust-std-1.53.0-aarch64-unknown-netbsd.tar.gz ./lang/rust/distinfo rust-std-1.53.0-aarch64_be-unknown-netbsd.tar.gz ./lang/rust/distinfo rust-std-1.53.0-arm-unknown-linux-gnueabihf.tar.gz ./lang/rust/distinfo rust-std-1.53.0-armv7-unknown-linux-gnueabihf.tar.gz ./lang/rust/distinfo rust-std-1.53.0-i686-unknown-linux-gnu.tar.gz ./lang/rust/distinfo rust-std-1.53.0-powerpc-unknown-netbsd.tar.gz ./lang/rust/distinfo rust-std-1.53.0-powerpc-unknown-netbsd90.tar.gz ./lang/rust/distinfo rust-std-1.53.0-sparc64-unknown-netbsd.tar.gz ./lang/rust/distinfo rust-std-1.53.0-x86_64-apple-darwin.tar.gz ./lang/rust/distinfo rust-std-1.53.0-x86_64-unknown-freebsd.tar.gz ./lang/rust/distinfo rust-std-1.53.0-x86_64-unknown-linux-gnu.tar.gz ./lang/smlnj11072/distinfo smlnj-110.72/boot.ppc-unix.tgz ./lang/smlnj11072/distinfo smlnj-110.72/boot.sparc-unix.tgz ./lang/ghc84/distinfo ghc-8.0.2-boot-x86_64-unknown-solaris2.tar.xz ./lang/ghc84/distinfo ghc-8.4.4-boot-i386-unknown-freebsd.tar.xz ./lang/ghc84/distinfo ghc-8.4.4-boot-x86_64-apple-darwin.tar.xz ./lang/ghc84/distinfo ghc-8.4.4-boot-x86_64-unknown-freebsd.tar.xz ./lang/ghc7/distinfo ghc-7.10.3-boot-i386-unknown-freebsd.tar.xz ./lang/ghc7/distinfo ghc-7.6.3-boot-i386-unknown-solaris2.tar.xz ./lang/ghc7/distinfo ghc-7.6.3-boot-powerpc-apple-darwin.tar.xz ./lang/ghc7/distinfo ghc-7.6.3-boot-x86_64-unknown-solaris2.tar.xz ./lang/ghc90/distinfo ghc-8.10.4-boot-x86_64-unknown-solaris2.tar.xz ./lang/ghc90/distinfo ghc-9.0.1-boot-aarch64-unknown-netbsd.tar.xz ./lang/ghc90/distinfo ghc-9.0.1-boot-i386-unknown-freebsd.tar.xz ./lang/ghc90/distinfo ghc-9.0.1-boot-x86_64-apple-darwin.tar.xz ./lang/ghc90/distinfo ghc-9.0.1-boot-x86_64-unknown-freebsd.tar.xz ./lang/openjdk8/distinfo openjdk7/bootstrap-jdk-1.7.76-freebsd-10-amd64-20150301.tar.xz ./lang/openjdk8/distinfo openjdk7/bootstrap-jdk-1.7.76-netbsd-7-sparc64-20150301.tar.xz ./lang/openjdk8/distinfo openjdk7/bootstrap-jdk-1.8.181-netbsd-8-aarch64-20180917.tar.xz ./lang/openjdk8/distinfo openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.6-amd64-20140719.tar.bz2 ./lang/openjdk8/distinfo openjdk7/bootstrap-jdk7u60-bin-dragonfly-3.8-amd64-20140719.tar.bz2 ./lang/go-bin/distinfo go1.14.2.darwin-amd64.tar.gz ./lang/go-bin/distinfo go1.14.2.linux-386.tar.gz ./lang/go-bin/distinfo go1.14.2.linux-amd64.tar.gz ./lang/go-bin/distinfo go1.14.2.linux-arm64.tar.gz ./lang/go-bin/distinfo go1.14.2.linux-armv6l.tar.gz ./lang/go-bin/distinfo go1.14.2.netbsd-arm64.tar.gz ./lang/go-bin/distinfo go1.16beta1.darwin-arm64.tar.gz ./lang/gcc6-aux/distinfo ada-bootstrap.i386.freebsd.100B.tar.bz2 ./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.dragonfly.41.tar.bz2 ./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.freebsd.100B.tar.bz2 ./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.freebsd.84.tar.bz2 ./lang/gcc6-aux/distinfo ada-bootstrap.x86_64.solaris.511.tar.bz2 ./lang/ghc810/distinfo ghc-8.8.4-boot-x86_64-unknown-solaris2.tar.xz ./lang/sun-jre7/distinfo UnlimitedJCEPolicyJDK7.zip ./lang/sun-jre7/distinfo jre-7u80-linux-x64.tar.gz ./lang/sun-jre7/distinfo jre-7u80-solaris-i586.tar.gz ./lang/sun-jre7/distinfo jre-7u80-solaris-x64.tar.gz ./lang/ghc88/distinfo ghc-8.4.4-boot-i386-unknown-freebsd.tar.xz ./lang/ghc88/distinfo ghc-8.4.4-boot-x86_64-apple-darwin.tar.xz ./lang/ghc88/distinfo ghc-8.4.4-boot-x86_64-unknown-freebsd.tar.xz ./lang/ghc88/distinfo ghc-8.4.4-boot-x86_64-unknown-solaris2.tar.xz ./lang/gcc-aux/distinfo ada-bootstrap.i386.dragonfly.36A.tar.bz2 ./lang/gcc-aux/distinfo ada-bootstrap.i386.freebsd.100B.tar.bz2 ./lang/gcc-aux/distinfo ada-bootstrap.i386.freebsd.84.tar.bz2 ./lang/gcc-aux/distinfo ada-bootstrap.x86_64.dragonfly.36A.tar.bz2 ./lang/gcc-aux/distinfo ada-bootstrap.x86_64.freebsd.100B.tar.bz2 ./lang/gcc-aux/distinfo ada-bootstrap.x86_64.freebsd.84.tar.bz2 ./lang/gcc-aux/distinfo ada-bootstrap.x86_64.solaris.511.tar.bz2 ./lang/gcc6/distinfo ecj-4.5.jar ./lang/openjdk11/distinfo bootstrap-jdk-1.11.0.7.10-netbsd-9-aarch64-20200509.tar.xz ./lang/sun-jdk7/distinfo jdk-7u80-linux-x64.tar.gz ./lang/sun-jdk7/distinfo jdk-7u80-solaris-i586.tar.gz ./lang/sun-jdk7/distinfo jdk-7u80-solaris-x64.tar.gz
Revision 1.4 / (download) - annotate - [select for diffs], Thu Oct 7 14:20:47 2021 UTC (23 months, 2 weeks ago) by nia
Branch: MAIN
Changes since 1.3: +1 -2
lines
Diff to previous 1.3 (colored)
lang: Remove SHA1 hashes for distfiles
Revision 1.3 / (download) - annotate - [select for diffs], Sat May 16 20:01:56 2020 UTC (3 years, 4 months ago) by nikita
Branch: MAIN
CVS Tags: pkgsrc-2021Q3-base,
pkgsrc-2021Q3,
pkgsrc-2021Q2-base,
pkgsrc-2021Q2,
pkgsrc-2021Q1-base,
pkgsrc-2021Q1,
pkgsrc-2020Q4-base,
pkgsrc-2020Q4,
pkgsrc-2020Q3-base,
pkgsrc-2020Q3,
pkgsrc-2020Q2-base,
pkgsrc-2020Q2
Changes since 1.2: +5 -5
lines
Diff to previous 1.2 (colored)
chicken: Update to version 5.2.0 Changelog: 5.2.0 - Core libraries - Fix `memory-statistics` by returning semi-space bytes and used semi-space bytes like the documentation says. Old implementation returned full-heap size and (full-heap - used-semi-space). - for-each and map now behave consistently in compiled and interpreted mode, like in SRFI-1. They now stop when the shortest list is exhausted instead of raising an exception (fixes #1422). - There is now a srfi-88 module which contains just the three procedures from the (chicken keyword) module defined by the SRFI. - A feature identifier named "srfi-88" is now registered. - The procedures `record-printer` and `set-record-printer!` and a corresponding SRFI-17 setter have been added. These deprecate `define-record-printer` which isn't a "real" definition (see #1294). - On Windows, `decompose-directory` no longer crashes when a drive letter is present in the supplied path string. - irregex-replace[/all] have been fixed for empty matches, so they will no longer drop characters and ignore the replacement (#1661). - Irregex has been updated to upstream 0.9.7, which also improves how empty matches are treated in irregex-fold and irregex-split. - Runtime system - Quoted empty keywords like ||: and :|| are now read like prescribed by SRFI-88 in the corresponding keyword mode. Symbols containing quoted empty prefixes or suffixes like ||:abc and abc:|| will be read correctly as symbols now (fixes #1625, thanks to Andy Bennett). - IEEE floating point negative zero is now properly handled: it can be read, written and distinguished by eqv? and equal?, but not = (fixes #1627, thanks to John Cowan). - ##sys#check-exact and its C implementations C_i_check_exact and C_i_check_exact_2 have been deprecated (see also #1631). - When garbage collector is manually invoked from a finalizer, raise an error instead of hanging forever (fixes #1586). - define-record-type will now give an error if the constructor definition refers to field that's not listed elsewhere (see #1633) - Added new -:hu option to set the memory usage low watermark percentage at which the heap should be shrunk, and changed the calculation to actually reflect this (see #1379). - Compiler - Fixed a bug in lfa2 pass which caused "if" or "cond" nodes to be incorrectly unboxed if the "else" branch had a flonum result type (#1624, thanks to Sven Hartrumpf) - Inline files no longer refer to unexported foreign stub functions (fixes #1440, thanks to "megane"). - In some cases, rest argument lists do not need to be reified, which should make using optional arguments and case-lambda faster (#1623). - Values from foreign types which have an argument or return value converter are no longer inferred to have the Scheme type which corresponds to the raw foreign type, which was incorrect (#1649). - Module system - Trying to export a foreign variable, define-inlined procedure or define-constant variable gives a friendly error instead of saying the variable doesn't exist (fixes #1346). - When modules are registered, they no longer pollute the global environment with imports made in that module (fixes #1548) - Tools - The new "-module-registration" options causes module registration code to always be included in the program, even when it has also been emitted as a separate file (for example with "-J"). - chicken-install now correctly checks server response code to avoid interpreting error response bodies (like 404, 500) as Scheme code. - chicken-install now follows HTTP redirects when downloading eggs. - chicken-install will now change to the correct drive before attempting to change to the egg directory (fixes #1647).
Revision 1.2 / (download) - annotate - [select for diffs], Tue Jul 2 13:22:40 2019 UTC (4 years, 2 months ago) by ryoon
Branch: MAIN
CVS Tags: pkgsrc-2020Q1-base,
pkgsrc-2020Q1,
pkgsrc-2019Q4-base,
pkgsrc-2019Q4,
pkgsrc-2019Q3-base,
pkgsrc-2019Q3
Changes since 1.1: +5 -5
lines
Diff to previous 1.1 (colored)
Update to 5.1.0 Changelog: 5.1.0 - Core libraries - Symbols ending or starting with a colon are now always pipe-quoted when written by `write` to ensure they can be read back with a different keyword-style setting. - Read-write invariance of special symbols starting with #! other than #!key, #!rest or #!optional is now preserved (#1572). - When using (set-file-position!) on a port, its EOF status will now be reset. - In (chicken file posix), the values of perm/irgrp, perm/iwgrp, perm/ixgrp, perm/iroth, perm/iwoth and perm/ixoth are now correctly defined (they were all for "usr"; #1602, thanks to Eric Hoffman). - In (chicken file posix), `file-truncate` now accepts also accepts port objects, for consistency with other file procedures. All such procedures from (chicken file posix) now have the correct types in types.db (fixes #1609, thanks to Robert Jensen). - Add the system-config-directory and system-cache-directory procedures in the chicken.platform module. These procedures follow the XDG specification and also give sensible results on Windows. - Fix get-environment from (chicken process-context) to raise an error when passed #f instead of segfaulting. - Qualified symbols (##foo#bar style) are no longer encoded by a byte prefix inside the symbol name. This ensures read-write invariance of symbols which start with a low-byte character (fixes #1077, except for keywords, which start with NUL bytes). - Fix a missing export (list->s64vector) in SRFI-4. - Runtime system - Keywords are now distinct types; they are not a subtype of symbols. - Use arc4random on FreeBSD (thanks to Tobias Kortkamp and gahr) - Removed the unused, undocumented (and incorrect!) C functions C_delete_symbol_table and C_set_symbol_table. - Continuations which discard additional values beyond the first no longer accept multiple values via direct invocation after being captured through `call/cc`, only via `values` (revert of #1390, due to #1601) - SRFI-4 vector predicates, reference, set and length procedures should now be faster in tight loops as they're inlineable (#757). - Keywords are now interned in a separate keyword table, not in the standard symbol table. This brings full read-write invariance for symbols (they can now also start with NUL bytes). Keywords no longer have plists. Fixes #1576. - Increased the "binary compatibility version" to 11. - Compiler - Restored optimized implementations of =, +, -, /, * and quotient in fixnum-arithmetic mode (fixes #1604 mostly; thanks to "chickendan"). - Added an optimization pass for reducing the amount of boxing of intermediate floating point values, enabled by the "-lfa2" compiler option. - The "lfa2" pass is now enabled at optimization levels 2 or higher. - Module system - When you try to import the module you are currently defining into itself, an error will be raised. This prevents an infinite loop in the compiler when later trying to import that same module (fixes #1506, thanks to Kristian Lein-Mathisen). - Foreign function interface - Improved hygiene in FFI macro expansions, which means you don't have to import "scheme" or "(chicken base)" for them to work. - Type system - It is now possible to quote free variables in type declarations, which acts as shorthand for `forall' (thanks to "megane") - Tools - csi now uses (system-config-directory) to find csirc and falls back to $HOME/.csirc when needed. - chicken-install now uses (system-config-directory) to find a user defined setup.defaults file ; it also uses (system-cache-directory) for its egg cache directory when the CHICKEN_EGG_CACHE environment variable is not defined. - Egg specifications - Allows "cond-expand" and "error" forms in egg specification files. - Add "c-object" and "object" properties to link separately compiled C objects into CHICKEN code.
Revision 1.1 / (download) - annotate - [select for diffs], Fri Dec 21 12:35:38 2018 UTC (4 years, 9 months ago) by leot
Branch: MAIN
CVS Tags: pkgsrc-2019Q2-base,
pkgsrc-2019Q2,
pkgsrc-2019Q1-base,
pkgsrc-2019Q1,
pkgsrc-2018Q4-base,
pkgsrc-2018Q4
chicken5: Import chicken-5.0.0 as lang/chicken5 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 dynamic-wind. Changes since chicken-4.13.0: 5.0.0 ----- - Runtime system - Added support for the full numeric tower, including various new procedures taken from the "numbers" egg. All calculations will now return exact numbers where possible, so code relying on flonums being returned may need to be changed if rational numbers do not provide the desired performance. - Port directionality has been generalized from a simple input/output flag to a bitmap, to allow for multidirectional ports. - Weak symbol GC is faster, simpler, and can now collect all unreferenced symbols instead of a maximum of 997 per major GC. - The -:w option has been removed; symbols are now always collected. - Increased the "binary compatibility version" to 9. - Continuations which discard additional values beyond the first now also accept multiple values via direct invocation after being captured through `call/cc`, not just via `values` (#1390) - Removed the deprecated C_locative_ref and C_mutate2 C functions. - The trace buffer no longer holds on to thread objects, allowing them to be garbage collected sooner (#1356, thanks to Kristian Lein-Mathisen) - On Cygwin and MinGW, the "build-platform" now corresponds to the tool chain used (gnu, clang, unknown) like on *nix, while the software-version is now "cygwin" or "mingw32" instead of "unknown". This also means the features list will now contain the tool chain on all platforms. - Symbols starting with #% are no longer treated specially and need to be quoted with pipes. This makes the "%" sign available for use in custom/user-defined sharp-sign read syntax. - Compiler - Fixed an off by one allocation problem in generated C code for (list ...). - The "-scrutinize" compiler option has been removed. - The "-module" compiler option (aliased as "-m") now expects a module name. - The generated C output of the compiler is now deterministic: it will be bit-for-bit identical when compiling the same Scheme file with the same version of the compiler. - the "-consult-type-file" and "-emit-type-file" options have been renamed to "-consult-types-file" and "-emit-types-file", respectively. - Tools - The new "-link" option to csc allows linking with objects from extensions. - The new "-libdir" option to csc allows overriding the runtime library directory. - The ambiguous "-l<libname>" option for csc has been removed (#1193). - Removed deprecated "-n" shorthand for "-emit-inline-file" from csc. - Removed "chicken-bug" tool. - Core libraries - Removed support for memory-mapped files (posix), queues (data-structures), binary-search (data-structures), scan-input-lines (utils), group-information (posix) object-eviction (lolevel), and compile-file (utils). These are now available as eggs. - Removed the srfi-1, srfi-13, srfi-14, srfi-18, srfi-69, and utils units. These are now available as eggs. - Added the `executable-pathname` procedure for retrieving a path to the currently-running executable. - Removed all support for SWIG. - Removed interrupts-enabled declaration specifier. - `sleep` now suspends the current thread when threading is enabled, otherwise it sleeps the process. The new `process-sleep` procedure in unit posix can be used to sleep the process unconditionally. - `with-error-output-to-port' from the ports module has been renamed to the more common `with-error-to-port', and `with-error-to-string' has been added for completeness (thanks to Michael Silver). - A new `make-bidirectional-port' procedure has been added to the ports unit that will combine separate input- and output- ports into a single bidirectional port. - New `input-port-open?` and `output-port-open?` procedures have been added for testing whether a port is open in a specific direction. - An `include-relative` form has been added to the (chicken base) module. This works like `load-relative` but for textual inclusion. - Keywords are now always written in "portable" style by WRITE, so that the reader's keyword style doesn't need to match the writer's. - The environment variable `CHICKEN_PREFIX` has been removed. - Added the `glob->sre` procedure to the irregex library. - Removed the `get-host-name' and `system-information' procedures. These are available in the "system-information" egg. - Removed the `eval-when`, `select` and `ensure` macros. These are available in the "miscmacros" egg. - Removed the require-extension-for-syntax macro. - Renamed bit-set? to bit->boolean because of swapped argument order with respect to SRFI-33 and SRFI-60, which was confusing (fixes #1385, thanks to Lemonboy). - file-{read,write,execute}-access will now raise an exception when the file doesn't exist or some other non-access related problem is detected (fixes #1386, thanks to Vasilij Schneidermann). - `change-file-mode` was renamed to set-file-permissions! and SRFI-17 generalized set! support has been added for `file-permissions`. This procedure now also accepts a file descriptor or a port. - `file-permissions` now returns one value: the permission integer. - `read-file` has been renamed to `read-list`. - `read-all` was dropped, as `read-string` with #f as its NUM argument is equivalent. - `read-lines` and `read-all` no longer accept a string naming a file, only ports. - The procedures for random numbers have been reimplemented; access to system-specific entropy is available, together with a reasonably good pseudo random number generator (WELL512). - `glob` now returns an empty list for non-existent or inaccessible directories, instead of erroring out. - `file-copy' and `file-move' have been renamed to `copy-file' and `move-file', for consistency with `delete-file' and `rename-file'. - `rename-file' now refuses to overwrite an existing file unless an optional "clobber" argument is provided. - The `r4rs` module no longer exports `eval`, which was not in R4RS. - `process`, `process*` and `process-execute` now expect lists of the form (("NAME" . "VALUE") ...) instead of the previous (("NAME=VALUE") ...) as their environment argument. - `repository-path` is now a parameter containing a list of strings instead of a string, as the search path for libraries can now contain multiple directories. - `file-read-access?`, `file-write-access?` and `file-execute-access?` have been renamed `file-readable?`, `file-writable?` and `file-executable?` into the (chicken file) module. - Module system - The compiler has been modularised, for improved namespacing. This means names from the compiler should not leak out into the compiled program's (macro) namespace anymore. - The core units have been converted to modules under the "chicken" namespace. - Added support for list-style library names. - The "use" and "use-for-syntax" special forms have been removed in favor of "import" and "import-for-syntax" to reduce confusion. - Module imports are now lexically scoped: identifiers provided by an (import ...) inside (let ...) won't be visible outside that let. - Modules implementing an interface can now correctly export extra identifiers (bug reported by Martin Schneeweis, fix by "megane"). - Syntax expander - Removed support for (define-syntax (foo e r c) ...), which was undocumented and not officially supported anyway. - Removed support for normal "lambda" forms as syntax transformers, which has been deprecated since 4.8.0. - define and friends are now aggressively rejected in "expression contexts" (i.e., anywhere but toplevel or as internal defines). - define-record and define-record-type now create record types which are tagged with the module in which they're defined, so predicates no longer return #t for records with the same tag defined in another module. This tag is now also available under an identifier that matches the record type name (fixes #1342). - `include` now splices included expressions in the context in which the inclusion appears and does not treat the expressions as toplevel expressions by default. - Eggs management - Egg-installation and building has been completely overhauled. - .meta + .setup files have been merged into a single declarative ".egg" file. - More static checks for egg descriptions, simplified generation of OS-specific build + install commands that is (hopefully) more practical for package maintainers. - Egg sources are cached locally to reduce download and rebuild times. - Dropped many obscure or unimportant options and features from `chicken-install`: (`-keep-installed`, `-reinstall`, `-proxy`, `-no-install`, `-username`, `-password`, `-init`, `-deploy`, `-keep-going`, `-scan`, `-csi`, `-show-depends`, `-show-foreign-depends`, `-prefix`. - Added new "-from-list" option to chicken-install. - Eggs can now be installed and located in multiple directories, using the `CHICKEN_REPOSITORY_PATH` + `CHICKEN_INSTALL_REPOSITORY` environment variables. - Static compilation of eggs is now fully supported and static versions of compiled eggs are available by default. - In a statically built chicken, the egg-tools ("chicken-install", "...-status", "...-uninstall") are still available, but only support static compilation of eggs. - Foreign function interface - The foreign type specifier "ssize_t" is now accepted, and "size_t" arguments now only accept positive integers. Return values of type size_t are no longer truncated on 32-bit platforms.