Skip to content

Update hatter pin: hs_init fix for iOS/watchOS#66

Merged
jappeace merged 1 commit intojappeace:masterfrom
jappeace-sloth:update/hatter-hs-init-fix
Apr 19, 2026
Merged

Update hatter pin: hs_init fix for iOS/watchOS#66
jappeace merged 1 commit intojappeace:masterfrom
jappeace-sloth:update/hatter-hs-init-fix

Conversation

@jappeace-sloth
Copy link
Copy Markdown

Summary

  • Updates haskell-mobile pin from 3b1b57f to 62291dc (hatter PR #207)
  • Picks up hatter_hs_init() which fixes RTS initialization on iOS/watchOS
  • Also includes static libffi bundling for iOS/watchOS builds

Context

hs_init() with argv containing +RTS -M512m -RTS hangs on iOS because
defaultRtsConfig has rts_opts_enabled=RtsOptsNone, causing stg_exit(EXIT_FAILURE)
which doesn't cleanly terminate on iOS. The new hatter_hs_init() uses
hs_init_ghc() with RtsConfig.rts_opts to set heap limits via the proper GHC API.

Test plan

  • CI passes (Android builds)
  • iOS setup script produces working Xcode project

🤖 Generated with Claude Code

Updates haskell-mobile from 3b1b57f to 62291dc (merged PR #207).

Key change: hs_init with argv hangs on iOS/watchOS because
defaultRtsConfig has rts_opts_enabled=RtsOptsNone, so passing
+RTS -M512m -RTS causes stg_exit(EXIT_FAILURE) which doesn't
cleanly terminate on iOS. New hatter_hs_init() uses hs_init_ghc
with RtsConfig.rts_opts to set heap limits without argv parsing.

Also includes static libffi bundling for iOS/watchOS.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@jappeace jappeace merged commit 08b3589 into jappeace:master Apr 19, 2026
2 checks passed
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