From: "Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: Johannes Schindelin <johannes.schindelin@gmx.de>
Subject: [PATCH 0/4] Add a compile-time option to use the new, very fast sha1dc Rust crate
Date: Mon, 28 Sep 2026 15:51:27 +0000 [thread overview]
Message-ID: <pull.2240.git.1790610691.gitgitgadget@gmail.com> (raw)
I stumbled across this new Rust crate last week. Its performance numbers are
quite impressive. Naturally, I want to make use of this and get for Windows,
which is used on many monorepos where this makes a real difference: In a
pretty fast and loose test, I verified that a git index-pack runs roughly
three times faster solely due to using those SIMD-based optimizations!
As a safety precaution, because this sha1dc crate is quite new, I wanted to
introduce an escape hatch: core.sha1dcBackend=c, but turn it on by default,
which is the reason for the three additional patches. Should these patches
be undesirable for the Git project? I would not be mad at all if they were
simply dropped.
Johannes Schindelin (4):
libgitcore: add `sha1dc` as an optional feature
sha1dc: allow selecting the C backend without rebuilding
pthread: provide `pthread_once()` shims for Windows and for
NO_PTHREADS
sha1dc: make `sha1dc_init()` thread-safe
Cargo.toml | 4 ++
Documentation/config/core.adoc | 5 ++
Makefile | 29 +++++++++
compat/win32/pthread.c | 16 +++++
compat/win32/pthread.h | 5 ++
hash.h | 5 ++
sha1dc_git.c | 109 +++++++++++++++++++++++++++++++--
sha1dc_git.h | 5 +-
sha1dc_rs.h | 37 +++++++++++
src/lib.rs | 2 +
src/sha1dc_rs.rs | 78 +++++++++++++++++++++++
t/helper/test-sha1.c | 19 +++++-
t/t0013-sha1dc.sh | 21 ++++++-
thread-utils.h | 16 +++++
14 files changed, 343 insertions(+), 8 deletions(-)
create mode 100644 sha1dc_rs.h
create mode 100644 src/sha1dc_rs.rs
base-commit: 3bc0341126508f78f5869cbfc0005e987efdf0c7
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2240%2Fdscho%2Foptionally-use-sha1dc-rs-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2240/dscho/optionally-use-sha1dc-rs-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/2240
--
gitgitgadget
next reply other threads:[~2026-09-28 15:51 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-28 15:51 Johannes Schindelin via GitGitGadget [this message]
2026-09-28 15:51 ` [PATCH 1/4] libgitcore: add `sha1dc` as an optional feature Johannes Schindelin via GitGitGadget
2026-10-03 21:01 ` brian m. carlson
2026-09-28 15:51 ` [PATCH 2/4] sha1dc: allow selecting the C backend without rebuilding Johannes Schindelin via GitGitGadget
2026-09-28 15:51 ` [PATCH 3/4] pthread: provide `pthread_once()` shims for Windows and for NO_PTHREADS Johannes Schindelin via GitGitGadget
2026-09-28 15:51 ` [PATCH 4/4] sha1dc: make `sha1dc_init()` thread-safe Johannes Schindelin via GitGitGadget
2026-09-28 16:20 ` [PATCH 0/4] Add a compile-time option to use the new, very fast sha1dc Rust crate Johannes Schindelin
2026-09-29 7:30 ` Junio C Hamano
2026-10-03 10:23 ` Johannes Schindelin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pull.2240.git.1790610691.gitgitgadget@gmail.com \
--to=gitgitgadget@gmail.com \
--cc=git@vger.kernel.org \
--cc=johannes.schindelin@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.