<div dir="ltr">That's only if you use git bash, not cmd.</div><br><div class="gmail_quote"><div dir="ltr">On Tue, Aug 16, 2016 at 11:38 AM Reid Kleckner <<a href="mailto:rnk@google.com">rnk@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">One other thing to note is that the dependency problem is going to go away very soon just a result of moving to git. The normal Windows install of git comes with all the utilities you need to run the LLVM tests anyway. I haven't bothered to install gnuwin32 on my new machine.<div><br></div><div>I think we do want to rewrite a few key utilities, like 'rm', to make them reliable on Windows, but for most things like 'grep' and 'sed', we should use the standard things. There's no reason to want to have our own subtly different versions of these tools.</div><div><br></div><div>If we do go all the way to avoid process creation, then it becomes interesting to have our own version of these things, and at that point, maybe having a fork or checked-in copy of busybox is the way to go.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Aug 16, 2016 at 11:23 AM, Zachary Turner <span dir="ltr"><<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Unfortunately the proposal here doesn't get rid of process creation, it just changes the process being created from a GnuWin32 one to one that we write ourselves.  Happy to entertain suggestions for how to get rid of process creation entirely, but it doesn't seem simple to me.</div><div class="m_-2039580056082307090HOEnZb"><div class="m_-2039580056082307090h5"><br><div class="gmail_quote"><div dir="ltr">On Tue, Aug 16, 2016 at 11:20 AM Yaron Keren <<a href="mailto:yaron.keren@gmail.com" target="_blank">yaron.keren@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="rtl"><div dir="ltr">You can use msys2 rather than gnuwin32. </div><div dir="ltr">Nevertheless it would be great to get rid of this dependency, as well as speedup the regressions tests. Process creation is slower on Windows than Linux and so the tests run much slower.</div><div dir="ltr"><br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div dir="ltr">2016-08-16 21:14 GMT+03:00 Zachary Turner via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span>:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">That's more like a workaround though.  The real problem is that file deletion is racy on Windows.  I can't count the number of times I've encountered this error, only to find out that adding a retry fixed the problem.  Sure, if you can remove opened files then there's no problem to begin with, but even if you can't, you can still remove the file by retrying again 100ms later or so.  It seems silly to disable a test which could be testing useful functionality because of some quirk of an OS.<div><br></div><div>If you had your own robust rm command, it can retry a few times, allowing the test to run everywhere.</div></div><br><div class="gmail_quote"><div><div class="m_-2039580056082307090m_-4038795898552245185m_-2608725692184794124h5"><div dir="ltr">On Tue, Aug 16, 2016 at 11:07 AM Reid Kleckner via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br></div></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_-2039580056082307090m_-4038795898552245185m_-2608725692184794124h5"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Aug 16, 2016 at 10:09 AM, Greg Bedwell via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Anecdotally, most of the times I've seen people add "REQUIRES: shell" on<br>
a test they really meant "disable on windows". I think/hope that's<br>
usually temporary while they investigate problems, but it might explain<br>
why so many tests say they require shell when they don't.<br>
<div><div><br></div></div></blockquote><div><br></div></span><div>In at least one case I can think of ("clang/test/Format/style-on-command-line.cpp") the "REQUIRES: shell" is there to work around annoying intermittent failures on Windows where 'rm' was failing with permission denied errors just occasionally enough to be a problem.  I've definitely seen this happen in a number of other places previously although I can't think whether this affects any other lit tests off-hand, but I know that personally I've had to implement 'robust rm' (basically, keep on trying until the error goes away on its own) on Windows in a number of different systems to work around this sort of problem before.  Replacing gnuwin32 with something where we could easily implement something like 'robust <cmd>' versions for Windows when we encounter these sorts of issues would be fantastic, so I'm definitely in favour of removing the dependency.</div></div></div></div></blockquote><div><br></div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>You can use "REQUIRES: can-remove-opened-file" to express this requirement more precisely.</div></div></div></div></div></div><span>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</span></blockquote></div>
<br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div>
</blockquote></div>
</div></div></blockquote></div><br></div>
</blockquote></div>