pkgsrc/lang/chicken5/Makefile
nikita 0ee4626bda 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).
2020-05-16 20:01:56 +00:00

63 lines
1.8 KiB
Makefile

# $NetBSD: Makefile,v 1.6 2020/05/16 20:01:56 nikita Exp $
DISTNAME= chicken-5.2.0
CATEGORIES= lang
MASTER_SITES= http://code.call-cc.org/releases/${PKGVERSION_NOREV}/
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://www.call-cc.org/
COMMENT= Scheme to C compiler, handling R5RS
LICENSE= modified-bsd
MAKE_JOBS_SAFE= no
USE_LIBTOOL= yes
USE_TOOLS+= gmake
UNLIMIT_RESOURCES= datasize
BUILD_DEFS+= CHICKEN_BINARY_VERSION
CHICKEN_BINARY_VERSION= 11
OWN_DIRS+= ${PREFIX}/lib/chicken
OWN_DIRS+= ${PREFIX}/lib/chicken/${CHICKEN_BINARY_VERSION}
BUILD_TARGET= all
.include "../../mk/bsd.prefs.mk"
# PLATFORM detection:
.if !empty(OPSYS:M*BSD) || ${OPSYS} == "DragonFly"
PLATFORM= bsd
.elif ${OPSYS} == "Linux"
PLATFORM= linux
.elif ${OPSYS} == "Darwin"
PLATFORM= macosx
.elif ${OPSYS} == "SunOS"
PLATFORM= solaris
.elif ${OPSYS} == "Haiku"
PLATFORM= haiku
.else
#PLATFORM+= ${OPSYS} == "Interix"
# possible choices left: aix android cross-linux-mingw cygwin hurd mingw
# mingw-msys
PKG_SKIP_REASON+= "${OPSYS} is not supported"
.endif
MAKE_FILE= GNUmakefile
MAKE_ENV+= C_COMPILER=${CC:Q}
MAKE_ENV+= HOST= # fix ${HOST} prepending ${CC}
# Need to have these in MAKE_FLAGS, MAKE_ENV is not enough due to the
# way the build system overrides them.
MAKE_FLAGS+= PLATFORM=${PLATFORM:Q} PREFIX=${PREFIX:Q} DESTDIR=${DESTDIR:Q}
MAKE_FLAGS+= MANDIR=${PREFIX:Q}/${PKGMANDIR}
MAKE_FLAGS+= INFODIR=${PREFIX:Q}/${PKGINFODIR:Q}
MAKE_FLAGS+= DOCDIR=${PREFIX:Q}/share/doc/${PKGNAME_NOREV}
MAKE_FLAGS+= INSTALL_PROGRAM=${INSTALL:Q}
TEST_TARGET= check
PLIST_SUBST+= CHICKEN_BINARY_VERSION=${CHICKEN_BINARY_VERSION:Q}
PRINT_PLIST_AWK+= { sub("/${CHICKEN_BINARY_VERSION}/", "/$${CHICKEN_BINARY_VERSION}/") }
PRINT_PLIST_AWK+= { sub(".so.${CHICKEN_BINARY_VERSION}$$", ".so.$${CHICKEN_BINARY_VERSION}") }
.include "../../mk/bsd.pkg.mk"