Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -974,6 +974,14 @@ else
endif


ifeq "$(DONT_BUILD_LBZIP2)" "1"
DEFINES += -DBENCH_REMOVE_LBZIP2
else
LBZIP2_FILES += bwt/lbzip2/crctab.o bwt/lbzip2/decode.o bwt/lbzip2/divbwt.o
LBZIP2_FILES += bwt/lbzip2/encode.o bwt/lbzip2/parse.o bwt/lbzip2/lbzip2_lzbench.o
endif


ifeq "$(DONT_BUILD_BZIP3)" "1"
DEFINES += -DBENCH_REMOVE_BZIP3
else
Expand Down Expand Up @@ -1140,7 +1148,7 @@ endif # ifeq "$(ENABLE_CUDA)"

MKDIR = mkdir -p

lzbench: $(BUGGY_C_FILES) $(BUGGY_CC_FILES) $(BUGGY_CXX_FILES) $(ACEAPEX_FILES) $(BSC_C_FILES) $(BSC_CXX_FILES) $(BSC_CUDA_FILES) $(ACEAPEX_CUDA_FILES) $(GPUCOMPACT_FILES) $(BZIP2_FILES) $(BZIP3_FILES) $(CSC_FILES) $(KANZI_FILES) $(FASTLZMA2_OBJ) $(ZSTD_FILES) $(LZSSE_FILES) $(LZFSE_FILES) $(XZ_FILES) $(LIBLZG_FILES) $(BRIEFLZ_FILES) $(LZF_FILES) $(BROTLI_FILES) $(LZMA_FILES) $(ZLING_FILES) $(QUICKLZ_FILES) $(OPENZL_C_FILES) $(OPENZL_S_FILES) $(SNAPPY_FILES) $(ZLIB_FILES) $(ZLIB_NG_FILES) $(LZHAM_FILES) $(LZO_FILES) $(UCL_FILES) $(LZ4_FILES) $(LIZARD_FILES) $(LIBDEFLATE_FILES) $(ZXC_FILES) $(MISA77_FILES) $(MISC_FILES) $(NVCOMP_FILES) $(PPMD_FILES) $(BENCH_FILES) $(SKIM_FILE)
lzbench: $(BUGGY_C_FILES) $(BUGGY_CC_FILES) $(BUGGY_CXX_FILES) $(ACEAPEX_FILES) $(BSC_C_FILES) $(BSC_CXX_FILES) $(BSC_CUDA_FILES) $(ACEAPEX_CUDA_FILES) $(GPUCOMPACT_FILES) $(BZIP2_FILES) $(BZIP3_FILES) $(LBZIP2_FILES) $(CSC_FILES) $(KANZI_FILES) $(FASTLZMA2_OBJ) $(ZSTD_FILES) $(LZSSE_FILES) $(LZFSE_FILES) $(XZ_FILES) $(LIBLZG_FILES) $(BRIEFLZ_FILES) $(LZF_FILES) $(BROTLI_FILES) $(LZMA_FILES) $(ZLING_FILES) $(QUICKLZ_FILES) $(OPENZL_C_FILES) $(OPENZL_S_FILES) $(SNAPPY_FILES) $(ZLIB_FILES) $(ZLIB_NG_FILES) $(LZHAM_FILES) $(LZO_FILES) $(UCL_FILES) $(LZ4_FILES) $(LIZARD_FILES) $(LIBDEFLATE_FILES) $(ZXC_FILES) $(MISA77_FILES) $(MISC_FILES) $(NVCOMP_FILES) $(PPMD_FILES) $(BENCH_FILES) $(SKIM_FILE)
$(CXX) $^ -o $@ $(LDFLAGS) $(LDFLAGS_LIBDL)
@echo Linked GCC_VERSION=$(GCC_VERSION) CLANG_VERSION=$(CLANG_VERSION) COMPILER=$(COMPILER)

Expand Down Expand Up @@ -1190,6 +1198,13 @@ $(BUGGY_CXX_FILES): %.o : %.cpp
@$(MKDIR) $(dir $@)
$(CXX) $(CFLAGS_O2) $< -c -o $@

# -Ibwt/lbzip2 also picks up the <arpa/inet.h> shim there, which MinGW needs.
# zstd's dictBuilder exports a divbwt() too, and xmalloc() is a name anything
# might take, so rename both rather than patch the vendored source.
$(LBZIP2_FILES): %.o : %.c
@$(MKDIR) $(dir $@)
$(CC) $(CFLAGS) -Ibwt/lbzip2 -Ddivbwt=lbzip2_divbwt -Dxmalloc=lbzip2_xmalloc $< -c -o $@

$(BZIP3_FILES): %.o : %.c
@$(MKDIR) $(dir $@)
$(CC) $(CFLAGS) -DVERSION=\"1.5.3\" -Ibwt/bzip3/include $< -c -o $@
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ Notes column says otherwise.
| [glza 0.12](https://encode.su/threads/2427-GLZA) | 2026-03-23 | |
| [gpucompact 1.0](https://github.com/UDPSendToFailed/gpucompact) | 2026-07-27 | CUDA only |
| [kanzi 2.5.3](https://github.com/flanglet/kanzi-cpp) | 2026-04-22 | |
| [lbzip2 2.6.5](https://github.com/caius72/lbzip2) | 2026-08-18 | bzip2 format; benchmarked single-threaded |
| [libdeflate v1.25](https://github.com/ebiggers/libdeflate) | 2025-11-01 | |
| [lizard v2.1](https://github.com/inikep/lizard) | 2025-01-26 | |
| [lz4/lz4hc v1.10.0](https://github.com/lz4/lz4) | 2024-07-21 | |
Expand Down
9 changes: 9 additions & 0 deletions bench/codecs.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,15 @@ int64_t lzbench_memcpy(char *inbuf, size_t insize, char *outbuf, size_t outsize,
#endif // BENCH_REMOVE_BZIP2


#ifndef BENCH_REMOVE_LBZIP2
int64_t lzbench_lbzip2_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, codec_options_t *codec_options);
int64_t lzbench_lbzip2_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, codec_options_t *codec_options);
#else
#define lzbench_lbzip2_compress NULL
#define lzbench_lbzip2_decompress NULL
#endif // BENCH_REMOVE_LBZIP2


#ifndef BENCH_REMOVE_BZIP3
int64_t lzbench_bzip3_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, codec_options_t *codec_options);
int64_t lzbench_bzip3_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, codec_options_t *codec_options);
Expand Down
1 change: 1 addition & 0 deletions bench/lzbench.h
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ static const compressor_desc_t comp_desc[] =
{ "gpucompact", "gpucompact 1.0", 1, 5, 0, NO_THREADING, lzbench_gpucompact_compress, lzbench_gpucompact_decompress, lzbench_gpucompact_init, lzbench_gpucompact_deinit },
#endif
{ "kanzi", "kanzi 2.5.3", 1, 9, 0, FULL_THREADING, lzbench_kanzi_compress, lzbench_kanzi_decompress, NULL, NULL },
{ "lbzip2", "lbzip2 2.6.5", 1, 9, 0, BENCH_POOL_MT, lzbench_lbzip2_compress, lzbench_lbzip2_decompress, NULL, NULL },
{ "libdeflate", "libdeflate 1.25", 1, 12, 0, BENCH_POOL_MT, lzbench_libdeflate_compress, lzbench_libdeflate_decompress, NULL, NULL },
{ "lizard", "lizard 2.1", 10, 49, 0, BENCH_POOL_MT, lzbench_lizard_compress, lzbench_lizard_decompress, NULL, NULL },
{ "lz4", "lz4 1.10.0", 0, 0, 0, BENCH_POOL_MT, lzbench_lz4_compress, lzbench_lz4_decompress, NULL, NULL },
Expand Down
18 changes: 18 additions & 0 deletions bench/symmetric_codecs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,24 @@ int64_t lzbench_bzip2_decompress(char *inbuf, size_t insize, char *outbuf, size_
#endif // BENCH_REMOVE_BZIP2


#ifndef BENCH_REMOVE_LBZIP2
#include "bwt/lbzip2/lbzip2_lzbench.h"

int64_t lzbench_lbzip2_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, codec_options_t *codec_options)
{
size_t res = lbzip2_buf_compress(inbuf, insize, outbuf, outsize, codec_options->level);
return res ? (int64_t)res : -1;
}

int64_t lzbench_lbzip2_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, codec_options_t *codec_options)
{
size_t res = lbzip2_buf_decompress(inbuf, insize, outbuf, outsize);
return res ? (int64_t)res : -1;
}

#endif // BENCH_REMOVE_LBZIP2


#ifndef BENCH_REMOVE_BZIP3
#include "bwt/bzip3/include/libbz3.h"

Expand Down
Loading