On Sunday, 12 August 2018 at 06:35:17 UTC, Eugene Wissner wrote:

P.S. In the last weeks I had thoughts to split low-level stuff from tanya and put it into a separate library, kind of native, gc-free x86-64 (and maybe aarch64) Linux runtime for D. Probably I should go for it :)

In recent months, I've been thinking about something like that as well.

As I work to improve implementations in DMD and DRuntime, I'm always running into situations where I need utility functions or other convenience implementations that currently exists in Phobos, but I can't use Phobos in DMD or DRuntime. I'd like to have a small dependency-less library that has implementations that don't require much of a runtime implementation (just depending on the language itself), so it can actually be used to create the DRuntime implementations. These include things type conversion, formatted IO, compile-time type information like that found in std.traits and std.meta, and generally useful algorithms like those in std.algorithm. It might even be quite nice to have some features from `std.experimental.allocator` available for implementing memory allocation in Druntime.

I started explore this idea with https://github.com/JinShil/utiliD, but found that the Phobos implementations are so interconnected, it's quite a burden to decouple them. That, and I began encountering chicken-and-egg issues with DRuntime implementations. There was a discussion recently about refactoring out the compiler dependencies from the platform dependencies in DRuntime (https://forum.dlang.org/post/pjqepc$2sfv$1...@digitalmars.com), and I think that will have to be done first before continuing with the idea.

Mike

Reply via email to