<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">On Jan 29, 2014, at 12:39 AM, Chandler Carruth <<a href="mailto:chandlerc@google.com">chandlerc@google.com</a>> wrote:<br><div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="gmail_extra" style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">There is another advantage. More and more we are lifting the host-specific behavior into the driver rather than the compiler proper. The internal compiler invocation thus has a canonical set of flags rather than a platform specific flags, and it captures *numerous* behavioral reflections of the host system. This too is very useful in capturing bug reports accurately. While we might be able to successfully extract the exact internal flag state necessary to reproduce things and serialize it, exclusively using that serialization does help ensure this always holds true.</div></blockquote><div><br></div><div>This is an excellent point.  This separation creates a very useful separation of concerns.</div><br><blockquote type="cite"><div class="gmail_extra" style="font-family: Helvetica; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">The problem I really have with all of this is that we are acting like we won't have bugs and problems with this clever signal-based crash handling solution. My experience with signal handling and running a wide variety of Unix-like operating systems is that this is absolutely not true. I think the maintenance cost of complex and subtle signal management will be extremely high, and to me it doesn't (yet) seem likely to be worth the cost. Currently, compiling C++ (or even moderately complex C, ObjC, etc.) is still massively slower than a subprocess invocation even on Windows. I don't think we should even consider crossing this bridge until that changes.</div></blockquote></div><br><div>This pretty much captures my sentiments entirely.  Our experience with using a signal-based crash handling solution with libclang in Xcode has been mediocre.  Iím not convinced that we could do something that approximates process isolation without doing process isolation.  I also agree that the raw compilation time likely dwarfs the subprocess invocation on Windows.</div></body></html>