using dub and -checkaction=context

Mathias LANG geod24 at gmail.com
Mon Jan 18 12:48:06 UTC 2021


On Sunday, 17 January 2021 at 20:42:06 UTC, Steven Schveighoffer 
wrote:
> On 1/17/21 2:27 PM, Anonymouse wrote:
>> On Sunday, 17 January 2021 at 15:41:45 UTC, Steven 
>> Schveighoffer wrote:
>>> I'm trying to run unittests using `dub test`, and I wanted to 
>>> use the new -checkaction=context feature to avoid having to 
>>> instrument my unittests to print out the string comparison 
>>> failure that's happening.
>>>
>>> But I tried adding this to my dub.sdl file:
>>>
>>> dflags "-checkaction=context" platform="dmd"
>>>
>>> But now I get linker errors:
>>>
>>> /home/steves/.dub/packages/vibe-core-1.10.1/vibe-core/source/vibe/appmain.d:(.text._D3std8typecons__T10RefCountedTSQBe9container5array__T5ArrayTS4vibe4core4sync18LocalTaskSemaphore12ThreadWaiterZQCg7PayloadVEQEtQEs24RefCountedAutoInitializei0ZQFm6__dtorMFNaNbNiZv[_D3std8typecons__T10RefCountedTSQBe9container5array__T5ArrayTS4vibe4core4sync18LocalTaskSemaphore12ThreadWaiterZQCg7PayloadVEQEtQEs24RefCountedAutoInitializei0ZQFm6__dtorMFNaNbNiZv]+0x5c): undefined reference to `_D4core8internal7dassert__T14_d_assert_failVAyaa1_3eTmTiZQBeFNaNbNiNfKxmxiZQBf'
>>>
>> 
>> https://issues.dlang.org/show_bug.cgi?id=19937 ? Slightly 
>> different error message though.
>
> Yeah, that's probably it. Hm... this feature isn't very usable 
> if I can't use it with dub. And the bug report you linked to 
> also has an example that fails with straight dmd (even without 
> unittests).
>
> -Steve

Yeah, it's currently not usable, because DMD thinks the template 
is already instantiated in Phobos / druntime. I tried to work 
around it in my projects and it didn't work out.
I want to enable it by default but there's 2 issues blocking it 
ATM (see https://github.com/dlang/dmd/pull/11925). Once that PR 
is green, we can enable it when compiling druntime / Phobos and 
your linker errors will disappear.

Also, dub-wise, you can't really use `-preview` before the latest 
release. That's why we added 
https://github.com/dlang/dub/commit/cd9b30e04813108c05abf97d97a42daf466eabdb ...


More information about the Digitalmars-d-learn mailing list