Tip: Use -i to modify druntime/phobos without rebuilding them

rikki cattermole rikki at cattermole.co.nz
Mon Feb 10 07:17:11 UTC 2020


On 10/02/2020 8:03 PM, Mathias Lang wrote:
> On Monday, 10 February 2020 at 06:19:44 UTC, Jonathan Marler wrote:
>> Yesterday I wanted to test out some small changes to phobos. Rather 
>> than building and installing my own version of the compiler and 
>> libraries, I used a quick hack that allowed me to directly change the 
>> druntime/phobos source files from my current installation and see the 
>> results immediately.
>>
>> In this case I was playing with the "std.process" module in phobos.  I 
>> created a backup of src/phobos/std/process.d and started making 
>> changes.  All I needed to do in order to see these changes in my 
>> program was to include the "-i=std.process" option like this:
>>
>> dmd -i=std.process myapp.d
>>
>> A quick and dirty way to selectively change and test changes to 
>> phobos/druntime on any installed compiler.
>>
>> For those not familair with -i, the reason this works is that the "-i" 
>> flag causes all imports to be compiled, except for those under the 
>> "core", "std" and "etc" module namespaces. However, you can override 
>> this by explicitly including any one of those namespaces.
> 
> Doesn't that only work for specific cases involving templates though ?
> If you don't recompile Phobos, anything you'll link will still link the 
> old binaries. So it's akin to compiling C(++) code but having the 
> headers not match the `.c(pp)`.

-i != -I


More information about the Digitalmars-d mailing list