digitalmars.D - [SAoC 2022] Replace druntime Hooks with Templates: Milestone 2, Week 1
- Teodor Dutu (17/17) Oct 24 2022 Hi,
- Hipreme (3/7) Oct 27 2022 Great work! Keep it up and soon enough we'll have a nice runtime!
Hi, This week I continued with `_d_newitem{T,iT,U}` and `_d_arraycatnTX`. I only implemented a template `_d_newitemU` and left the introduction of the call to `memset(0)` / `memcpy(T.init)` up to the compiler. I am currently having trouble setting `vthis` for nested structs. It is generally set in e2ir.d and reinventing this wheel in expressionsem.d is a bit trickier or I just don't know where to look. I've fixed all easily reproducible bugs related to `_d_arraycatnTX` (PR [here](https://github.com/dlang/dmd/pull/14550)). The ones that remain lie inside the compiler, unfortunately. One of them was easy to track. [Here](https://github.com/dlang/dmd/blob/9ecf81be49554550202fa61ab5d3ed68c2f37ce0/compiler/test/unit/lexer/loc tion_offset.d#L556) 2 strings are concatenated and then the `.ptr` of the result is used. Because of the missing `\0` at the end of strings, [this](https://github.com/dlang/dmd/blob/9ecf81be49554550202fa61ab5d3ed68c2f37ce0/compiler/test/unit/lexer/loc tion_offset.d#L563) assert was failing. The ctor of `Lexer` [says explicitly](https://github.com/dlang/dmd/blob/9ecf81be49554550202fa61ab5d3ed68c2f37ce0/compiler/s c/dmd/lexer.d#L101) that its second argument should be null-terminated. The solution was to manually add a `~ '\0'` at the end of the concatenation above. I don't know how this error didn't manifest itself with the older hook. My intuition says that the [remaining builkite failures](https://buildkite.com/dlang/dmd/builds/28559#0183fc10-644f-4cc -a285-c96b76ee122a) also come from `.ptr` being used on strings, but I find it difficult to track them down. Thanks, Teodor
Oct 24 2022
On Monday, 24 October 2022 at 20:23:05 UTC, Teodor Dutu wrote:Hi, This week I continued with `_d_newitem{T,iT,U}` and `_d_arraycatnTX`. [...]Great work! Keep it up and soon enough we'll have a nice runtime! I have had some problems before when working on the array things
Oct 27 2022