1
Fork 0

Invert --cfg debug to --cfg ndebug

Many people will be very confused that their debug! statements aren't working
when they first use rust only to learn that they should have been building with
`--cfg debug` the entire time. This inverts the meaning of the flag to instead
of enabling debug statements, now it disables debug statements.

This way the default behavior is a bit more reasonable, and requires less
end-user configuration. Furthermore, this turns on debug by default when
building the rustc compiler.
This commit is contained in:
Alex Crichton 2013-09-17 21:02:11 -07:00
parent 89cc8529cc
commit 833a64d76e
8 changed files with 12 additions and 12 deletions

View file

@ -102,9 +102,9 @@ endif
ifdef CFG_ENABLE_DEBUG ifdef CFG_ENABLE_DEBUG
$(info cfg: enabling more debugging (CFG_ENABLE_DEBUG)) $(info cfg: enabling more debugging (CFG_ENABLE_DEBUG))
CFG_RUSTC_FLAGS += --cfg debug
CFG_GCCISH_CFLAGS += -DRUST_DEBUG CFG_GCCISH_CFLAGS += -DRUST_DEBUG
else else
CFG_RUSTC_FLAGS += --cfg ndebug
CFG_GCCISH_CFLAGS += -DRUST_NDEBUG CFG_GCCISH_CFLAGS += -DRUST_NDEBUG
endif endif

View file

@ -10,8 +10,8 @@ Version 0.8 (October 2013)
* Many trait inheritance bugs fixed. * Many trait inheritance bugs fixed.
* Owned and borrowed trait objects work more reliably. * Owned and borrowed trait objects work more reliably.
* `copy` is no longer a keyword. It has been replaced by the `Clone` trait. * `copy` is no longer a keyword. It has been replaced by the `Clone` trait.
* rustc no longer emits code for the `debug!` macro unless it is passed * rustc can omit emission of code for the `debug!` macro if it is passed
`--cfg debug` `--cfg ndebug`
* mod.rs is now "blessed". When loading `mod foo;`, rustc will now look * mod.rs is now "blessed". When loading `mod foo;`, rustc will now look
for foo.rs, then foo/mod.rs, and will generate an error when both are for foo.rs, then foo/mod.rs, and will generate an error when both are
present. present.

2
configure vendored
View file

@ -373,7 +373,7 @@ opt optimize-cxx 1 "build optimized C++ code"
opt optimize-llvm 1 "build optimized LLVM" opt optimize-llvm 1 "build optimized LLVM"
opt optimize-tests 1 "build tests with optimizations" opt optimize-tests 1 "build tests with optimizations"
opt llvm-assertions 1 "build LLVM with assertions" opt llvm-assertions 1 "build LLVM with assertions"
opt debug 0 "build with extra debug fun" opt debug 1 "build with extra debug fun"
opt ratchet-bench 0 "ratchet benchmarks" opt ratchet-bench 0 "ratchet benchmarks"
opt fast-make 0 "use .gitmodules as timestamp for submodule deps" opt fast-make 0 "use .gitmodules as timestamp for submodule deps"
opt manage-submodules 1 "let the build manage the git submodules" opt manage-submodules 1 "let the build manage the git submodules"

View file

@ -3428,8 +3428,8 @@ sign (`=`) followed by the log level, from 1 to 4, inclusive. Level 1
is the error level, 2 is warning, 3 info, and 4 debug. You can also is the error level, 2 is warning, 3 info, and 4 debug. You can also
use the symbolic constants `error`, `warn`, `info`, and `debug`. Any use the symbolic constants `error`, `warn`, `info`, and `debug`. Any
logs less than or equal to the specified level will be output. If not logs less than or equal to the specified level will be output. If not
specified then log level 4 is assumed. However, debug messages are specified then log level 4 is assumed. Debug messages can be omitted
only available if `--cfg=debug` is passed to `rustc`. by passing `--cfg ndebug` to `rustc`.
As an example, to see all the logs generated by the compiler, you would set As an example, to see all the logs generated by the compiler, you would set
`RUST_LOG` to `rustc`, which is the crate name (as specified in its `link` `RUST_LOG` to `rustc`, which is the crate name (as specified in its `link`

View file

@ -575,7 +575,7 @@ TEST_SREQ$(1)_T_$(2)_H_$(3) = \
# The tests select when to use debug configuration on their own; # The tests select when to use debug configuration on their own;
# remove directive, if present, from CFG_RUSTC_FLAGS (issue #7898). # remove directive, if present, from CFG_RUSTC_FLAGS (issue #7898).
CTEST_RUSTC_FLAGS := $$(subst --cfg debug,,$$(CFG_RUSTC_FLAGS)) CTEST_RUSTC_FLAGS := $$(subst --cfg ndebug,,$$(CFG_RUSTC_FLAGS))
# The tests can not be optimized while the rest of the compiler is optimized, so # The tests can not be optimized while the rest of the compiler is optimized, so
# filter out the optimization (if any) from rustc and then figure out if we need # filter out the optimization (if any) from rustc and then figure out if we need

View file

@ -715,7 +715,7 @@ pub fn std_macros() -> @str {
macro_rules! warn ( ($($arg:tt)*) => (log!(2u32, $($arg)*)) ) macro_rules! warn ( ($($arg:tt)*) => (log!(2u32, $($arg)*)) )
macro_rules! info ( ($($arg:tt)*) => (log!(3u32, $($arg)*)) ) macro_rules! info ( ($($arg:tt)*) => (log!(3u32, $($arg)*)) )
macro_rules! debug( ($($arg:tt)*) => ( macro_rules! debug( ($($arg:tt)*) => (
if cfg!(debug) { log!(4u32, $($arg)*) } if cfg!(not(ndebug)) { log!(4u32, $($arg)*) }
)) ))
macro_rules! log2( macro_rules! log2(
@ -730,7 +730,7 @@ pub fn std_macros() -> @str {
macro_rules! warn2 ( ($($arg:tt)*) => (log2!(2u32, $($arg)*)) ) macro_rules! warn2 ( ($($arg:tt)*) => (log2!(2u32, $($arg)*)) )
macro_rules! info2 ( ($($arg:tt)*) => (log2!(3u32, $($arg)*)) ) macro_rules! info2 ( ($($arg:tt)*) => (log2!(3u32, $($arg)*)) )
macro_rules! debug2( ($($arg:tt)*) => ( macro_rules! debug2( ($($arg:tt)*) => (
if cfg!(debug) { log2!(4u32, $($arg)*) } if cfg!(not(ndebug)) { log2!(4u32, $($arg)*) }
)) ))
macro_rules! fail( macro_rules! fail(

View file

@ -9,6 +9,7 @@
// except according to those terms. // except according to those terms.
// xfail-fast exec-env directive doesn't work for check-fast // xfail-fast exec-env directive doesn't work for check-fast
// compile-flags: --cfg ndebug
// exec-env:RUST_LOG=conditional-debug-macro-off=4 // exec-env:RUST_LOG=conditional-debug-macro-off=4
fn main() { fn main() {

View file

@ -9,7 +9,6 @@
// except according to those terms. // except according to those terms.
// xfail-fast compile-flags directive doesn't work for check-fast // xfail-fast compile-flags directive doesn't work for check-fast
// compile-flags: --cfg debug
// exec-env:RUST_LOG=conditional-debug-macro-on=4 // exec-env:RUST_LOG=conditional-debug-macro-on=4
fn main() { fn main() {