diff --git a/.github/workflows/platform.yml b/.github/workflows/platform.yml index c51a50a..0db0701 100644 --- a/.github/workflows/platform.yml +++ b/.github/workflows/platform.yml @@ -37,7 +37,7 @@ jobs: needs: build-base-with-docker strategy: matrix: - allocator: [ff, fg, gd, hd, hm, iso, je, lf, lp, lt, mesh, mng, mi, mi2, mi3, nomesh, pa, rp, scudo, sm, sn, sg, tbb, tc, yal, tcg] + allocator: [ff, fg, gd, hd, hm, iso, je, lf, lp, lt, mesh, mng, mi, mi2, mi3, nomesh, pa, rp, scudo, s, sm, sn, sg, tbb, tc, yal, tcg] testsuite: [allt] # Used to provide a platform-specific predicate predicate: [true, false] diff --git a/bench.sh b/bench.sh index b169a5b..0bc9a31 100755 --- a/bench.sh +++ b/bench.sh @@ -6,7 +6,7 @@ # Allocators and tests # -------------------------------------------------------------------- -readonly alloc_all="sys dh ff fg gd hd hm hml iso je lf lp lt mi mi-sec mi2 mi2-sec mi3 mi3-sec mng mesh nomesh pa rp sc scudo sg sm sn sn-sec tbb tc tcg mi-dbg mi2-dbg mi3-dbg xmi xsmi xmi-dbg yal rmalloc" +readonly alloc_all="sys dh ff fg gd hd hm hml iso je lf lp lt mi mi-sec mi2 mi2-sec mi3 mi3-sec mng mesh nomesh pa rp sc scudo sg sm sn sn-sec s tbb tc tcg mi-dbg mi2-dbg mi3-dbg xmi xsmi xmi-dbg yal rmalloc" readonly alloc_secure="dh ff gd hm hml iso mi-sec mi2-sec mi3-sec mng pa scudo sg sn-sec sg" alloc_run="" # allocators to run (expanded by command line options) alloc_installed="sys" # later expanded to include all installed allocators @@ -120,6 +120,7 @@ alloc_lib_add "scudo" "$localdevdir/scudo/compiler-rt/lib/scudo/standalone/libs alloc_lib_add "sg" "$localdevdir/sg/libSlimGuard.so" alloc_lib_add "sm" "$localdevdir/sm/release/lib/libsupermalloc$extso" alloc_lib_add "sn" "$localdevdir/sn/release/libsnmallocshim$extso" +alloc_lib_add "s" "$localdevdir/s/target/release/libsmalloc_ffi$extso" alloc_lib_add "sn-sec" "$localdevdir/sn/release/libsnmallocshim-checks$extso" alloc_lib_add "tbb" "$lib_tbb" alloc_lib_add "tc" "$localdevdir/tc/.libs/libtcmalloc_minimal$extso" @@ -423,6 +424,7 @@ while : ; do echo " sm use supermalloc" echo " sn use snmalloc" echo " sn-sec use secure version of snmalloc" + echo " s use smalloc" echo " sys use system malloc ($libc)" echo " tbb use Intel TBB malloc" echo " tc use tcmalloc (from gperftools)" diff --git a/build-bench-env.sh b/build-bench-env.sh index d44d58a..98a0623 100755 --- a/build-bench-env.sh +++ b/build-bench-env.sh @@ -61,6 +61,7 @@ readonly version_scudo=main readonly version_sg=master # ~unmaintained since 2021 readonly version_sm=master # ~unmaintained since 2017 readonly version_sn=0.7.4 +readonly version_s=v7.6.0 readonly version_tbb=v2023.0.0 readonly version_tc=gperftools-2.18 readonly version_tcg=81f4e44f23f2936303f9404fee7315119b9df623 # 2026-02-23 @@ -103,6 +104,7 @@ setup_scudo=0 setup_sg=0 setup_sm=0 setup_sn=0 +setup_s=0 setup_tbb=0 setup_tc=0 setup_tcg=0 @@ -148,6 +150,7 @@ while : ; do setup_mi3=$flag_arg setup_pa=$flag_arg setup_sn=$flag_arg + setup_s=$flag_arg setup_sg=$flag_arg setup_tbb=$flag_arg setup_tc=$flag_arg @@ -242,6 +245,8 @@ while : ; do setup_sm=$flag_arg;; sn) setup_sn=$flag_arg;; + s) + setup_s=$flag_arg;; tbb) setup_tbb=$flag_arg;; tc) @@ -287,6 +292,7 @@ while : ; do echo " sg setup slimguard ($version_sg)" echo " sm setup supermalloc ($version_sm)" echo " sn setup snmalloc ($version_sn)" + echo " s setup smalloc ($version_s)" echo " tbb setup Intel TBB malloc ($version_tbb)" echo " tc setup tcmalloc ($version_tc)" echo " tcg setup Google's tcmalloc ($version_tcg)" @@ -684,6 +690,12 @@ if test "$setup_sn" = "1"; then popd fi +if test "$setup_s" = "1"; then + checkout s $version_s https://github.com/zooko/smalloc + cargo build --release --package smalloc-ffi + popd +fi + if test "$setup_sm" = "1"; then checkout sm $version_sm https://github.com/kuszmaul/SuperMalloc rm -rf ./doc ./paper "./short-talk"