Repository navigation
Conversation
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
August 5, 2026 03:18
dbce7b2 to
488622d
Compare
This was referenced Aug 5, 2026
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
August 5, 2026 17:44
488622d to
8f138a4
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
August 5, 2026 18:03
8f138a4 to
2c9fdaa
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
August 5, 2026 18:05
2c9fdaa to
88922bd
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
August 6, 2026 07:59
88922bd to
99668c2
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
August 6, 2026 15:39
99668c2 to
1b70585
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
August 6, 2026 15:41
1b70585 to
076218f
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
2 times, most recently
from
August 6, 2026 20:41
1ddb541 to
dd0e7ef
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
August 7, 2026 02:49
dd0e7ef to
35065c5
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
August 7, 2026 05:09
35065c5 to
727fe12
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
August 26, 2026 17:30
727fe12 to
896cbc8
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
September 18, 2026 03:09
896cbc8 to
c14bd42
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
September 18, 2026 03:46
c14bd42 to
a303e64
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
September 18, 2026 17:34
a303e64 to
654b144
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
September 18, 2026 17:39
654b144 to
c7ab91b
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
September 26, 2026 05:23
be1975f to
b55b217
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
September 26, 2026 05:25
b55b217 to
0b9e279
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
3 times, most recently
from
October 1, 2026 17:11
0291da9 to
5012466
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
October 1, 2026 22:04
5012466 to
68a11e3
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
October 3, 2026 04:57
68a11e3 to
d100dfa
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
2 times, most recently
from
October 4, 2026 06:21
6c76440 to
fe3d69d
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
October 8, 2026 21:40
fe3d69d to
286cb5a
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
from
October 9, 2026 03:06
286cb5a to
1198675
Compare
eriknw
force-pushed
the
36-monoid-builtin-binaryop-guard
branch
2 times, most recently
from
October 14, 2026 18:45
7cfc1e1 to
d3533cb
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## 28-config-attr-guard #617 +/- ##
========================================================
+ Coverage 98.63% 98.79% +0.16%
========================================================
Files 105 105
Lines 29868 29879 +11
Branches 3485 3486 +1
========================================================
+ Hits 29460 29520 +60
+ Misses 280 235 -45
+ Partials 128 124 -4 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Registering a monoid from a built-in binaryop used to crash partway
through construction:
and by the time it raised, it had already repointed binary.max's monoid
association at the half-built monoid, so binary.max.monoid stayed
corrupted for the rest of the session. (This is the latent bug that the
fmax/fmin identity test surfaced on mapnumpy=True CI runs.)
Even patched over, the result would lie. SuiteSparse ignores the
identity passed to GrB_Monoid_new whenever the built-in op already has a
built-in monoid, measured with GxB_Monoid_identity:
The override applies to exactly the ops that have built-in monoids (max,
min, plus, times, any) and not the rest (minus, first, second, pow,
bor, lxor), so a permissive fix would produce a monoid whose Python-side
identity silently disagrees with what GraphBLAS computes with. If a
monoid over a built-in op's function made sense, the built-in monoid
would already exist.
Monoid._build now rejects built-in binaryops up front with a TypeError
that points at BinaryOp.register_new / register_anonymous as the way to
build a monoid over the same function with a chosen identity. Built-ins
are detected as ops with neither a Python function nor a numba function,
which also covers assembled ops like binary.numpy.float_power. The
rejection happens before any object is created, so nothing is mutated on
the failing path.