[gsoc] DUB - Ideas

Nick Sabalausky (Abscissa) SeeWebsiteToContactMe at semitwist.com
Thu Feb 28 17:45:56 UTC 2019


On 2/28/19 10:50 AM, Seb wrote:
> 
> @community: what features do you miss the most from DUB?
> 

Oh my...where to start...?

- Need a clear, obvious, dead-simple, 100% reliable way to tell DUB to 
keep its grubby hands out of my project's compilation. Tell it "Run this 
command to compile, run this other command to generate docs, etc., 
here's where you can find the resulting output, and otherwise, ***stay 
out of it!!***". Both the sdl/json config and the launched process 
should support appropriate envvars so I can cleanly pass-through CLI 
information like "Make docs instead of do build" or "use LDC" to my 
scripts without complicating them too much.

- Need to be able to tell DUB "I want *THIS* compiler flag 
included/omitted", WITHOUT triggering a stupid big ugly warning, or 
having to manually translate the CLI flag into DUB-speak. Both GDC and 
LDC come with compatibility wrappers for DMD's CLI, so an additional 
abstraction layer here is neither necessary nor welcome.

- Compile times that don't make a mockery of DMD.

- DUB's default stdout output needs to STFU by default.

- DUB and the compilers themselves should be bona-fide dependencies just 
like anything else.

- Needs good, solid support for non-source dependencies, system 
dependencies, and tools that the build itself depends on, not just libs 
your source depends on.

- This following workflow needs to be a BASIC STANDARD FULLY-ROBUST 
use-case with the same priority and importance as running "dub" to build 
a project: I have a non-DUB project and I want to include a library 
(say, Vibe.D) via DUB. I have my CLI command(s) to invoke the compiler, 
and all I have to do to use Vibe.d (or whatever) is insert this as part 
of my compiler invocation:

dmd blah blah `dub include vibe-d:~0.8.3` blah blah

And boom, -I... paths, libs, Have_vibe_d, etc., all guaranteed working, 
correct and ready to go.

At one point, I did a lot of work to make that happen, and I made some 
progress, but it was just so contrary to the way dub wanted to work I 
finally gave up.

- There's probably more I'm forgetting at the moment...


More information about the Digitalmars-d mailing list