Skip to content

Add macOS 15 CI target and fix ARM i8mm feature conflict#4

Merged
bernardladenthin merged 1 commit intomasterfrom
claude/fix-macos-15-arm-features-HPebZ
Mar 22, 2026
Merged

Add macOS 15 CI target and fix ARM i8mm feature conflict#4
bernardladenthin merged 1 commit intomasterfrom
claude/fix-macos-15-arm-features-HPebZ

Conversation

@bernardladenthin
Copy link
Copy Markdown
Owner

Summary

This PR adds comprehensive unit tests for the Pair generic utility class and introduces developer documentation to guide contributors working with the codebase.

Key Changes

  • Added PairTest.java: Comprehensive test suite with 18 test cases covering:

    • Basic getter functionality (getKey(), getValue())
    • Null handling for both key and value
    • Equality semantics (same pairs, different keys/values, null comparisons, type mismatches, self-equality)
    • Hash code consistency and null safety
    • String representation with various input types
    • Generic type support with different type combinations (primitives, arrays, complex types)
  • Added CLAUDE.md: Developer guidance document including:

    • Project overview and architecture explanation
    • Build commands for Java (Maven) and native C++ (CMake) components
    • Detailed architecture description of the two-layer design (Java/Native)
    • Parameter flow and native library resolution mechanisms
    • Testing requirements and setup
    • Key constraints and best practices
  • Updated CI workflow: Added macOS 15 runner support with appropriate CMake flags (-DGGML_NATIVE=OFF) and improved artifact naming to be runner-specific for better debugging.

Implementation Details

The PairTest class uses JUnit 4 and covers edge cases including null values, type safety with generics, and proper equals() and hashCode() contract compliance. The test suite ensures the Pair utility class is robust for use throughout the codebase.

The CLAUDE.md file serves as a reference guide for understanding the project structure, build process, and architectural decisions, particularly useful for AI-assisted development workflows.

https://claude.ai/code/session_01PjfeKeUZE8spcY4atNbymE

On macOS 15 (Apple Clang 16), stricter always_inline enforcement causes a
build failure when llama.cpp generates -mcpu=native+dotprod+noi8mm flags
while code includes i8mm-requiring always_inline functions. Adding
-DGGML_NATIVE=OFF for the macos-15 runner disables native CPU feature
detection, avoiding the contradictory i8mm enable/disable state.

Also use runner-specific artifact names to avoid upload conflicts when
multiple macOS matrix jobs fail simultaneously.

https://claude.ai/code/session_01PjfeKeUZE8spcY4atNbymE
@bernardladenthin bernardladenthin merged commit 737ff83 into master Mar 22, 2026
3 of 5 checks passed
@bernardladenthin bernardladenthin deleted the claude/fix-macos-15-arm-features-HPebZ branch March 23, 2026 10:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants