Skip to content

Commit

Permalink
lang/sbcl: Add core compression and sb-simd module
Browse files Browse the repository at this point in the history
PR:		265576
Reported by:	dmgk and jinxiaoyong@gmail.com

(cherry picked from commit 70419d4)
  • Loading branch information
krionbsd committed Aug 5, 2022
1 parent c83abdc commit fc62245
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 6 deletions.
32 changes: 26 additions & 6 deletions lang/sbcl/Makefile
Expand Up @@ -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} \
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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"
Expand All @@ -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"

Expand All @@ -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 \
Expand All @@ -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}
Expand All @@ -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
Expand All @@ -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:
Expand Down
31 changes: 31 additions & 0 deletions lang/sbcl/pkg-plist
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit fc62245

Please sign in to comment.