<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>fyi, I observe the following:<BR> <BR><br>When compiling multiple files,<br>and one fails,<br>the failure inappropriately affects later files,<br>in that, one or more of:<BR> <BR><br> - all outputs are deleted <br> - or -keep isn't honored <br> - or the "build pipeline" is truncated, i.e. <br> we might check the validity of .m3/.i3 files <br> but we don't progress all the way to generate <br> assembly/object files <BR> <BR>It used to be worse, we just discussed, I had regressed<BR>it years ago by accident, in that compilation stopped<br>and no further errors are reported. But now it can<br>largely succeed, but not have the intended outputs,<br>so you fix the one error, and then recompile everything.<BR> <BR><br>There is just one boolean "compile_failed" that is<br>set by the first failure, and left set, and the code<br>doesn't know if it was from an earlier file or the current file.<BR> <BR><br>It either needs to be a counter, and captured before certain<br>steps and checked for > after them, or there should be<br>two booleans, one that is set/cleared per file, one that is<br>set whenever the first becomes set and is never cleared,<br>or functions should return a boolean, for the current file,<br>and either also set the "global", or set the global<br>near the top of the call tree.<BR> <BR><br>It isn't global, but it is nearly so.<br>Making this code multithreaded will be an unfortunately large task..<BR> <BR><br>I'll probably fix this soon.<br>This is just a heads up.<br>I'm not addressing the single-threadedness, just the other.<br>It shouldn't be a big change.<BR> <BR><br>This is related to:<br> What I'm actually seeing with one of the LLVM passes<br> is the first invocation of some tool crashes, so the<br> rest truncate their build pipeline and claim m3front failed,<br> which isn't true, either it didn't run or didn't fail.<br> The failure is from the first file.<BR> <BR> <BR> <BR> - Jay<br><br> <BR> </div></body>
</html>