6213608927
Enable NetBSD/i386 build again. Changes in sbcl-2.3.11 relative to sbcl-2.3.10 * minor incompatible change: streams with an external-format specified with :REPLACEMENT will use their replacement data once per stream unit that causes a decoding error (rather than, in some cases, once for a sequence of bytes none of which is a valid character start position for that external-format). * minor incompatible change: external-format designators with unsupported or unrecognized options now signal an error when used. * enhancement: During generic function dispatch, for a generic function using standard- or short-method-combination, if there are no applicable primary methods the system will call the generic function SB-PCL:NO-PRIMARY-METHOD, whose default behaviour is to signal an error. Users may define methods on this generic function. * enhancement: external formats for unibyte encodings and utf-8 now support newline variants. * enhancement: character decoding and encoding errors signalled by stream or octet functions now provide a USE-VALUE restart for handlers to provide replacement input or output. * enhancement: READ-SEQUENCE and WRITE-SEQUENCE support user-defined sequences; the default implementation proceeds element-by-element, reading or writing single bytes or characters to or from the stream as appropriate. * bug fix: OCTETS-TO-STRING using unibyte external formats with unallocated codepoints (e.g. iso-8859-3) correctly signal or use replacements rather than taking bits from the address of NIL and converting those bits to a character. * bug fix: FILE-STRING-LENGTH now returns NIL if the input datum is not encodable in the stream's external format. * bug fix: table-based multibyte external formats (EUC-JP, Shift-JIS, GBK) now honour a replacement character (in the external format or through restarts) when encoding to octets. * bug fix: converting from octets using the UCS-2, UCS-4 and UTF-32 external formats no longer reads past the end of an octet array with a non-integral number of two- or four-byte units. * bug fix: converting from octets using the UCS-2, UCS-4, UTF-16 or UTF-32 external formats now returns a simple string, as required by the type declaration of OCTETS-TO-STRING. * bug fix: providing an invalid external format argument to OPEN or WITH-OPEN-FILE (or the internal MAKE-FD-STREAM) no longer leaks a file descriptor. * bug fix: SB-ROTATE-BYTE recognizes out-of-relevant-range BYTE specifications for integers before attempting to cons up enormous bignums for masking and shifting. (#2042937) * bug fix: fix type derivation on compiling SB-ROTATE-BYTE forms with non-zero POSITION in the byte specifier. (#2042775) * bug fix: fix multiple assembler errors when compiling MAKE-ARRAY, MAKE-STRING and similar with a large constant size. (#2037347, #2038744) * bug fix: fix internal error when compiling (SETF SBIT) with a large constant index. (#2037415) * bug fix: fix internal compiler error on invalid lambda list parameters in LABELS. (#2040334) * bug fix: fix internal compiler error when compiling some infinitely-recursive LABELS forms. (#2042704) * bug fix: fix internal compiler error when attempting to inline a jump to a label that has been deleted. (#2043262) * bug fix: FILL-POINTER should never be made to go negative. (#2042452) * optimization: external formats with :REPLACEMENT no longer bind handlers for coding errors around conversion functions, and so should cons less and be faster. * optimization: when the :EXTERNAL-FORMAT argument to STRING-TO-OCTETS or OCTETS-TO-STRING is a compile-time constant, the external format is resolved at load time rather than on each call. * optimization: the compiler is able to constrain the types of inputs to some functions given a derived or asserted type of the function's return value. * optimization: the compiler performs fewer redundant type checks in ASSOC, GETF and similar functions. Changes in sbcl-2.3.10 relative to sbcl-2.3.9 * enhancement: The compiler now allows stack allocating vectors of any size on all safety levels, not just those which it can prove are of sub-page sizes. It can do this because it now inserts code to check for stack overflow explicitly on higher safety levels. * enhancements to the disassembler: * on arm64, x86-64, DISASSEMBLE annotates references to static symbols. * bug fix: calls to generic functions now detect erroneous keywords (in the sense of CLHS 7.6.5) passed as arguments even when auxiliary methods are applicable. * bug fix: the standard method on SB-MOP:COMPUTE-EFFECTIVE-METHOD no longer inserts calls to implementation-defined local macros. (reported by Daniel Kochmański) * bug fix: compiler error from state-machine-like LABELS forms in some circumstances. (#2037318) * bug fix: fix compile-time error in constant-folding RATIONAL on literal float infinities. (#2037455) * bug fix: failure on x86-64 to assemble code for EQL tests of comparisons with immediates. (#2037456) * bug fix: infinite loop in the compiler for simplification of type tests of complicated union types. (#2038112, reported by Paul M. Rodriguez) * bug fix: inability to dump a literal displaced array containing copies of its displacement target. (#2038233, reported by James Kalenius) * bug fix: compiler error in LOGBITP type derivation. (#2038241) * bug fix: compiler error in AREF type derivation. (#2038659) * bug fix: compiler internal consistency failure in overflow type checks. (#2038736) * bug fix: work around an infinite loop in type simplification by not providing such types from the compiler. (#2038980, reported by Richard Holcombe) * bug fix: spurious run-time argument count errors from generic function calls on arm64. (#2039006, reported by fiddlerwoaroof) * bug fix: errors in SCALE-FLOAT on floating-point infinities. (#2039613) * bug fix: ROOM is slightly more robust to incompletely-initialized instances at the point of running ROOM. (Reported by Andreas Franke) * bug fix: finalizers saved through SAVE-LISP-AND-DIE and subsequently executed do not trigger memory faults. (Reported by Bohong Huang) * optimization: improvements to type derivation for ISQRT, INTEGER-LENGTH, LOGCOUNT, LOG, DENOMINATOR. Changes in sbcl-2.3.9 relative to sbcl-2.3.8 * enhancement: stack allocation via DYNAMIC-EXTENT now applies to all values that a variable can take on (for example via SETQ), not just the initial binding. This permits for example building complex or recursive structures on the stack more easily via iteration. See the updated manual entry for more details. * minor incompatible change: some interfaces in the SB-POSIX contrib module adhere to the spec that a NULL result from the C library is an error if and only if errno was altered by the call. SYSCALL-ERROR will be signaled if so. * enhancement: the SB-POSIX contrib module provides DO-PASSWDS and DO-GROUPS to allow users to iterate over password and group databases safely. * platform support: * support for Darwin on x86 and PowerPC has been restored. (#2033287, thanks to Kirill A. Korinsky, Sergey Fedorov and barracuda156) * bug fix: miscompilation due to erroneous type derivation in the presence of multiplication of fixnums by ratios. (#2033695, reported by Patrick Dussud) * bug fix: compiler error when compiling signed- and unsigned 64-bit type checks in some cases. (#2033997, reported by Eric Smith) * bug fix: compiler error when the :INITIAL-CONTENTS argument to MAKE-ARRAY is a constant non-sequence. (#2037328) * bug fix: compiler error when constant-folding sequence functions with :TEST or :KEY functions erroring on the given sequence. (#2037341) * bug fix: compiler error when arguments to array or sequence functions imply a very large sequence size. (#2037443, #2037348) * bug fix: compiler error when the return value of ADJUST-ARRAY is not used. (#2037450) * optimization: function types derived by the compiler can in some cases be propagated backwards through the intermediate representation. * optimization: better type derivations for LDB, LOGBITP, RATIO. * optimization: eliminate bound checks in more cases involving transitive comparisons.
125 lines
3.8 KiB
Makefile
125 lines
3.8 KiB
Makefile
# $NetBSD: Makefile,v 1.102 2023/11/28 15:03:55 rjs Exp $
|
|
|
|
DISTNAME= ${PKGNAME_NOREV}-source
|
|
PKGNAME= sbcl-2.3.11
|
|
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}
|
|
|
|
MKPIE_SUPPORTED=no
|
|
|
|
.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
|
|
TOOL_DEPENDS+= clisp-[0-9]*:../../lang/clisp
|
|
UNLIMIT_RESOURCES= datasize
|
|
.elif ${SBCL_BOOT_SYSTEM} == abcl
|
|
TOOL_DEPENDS+= abcl-[0-9]*:../../lang/abcl
|
|
.endif
|
|
|
|
PLIST_VARS+= simd
|
|
|
|
.if ${MACHINE_ARCH} == "x86_64"
|
|
PLIST.simd= yes
|
|
.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 "../../devel/gmp/buildlink3.mk"
|
|
.include "../../math/mpfr/buildlink3.mk"
|
|
.include "../../mk/bsd.pkg.mk"
|