DMD as cross-compiler
Jacob Carlborg
doob at me.com
Sat Nov 14 19:19:02 UTC 2020
On Friday, 13 November 2020 at 03:33:05 UTC, Walter Bright wrote:
> On 11/12/2020 11:15 AM, Jacob Carlborg wrote:
>> Implementing druntime and Phobos without the C standard
>> library will give a big opportunity to do things better.
>
> How so? (Not that you're wrong, I'm just genuinely curious.)
It might not necessary mean a better or different API for Phobos.
But the lower level APIs could be better.
Classic examples are:
* Use arrays instead of pointers (or pointer length pair).
`memcpy` would be:
void[] memcpy(void[] source, void[] destination); // I think it's
more natural to pass the source first
* Better error handling. I think returning error codes or using
`errno` is pretty bad error handling strategy. Even though
exceptions might not be the right choice (unless something like
this is used [1]), something like returning: `Result!(Value,
Error)` might be better.
* No global symbols, i.e. not having to worry about conflicting
names across multiple files
In short, all the reasons for which you created D in the first
place ;)
Unfortunately there will still be some limitations due to how the
kernel APIs use pointers and error codes/errno.
[1]
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0709r0.pdf
--
/Jacob Carlborg
More information about the Digitalmars-d
mailing list