Skip to content

Commit d579a63

Browse files
rootcoder007claude
andcommitted
fix: match digest2int on arm (1.2.3)
digest::digest2int hashes a plain char, so its signedness follows the platform. The native kernel forced signed char, which agreed on x86 and diverged on arm for bytes above 0x7f. Same fix as rmorie 1.2.3; versions stay locked. The Python arm has no digest2int and is unaffected. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GVZR4QjrTXCv55j4qdo6E2
1 parent 410da07 commit d579a63

4 files changed

Lines changed: 8 additions & 5 deletions

File tree

VERSION_INVENTORY.csv

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -274,10 +274,10 @@ File,Line,Status,Version,Context
274274
./paper.md,2150,STALE_OR_DEP,1.1.30,"30–46. <https://doi.org/10.1037/1082-989X.1.1.30>."
275275
./paper.md,2315,STALE_OR_DEP,88.6.2297,"2297–301. <https://doi.org/10.1073/pnas.88.6.2297>."
276276
./paper.md,2624,STALE_OR_DEP,93.5.1043,"<https://doi.org/10.1161/01.CIR.93.5.1043>."
277-
./pyproject.toml,7,CURRENT,1.2.2,"version = 1.2.2"
277+
./pyproject.toml,7,STALE_OR_DEP,1.2.3,"version = 1.2.3"
278278
./pyproject.toml,64,STALE_OR_DEP,3.1.0,"openpyxl>=3.1.0;"
279279
./pyproject.toml,80,STALE_OR_DEP,1.2.0,"# Restored after the 1.2.0 merge: the branch's leaner extras table replaced"
280-
./r-package/morie/DESCRIPTION,4,CURRENT,1.2.2,"Version: 1.2.2"
280+
./r-package/morie/DESCRIPTION,4,STALE_OR_DEP,1.2.3,"Version: 1.2.3"
281281
./r-package/morie/DESCRIPTION,37,STALE_OR_DEP,4.3.0,"R (>= 4.3.0)"
282282
./r-package/morie/DESCRIPTION,38,STALE_OR_DEP,4.3.0,"Note: Tested on R 4.3.0; 4.4.x; 4.5.2; 4.5.3 (CRAN). Use CRAN R on Apple"
283283
./r-package/morie/DESCRIPTION,38,STALE_OR_DEP,4.3.0,"Note: Tested on R 4.3.0; 4.4.x; 4.5.2; 4.5.3 (CRAN). Use CRAN R on Apple"

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "scikit_build_core.build"
44

55
[project]
66
name = "morie"
7-
version = "1.2.2"
7+
version = "1.2.3"
88
description = "Multi-domain scientific computing toolkit (Python + R) for observational inference and intervention analysis. Provides causal estimators (ATE, ATT, AIPW, DML, G-computation), survey sampling, propensity-score and doubly-robust methods, sensitivity analysis, spatial statistics, Hawkes point processes, and psychometrics, with a unified RichResult output."
99
authors = [
1010
{ name="Vansh Singh Ruhela", email="vsruhela@proton.me" }

r-package/morie/DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Package: morie
22
Type: Package
33
Title: Multi-Domain Open Research and Inferential Estimation
4-
Version: 1.2.2
4+
Version: 1.2.3
55
Authors@R: c(
66
person(
77
given = "Vansh Singh",

r-package/morie/src/morie_digest.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,10 @@ uint32_t murmur32(const bytes& in, uint32_t seed) {
341341
uint32_t jenkins_oaat(const char* key, uint32_t seed) {
342342
uint32_t hash = seed;
343343
for (; *key; ++key) {
344-
hash += (uint32_t)(int32_t)(signed char)*key; // digest adds the (signed) char
344+
// digest adds a plain char, so its signedness is the platform's:
345+
// signed on x86, unsigned on arm. Forcing signed here matched x86
346+
// and diverged on arm for any byte above 0x7f.
347+
hash += (uint32_t)(int32_t)*key;
345348
hash += (hash << 10);
346349
hash ^= (hash >> 6);
347350
}

0 commit comments

Comments
 (0)