Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 5 Aug 2022 07:22:51 GMT
From:      Kirill Ponomarev <krion@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-branches@FreeBSD.org
Subject:   git: fc62245938b7 - 2022Q3 - lang/sbcl: Add core compression and sb-simd module
Message-ID:  <202208050722.2757MpiH083058@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch 2022Q3 has been updated by krion:

URL: https://cgit.FreeBSD.org/ports/commit/?id=fc62245938b730b0e37e1039ee10c4ebd6447fc4

commit fc62245938b730b0e37e1039ee10c4ebd6447fc4
Author:     Kirill Ponomarev <krion@FreeBSD.org>
AuthorDate: 2022-08-05 07:20:36 +0000
Commit:     Kirill Ponomarev <krion@FreeBSD.org>
CommitDate: 2022-08-05 07:22:44 +0000

    lang/sbcl: Add core compression and sb-simd module
    
    PR:             265576
    Reported by:    dmgk and jinxiaoyong@gmail.com
    
    (cherry picked from commit 70419d445f16ec33270498abeb346318e3045bf1)
---
 lang/sbcl/Makefile  | 32 ++++++++++++++++++++++++++------
 lang/sbcl/pkg-plist | 31 +++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+), 6 deletions(-)

diff --git a/lang/sbcl/Makefile b/lang/sbcl/Makefile
index 64d80a8a554c..e1da9ebeef86 100644
--- a/lang/sbcl/Makefile
+++ b/lang/sbcl/Makefile
@@ -5,6 +5,7 @@
 PORTNAME=	sbcl
 DISTVERSION=	2.2.5
 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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202208050722.2757MpiH083058>