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