<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jun 8, 2012, at 9:52 AM, Ojan Vafai wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="gmail_quote">On Fri, Jun 8, 2012 at 9:25 AM, Filip Pizlo <span dir="ltr"><<a href="mailto:fpizlo@apple.com" target="_blank">fpizlo@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="HOEnZb"><div class="h5"><br>
On Jun 8, 2012, at 9:16 AM, Balazs Kelemen wrote:<br>
<br>
> On 06/08/2012 05:21 PM, Filip Pizlo wrote:<br>
>> On Jun 8, 2012, at 4:38 AM, Balazs Kelemen<<a href="mailto:kbalazs@webkit.org">kbalazs@webkit.org</a>>  wrote:<br>
>><br>
>>> On 06/08/2012 09:46 AM, Osztrogonac Csaba wrote:<br>
>>>> Hi,<br>
>>>><br>
>>>> Dirk Pranke írta:<br>
>>>>> I believe most if not all of the ports have started using either<br>
>>>>> TestExpectations files or a combination of TestExpectations files<br>
>>>>> (except for the Apple Win port).<br>
>>>>><br>
>>>>> Can we explicitly switch to the TestExpectations files at this point<br>
>>>>> and drop support for Skipped files on the other ports (and perhaps<br>
>>>>> disable old-run-webkit-tests for all but apple win)?<br>
>>>> Until NRWT can't handle cascaded TestExpectations - <a href="https://bugs.webkit.org/show_bug.cgi?id=65834" target="_blank">https://bugs.webkit.org/show_bug.cgi?id=65834</a>,<br>
>>>> Qt port can't drop supporting Skipped files. We have many tests skipped in qt-5.0, qt-5.0-wk1,<br>
>>>> qt-5.0-wk2, wk2 Skipped lists. We can't migrate all of them to the only one TestExpectations.<br>
>>>><br>
>>>> And I disagree with disabling ORWT at all. Qt port still support using ORWT locally.<br>
>>>> It is better for gardening than NRWT. NRWT regularly has problems with generating<br>
>>>> new results for a given platform dir (qt,qt-5.0,qt-5.0-wk1,...), it doesn't support<br>
>>>> the good --skipped=only option . If folks don't want to use it, just not use, but<br>
>>>> disabling for everyone by fiat isn't a friendly thing.<br>
>>> 1. These are real weaknesses of nrwt, we should fix them. If gardening is better with orwt (i doubt that is the case, but I don't do gardening regularly), we should improve nrwt, i.e. reimplement features from orwt.<br>


>> I applaud your enthusiasm.<br>
>><br>
>>> 2. I believe basically everybody agrees that we should drop orwt, except you Ossy. Maybe I'm wrong. So, is there anybody still want to have support for orwt? If so, why?<br>
>> I'm with Ossy on this.<br>
>><br>
>> Getting rid of ORWT would be a show stopper for me.<br>
>><br>
>> This talk of fixing bugs in NRWT is really great but until such time as those bugs are fixed, let's keep ORWT.<br>
>><br>
><br>
> Understandable. Let me make it clear: I don't prefer one over the other. I believe it's contra-productive that some people/bots use this, and others use that. It adds overhead to bot maintainance, it's bad for developer experience, and it blocks the evolution of the one and only tool - because some people still make efforts on fixing/improving the other instead.<br>


<br>
</div></div>I think one issue that ought to be fixed with NRWT is the level of infrastructural complexity that it has, and the extent to which its algorithmic design (say, load balancing technique) is ossified through the use of entirely unnecessary object oriented pattern overhead.<br>


<br>
In short, NRWT is overengineered.<br>
<br>
As such, there will be those of us, which prefer solutions that are not overengineered, and who thus end up hacking ORWT when we need to get work done.<br></blockquote><div><br></div><div>Do you really do quick local hacks to ORWT? Or are you talking about adding actual features to ORWT?</div></div></blockquote><div><br></div><div>Both.</div><br><blockquote type="cite"><div class="gmail_quote">

<div><br></div><div>While NRWT is more code than ORWT, it's also thoroughly unittested. It's a little harder to dive into, but it's much easier to maintain IMO.</div></div></blockquote><div><br></div><div>It's a lot harder to dive into, a lot more cumbersome to improve, and not any easier to maintain.</div><div><br></div><div>The fact that it is unittested is part of the problem.  It restricts what you can do to the interfaces used internally in the code, which makes larger changes much harder to pull off.  It also steepens the learning curve.</div><div><br></div><div>Look, the test harness should be a thing that helps us get work done, not an end unto itself.  The harness should err on the side of understandability, hackability, and, in short, simplicity.</div><br><blockquote type="cite"><div class="gmail_quote"><div><br></div><div>The complexity in the codebase is partially because it was written before webkitpy existed and then ported to work on top of webkitpy. So there is still cleanup that could happen to make it less complex. But the specific complexity you're talking about for the parallelism was necessary to make NRWT use multiple processes, which itself was necessary because of Python multithreading bugs.</div>

</div>
</blockquote></div><br><div>I look forward to seeing what such a cleanup would look like.</div><div><br></div><div>Python feels like the wrong technology to use for multithreading.  I'm curious if, in the future, next time we rewrite RWT (and I do believe that there will be such a "next time"), we could pick a language that allows this more naturally.  It's sad that most languages have bugs in either the library code for starting and managing processes (Java, I'm glaring at you!) or bugs in threads (as you say, Python, and in my experience, Ruby and Perl, and probably others as well).</div><div><br></div><div>-F</div></body></html>