Photon v0.14.1 with Mecca's reactor time queue
Dmitry Olshansky
dmitry.olsh at gmail.com
Thu Sep 4 12:26:26 UTC 2025
On Sunday, 31 August 2025 at 14:38:27 UTC, Paolo Invernizzi wrote:
> On Monday, 18 August 2025 at 15:20:14 UTC, Dmitry Olshansky
[snip]
>> Other photon examples:
>> https://github.com/DmitryOlshansky/photon/tree/master
>
> I tried to include all the sources of photon in a application
> that it's cross-compiled to linux (Pi5, AArch64) and
> cross-linked with some C libs, and I'm seeing this:
>
> ```
> 2025-08-31T16:22:18.438 [error] extern(C) private ssize_t
> close(int fd) nothrow
> src/photon/linux/core.d(1150,27): Previous IR type: i32
> (i32)
> src/photon/linux/core.d(1150,27): New IR type: i64
> (i32)
> ```
>
> In linux.core.d: extern(C) private ssize_t close(int fd) nothrow
>
> but `man 2 close` is `int close(int fd)`, it's a bug?
Fixed among a ton of other things in v0.14.1.
Introduced Mutex and RecursiveMutex for my upcoming plan to
rewrite vibe-core on top of photon. Next in line CondVar and with
that I should be ready to reimplement most of vibe.core.sync.
Also notably I ditched timer based sleeps in favor of a scheduler
with Mecca's time queue maintained explicitly. Simplified a lot
of things. I'm uncertain what I'd do about timers so far their
only API was basically sleep which is already handled by delay.
That and the coming support for timeout in the select API.
For now it's only Linux and MacOS that have this new scheduler,
Windows staying mostly as is until around October when I'd
finally get to my Windows desktop.
More information about the Digitalmars-d-announce
mailing list