On Tue, Sep 6, 2011 at 10:46 AM, Diego Novillo <dnovi...@google.com> wrote: > On Tue, Sep 6, 2011 at 12:54, Paul Pluzhnikov <ppluzhni...@google.com> wrote: >> On Tue, Sep 6, 2011 at 9:44 AM, Diego Novillo <dnovi...@google.com> wrote: >> >>> OK. Any reason not to send this (or a variant) to mainline? >> >> AFAIU, mainline is not interested -- there is already a debug mode (enabled >> by _GLIBCXX_DEBUG), which catches many of the same bugs (and more), and >> introduction of "parallel" debug modes is undesirable. >> >> Unfortunately, _GLIBCXX_DEBUG makes no performance guarantees (making some >> normally constant-time operations O(N), etc.) and so we can't just turn >> it on in Google. > > Right. That's why I thought of a variant. Maybe we want to have > levels of checking, or a _GLBICXX_DEBUG_FAST.
Which would introduce a "parallel" debug mode ... which has been rejected in the past. > But this is something to discuss with libstdc++ (CC'd). Sure. If the "parallel" debug mode is more tenable now, I am all for it. To give some context, in a large code base (> 1e6 lines of C++ code), the checks added in this patch found 20 bugs. Most (though not all) of these bugs could also have been found with Valgrind and (probably) with _GLIBCXX_DEBUG, but the runtime cost of running such heavy-weight checks over the entire code base is prohibitive. Thanks, -- Paul Pluzhnikov