bors ad212ecee4 auto merge of #7822 : huonw/rust/cond-debug, r=graydon
As per @pcwalton's request, `debug!(..)` is only activated when the `debug` cfg is set; that is, for `RUST_LOG=some_module=4 ./some_program` to work, it needs to be compiled with `rustc --cfg debug some_program.rs`. (Although, there is the sneaky `__debug!(..)` macro that is always active, if you *really* need it.)

It functions by making `debug!` expand to `if false { __debug!(..) }` (expanding to an `if` like this is required to make sure `debug!` statements are typechecked and to avoid unused variable warnings), and adjusting trans to skip the pointless branches in `if true ...` and `if false ...`.

The conditional expansion change also required moving the inject-std-macros step into a new pass, and makes it actually insert them at the top of the crate; this means that the cfg stripping traverses over the macros and so filters out the unused ones.

This appears to takes an unoptimised build of `librustc` from 65s to 59s; and the full bootstrap from 18m41s to 18m26s on my computer (with general background use).

`./configure --enable-debug` will enable `debug!` statements in the bootstrap build.
2013-07-16 11:19:20 -07:00
..
2013-07-08 13:55:11 -04:00
2013-07-15 23:57:27 -04:00
2013-07-07 22:51:10 +12:00
2013-07-15 23:57:27 -04:00
2013-07-13 13:33:48 +02:00
2013-07-15 23:57:27 -04:00
2013-07-11 15:21:29 -04:00
2013-07-15 23:57:27 -04:00
2013-07-15 23:57:27 -04:00
2013-07-13 18:23:08 +02:00
2013-07-15 23:57:27 -04:00
2013-07-10 22:08:50 -07:00