Changelog of @hackage/eventlog-socket 0.1.3.0

Revision history for eventlog-socket

0.1.3.0 -- 2026-03-27

  • Add support for hooks that fire at certain points in the eventlog-socket lifecycle.

    This adds registerHook and eventlog_socket_register_hook to the Haskell and C APIs, respectively, as well as two kinds of hooks:

    • A post-startEventLogging hook, which is triggered whenever event logging is started.
    • A pre-endEventLogging hook, which is triggered whenever event logging is ended.

    These hooks are intended to give package writers the ability to add their own init events, which are resent event time that a new client connects. For instance, the following code registers a post-startEventLogging hook that greets every new client with a user message event:

    registerHook HookPostStartEventLogging $
      traceEventIO "Hello, new user!"
    

    To avoid races, it is important that these hooks are registered before eventlog-socket is started.

  • Add support for builtin startProfiling and stopProfiling control commands.

0.1.2.0 -- 2026-03-25

Warning: The C API exposed from this version contains breaking changes over the C API exposed from version 0.1.1.0. This is justified by the fact that the C API exposed from version 0.1.1.0 is broken and that version is deprecated and not known to be in use.

  • BREAKING: Change eventlog_socket_wrap_hs_main to accept EventlogSocketAddr and EventlogSocketOpts and call eventlog_socket_init.
  • BREAKING: Remove eventlog_socket_attach_rts_config.
  • Fixed issue where eventlog_socket_start would ignore eso_wait.
  • Fixed issue where EventlogSocketWriter->writeEventLog would drop data if there was no connection, resulting in a truncated eventlog.
  • Fixed race condition between the calls to endEventLogging and startEventLogging that happened on startup and at first connection. If these restarts were interleaved, this could lead to the startup call to endEventLogging immediately detaching the event logger attached by the call to startEventLogging in the worker thread listening for incoming connections. This would cause the socket to immediately be closed and lead to a truncated eventlog. Furthermore, the startup call to endEventLogging happened unconditionally, which means that an event logger attached in a C main (as in examples/fibber-c-main) would be detached on the first connection, which would drop prior all events from the buffer. The new version does not call endEventLogging or startEventLogging on startup. This means that an event logger installed in a C main is able to capture events from before the first connection. It also means that the default event logger – which may be the file event logger – will be active until the first connection, rather than until eventlog_socket_start is called.
  • Add testWorkerStatus and testControlStatus functions to Haskell API.
  • Add eventlog_socket_worker_status and eventlog_socket_control_status to C API.

0.1.1.0 -- 2026-02-23

  • Added high-level API (startWith with EventlogSocketAddr and EventlogSocketOpts).
  • Added support for TCP sockets (via EventlogSocketAddr).
  • Added support for setting the send buffer size (via EventlogSocketOpts).
  • Added support for reading the configuration from environment variables (fromEnv and startFromEnv).
  • Added public C API.
  • Added support for control commands (if compiled with +control).
  • Added support for custom control commands.

0.1.0.0 -- 2023-04-14

  • First version. Released on an unsuspecting world.