> As you did not provide profiling results before, you implicitly asked for > others to produce these.
I do not want to dig into the politics, but this approach seems wrong to me. I agree verification is important but the author of the contribution (i.e. patch) should provide info on fixes/performance impact etc. By not providing this, contributor *is not* implicitly asking for commiters to do that. If you need a justification for the patch, you should ask contributor to add missing info and if he does not add it, then simply reject the patch. It may seem a bit harsh but there is IMHO no other long-term strategy to this because otherwise you will become cluttered with finishing other people's unfinished job. :) Fiisch 2017-02-14 16:19 GMT+01:00 <win...@genial.ms>: > Appealing to self-authority is a bad choice when clearly showing > lack of knowledge. Please, learn about the Pareto Principle and > Amdahl's Law! > I do not appreciate making strawman arguments from the least > important part of my email where I describe that I have to do > some manual extra steps, as I'm using webmail not Pine on UNIX; > that means not misrepresenting that as not knowing about git am. > I do not appreciate ad hominems about how we supposedly not care > about the code in the repository. > You might profit from learning what to avoid there, as there could > be more: https://yourlogicalfallacyis.com/ > > It would be nice if you also avoided trying to optimize the 90% of code > which are not taking a significant part of the time spent in the > program, as that wastes both your and others time. > > I'd appreciate you following the scientific method. For example, > if you profile and see no measurable improvement, do not try to find > reasons why this test data might be ignored, instead try to improve > things and reconsider your prevailing views. > > Btw., it should be clear someone committing patches needs to > verify that they work and for optimizations theres an even higher > barrier of showing they improve the performance significantly enough > to justify changing the code (which might introduce bugs, make it more > complicated and takes human resources). As you did not provide > profiling results before, you implicitly asked for others to > produce these. > > >> Gesendet: Dienstag, 14. Februar 2017 um 08:09 Uhr >> Von: "Enrico Weigelt, metux IT consult" <enrico.weig...@gr13.net> >> An: win...@genial.ms >> Cc: freecol-developers@lists.sourceforge.net >> Betreff: Re: [Freecol-developers] emails from patches >> >> On 13.02.2017 15:06, win...@genial.ms wrote: >> > Hello, >> > >> > you know how that answer feels? >> >> Like talking to an old kernel hacker, who's used to cope with many >> and large patch queues and therefore tries to get around w/ minimal >> bureaucracy ? :o >> >> Having to create tickets and copy-paste patches on some website >> manually, introduces lots of extra bureaucracy. And if we wanna >> discuss about them, it gets even more bureaucratic - compared with >> simple and efficient tools like email. It doesn't even make applying >> easier - OTOH, git can apply emails (and whole mailboxes) automatically. >> >> > Like you only value your own time, as you don't even invest enough >> > of it to write a tiny justification for each patch. >> >> Actually, I did, where I felt that it's not obvious. >> >> Looking at the repo history, it doesn't seem that the committers there >> seem to care much. >> >> OTOH, many commits there dont seem to be very consistent: eg. >> introducing temporary hacks or even breaking things, which are cleaned >> up again by later commits. Those things I'd really like to prevent, >> by cleaning them up before. >> >> So, can you imagine, how it feels, being critized about things that the >> committers are doing even worse ? Do you think that's how free adult >> people should treat each other ? >> >> By the way: maybe it's just a language problem, but the term >> "justifications" sounds a bit like being tackled by a supervisor or a >> judge. Obviously, we're all free men here, and nobody here has to >> justify himself for another. >> >> > Then it costs others about twice as much time to figure out >> > what to do with such a patch, cause of reverse engineering the reasons >> > you made it from the code, before verifying it actually works. >> >> If you've got any questions, please ask. >> >> > I still saw no numbers from you as to how much cpu time these supposed >> > optimization patches would conserve, and I suspect its because you >> > still did not profile. >> >> Actually, I did a few profilings, but it's hard to get any useful >> numbers, as the jitter is just too high, and it's just not worth >> the effort und patch-by-patch basis. >> >> OTOH, as an seasoned sw-engineer w/ >25yrs experience (who also used >> to build its own computers, aeons ago), I might have some piece of >> understanding, whats going on under the hood and so dont need to >> measure every single piece. >> >> > That means we'd have to take the time to profile >> > and most likely see no significant improvement to justify changing >> > the code. >> >> Why do you need to do that ? Did I ask you to do that ? >> >> For most of my optimization patches it should even be obvious that they >> bring some improvements (whether it's actually noticable in an >> individual case is a different story), for anybody who knows a bit >> about java and jvm. >> >> Lets take a simple but common example: >> >> --- a/src/net/sf/freecol/common/model/Europe.java >> +++ b/src/net/sf/freecol/common/model/Europe.java >> @@ -386,7 +386,8 @@ public class Europe extends UnitLocation >> Player player = getOwner(); >> Market market = player.getMarket(); >> int price = 0; >> - for (AbstractGoods ag : transform(goods, >> AbstractGoods::isPositive)) { >> + for (AbstractGoods ag : goods) { >> + if (!ag.isPositive()) continue; >> GoodsType goodsType = ag.getType(); >> // Refuse to trade in boycotted goods >> if (!player.canTrade(goodsType)) { >> >> The original version does a lot of extra things under the hood, eg: >> * creates a new list (where the filtered elements put it) >> * creates two stream objects (plus several internal ones, eg. >> splititerator, etc) >> * creates a collector object (plus several internal ones) >> * creates a callback object, which is called or for each list element, >> just to call AbstractGoods.isPositive() >> * collect() finally calls (though a huge stack of indirection) through >> the whole stream/splititerator chain, down to the predicate and the >> collector objects, for each list element, until the end of the >> stream is reached. >> >> OTOH, my version skips that all away, just direct invokestatic to >> AbstractGoods::isPositive() (which is easily inlinable, BTW) and >> conditional jump. >> >> Oh, BTW, my version is also using *less* code and is easier to read. >> >> > Then if I would decide on using such a patch I personally would need to >> > copy the text from each email out into a new file and try to apply it. >> >> You could just save the mail as is and apply directly: >> >> https://www.kernel.org/pub/software/scm/git/docs/git-am.html >> >> > You could just post a link to a branch on your SF or Github fork and >> > if its just a whole stack of related commits one posting including >> > a link to a git repository and a few numbers would be better than >> > a stack of emails. >> >> Already did so, nobody seemed to care. >> >> >> >> --mtx >> >> ------------------------------------------------------------------------------ >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, SlashDot.org! http://sdm.link/slashdot >> _______________________________________________ >> Freecol-developers mailing list >> Freecol-developers@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/freecol-developers >> > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > _______________________________________________ > Freecol-developers mailing list > Freecol-developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/freecol-developers ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Freecol-developers mailing list Freecol-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freecol-developers