Cryptic bug for DMD v2.087.x

FeepingCreature feepingcreature at gmail.com
Tue Aug 13 05:50:23 UTC 2019


On Monday, 12 August 2019 at 12:17:00 UTC, Seb wrote:
> FYI DustMite has been created _exactly_ for this purpose. It's 
> even bundled with the official DMD releases.
>
> https://github.com/CyberShadow/DustMite/wiki
>
>
> 1) Copy all project sources in fresh directory
> 2) Run dustmite with a tester to check whether the bug can 
> still be observed.
> Here:
>
> ---
> dustmite fresh-dir 'dmd -O (your normal invocation) 2>&1 | grep 
> -qF "tym = 14"'
> ---

I should do a proper blogpost on the Dustmite methodology I use 
at some point. Maybe a ten minute dconf talk next year. But 
basically, you make a source folder, call it, say, fresh-dir-1. 
Make a repro script, repro-1.sh. Run dustmite to completion. This 
creates fresh-dir-1.reduced. Then this folder is *immediately* 
copied to "fresh-dir-2", the script to repro-2.sh, and the 
process is repeated from start.

The reason for this is usually Dustmite doesn't quite manage to 
finish the reduction on its own and needs some help to get 
nontrivial reductions like inlining template parameters. Or 
sometimes you want to reduce the main program first, and only 
then add in external libraries or Phobos modules. But it's easy, 
and has happened to me lots of times, to accidentally destroy the 
reduction that way, especially if it spans multiple files. By 
copying the reduced folder, we ensure we are working in a clean 
folder and never have to waste time rerunning the previous 
reduction.


More information about the Digitalmars-d mailing list