dlang / dub

Package and build management system for D
MIT License
676 stars 227 forks source link

debugMode wrongly documented #2159

Open p0nce opened 3 years ago

p0nce commented 3 years ago

The build option debugMode is wrongly documented.

https://github.com/dlang/dub/blob/cdf858029d8a6fa9052b49c0f82bb0ed02bf9690/source/dub/compilers/buildsettings.d#L354 It says "Compile in debug mode (enables contracts, -debug)"

But all it does is enabling -debug

and what the debug flag is doing is NOT enabling contracts: https://p0nce.github.io/d-idioms/#So-what-does--debug-do,-exactly?

From DMD command line: "compile in debug code" This is the only thing that -debug does: debug clauses, and debug identifiers.

Geod24 commented 3 years ago

Edited with permalink (press y to get it - It also displays code inline).

The way I understand this, the intent is for it to be a "debug mode" (literally). AFAIK, contracts are enabled when debugMode is used, because they are enabled by default. In which case does debugMode not lead to contracts being enabled ?

p0nce commented 3 years ago

You can have BuildOptions.debugMode and BuildOptions.releaseMode at once, and the second disable the contracts.