www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.internals - Dependency on dlang/tools

Hi all,

recently there have been some discussions about our dependency on the 
tools repo.
As Brad protested loudly and even I get lost in all the open PRs, I 
think it's better to have the discussion here.

Checkwhitespace.d
-----------------

- _only_ for the checkwhitespace target (= tools will only be cloned 
when explicitly requested)
- we already use `grep` for this in the `style` target at Phobos (of 
course, I do prefer doing it in D as well)

The regarding PRs are here:

https://github.com/dlang/phobos/pull/5231
https://github.com/dlang/dmd/pull/6584

tl;dr: I think this case is less problematic because it's an optional 
target.

osmodel.mak
-----------

- the file was redundant over all repos
- _not_ all instances of it were updated properly (despite the comment 
in the header!)

Summary of the discussion so far:

klickverbot: (after I proposed to use dmd/src/osmodel.mak as single 
source of truth)

 tools is also interesting built in isolation with other compilers 
 (DMD=ldmd2, etc.), so this seems like a questionable suggestion. You 
 wouldn't want to keep the DMD source around just for osmodel.mak 
 (especially when building distro packages due to the non-free code it 
 contains).
Brad:
 Please no. I strongly object to the default build doing any network 
 activity. Similarly I object to adding cross-package dependencies like 
 this. I admit it's been a while since I checked, but it used to be and 
 should be possible to checkout any one of the repos and built it stand 
 alone.
Remarks: - for phobos one needs at least druntime - for tools one needs druntime and phobos - for dlang.org one needs all repos (even the installer) The regarding PRs are here: https://github.com/dlang/dlang.org/pull/1596 https://github.com/dlang/tools/pull/227 https://github.com/dlang/phobos/pull/5228 https://github.com/dlang/druntime/pull/1780 So: A) Do we keep the status quo? B) Do we use dmd as single source of truth? C) Do we just require that a contributor checks out tools as well? For (C) we can help the contributor to do so automatically, e.g TOOLS_DIR = ../tools $(shell [ ! -d $(TOOLS_DIR) ] && git clone https://github.com/dlang/tools $(TOOLS_DIR)) include $(TOOLS_DIR)/osmodel.mak Personally I am in favor of (C) as keeping everything updated is much more work and annoying than automatically cloning a repo that changes infrequently. Cheers, Seb
Mar 04 2017