aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirill Ponomarev <krion@FreeBSD.org>2022-08-05 07:20:36 +0000
committerKirill Ponomarev <krion@FreeBSD.org>2022-08-05 07:20:36 +0000
commit70419d445f16ec33270498abeb346318e3045bf1 (patch)
tree67477af968c1ca5af9870c329c10df9b0fdde09c
parent6035d53819c9effe7bc3a1723099008fa8300041 (diff)
downloadports-70419d445f16ec33270498abeb346318e3045bf1.tar.gz
ports-70419d445f16ec33270498abeb346318e3045bf1.zip
lang/sbcl: Add core compression and sb-simd module
PR: 265576 Reported by: dmgk and jinxiaoyong@gmail.com
-rw-r--r--lang/sbcl/Makefile32
-rw-r--r--lang/sbcl/pkg-plist31
2 files changed, 57 insertions, 6 deletions
diff --git a/lang/sbcl/Makefile b/lang/sbcl/Makefile
index 70d38dc84cc2..da80ec8b76a2 100644
--- a/lang/sbcl/Makefile
+++ b/lang/sbcl/Makefile
@@ -5,6 +5,7 @@
PORTNAME= sbcl
DISTVERSION= 2.2.7
DISTVERSIONSUFFIX= -source
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= lang lisp
MASTER_SITES= SF/${PORTNAME}/${PORTNAME}/${DISTVERSION} \
@@ -33,8 +34,8 @@ WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
PORTDOCS= *
# All options explained into file: ${WRKSRC}/base-target-features.lisp-expr
-OPTIONS_DEFINE= DOCS LINKABLE_RUNTIME QSHOW SAFEPOINT THREADS UNICODE \
- XREF ZLIB
+OPTIONS_DEFINE= COMPRESSION DOCS LINKABLE_RUNTIME QSHOW SAFEPOINT SIMD \
+ THREADS UNICODE XREF
OPTIONS_DEFAULT= SBCL THREADS UNICODE
OPTIONS_SINGLE= BOOTSTRAP
@@ -45,10 +46,12 @@ ABCL_DESC= Armed Bear Common Lisp
BOOTSTRAP_DESC= Supported languages of the build host
CCL_DESC= Clozure Common Lisp
CMUCL_DESC= Carnegie Mellon University Common Lisp
+COMPRESSION_DESC= Enable core compression
LINKABLE_RUNTIME_DESC= Enable SB-LINKABLE-RUNTIME feature (experimental)
QSHOW_DESC= C runtime with low-level debugging output
SAFEPOINT_DESC= Using safepoints instead of signals
SBCL_DESC= Steel Bank Common Lisp
+SIMD_DESC= Enable SB-SIMD (requires CPUs supporting AVX2)
XREF_DESC= XREF data for SBCL internals
ABCL_BUILD_DEPENDS= abcl:lang/abcl
@@ -60,6 +63,11 @@ CCL_VARS= XC_HOST="ccl --no-init --batch --quiet"
CMUCL_BUILD_DEPENDS= lisp:lang/cmucl
CMUCL_VARS= XC_HOST="lisp -nositeinit -noinit -batch -quiet"
+COMPRESSION_LIB_DEPENDS= libzstd.so:archivers/zstd
+COMPRESSION_USES= localbase:ldflags
+COMPRESSION_VARS= MAKE_SH_ARGS+="--with-sb-core-compression"
+COMPRESSION_VARS_OFF= MAKE_SH_ARGS+="--without-sb-core-compression"
+
DOCS_VARS= INFO="asdf sbcl"
LINKABLE_RUNTIME_VARS= MAKE_SH_ARGS+="--with-sb-linkable-runtime"
@@ -75,6 +83,9 @@ SAFEPOINT_VARS_OFF= MAKE_SH_ARGS+="--without-sb-safepoint --without-sb-thruption
SBCL_DISTFILES= ${PORTNAME}-${SBCL_BOOT_LIST:M${ARCHOS_PATTERN}}-binary${EXTRACT_SUFX}:binaries
SBCL_VARS= XC_HOST="${BOOT_WRKSRC}/src/runtime/sbcl --core ${BOOT_WRKSRC}/output/sbcl.core --noinform --disable-debugger --no-sysinit --no-userinit"
+SIMD_VARS= MAKE_SH_ARGS+="--with-sb-simd"
+SIMD_VARS_OFF= MAKE_SH_ARGS+="--without-sb-simd"
+
THREADS_VARS= MAKE_SH_ARGS+="--with-sb-thread"
THREADS_VARS_OFF= MAKE_SH_ARGS+="--without-sb-thread"
@@ -84,9 +95,6 @@ UNICODE_VARS_OFF= MAKE_SH_ARGS+="--without-sb-unicode"
XREF_VARS= MAKE_SH_ARGS+="--with-sb-xref-for-internals"
XREF_VARS_OFF= MAKE_SH_ARGS+="--without-sb-xref-for-internals"
-ZLIB_VARS= MAKE_SH_ARGS+="--with-sb-core-compression"
-ZLIB_VARS_OFF= MAKE_SH_ARGS+="--without-sb-core-compression"
-
BOOTVERSION= 1.2.7
CONMODULES= asdf sb-aclrepl sb-bsd-sockets sb-cltl2 sb-concurrency sb-cover \
sb-executable sb-gmp sb-grovel sb-introspect sb-md5 sb-mpfr \
@@ -112,6 +120,12 @@ PLIST_SUB+= LINKABLE_RUNTIME=""
PLIST_SUB+= LINKABLE_RUNTIME="@comment "
.endif
+.if ${PORT_OPTIONS:MSIMD}
+PLIST_SUB+= SIMD=""
+.else
+PLIST_SUB+= SIMD="@comment "
+.endif
+
# for port maintenance, invoke "make makesum PLUS_BOOTSTRAPS=1"
.if defined (PLUS_BOOTSTRAPS)
. for B in ${SBCL_BOOT_LIST}
@@ -129,7 +143,7 @@ post-patch:
${WRKSRC}/doc/manual/start-stop.texinfo
do-build:
- (cd ${WRKSRC} && ${SH} make.sh ${MAKE_SH_ARGS})
+ (cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} LINKFLAGS="${LDFLAGS}" ${SH} make.sh ${MAKE_SH_ARGS})
post-build-DOCS-on:
${DO_MAKE_BUILD} -C ${WRKSRC}/doc/manual info html
@@ -147,6 +161,12 @@ do-install:
${INSTALL_DATA} ${WRKSRC}/contrib/${M}/*.[la]* \
${STAGEDIR}${PREFIX}/lib/${PORTNAME}/${M}/
.endfor
+.if ${PORT_OPTIONS:MSIMD}
+# sb-simd has its code in './code'
+ ${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/sb-simd
+ ${INSTALL_DATA} ${WRKSRC}/contrib/sb-simd/code/*.[la]* \
+ ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/sb-simd/
+.endif
${INSTALL_DATA} ${WRKDIR}/sbclrc ${STAGEDIR}${PREFIX}/etc/sbclrc.sample
post-install:
diff --git a/lang/sbcl/pkg-plist b/lang/sbcl/pkg-plist
index 1f3ea906ccff..6f2b095df01c 100644
--- a/lang/sbcl/pkg-plist
+++ b/lang/sbcl/pkg-plist
@@ -79,6 +79,8 @@ lib/sbcl/contrib/sb-rotate-byte.asd
lib/sbcl/contrib/sb-rotate-byte.fasl
lib/sbcl/contrib/sb-rt.asd
lib/sbcl/contrib/sb-rt.fasl
+%%SIMD%%lib/sbcl/contrib/sb-simd.asd
+%%SIMD%%lib/sbcl/contrib/sb-simd.fasl
lib/sbcl/contrib/sb-simple-streams.asd
lib/sbcl/contrib/sb-simple-streams.fasl
lib/sbcl/contrib/sb-sprof.asd
@@ -181,6 +183,35 @@ lib/sbcl/sb-rotate-byte/x86-64-vm.lisp
lib/sbcl/sb-rotate-byte/x86-vm.lisp
lib/sbcl/sb-rt/rt.lisp
lib/sbcl/sb-rt/sb-rt.asd
+%%SIMD%%lib/sbcl/sb-simd/constants.lisp
+%%SIMD%%lib/sbcl/sb-simd/cpu-identification.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-arefs.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-associatives.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-comparisons.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-custom-vops.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-fake-vops.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-ifs.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-instruction-vops.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-instructions.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-modify-macros.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-reducers.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-reffers.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-rounders.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-scalar-casts.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-simd-casts.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-types.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-unequals.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-vop-functions.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-vref-vops.lisp
+%%SIMD%%lib/sbcl/sb-simd/define-vrefs.lisp
+%%SIMD%%lib/sbcl/sb-simd/instruction-set-case.lisp
+%%SIMD%%lib/sbcl/sb-simd/instruction-set.lisp
+%%SIMD%%lib/sbcl/sb-simd/missing-instruction.lisp
+%%SIMD%%lib/sbcl/sb-simd/packages.lisp
+%%SIMD%%lib/sbcl/sb-simd/printable.lisp
+%%SIMD%%lib/sbcl/sb-simd/record.lisp
+%%SIMD%%lib/sbcl/sb-simd/sb-simd.asd
+%%SIMD%%lib/sbcl/sb-simd/utilities.lisp
lib/sbcl/sb-simple-streams/classes.lisp
lib/sbcl/sb-simple-streams/direct.lisp
lib/sbcl/sb-simple-streams/file.lisp