pkgsrc/lang/sbcl/Makefile
gdt b4a2315347 lang/sbcl: Update to 2.2.5
Tested by building (and hence building clisp) on NetBSD 9 amd64, and
running sbcl and evaluating (+ 1 2), following report by Chavdar
Ivanov.

Upstream NEWS (less bugfixes and minor improvements)

changes in sbcl-2.2.5 relative to sbcl-2.2.4:
  * minor incompatible change: SB-EXT:*DERIVE-FUNCTION-TYPES* being NIL now
    means that function calls will strictly only use type information from
    proclaimed ftypes. The previous behavior (still the default) of using
    derived type information from the same file is specified with :SAME-FILE.
    (lp#1393302)
  * minor incompatible change: RENAME-FILE now overwrites the target file on
    Windows too, making its behaviour consistent with other platforms.
  * minor incompatible change: inlining of local function is inhibited if
    policy DEBUG = 3.
  * platform support:
    ** single-stepping is now supported on 64-bit PowerPC platforms.  (thanks
       to Thomas Fitzsimmons)
    ** the :SB-LINKABLE-RUNTIME feature is now supported on 32-bit and 64-bit
       PowerPC platforms.  (thanks to Thomas Fitzsimmons)
  * enhancement: debug source locations now work correctly for top level forms
    with policy DEBUG = 1, as well as for block compiled files.
  * enhancement: TRACE now supports tracing macro functions, compiler-macro
    functions, individual methods and local functions.  See the user manual for
    more details.  (lp#375314)

changes in sbcl-2.2.4 relative to sbcl-2.2.3:
  * enhancement: better constraint propagation in the compiler. Specifically,
    the compiler can now derive the type of X in control flow join situations
    such as
    (LAMBDA (X) (ECASE (1 ...) (2 ...)) X)
    or
    (LAMBDA (X) (ETYPECASE (INTEGER ...) (SYMBOL ...)) X)
    instead of forgetting all information about X after the E(TYPE)CASE.

changes in sbcl-2.2.3 relative to sbcl-2.2.2:
  * minor incompatible change: SB-THREAD:MUTEX-OWNER may return :THREAD-DEAD
    if the apparent owner either exited nearly instantly after releasing the
    mutex (and is not now the owner), or died and never released it.
  * minor incompatible change: building the system with the simple semi-space
    copying collector is no longer supported.
  * minor incompatible change: support for PPC/Darwin has been removed.
  * platform support:
    ** threads are now enabled by default on RISC-V.
    ** The generational garbage collector is now supported on MIPS.

changes in sbcl-2.2.2 relative to sbcl-2.2.1:
  * platform support:
    ** all architectures now share the coverage mark instrumentation
       implementation, meaning that performance now equals what had been
       implemented only on x86 architectures.
  * enhancement: improved handling of source locations for some classes
    of compile time and runtime errors.
  * enhancement: better source locations for structure accessors.

changes in sbcl-2.2.1 relative to sbcl-2.2.0:
  * incompatible change: DEFINE-ALIEN-CALLBACK, which has never been exported
    from a public package, has been deleted.  It is superseded by
    SB-ALIEN:DEFINE-ALIEN-CALLABLE.
  * minor incompatible change: compiler warnings are emitted on more
    provably-erroneous code involving sequence functions on specialized
    arrays.
  * platform support:
    ** support getting thread IDs on FreeBSD.  (thanks to Felix Lange)
  * enhancement: provide a restart for method lambda list mismatches that
    fmakunbounds the generic function.
  * enhancement: provide a USE-VALUE restart around type errors signalled from
    (SETF SLOT-VALUE).
  * enhancement: when UPDATE-INSTANCE-FOR-DIFFERENT-CLASS (or -REDEFINED-)
    undergoes a non-local exit, restore the instance to its original state.
    (thanks to Michał phoe Herda)
  * enhancement: the :SYNCHRONIZED keyword argument to MAKE-HASH-TABLE is no
    longer experimental.

changes in sbcl-2.2.0 relative to sbcl-2.1.11:
  * platform support:
    ** support for FreeBSD on 64-bit arm platforms has been added.
    ** the :SB-LINKABLE-RUNTIME build-time feature is now supported on 32-bit
       and 64-bit arm platforms, and on the FreeBSD operating system.
  * enhancement: catch type mismatches for REPLACE, SUBSTITUTE, MAKE-ARRAY
    with :INITIAL-CONTENTS.
2022-06-12 14:48:12 +00:00

114 lines
3.7 KiB
Makefile

# $NetBSD: Makefile,v 1.95 2022/06/12 14:48:12 gdt Exp $
DISTNAME= ${PKGNAME_NOREV}-source
PKGNAME= sbcl-2.2.5
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=sbcl/}
EXTRACT_SUFX= .tar.bz2
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://www.sbcl.org/
COMMENT= SBCL, a Common Lisp implementation
LICENSE= mit
# SBCL creates a new release with minor updates and fixes every
# month. The maintainer of this package does not have the time
# to build, test, update, etc. this package that often. If you
# would like a newer (or older) version, this works very often:
# 1) change the PKGNAME variable above as desired
# 2) make fetch && make makesum && make package
USE_TOOLS+= gmake
WRKSRC= ${WRKDIR}/${PKGNAME_NOREV}
.include "../../mk/bsd.prefs.mk"
#
# Bootstrap section.
#
# SBCL needs an existing Common Lisp system to build it...
# Currently allowed systems are CLISP, CMUCL, OpenMCL, ABCL and SBCL itself.
#
# If SBCL is installed in an unusual place when trying to build this
# package, you may need to set the full path in SBCL_BOOT_SYSTEM and
# build the package with "SBCL_HOME=/path/to/SBCL/core/image/ make"
#SBCL_BOOT_SYSTEM= clisp # CLisp
#SBCL_BOOT_SYSTEM= "lisp -batch" # CMUCL
#SBCL_BOOT_SYSTEM= "openmcl --batch" # OpenMCL
#SBCL_BOOT_SYSTEM= sbcl # SBCL
#SBCL_BOOT_SYSTEM= abcl # ABCL
.if !defined(SBCL_BOOT_SYSTEM)
# Use "clisp -ansi -on-error abort" to make the build more reproducible,
# per Christophe Rhodes:
SBCL_BOOT_SYSTEM= clisp -norc -ansi -on-error abort
BUILD_DEPENDS+= clisp-[0-9]*:../../lang/clisp
UNLIMIT_RESOURCES= datasize
.elif ${SBCL_BOOT_SYSTEM} == abcl
BUILD_DEPENDS+= abcl-[0-9]*:../../lang/abcl
.endif
SUBST_CLASSES+= fix-paths
SUBST_STAGE.fix-paths= pre-configure
SUBST_MESSAGE.fix-paths= Fixing absolute paths.
SUBST_FILES.fix-paths= doc/sbcl.1
SUBST_VARS.fix-paths= PREFIX
SUBST_SED.fix-paths+= -e 's,/var/log,${VARBASE}/log,g'
SUBST_CLASSES+= fix-bins
SUBST_STAGE.fix-bins= pre-configure
SUBST_FILES.fix-bins= src/runtime/Config.x86-64-sunos
SUBST_FILES.fix-bins+= src/runtime/Config.x86-sunos
SUBST_FILES.fix-bins+= contrib/asdf-module.mk
SUBST_SED.fix-bins= -e 's,nm ,/usr/bin/nm ,'
SUBST_SED.fix-bins+= -e 's,ggrep,grep,'
SUBST_SED.fix-bins+= -e 's,=199506L,=200112L,'
SUBST_SED.fix-bins+= -e 's,=500,=600,'
BUILD_DEFS+= VARBASE
.if defined(TOOLS_PLATFORM.paxctl)
SBCL_PAXCTL= ${PAXCTL} +m
MAKE_ENV+= SBCL_PAXCTL=${SBCL_PAXCTL:Q}
.endif
INSTALL_ENV+= BUILD_ROOT=${DESTDIR:Q}
INSTALL_ENV+= INSTALL_ROOT=${PREFIX:Q}
INSTALL_ENV+= MAN_DIR=${PREFIX:Q}/${PKGMANDIR}
NOT_PAX_MPROTECT_SAFE+= bin/sbcl
.if !empty(MACHINE_PLATFORM:MSunOS-*-i386)
SBCL_ARCH_ARGS= "--arch=x86"
.elif !empty(MACHINE_PLATFORM:MSunOS-*-x86_64)
SBCL_ARCH_ARGS= "--arch=x86-64"
.endif
do-build:
${RUN} ${_ULIMIT_CMD} \
cd ${WRKSRC} && ${PKGSRC_SETENV} ${MAKE_ENV} ${SH} make.sh --prefix=${PREFIX} ${SBCL_ARCH_ARGS} --xc-host=${SBCL_BOOT_SYSTEM:Q}
post-build:
cd ${WRKSRC} && ${RM} -f contrib/sb-cover/test-output/*
do-install:
${RUN} ${_ULIMIT_CMD} \
cd ${WRKSRC} && ${PKGSRC_SETENV} ${INSTALL_ENV} ${SH} install.sh
${RM} -f ${DESTDIR}${PREFIX}/lib/sbcl/sb-posix/test-output/write-test.txt
${RM} -f ${DESTDIR}${PREFIX}/lib/sbcl/sb-posix/test-output/read-test.txt
${RM} -f ${DESTDIR}${PREFIX}/lib/sbcl/asdf-install/installer.lisp.orig
do-test:
# for f in compiler.pure.lisp interface.pure.lisp compiler.impure.lisp debug.impure.lisp interface.impure.lisp; do mv ${WRKSRC}/tests/$$f ${WRKSRC}/tests/$$f.off || :; done
${RUN} ${_ULIMIT_CMD} \
cd ${WRKSRC}/tests && ${PKGSRC_SETENV} ${TEST_ENV} ${SH} ./run-tests.sh
.if ${MACHINE_ARCH} == "x86_64"
PLIST_SUBST+= SUFX64=-64
.else
PLIST_SUBST+= SUFX64=
.endif
.include "../../mk/bsd.pkg.mk"