[SAoC 2021] Replace druntime Hooks with Templates: Milestone 3, Week 1
Teodor Dutu
teodor.dutu at gmail.com
Fri Nov 19 21:45:46 UTC 2021
Hi,
This week I managed to fix the final bugs of the `_d_arrayctor`
lowering.
In order to remove the call to `__ArrayDtor`, of which I spoke in
[last week's
post](https://forum.dlang.org/post/kocccsnqxjailweqcazz@forum.dlang.org), I resorted to declaring the array returned by `_d_arrayctor` inside a union. This is somewhat unorthodox, but Adam Ruppe [assured me](https://forum.dlang.org/post/xqgfaicsqlbbekkbzqye@forum.dlang.org) that this is the accepted way of handling array destruction myself.
As a result, this milestone I plan to run a benchmark for testing
the performance increase when using the new lowering for
`_d_array{,set}ctor`. I am also looking to finish replacing the
lowerings to `_d_arrayappendT` and `_d_arrayappendcTX` with
templates. I started working on this during the previous
milestone and managed fixed a bug where CTFE did not correctly
interpret the lowering to `_d_arrayappendcTX`.
After this, if time allows it, I'll move away for a while from
lowerings involving array manipulation to hooks that manipulate
somewhat simpler objects, such as `_d_delstruct`,
`_d_newitem{T,iT,U}` or `_d_newThrowable`. I plan to make this
shift because I've seen array-based generate some rather
time-consuming bugs and I hope that by doing so, I'll be able to
get more work finished and get stuck less.
Thanks,
Teodor
More information about the Digitalmars-d
mailing list