remove MT branch from springs github repo

remove MT branch from springs github repo

Discussion between Spring developers.
Post Reply
abma
Spring Developer
Posts: 3544
Joined: 01 Jun 2009, 00:08

remove MT branch from springs github repo

Post by abma » 12 Apr 2013, 19:01

imo these branches branches never will be merged into spring. also there are several reasons why it really sucks as it is:

- we don't have the manpower to support / develop so many stuff at once
- design is bad (etherpad discussion)
- distribution sucks (existing auto-engine downloading is ignored, also the critism about that!)
- promotion confuses users, also there is a delay with bugfixes
- it doesn't sync to "normal" spring -> it IS a fork
- feedback about problems is mostly ignored
- it steals our time to focus us on the important things:
- usability
- fixing bugs
- features like missions / map generation & editing... or in general good content

any reasons to not remove it?

i'm +1 for removal. it still could/can be in a private repo, but it shouldn't be distributed to all people who clone the spring repo.

maybe i'm wrong, but i don't think the MTSim will improve anything at the spring project at some point. i really would like to have a multithreaded spring engine, but not at the cost of stability and unmaintainability.

if i hear no real reason to not remove it, then i'll remove it next week. so speak very soon or STFU.
Last edited by abma on 15 Apr 2013, 20:20, edited 2 times in total.
0 x

zerver
Spring Developer
Posts: 1358
Joined: 16 Dec 2006, 20:59

Re: remove MTSim* branches from github

Post by zerver » 12 Apr 2013, 23:05

I can remove MTsim2 and MTsim3 and make some tags instead. Better? Actually I wanted to do this earlier but was not sure if that would annoy someone. I would name the tags as non-syncing.

Please don't remove MTsim. It is a feature branch just like any other. You would not be happy if I started to remove branches randomly. LuaJIT does not sync either.
0 x

abma
Spring Developer
Posts: 3544
Joined: 01 Jun 2009, 00:08

Re: remove MTSim* branches from github

Post by abma » 13 Apr 2013, 00:23

no, tags doesn't solve anything here.

luajit is a branch that maybe can be picked up at some later point, also it isn't actively developed or distributed. MTSim is actively developed and promoted which binds resources, annoys players with bugs and problems and costs all of us time we already don't have.

we can't actively maintain 3 (!) versions of spring. we are currently 3 active devs and we really have problems to get ONE stable version of spring. it doesn't help to have 3 partly broken versions of spring. (spring legacy, mt & mtsim)

also, we are wasting way to many time in argueing. the mtsim branch binds way to many resources and time of us and imo it costs us players too, because of many crashes mainly for new players. this is frustrating for all of us.

mtsim makes additions of new features really difficult, mt caused so many compile trouble, costs many time compiling it, bloats file size, ... i have no number, but how long do we have the mt built without a big success? we always had trouble because of crashes at start, when for example LoadingMT is enabled. Also, calling opengl functions from multiple threads seems to be unsafe / unstable. these issues exists since the beginning and they were never solved. i see the same problems (and much more) coming with the mtsim branch. just read the meeting minutes for some of the design errors.

i don't want to continue making the same errors again and again, this has to stop.


we can vote about the removal, but i don't think this would make a difference as you didn't try to solve the issues we reported. you lost support of the other devs because of ignorance of (mostly constructive) critism.

where is the benfit of having MTsim? i really don't see it. we have to focus to one goal, not three.
0 x

User avatar
jK
Spring Developer
Posts: 2299
Joined: 28 Jun 2007, 07:30

Re: remove MTSim* branches from github

Post by jK » 13 Apr 2013, 00:43

+1 for removal

@LuaJIT branch
The main goal of that branch was to make the changes working and then to merge it back into the develop. While working on the changes I found out it's not worth to spend more time into it cause there wasn't a speed up.

@MTSim
All devs told you that those changes will never get merged back into develop without huge changes. But instead of fixing the issues we named, you started a propaganda campaign. You didn't showed any interest in fixing it, and so there is no hope at all that it gets merged back in. Resulting that the branch is a never syncing fork and should be removed from official repo.
0 x

zerver
Spring Developer
Posts: 1358
Joined: 16 Dec 2006, 20:59

Re: remove MTSim* branches from github

Post by zerver » 13 Apr 2013, 18:40

jK wrote:will never get merged back into develop without huge changes
You pinpointed the reason why I did not (yet) try to make any of the suggested changes: Feasibility

Huge changes are not feasible in a project where other development is ongoing at the same time. The merge burden reaches critical mass, and at the end of such an attempt you are therefore left with a fork anyway.

The goal is to merge, but please try to suggest something that can actually be realized. Something more concrete than "split your stuff" and something less far fetched than "rewrite the engine from scratch with multithreading considerations in mind".

I am very worried about a possible "ban" on specific feature branches, depending on their content.
abma wrote:we can't actively maintain 3 (!) versions of spring
Correct, spring-legacy should be removed but it keeps coming back.
abma wrote:we are wasting way to many time in argueing
I stopped arguing, and I'm hoping none of you picks it up again.
abma wrote:mtsim makes additions of new features really difficult
I suggested that we could release MTsim even without merging it. This way the "unmaintainable" discussion becomes superfluous, because I am maintaining it alone, and I contend that it IS maintainable. The offer still stands, tell me if you are interested. MTsim can be disabled via game option so the fear of sync errors is also irrelevant. It runs really well btw, in the ~20 torture test games we had so far not a single sync error.
abma wrote:when for example LoadingMT is enabled
Am I getting the blame for everything that is named "MT"? LoadingMT is designed by jK.
abma wrote:calling opengl functions from multiple threads seems to be unsafe / unstable
Sadly bad gfx drivers, but this should not stop us from at least trying.
abma wrote:where is the benfit of having MTsim?
Performance ffs! Did you actually test it? :mrgreen:
0 x

abma
Spring Developer
Posts: 3544
Joined: 01 Jun 2009, 00:08

Re: remove MTSim* branches from github

Post by abma » 14 Apr 2013, 01:16

zerver wrote:You pinpointed the reason why I did not (yet) try to make any of the suggested changes: Feasibility
i never saw any feedback about our suggested changes. thats the first time i can remember about feedback.
zerver wrote:Correct, spring-legacy should be removed but it keeps coming back.
because of problems with our current release.
zerver wrote:Am I getting the blame for everything that is named "MT"? LoadingMT is designed by jK.
it seems so, sorry i was wrong. but thats something that should be fixed, too before new features are added.
zerver wrote:I suggested that we could release MTsim even without merging it. This way the "unmaintainable" discussion becomes superfluous, because I am maintaining it alone, and I contend that it IS maintainable. The offer still stands, tell me if you are interested. MTsim can be disabled via game option so the fear of sync errors is also irrelevant. It runs really well btw, in the ~20 torture test games we had so far not a single sync error.
when did you suggest it? you just did it without talking to others.
zerver wrote:Performance ffs! Did you actually test it? :mrgreen:
i'm still against better performance at the cost of ugly/unmaintainable code. also the way it was promoted was really bad. normal users installed a test version. also that it shouldn't be promoted like this was ignored.

also, as it can't be merged and you say the steps are to huge to do it, why to continue it and waste time with it?
0 x

zerver
Spring Developer
Posts: 1358
Joined: 16 Dec 2006, 20:59

Re: remove MTSim* branches from github

Post by zerver » 14 Apr 2013, 01:45

abma wrote:i never saw any feedback about our suggested changes. thats the first time i can remember about feedback.
I gave lots of feedback to jK in the last meeting http://springrts.com/phpbb/viewtopic.php?f=73&t=29599
You cannot expect me to give feedback about a "rewrite the engine from scratch" suggestion, because that is a big joke.
abma wrote:when did you suggest it? you just did it without talking to others.
Same meeting http://springrts.com/phpbb/viewtopic.php?f=73&t=29599
<zerver> we should release from MTsim imo
Maybe not clear enough, but that is what I meant. To apply MTsim on top of the release branch just before the release.
abma wrote:also, as it can't be merged and you say the steps are to huge to do it, why to continue it and waste time with it?
I never said the steps are huge. It is the suggestions by jK and kloot that imply huge changes.

Anyway I cleaned out the MTsim2 and MTsim3 branches now
0 x

abma
Spring Developer
Posts: 3544
Joined: 01 Jun 2009, 00:08

Re: remove MTSim* branches from github

Post by abma » 15 Apr 2013, 20:19

so what do you suggest? keep working on both of them?

we still have not a stable release yet, but you had the time to announce and promote mtsim, which got few / no acceptance by other devs. also it was promoted directly in the 94 news post, which really is off topic as it is experimental.

spring-mt already took many time to select, if the bug is mt or singlethreaded. also many players tried mt and spring legacy, this is really frustrating. this will become worse when we have an additional binary spread arround.

mtsim leads (at the moment) to a maintainance hell: debugging is really difficult, we have no unit tests for simulation, we are just at the start of getting a simple test for the pathfinder. so we would risk to make a broken release again.

i promise, if we would use mtsim, the problems would be the same, because games would be bigger, have more units -> performance problems again.

i heavily suggest to get spring more stable... more performance can come when we reached that goal. also there is many place for improving performance with current spring-legacy without locking out games (through incompatibilities) or older computers.

maybe as note: more units doesn't mean better games, it just gets confusing.
0 x

zerver
Spring Developer
Posts: 1358
Joined: 16 Dec 2006, 20:59

Re: remove MT branch from springs github repo

Post by zerver » 16 Apr 2013, 18:58

Yes, I will maintain Spring MT.

I would suggest to remove spring-legacy and then add Spring MT as a submodule. It requires some build system hacks, but should be doable.

Then we would have a config setting for spring-dedicated, so the server owner chooses which version the clients will use (MT or regular).

Another option is to release MT only, even though it is not merged. MT could be configured (by the server) to run single threaded simulation and in this mode it would be immune to MTsim related desync bugs.
abma wrote:more units doesn't mean better games, it just gets confusing
We will see what the community says: http://springrts.com/phpbb/viewtopic.php?f=10&t=30192
0 x

User avatar
jK
Spring Developer
Posts: 2299
Joined: 28 Jun 2007, 07:30

Re: remove MT branch from springs github repo

Post by jK » 16 Apr 2013, 19:12

First you started GML, cluttered it more and more.
And now when we want to merge it to reduce complexity, you start a new one, leaving the old in a horrible state and even saying we should remove the `singlethreaded` one???
We wanted to merge ASIM to reduce complexity, making spring-mt less breaking, easier to maintain, faster to build on buildbots.
But now even when we merge it I don't see you fixing it at all, there still will be hundreds of cluttered #defines, still cluttered gml.cpp with crap inside (asm for atomic counters?), breaking dependencies (SpeedyTSL), Lua WTF (your lua mutex implementation is crap, if you just had googled one time, you would have found out that there are already optional definitions to implement such in a _clean_ way), ...

And don't tell always that I would expect impossible things from you (rewriting whole engine and wtf), I just want that you fix your own code.
0 x

zerver
Spring Developer
Posts: 1358
Joined: 16 Dec 2006, 20:59

Re: remove MT branch from springs github repo

Post by zerver » 16 Apr 2013, 19:50

jK wrote:But now even when we merge it I don't see you fixing it at all
Because I am waiting until legacy is gone. Yes, it makes sense to remove #defines and cleanup if ASIM is the default build.
jK wrote:your lua mutex implementation is crap
The mutex system that Lua provides cannot be used, the locks are acquired too late, and it appears these locks are invoked several times inside the Lua library, which is unnecessary and would reduce performance.
jK wrote:that I would expect impossible things from you
No, that was kloot, but you said you demanded huge changes. It is the wrong approach - better to show with some pseudo-code, in a friendly manner, how to fix a small portion of the code so it meets your standards.
0 x

abma
Spring Developer
Posts: 3544
Joined: 01 Jun 2009, 00:08

Re: remove MT branch from springs github repo

Post by abma » 20 Apr 2013, 13:12

my conclusion is:

- MTsim development should be stopped as it still blocks other improvements and slows down general development
- promotion shall be only made in dedicated threads that don't conflict with other discussion threads


i don't really care if the branch still exists, i only care if time is spent to it.
0 x

Post Reply

Return to “Dedicated Developer Discussion”