changes in sbcl-1.2.9 relative to sbcl-1.2.8: * minor incompatible change and bug fix: unboxed numeric constants on x86oids are arranged in memory differently, and the disassembler does not show them separately in DISASSEMBLE, but does if DISASSEMBLE-CODE-COMPONENT is used. (lp#1421987) * optimization: The compiler's treatment of type specifiers makes it slightly faster and more memory-efficient. Portable code should be indifferent to this change, however, users of SB-INTROSPECT:FUNCTION-TYPE might notice that (MEMBER T NIL) and (MEMBER NIL T) are both internally collapsed to the former, so that the latter can never be obtained as part of an FTYPE. * optimization: a TYPEP call in which the second argument is not a QUOTE form but nevertheless recognized as a compile-time constant might open-code the test. One scenario for this involves backquote, such as (TYPEP x `(my-type ,some-arg)). Code which relied upon deferring until runtime should declare (NOTINLINE TYPEP). [Due to the sematic constraints of DEFTYPE etc in in CLHS 3.2.2.3, code requiring delayed evaluation could be unportable though.] * enhancement: unused variables at the top-level are now reported. (lp#492200) * bug fix: DEFCLASS handles cyclic {super,meta}class relations better (lp#1418883) * bug fix: compiler no longer signals an error when compiling certain function calls. (lp#1416704, lp#404441, lp#1417822, lp#1234919) * bug fix: compiler doesn't stumble on a LOGIOR transform. (lp#1389433) * bug fix: more robust debugger and backtraces. (lp#1413850, lp#1099500, lp#1412881, lp#945261, lp#1419205, lp#1409402) * bug fix: files larger than 4GB can now be compiled. * bug fix: x86 truncated results from 64-bit foreign functions to 32 bits. * bug fix: file-position didn't work on large files on win32. (lp#1271545) * bug fix: callbacks from foreign threads can work without enabling sb-safepoint. * bug fix: sb-introspect:function-lambda-list works properly on interpeted macros. (lp#1387404) * bug fix: ADJUST-ARRAY properly handles non-adjustable arrays. (lp#886418) * bug fix: compiler no longer fails to dump a multidimensional array constant involving a circular reference to itself * bug fix: conditional and nested DX allocation no longer confuse the compiler in STACK analysis. (lp#1044465) * bug fix: sb-rotate-byte constant folding bug fixed. (lp#1423682) changes in sbcl-1.2.8 relative to sbcl-1.2.7: * enhancement: better error and warning messages. (lp#1314767, lp#736383) * enhancement: backtrace for invalid argument count produces the exact supplied arguments including the extra ones, on x86, x86-64 and ARM. * enhancement: a STYLE-WARNING is signaled for DEFSTRUCT accessors which are used before the structure is defined; similarly for the predicate. * optimization: FORMAT NIL with only ~a and string arguments is transformed into CONCATENATE. * optimization: POSITION and FIND when inlined into code that is compiled with qualities of safety < 2 and speed > space will no longer signal an error on circular lists, but will potentially loop forever if given no :END constraint. As was always the case, calls that are not inlined are safe regardless of lexical policy. * bug fix: CLOS methods compiled with (OPTIMIZE (DEBUG 0)) no longer cause debugger failure when printing a backtrace * bug fix: more resilience to deleted code. (lp#1308328, lp#1390544) * bug fix: the CLHS example of MAKE-LOAD-FORM involving TREE-WITH-PARENT did not work, and now it does. changes in sbcl-1.2.7 relative to sbcl-1.2.6: * optimization: returning constant values refers to preboxed constants more reliably. (lp#1398785) * enhancement: a STYLE-WARNING is produced if a compiler-macro is defined for a function after at least one ordinary (not inlined) call to that function was compiled, indicating a likely compilation order problem. Likewise a warning ensues if a call is compiled to a function that is subsequently proclaimed INLINE. * enhancement: always lose() when something goes wrong while saving a core (instead of just printing an error on stderr in some situations). * enhancement: frames in the debugger are now restartable by default. * bug fix: restore error handling on Windows x86. * bug fix: MAKE-SEQUENCE detects type errors in its :INITIAL-ELEMENT at compile-time when possible. (lp#330299) * bug fix: parsing of malformed type specifiers no longer results in a memory-fault-error. * bug fix: LOOP properly destructures nested lists in WITH. * bug fix: MACROEXPANDing the redefinition of an alien structure type no longer signals the wrong error. * bug fix: PROGV doesn't get confused by forced DEBUG 3 (lp#1405456). changes in sbcl-1.2.6 relative to sbcl-1.2.5: * enhancement: SERVE-EVENTS uses the poll() system call in lieu of select() if the OS has the former. Previously poll() was used only if waiting on exactly one file descriptor. * enhancement: efficiency of access to untagged structure slots is improved on x86-64, and the order of slots in memory is exactly as specified by defstruct, simplifying use of structures as arguments to foreign calls. * bug fix: SB-DEBUG:ARG now works in all TRACE options which evaluate forms. (lp#1357826) * bug fix: GC memory corruption during internal memory handling. * bug fix: duplicate effective-slot-definition objects as compared by EQ on name could be present in CLASS-SLOTS of a class whose metaclass was structure-class or condition-class. (lp#1049423) * bug fix: HANDLER-BIND with empty bindings works again; regression in 1.2.5. (lp#1388707) * bug fix: ATOMIC-INCF works on structure slots in interpreted code. (lp#1381867) * bug fix: MAKE-ARRAY properly handles character types like (eql #\a) and (member #\a #\c). (lp#1392068) * bug fix: READ sometimes accidentally preserved a whitespace character after a token when it should not have. (lp#327790) changes in sbcl-1.2.5 relative to sbcl-1.2.4: * enhancement: sb-bsd-sockets now has basic support for IPv6 * enhancement: An sb-unicode package has been added, containing many functions related to handling Unicode text * enhancement: The reader now normalizes symbols to Normalization Form KC (NFKC). This behavior can be disabled with SB-EXT:READTABLE-NORMALIZATION * enhancement: a style-warning is signaled if OPTIMIZE declarations multiply specify a quality with differing values. (lp#310267) * bug fix: conservatively pointed to pages wipe out unused dwords so that they cannot act as false roots in turn. * bug fix: the walker's handling of lexical variable and symbol-macro bindings is improved (lp#375326, lp#1368305) * bug fix: HANDLER-{BIND,CASE} no longer drop into ldb when a clause contains an undefined condition type; regression in 1.1.19 (lp#1378939) * bug fix: in interpreted code, inequality predicates did not type-check arguments that weren't examined, and a 1-argument use of MIN or MAX accepted a complex number. (lp#1373702) * bug fix: APROPOS and APROPOS-LIST handle inherited symbols correctly. (lp#1364413, thanks to Zach Beane) changes in sbcl-1.2.4 relative to sbcl-1.2.3: * enhancement: the sequence functions MAP, CONCATENATE and MERGE now call the new generic functions SEQUENCE:MAP, SEQUENCE:CONCATENATE and SEQUENCE:MERGE respectively when the specified result type designates an extended sequence. * bug fix: Wrong binding order of supplied-p parameters in macro lambda lists. (lp#721135) * bug fix: VALIDATE-SUPERCLASS returns T when the superclass is the universal superclass (lp#1332983) * bug fix: reading an uninterned symbol whose print name has the syntax of an integer signals an error. (lp#310062) * bug fix: the walker is less likely to be confused when walking LET* forms with special bindings and use of those bindings and others of the same name. * bug fix: a rare bug affecting 32-bit platforms resulting in a fatal condition with the message "Globaldb rehash failure" has been fixed. changes in sbcl-1.2.3 relative to sbcl-1.2.2: * enhancement: DOCUMENTATION works on instances of FUNCALLABLE-STANDARD-CLASS * enhancement: ASSERT reports arguments of calls to lexical functions in additional to global functions. * enhancement: ASDF updated to 3.1.3 * enhancement: UIOP can be loaded without ASDF. * bug fix: some methods on CHANGE-CLASS did not finalize the new class before accessing its class-precedence list. * bug fix: CHANGE-CLASS no longer fails on unbound slots in the source object. * bug fix: CHANGE-CLASS signals an appropriate error when the destination class is a FORWARD-REFERENCED-CLASS. * bug fix: CHANGE-CLASS no longer signals bogus TYPE-ERRORs for slots for which initargs have been supplied. * bug fix: saving cores on ARM was broken since the introduction of GENCGC. (lp#1349795) * bug fix: macroexpanding a backquoted expression involving ",." outside of the compiler failed. (lp#1354623) changes in sbcl-1.2.2 relative to sbcl-1.2.1: * incompatible change: the #\` ("backquote") reader macro was reimplemented to support robust pretty-printing. Reading a form involving #\` produces an invocation of the QUASIQUOTE ordinary macro which may contain subforms that are not lists. Code that unportably attempts operations on un-evaluated forms resulting therefrom, e.g. (SUBST a b (read-from-string "`(x (,y))")) might generate incorrect results and/or errors. * enhancement: support for GNU/kFreeBSD x86. * enhancement: ATOMIC-INCF and ATOMIC-DECF can operate on (CAR x), (CDR x) and DEFGLOBAL variables of type fixnum. * enhancement: arithmetic constant reduction is now performed on defconstant constants too. (lp#1337069). * bug fix: certain ftype proclamations containing &optional t &rest t no longer cause subsequent definitions to signal bogus style-warnings. * bug fix: #\Bell and #\Bel now read to different characters. (lp#1319452). * bug fix: CAS SYMBOL-VALUE on locally special variables didn't work. (lp#1098355) changes in sbcl-1.2.1 relative to sbcl-1.2.0: * enhancement: GENCGC is enabled on ARM. * enhancement: better error reporting for invalid calls to local functions. * enhancement: support for GNU/kFreeBSD distributions. (lp#1079954, thanks to Christoph Egger) * enhancement: experimental support for threads on NetBSD/x86-64. (thanks to Robert Swindells) * enhancement: support for DragonFly BSD. (lp#1292845, thanks to Vasily Postnicov) * bug fix: TYPE-OF must not return AND/OR/NOT expressions. (lp#1317308) * bug fix: accessing NIL arrays stopped producing errors. (lp#1311421) * bug fix: DISASSEMBLE no longer prints unwanted stuff. (lp#1251861) * bug fix: compiling SVREF on unknown types no longer produces scary errors. (lp#1258716) * bug fix: assorted LOOP fixes and enhancements. (lp#645534, lp#1322923, lp#700538, lp#613876, lp#695286, lp#798388) * bug fix: silence compiler notes from the SEARCH transform. (lp#1071310) * bug fix: array type intersection handles T and unknown element types correctly. (lp#1258716) * bug fix: fix a corner case in array type unparsing that would result in misleading translations from our internal type representation. * bug fix: array-rank now sees through union and intersection types. (lp#1310574) * bug fix: when DECLARE expressions are in the wrong place, be careful not to attempt to evaluate the subforms. (lp#573747; thanks to Roman Marynchak) * bug fix: misplaced and missing declarations in DEFTRANSFORM. (lp#1066451) * bug fix: FBOUNDP returned NIL for a class of incorrect function names instead of signaling an error. (lp#1095483) * bug fix: fix a compile-time AVER in regalloc: lifetime analysis used to (rarely) introduce duplicate conflict markers in a single TN/block pair. (lp#1327008)
102 lines
3.5 KiB
Makefile
102 lines
3.5 KiB
Makefile
# $NetBSD: Makefile,v 1.58 2015/03/10 20:50:37 asau Exp $
|
|
|
|
DISTNAME= ${PKGNAME_NOREV}-source
|
|
PKGNAME= sbcl-1.2.9
|
|
CATEGORIES= lang
|
|
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=sbcl/}
|
|
EXTRACT_SUFX= .tar.bz2
|
|
|
|
MAINTAINER= asau@NetBSD.org
|
|
HOMEPAGE= http://www.sbcl.org/
|
|
COMMENT= SBCL, a Common Lisp implementation
|
|
|
|
# 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, 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
|
|
|
|
.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} == clisp
|
|
BUILD_DEPENDS+= clisp-[0-9]*:../../lang/clisp
|
|
UNLIMIT_RESOURCES= datasize
|
|
.elif ${SBCL_BOOT_SYSTEM} == sbcl
|
|
# Get bootstrap version:
|
|
BUILD_DEPENDS+= sbcl-[0-9]*:../../lang/sbcl
|
|
.endif
|
|
|
|
SUBST_CLASSES+= fix-paths
|
|
SUBST_STAGE.fix-paths= pre-configure
|
|
SUBST_MESSAGE.fix-paths= Fixing absolute paths.
|
|
SUBST_FILES.fix-paths= install.sh src/runtime/runtime.c doc/sbcl.1
|
|
SUBST_SED.fix-paths= -e 's,@PREFIX@,${PREFIX},g'
|
|
SUBST_SED.fix-paths+= -e 's,/var/log,${VARBASE}/log,g'
|
|
|
|
SUBST_CLASSES+= fix-gtar
|
|
SUBST_STAGE.fix-gtar= pre-configure
|
|
SUBST_MESSAGE.fix-gtar= Fixing GNU tar references.
|
|
SUBST_FILES.fix-gtar= contrib/asdf-install/installer.lisp
|
|
SUBST_SED.fix-gtar= -e 's,@GTAR@,${GTAR},'
|
|
|
|
SUBST_CLASSES+= fix-nm
|
|
SUBST_STAGE.fix-nm= pre-configure
|
|
SUBST_FILES.fix-nm= src/runtime/Config.x86-64-sunos
|
|
SUBST_FILES.fix-nm+= src/runtime/Config.x86-sunos
|
|
SUBST_SED.fix-nm= -e 's,nm ,/usr/bin/nm ,'
|
|
|
|
.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:
|
|
cd ${WRKSRC} && ${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:
|
|
cd ${WRKSRC} && BUILD_ROOT=${DESTDIR:Q} INSTALL_ROOT=${PREFIX:Q} MAN_DIR=${PREFIX:Q}/${PKGMANDIR} ${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
|
|
cd ${WRKSRC}/tests && ${SH} ./run-tests.sh
|
|
|
|
.if $(LOWER_ARCH) == "amd64" || $(LOWER_ARCH) == "x86_64"
|
|
PLIST_SUBST+= SUFX64=-64
|
|
.else
|
|
PLIST_SUBST+= SUFX64=
|
|
.endif
|
|
|
|
.include "../../mk/bsd.pkg.mk"
|