Skip to content
This repository was archived by the owner on Aug 20, 2026. It is now read-only.

chore(ci): bump impl submodule to current fastfields-cpu-impl main - #6

Merged
balbasty merged 1 commit into
mainfrom
claude/chore-bump-submodules
Jul 24, 2026
Merged

chore(ci): bump impl submodule to current fastfields-cpu-impl main#6
balbasty merged 1 commit into
mainfrom
claude/chore-bump-submodules

Conversation

@balbasty

Copy link
Copy Markdown
Contributor

The impl gitlink pinned an old cpu-impl commit (predating distance_euclidean.h at the repo root), so the real-submodule CI checkout resolved impl/kernels/* but not cpu-impl's own headers — fatal error: 'impl/distance_euclidean.h' file not found. Point it at fastfields-cpu-impl@main (which now pins current kernels).

Co-lands with the checkout-token PR #5 — neither goes green alone (this one lacks the token; #5 has the stale pointer), so they merge together and main CI verifies green.

Part of fastfields/fastfields-lib#10.

🤖 Generated with Claude Code


Generated by Claude Code

The gitlink pinned an old cpu-impl commit (predating distance_euclidean.h at the
repo root), so the real-submodule CI checkout couldn't find impl/*.h. Point it at
fastfields-cpu-impl@main (which itself now pins the current kernels). Co-lands
with the checkout-token change (#5) to get `make test` green in CI.
Part of fastfields/fastfields-lib#10.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016AjQcY78NgbagPSbPJRr6Z
@balbasty
balbasty merged commit f4260b7 into mainJul 24, 2026
1 check failed
balbasty pushed a commit that referenced this pull request Jul 24, 2026
DLPack permits DLTensor.strides == NULL for a compact row-major tensor, but
every cpu-lib module fed x.strides straight into CANUSE32BITS / copy_if_needed
and the impl loops, all of which dereference it -> a producer that omits
strides would segfault. nanobind always supplies strides so the current
bindings never hit it, but the "accepts any __dlpack__ object" contract means
an external DLPack producer can.
- autocast.h: add a ContiguousStrides RAII wrapper holding a normalised copy of
the (POD) descriptor; when strides are NULL it synthesises explicit contiguous
strides (in elements) that outlive the call. An `enable` flag skips optional
placeholder tensors (posdef `weight`, mesh `nearest_vertex`) whose shape may be
invalid and whose strides are never read.
- Every public entry (distance/posdef/resize/restrict/splinc/pushpull/reg_field/
reg_flow) normalises its tensors through the wrapper before dispatch; the
bodies are otherwise unchanged, so the strides-supplied path is identical.
- tests/test_resize: a null-strides regression (strides=NULL must match the
same call with explicit contiguous strides).
Verified: all 8 module test suites pass (test_resize now 211 checks incl. the
null-strides case). Companion kernels change guards canUse32BitIndexMath.
Part of #6.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016AjQcY78NgbagPSbPJRr6Z
balbasty added a commit that referenced this pull request Jul 24, 2026
DLPack permits DLTensor.strides == NULL for a compact row-major tensor, but
every cpu-lib module fed x.strides straight into CANUSE32BITS / copy_if_needed
and the impl loops, all of which dereference it -> a producer that omits
strides would segfault. nanobind always supplies strides so the current
bindings never hit it, but the "accepts any __dlpack__ object" contract means
an external DLPack producer can.
- autocast.h: add a ContiguousStrides RAII wrapper holding a normalised copy of
the (POD) descriptor; when strides are NULL it synthesises explicit contiguous
strides (in elements) that outlive the call. An `enable` flag skips optional
placeholder tensors (posdef `weight`, mesh `nearest_vertex`) whose shape may be
invalid and whose strides are never read.
- Every public entry (distance/posdef/resize/restrict/splinc/pushpull/reg_field/
reg_flow) normalises its tensors through the wrapper before dispatch; the
bodies are otherwise unchanged, so the strides-supplied path is identical.
- tests/test_resize: a null-strides regression (strides=NULL must match the
same call with explicit contiguous strides).
Verified: all 8 module test suites pass (test_resize now 211 checks incl. the
null-strides case). Companion kernels change guards canUse32BitIndexMath.
Part of #6.
Claude-Session: https://claude.ai/code/session_016AjQcY78NgbagPSbPJRr6Z
Co-authored-by: Claude <noreply@anthropic.com>
@balbasty
balbasty deleted the claude/chore-bump-submodules branch July 26, 2026 06:04
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@balbasty@claude