pkgsrc/lang/sbcl/Makefile
rjs b456499bdc Update to 2.1.10.
New in version 2.1.10


    * incompatible change: simd-pack without a specific element-type
      is no longer treated as containing integers. A type must be
      supplied for VOPs to work on such values.
    * minor incompatible change: the list form of the FUNCTION type
      specifier does not allow * as any argument type, but does allow
      * as a placeholder for wholly unspecified arguments when
      specifying the value(s) type.
    * minor incompatible change: the default (Lisp) toplevel option
      parser throws an error if it encounters an option which was
      intended to be used and removed by the C runtime. (#1945081,
      reported by Luke Gorrie)
    * new feature: there is now a defined interface for defining
      foreign callable functions, which can be used for passing
      callbacks to foreign functions or for calling Lisp code from the
      foreign world as a shared library (preliminary support). See the
      revised manual section "Calling into Lisp From C" for more
      details.
    * enhancement: arg-count mismatches in self-calls in defmethod are
      reported. (#1912436, reported by 3b)
    * enhancement: the SB-CLTL2 contrib now returns type information
      for generated structure accessors. (#1934859, reported by SATO
      shinichi)
    * optimization: code generation is improved for modular arithmetic
      involving signed operations.
    * platform support:
        * x86-64 machine code emitter crash when attempting to
          assemble some vector instructions. (#1945975, thanks to
          Marco Heisig)
        * conditional move instructions are now supported on arm64.
        * a number of new peephole optimizations have been implemented
          on arm64.
        * arm64 on Darwin now uses gcc-compatible thread-local storage.
    * bug fix: compiler notes are no longer emitted when compiling
      FORMATTER forms, including when implicitly triggered on a
      constant string argument to FORMAT. (#1946246, reported by SATO
      shinichi)
    * bug fix: a compiler error when attempting to compile a call to
      AREF with too many dimensions. (#1902985)
    * bug fix: harmonize the behaviour of SLOT-BOUNDP on
      non-standard-objects between the various ways in which it can be
      called. (#732229, reported by Zach Beane)
    * bug fix: FTRUNCATE and similar functions are now more careful
      about deriving facts about the sign of zero they might
      return. (#1732009, reported by Paul Dietz)

New in version 2.1.9

    * minor incompatible change: the experimental DEFCAS macro has
      been removed.
    * minor incompatible change: finalizing classes with slots with
      duplicate symbol-names will only emit a warning if either slot
      name is an exported symbol. (#1943559)
    * platform support:
        * the debugger is better able to display SIMD packs. (thanks
           to Marco Heisig)
        * fix a bug in zeroing YMM registers. (thanks to Marco Heisig)
        * fix instruction definitions for SSE blend and shuffle vector
          instructions. (thanks to Marco Heisig)
        * handle heap corruption exceptions in our exception handler
          on win64.
        * improve WAIT-UNTIL-FD-USABLE on Windows, reducing
          busy-looping. (thanks to Fabio Almeida)
    * bug fix: EQUALP hash tables whose keys contain arrays containing
      floats should behave correctly. (#1942424, reported by Nicolas
      Neuss)

New in version 2.1.8

    * minor incompatible change: the experimental DEFINE-CAS-EXPANDER
      macro has been removed.
    * minor incompatible change: the hooks in *INIT-HOOKS* are called
      before starting the finalizer or other non-user threads. (thanks
      to Sean Whitton)
    * platform support:
        * many improvements to code generation on arm64.
        * avoid slow forms of the bit test instructions BT, BTS, BTR on x86-64.
        * fix a bug in loading large core files on the Apple
          M1/arm64. (thanks to Mayank Manjrekar)
        * fix a bug in loading core loading on the Apple
          M1/arm64. (reported by Eric Timmons)
    * enhancement: the block-compiler is more robust to files with
      intermingled compile-time and load-time effects. The semantics
      of the block-compiler remain not-entirely ANSI
      compatible. (thanks to Sean Maher)
    * enhancement: (CAS SAP-REF-<x>) and CAS on alien integers is
      implemented on ppc64 and x86-64, working towards fixing #1894057
    * bug fix: fix OPEN-STREAM-P on streams closed by saving a
      core. (#1938433, reported by Guillaume LE VAILLANT)
    * bug fix: remove a spurious warning from COERCE. (#1920931,
      reported by Andrew Berkley)
    * bug fix: remove a warning from inlining
      SET-EXCLUSIVE-OR. (#1936470, reported by Jerome Abela)
2021-11-30 23:35:05 +00:00

114 lines
3.7 KiB
Makefile

# $NetBSD: Makefile,v 1.94 2021/11/30 23:35:05 rjs Exp $
DISTNAME= ${PKGNAME_NOREV}-source
PKGNAME= sbcl-2.1.10
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"