Skip to content

Releases: deploymenttheory/go-bindings-macosplatform

v0.20.1

Choose a tag to compare

@release-please-manager release-please-manager released this 27 Sep 12:38
32c1015

0.20.1 (2026-09-27)

Bug Fixes

  • load Foundation for runtime class lookups and keep wrappers alive across calls (#132) (71544a1)

v0.20.0

Choose a tag to compare

@release-please-manager release-please-manager released this 17 Sep 11:30
251cfbc

0.20.0 (2026-09-17)

Features

  • macos27 libraries (37381b7)
  • regenerate macOS 27 framework bindings (52a268a)

v0.19.0

Choose a tag to compare

@ShocOne ShocOne released this 11 Aug 18:55
3f75d0e

0.19.0 (2026-08-11)

⚠ BREAKING CHANGES

All 15 Apple C libraries moved from CGo bridges to purego, so bindings/libraries/… now builds and runs under CGO_ENABLED=0. The generated API did not change — the public library surface is byte-identical to v0.18.1 — but three public runtime packages that existed only to serve the CGo path have been removed.

If you import only bindings/frameworks/… or bindings/libraries/…, the intended consumable API, nothing changes for you.

Removed: bindings/runtime/cgo

v0.18.1 v0.19.0
cgo.RunOnMainThread(fn) mainthread.Do(fn) — opinionated/tools/grandcentraldispatch/mainthread
cgo.PumpMainRunLoop(secs) mainthread.PumpMainRunLoop(secs) — same package
cgo.Object objptr.Object — bindings/runtime/objptr
cgo.Retain / cgo.Release purego.Retain / purego.Release — bindings/runtime/purego
cgo.NSStringToGoString / cgo.GoStringToNSString purego.GoString / purego.NSString
cgo.NSErrorToError purego.NSErrorToError (returns a structured *objcerrors.ObjCError)
cgo.ClassNameOf rt.ClassNameOf — bindings/runtime/rt

Prefer mainthread.Do over purego.Main when porting RunOnMainThread: purego.Main falls back to running the closure inline on the current thread when dispatch fails to load, which RunOnMainThread never did.

These have no direct replacement, because they served the CGo calling convention rather than the ObjC runtime: Track, KeepAlive, AllocObject, FreePtr, WrapObject, WrapTyped, RaiseIfException, ExceptionInfoFromPtr, ExceptionReason, SetDeallocListener, InstallCrashHandlers, SetAssociatedObject / GetAssociatedObject / RemoveAssociatedObjects, DispatchAsyncMain. There is no bridge to catch an NSException across, no malloc'd struct return to free, and no finalizer needed to release a +1 bridge return. Code that held objects directly now manages their lifetime with purego.Retain / purego.Release.

Removed: bindings/runtime/blocks, bindings/runtime/callbacks

The CGo block and method-callback trampoline registries. No replacement needed — purego block adapters call objc.NewBlock directly, so nothing imports them.

Added: bindings/runtime/objptr

A dependency-free interface{ Ptr() unsafe.Pointer }, split out of the old cgo package. Generated library protocol interfaces embed it, so a CGO_ENABLED=0 consumer cannot pull a runtime back in through a protocol file.

Features

  • codegen: migrate AppleArchive to purego — all 15 C libraries now pure Go (#116) (a32f335)
  • codegen: migrate bsm, libproc, machhost to the purego backend (struct-by-value tier) (#111) (ac743ec)
  • codegen: migrate dispatch to purego (manual body for header-inline symbols) (#114) (f0602dd)
  • codegen: migrate oslog to purego (#115) (66410d5)
  • codegen: migrate xpc to purego (pure-Go Object seam + local-enum preference) (#113) (24d136d)
  • codegen: purego backend as body-swap in the CGo pipeline; migrate 7 libraries with live CGO_ENABLED=0 suite (#110) (2f062eb)
  • codegen: purego backend for C libraries; migrate machtime (Phase 0 pilot) (#108) (4e1d223)
  • codegen: purego block-parameter support; migrate endpointsecurity (#112) (794ef23)

v0.18.1

Choose a tag to compare

@ShocOne ShocOne released this 11 Aug 11:22
d02efcb

0.18.1 (2026-08-11)

Bug Fixes

  • codegen: prefer locally-declared structs, fix consumer drift, cover opinionated+examples in CI (#106) (ca51c34)

v0.18.0

Choose a tag to compare

@ShocOne ShocOne released this 24 Jul 11:04
b2fbcde

0.18.0 (2026-07-24)

Features

  • idiomatic: CFTypeRef polymorphism + mutable->immutable handle widening (#98) (a44eafa)
  • idiomatic: surface CF/opaque handles as distinct named types, not obj.Object (7e6fd7c)
  • idiomatic: surface dispatch/xpc handle params as concrete library types (#91) (17a8326)
  • idiomatic: thread in/out counts, typed block params, pointer returns (#88) (3c6138c)
  • idiomatic: type fixed-size array struct fields & struct-pointer params (#92) (e56e3f3)
  • idiomatic: type pointer-to-struct returns; capture referenced C structs (#90) (3045aed)
  • idiomatic: width-correct struct int fields; cross-check clang layouts (#93) (9379aad)
  • idiomatic: unions fnptrs (#99) (c4d649c)

Bug Fixes

  • frameworks: width-correct integer-typedef struct fields via GoABIType (#95) (91d354a)

v0.17.0

Choose a tag to compare

@ShocOne ShocOne released this 21 Jul 14:10
12b3a54

0.17.0 (2026-07-21)

Features

  • make the idiomatic layer the sole public API under bindings/ (#82) (2f52d47)
  • parity: close all 276 residual gaps — idiomatic now covers raw fully (82f6513)

Bug Fixes

  • idiomatic: restore typedef-alias gather gate to stop library over-emission (#86) (9c28b69)

v0.16.0

Choose a tag to compare

@ShocOne ShocOne released this 09 Jul 08:39
04f886d

0.16.0 (2026-07-09)

Features

  • idiomatic: evolve emitted layer to hand-crafted-quality Go (#77) (9391398)

v0.15.0

Choose a tag to compare

@ShocOne ShocOne released this 02 Jul 09:01
9ded85e

0.15.0 (2026-07-02)

Features

  • bindings: add mach, IOKit PowerSources, and IOReport telemetry surfaces (#74) (2f16efc)

v0.14.0

Choose a tag to compare

@ShocOne ShocOne released this 30 Jun 12:28
c3cce20

What's Changed

Full Changelog: v0.13.0...v0.14.0

v0.13.0

Choose a tag to compare

@ShocOne ShocOne released this 29 Jun 09:17
7e9ec25

0.13.0 (2026-06-29)

Features