Skip to content

v1.3.2 — Wave 2: Production Ready

Latest

Choose a tag to compare

@JavadInteger JavadInteger released this 03 Oct 17:56

Wave 2 — Production Ready

The v1.3.1 stabilization effort fixed the bugs. v1.3.2 makes the
runtime actually work: the actor main loop runs automatically,
the entire tree is clean under four sanitizers, every public
function is documented, and a 23-tool CI suite verifies the
release end to end.

Highlights

  • Actor main loop is now driven automatically.
  • ASan, UBSan, TSan and LSan are all clean.
  • 100% Doxygen coverage on 281 public functions.
  • 23 CI tools all report PASS on Linux.
  • BSD build with clang also PASS.
  • Reproducible builds verified byte-for-byte.
  • 16 combined demos + gold_ws — a full HTTP/1.1 server with
    actor-per-request and PHP-FPM integration.

Verification

Check Result
ci/run_all.py --keep-going 23 / 23 PASS
Sanitizers ASan ✅ · UBSan ✅ · TSan ✅ · LSan ✅
Doxygen coverage 281 / 281 public functions RICH
Reproducible builds byte-identical
Build matrix 36 / 36 PASS
BSD / clang ✅ PASS

New demos

# Demo Shows
12 12_semaphores counting semaphore across 8 workers
13 13_actor_supervisor actors behind a supervisor
14 14_actor_channel channel-driven actor pipeline
15 15_reactive_loop event loop feeding a subject
16 16_full_stack HTTP → actor → promise → channel

Core fixes

  • ol_sem_t is now a complete type (was an incomplete typedef
    while ol_sem_init asked for storage).
  • ol_sem_wait_until converts monotonic deadlines to
    CLOCK_REALTIME for sem_timedwait.
  • ol_co_join drives the green thread instead of spinning.
  • Supervisor sets RUNNING state before the driver thread starts
    and actually detects crashes.
  • ol_tcp_socket_connect wakes the event loop after arming
    write interest.

See docs/CHANGELOG.md for the full notes.