Skip to content

Build natively for arm64 and repair InputMethodKit candidate commits - #4

Open
akiltipu wants to merge 2 commits into
omicronlab:masterfrom
akiltipu:fix/native-arm64-candidate-commit
Open

akiltipu wants to merge 2 commits into
omicronlab:masterfrom
akiltipu:fix/native-arm64-candidate-commit

Conversation

@akiltipu

@akiltipu akiltipu commented Oct 5, 2026 •

Copy link
Copy Markdown

The legacy project does not build natively for arm64 with the selected toolchain. After enabling arm64, Bengali suggestions appeared on macOS 27 but committing with Space or clicking a candidate inserted nothing. LLDB captured -[__NSSingleObjectArrayI insertText:replacementRange:]: unrecognized selector: the cached client was stale, while InputMethodKit's current client was valid.

This keeps the existing Objective-C application and makes a small product change:

  • Select arm64 in Debug and Release.
  • Use [self client] for candidate/delimiter insertion.
  • When the candidate panel has no selection, commit the remembered candidate if valid, otherwise the first; preserve explicit selections and avoid empty-list insertion.

Parser rules, dictionaries, UI resources, dependencies and deployment settings are unchanged. The current SDK supplies an inherited deployment target of 27.0; no lower-OS runtime support is claimed. This branch targets arm64 only.

Validation

  • Fresh Debug and Release builds: PASS with native arm64 macOS 27.0.1 (26A434), Xcode 27.0 (27A266a), SDK 27.0 (26A425), Apple clang 21.0.0.
  • ./scripts/check.sh: eight controller cases, 15 exact UTF-8 snapshots captured from unchanged upstream parser/rules, packaged resources, SQLite integrity, ICU/dictionary lookup and autocorrect checks PASS. The controller harness fails against unchanged upstream as expected.
  • One bundled Mach-O is arm64; all nine direct system dependencies pass native loaded-header inspection. No non-system library paths or LC_RPATH.
  • The user reports the requested TextEdit, Chrome and VS Code typing matrix works with the repaired Debug installation. This is grouped manual confirmation, not automated per-keystroke evidence.
  • Both full builds retain 46 existing warnings. No signing bypass was needed; these are local ad-hoc builds, including get-task-allow, not distribution artifacts.

The PR adds isolated tests and a nonprivileged ARM64 GitHub Actions workflow. Remote CI is pending its first run. Fork-specific branding/release documents are excluded.

Review boundaries

This is an Objective-C alternative to the broader changes currently in #2 and #3, whose heads include the Swift migration. No commits were copied from those forks.

Release runtime, preference/learning persistence, clean-account registration, full rollback and notarized/downloaded-artifact tests remain NOT TESTED. A public binary is not included. Credits states MPL 1.1 for the application, but clarification is still needed for the exact scope covering dictionaries/rules and NSString+Levenshtein. A further inspection of the original RTF hyperlink confirms CC BY 3.0 for the Dortmund icons. Existing notices are preserved; this PR does not assign new terms to inherited material.

Fork-specific prerelease preparation is separate: akiltipu#1. That branch replaces the historical distance routine; it is not part of this smaller compatibility PR.

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.

1 participant