portico/Sources/Portico
Brendan Szymanski e9e56e28d3 Declare MainExecutor conformance explicitly for GLibMainExecutor
swift run/build failed on this toolchain (stock swift.org 6.3.3 aarch64 Linux) with:

  GLibMainExecutor.swift:227: error: value of type 'GLibMainExecutor' does
  not conform to specified type 'MainExecutor'

despite the class already implementing every method MainExecutor requires
(enqueue, run, runUntil, stop) via its separate RunLoopExecutor and
SerialExecutor conformances. Root cause: Swift protocol refinement is
one-directional. MainExecutor : RunLoopExecutor, SerialExecutor adds no
requirements of its own, but conforming to the two parent protocols
separately does not implicitly satisfy the refined protocol - the
existential conversion to 'any MainExecutor' needs an explicit conformance
declaration for MainExecutor itself, confirmed with a minimal repro against
the stdlib's private _Concurrency interface.

Fix: add 'extension GLibMainExecutor: MainExecutor {}' (no new members
needed - the class already satisfies every requirement), scoped inside the
existing '#if canImport(Glibc)' block. Kept off Darwin deliberately:
MainExecutor carries a much higher Darwin '@available' floor than this
package targets, and GLibMainExecutor is only ever installed as the process
main executor on Linux (DarwinMainQueuePump is the Apple equivalent) - on
Darwin it is used solely as a plain SerialExecutor for individual actors,
which does not require MainExecutor conformance.

Verified: 'swift build' and 'swift test' both clean (286/286 tests) in this
package standalone, and a full 'swift build' of Luminate against this
checkout via 'swift package edit' succeeds end to end.
2026-08-12 21:45:03 -04:00
..
App Bridge MainActor to GLib main loop on Darwin without SPI 2026-08-12 02:39:44 -04:00
Clipboard Make Clipboard Observable to remove manual subscription plumbing 2026-08-12 00:44:12 -04:00
Core Update main loop scheduling, lifecycle, and reactive teardown 2026-08-11 22:55:55 -04:00
Extensions Add breakpoint modifiers and condition DSL 2026-08-11 18:17:01 -04:00
Generated Add breakpoint modifiers and condition DSL 2026-08-11 18:17:01 -04:00
MainLoop Declare MainExecutor conformance explicitly for GLibMainExecutor 2026-08-12 21:45:03 -04:00
Navigation Add path-driven NavigationView with NavigationStack semantics 2026-08-02 16:24:43 -04:00
Presentation Update main loop scheduling, lifecycle, and reactive teardown 2026-08-11 22:55:55 -04:00
State Update main loop scheduling, lifecycle, and reactive teardown 2026-08-11 22:55:55 -04:00
Views Optimize Portico state and collection updates 2026-08-11 11:27:24 -04:00
Reexports.swift Add a display-scoped Clipboard API 2026-08-12 00:19:16 -04:00