<[RoX]Tobi> suppose we can finish quite fast this time :)
==Release plan==
<[RoX]Tobi> needs jK probably, to know about the unitsync bug
<zerver> yeah
== UML colab. tool (test Inkscape, Dia, ArgoUML till next week) ==
<[RoX]Tobi> personally I didn't get around to anything Spring related last week, also didn't test UML tools
<[RoX]Tobi> did you try any?
<zerver> no
<Kloot> I just looked at dia again and found that it does not have a .uml export option
<zerver> i have some experience with uml, but none of these tools
<Kloot> dunno if that's a crucial point :)
<zerver> question is if we would actually use it...
<Kloot> maybe if multiple people are going to work on the same refactor
<[RoX]Tobi> it's useful sometimes to explain some overview
<zerver> if it needs uml to begin with, maybe the design is too complex :)
<[RoX]Tobi> I don't think it will work as long term documentation thing
<[RoX]Tobi> because that would just get out of date pretty soon
<zerver> indeed, i suggest try it if you have issues working together
<[RoX]Tobi> nah, uml is just a handy standard so at least everyone draws sort of the same shapes when he needs to explain a class diagram (or other UML-able things)
<[RoX]Tobi> yup
<zerver> what i meant is, if you need to draw at all, maybe the design is too complex

<zerver> in a larger team, i understand it is 100% necessary though
<Kloot> still visually parsing some boxes and arrows is faster than scanning through code to get an idea of the structure
<zerver> yes
<[RoX]Tobi> yeah
<[RoX]Tobi> anyway, I guess only when more of us are present we can finalise this, so we can leave it till next week too
<zerver> but to make any kind of uml as docs is fail like tobi said
<Kloot> and hopefully the diagrams for springwill always fit on a single screen
<zerver> it gets outdated and confusing
<zerver> so we try it when the need arises and not before?
<Kloot> yeah outdated docs are always a problem ofc
<[RoX]Tobi> yeah I agree with that too
<Kloot> +1 too, no point creating a need
Conclusions:
* UML as docs is major fail since it gets outdated quickly
* Testing UML collab before there is a real need seems like a waste of time
== dram/sim separation ==
<zerver> just want to hear if u had any progress with this
<zerver> i mean the triple buffered render data and stuff
<zerver> i've redesigned LuaHandle so it has two lua_States now
<zerver> it picks state at entry depending on which thread it is
<zerver> and i implemented some hacks to make sure single threaded does the same, even though it has only one thread
<[RoX]Tobi> the prototype?
<zerver> yeah
<zerver> i guess that is quite big job
<zerver> but if you have done anything... or i can give it a try
<[RoX]Tobi> not much I think, I recall I spent some time on it after last meeting before my holidays and before going on holidays, but definitely didn't finish anything yet
<[RoX]Tobi> didn't really think it was still needed to continue on it
<zerver> what was needed?
<[RoX]Tobi> to continue on the prototype
<zerver> sry im kinda lost, what do you mean
<[RoX]Tobi> I just thought the prototype wasn't needed anymore, since I didn't hear much about this separation in last meetings
<zerver> oh
<zerver> this means i can take over
<zerver> i will aim for that flat pointerless structure though, unless you have found other magical solution
<[RoX]Tobi> I was still working on that :)
<[RoX]Tobi> basically I kept the multiple buffers for each object
<zerver> ok, that could work
<[RoX]Tobi> so that things could still have pointers and normal OO
<[RoX]Tobi> idea was to make getters or so that somehow "guess" from which buffer they need to return data
<zerver> buffers must be entirely separated from the object itself though, so it can be deleted but the buffers remain
<[RoX]Tobi> that could be implemented by just not deleting the object immediately, but only marking it as deleted
<[RoX]Tobi> and really deleting it later on when it's sure no threads could still need it
<zerver> ok, that means deletion must be unsynced
<zerver> currently it is very synced
<[RoX]Tobi> yeah
<[RoX]Tobi> but that's just because synced things are in the dtor
<zerver> ya
<[RoX]Tobi> if those are moved in a Destroy() function or so, then the semantics of that could be that after Destroy(), the object "becomes" unsynced, and no synced object shall still have a reference to the object
<[RoX]Tobi> but the memory would be kept alive by some unsynced component that handles delay-deleting it
<zerver> yeah, if you done any coding related to this already, give me
<[RoX]Tobi> I'll look
<zerver> otherwise i start work on this after LuaHandle is finished
<[RoX]Tobi> though iirc it was still really *really* in prototyping phase
<zerver> np, i probably should do it anyway since threading is my field
<[RoX]Tobi> I pasted it in the etherpad new structure document
<zerver> ah, will have a look
Conclusions:
* LuaHandle has been split, but it is still a prototype
* zerver takes over work on draw/sim separation possibly based on tobi's structure document
== communication enhancement with mod-devs ==
<[RoX]Tobi> I just want to remember everyone (including myself

<zerver> yeah, should those questions have answers also?
<[RoX]Tobi> not (yet) needed
<Kloot> ah right
<[RoX]Tobi> might be nice to answer them after they have been posted on the forum
Conclusions:
* example questions are not ready to be published yet
== improve unitsync ==
<[AG]abma> to unitsync: i talked about making some downloading stuff as an extra lib
<[AG]abma> i wrote a prototype that implemented the current download-systems (plasma + rapid), currently it's only a console app
<[AG]abma> and i found, that these systems have some limitations
<[RoX]Tobi> oh, a c++ implementation of rapid?
<[AG]abma> plasma for example can't find all files on springfiles
<[AG]abma> yep
<[AG]abma> but its a prototype..quick and dirty
<[AG]abma> but it seems to work
<[RoX]Tobi> do you know about my python implementation?
<[AG]abma> yep
<[RoX]Tobi> ok
<[AG]abma> i contacted jj for adding a search-function, but i get no response
<[AG]abma> useing the normal search function + parse the html-stuff makes no sense i think
<[AG]abma> ehm... i got the response, that this could be added and he will send me some source, so that i can write that
<[RoX]Tobi> :)
<[AG]abma> i think, this would be best, because this would be a veryvery simple download-system... and it would allow for simple downloading mods + maps for example in the installer
<[AG]abma> plasma has some deps, that would be bad for including it into spring
<[AG]abma> thats the current status there
<[RoX]Tobi> ok
<[AG]abma> to improve unitsync in general, i would like to keep the current functions, but make it easier to use... for example remove the init function and do a lazy init
<[RoX]Tobi> I wonder if it won't stiffle innovation if breaking upgrades of those systems become coupled to spring releases
<[AG]abma> that's the plan

<[RoX]Tobi> redesign of the api for current functionality could be good
<[AG]abma> i tought about making something like the ai-interface... but to do that, a cleanup of the current api is necessary i think
<[RoX]Tobi> like the ai interface? as in, core C interface and include generated interfaces for more languages?
<[RoX]Tobi> or some other aspect of the ai interface?
<[AG]abma> c interface + maybe more languages
<[AG]abma> but in this point i'm really unsure what would be best
<[AG]abma> first comes the cleanup :)
<[AG]abma> is there currently a console app for the unitsync?
<[RoX]Tobi> unitsync interface at this moment is simple enough to access it from many languages using the language' native primitives for talking to C code
<[AG]abma> this would make testing easier
<[RoX]Tobi> just tools/unitsync/test/test.cpp
<[RoX]Tobi> but that might be a little outdated
<[AG]abma> ah, ok
<[RoX]Tobi> and definitely doesn't exercise all of it
<[AG]abma> i think i'll talk to braindamage, because he should know, what is needed there
<[AG]abma> with there, i mean the api
<[RoX]Tobi> ok
<[AG]abma> the delphi-app in unitsync/test can be removed?
<[AG]abma> last-update was 2006...
<[RoX]Tobi> yeah
<[AG]abma> ok
<[AG]abma> ok.. that was my "anything else" :)
<[AG]abma> hmm.. one thing: did someone think about regression-tests in spring?
<[RoX]Tobi> think, yes
<[RoX]Tobi> but not much more then that :)
<[AG]abma> ok

<[RoX]Tobi> it seems very hard to make good regression tests that don't require (much) manual intervention and don't fail everytime synced stuff gives slightly different results or some internal AI is made a bit smarter
<[RoX]Tobi> i.e. it's hard to define whether a change in behaviour from version X to version X+1 was intended and an improvement, or unintended and a bug
<[RoX]Tobi> maybe simpler things could be tested though, but those also break less

<[RoX]Tobi> otoh I have no experience with regression tests in any project.. (only unit tests and a bit integration/functional tests)
<[AG]abma> me to..
<[AG]abma> i thought about some simple semi-automatic-tests like: cheat 100 units into map, let walk them from a to b to c... if units don't reach destination in about a specific time, test failed
<[AG]abma> this thing could be added to the default scripts
<[AG]abma> just an idea
<[RoX]Tobi> yeah that might work, it's also one approach I thought about sometime
<[RoX]Tobi> in particular now with Lua making the tests could be quite easy
<[AG]abma> yep...
<[RoX]Tobi> but you need a huge amount of them to really test a significant portion of the features
<[RoX]Tobi> and I fear a lot of specific features will be very hard to test
<[RoX]Tobi> just one problem is testing the combinatorial explosion of possible unitdef field combinations... :)
<[AG]abma>

<[AG]abma> maybe mod-devs could help here too
<[RoX]Tobi> and e.g. testing walk from a to b to c is easy to implement, but I fear that is the exception. Something like testing turnradius would already become pretty messy I think...
<[AG]abma> yep, to write tests for everything is impossible
<[RoX]Tobi> though obviously fact that half of the features are not really testable isn't a good reason to not test the other half :)
<[AG]abma> hmm
Conclusions:
* abma has made a rapid implementation prototype in C++
* regression testing is interesting, has potential to reduce number of failed releases, but is difficult to realize
== next meeting ==
<zerver> next week as usual?
<[RoX]Tobi> possibly I can not be here next week same time, although I might still shuffle around my plans for that weekend
<Kloot> I don't know yet either
<zerver> should be fine here, unless i forget it
<[RoX]Tobi> ok