IRC logs for #opendune on OFTC at 2009-09-15
⏴ go to previous day
07:25:19 <Xaroth> exchange 2k7 uses B+trees .. found a nice java applet that shows it's use
07:30:56 <Xaroth> We toss a coin. It came up tails so we stop.
07:31:02 <Xaroth> ... cointossing in a table structure?!?
07:35:45 <Xaroth> hierarchy constantly shifts even when attempting to insert keys that already exist (and as such get ignored)
08:11:25 <TrueBrain> hmm .. talking about Exchange
08:11:36 <TrueBrain> I just got a report that mail was not received from a wide amount of MX hosts
08:11:45 <TrueBrain> it ignores error code 451 and returns it as PERMANENT error
08:11:51 <TrueBrain> guess what ... MICROSOFT!!!
08:12:03 <TrueBrain> really .. wtf? You can't greylist them? Fuck them!
08:12:13 <TrueBrain> seems to originate from obsmtp.com ...
08:18:47 <TrueBrain> lol, it has such a big spool of mailservers, it never sends the mail via the same IP .. never passing greylisting
08:18:58 <TrueBrain> well done, big retards ... you won't be able to mail a LOT of people
08:34:54 <TrueBrain> okay ... lets write documentation for Xaroth! :)
08:37:04 <Xaroth> and wtf @ that exchange thing
08:37:19 <Xaroth> use iptables on yer loadbalancers to mask the outgoing ip!?!?
08:37:28 <Xaroth> that way all yer traffic goes out through 1 ip
08:37:36 <TrueBrain> that is the most normal way of doing this, yes
08:37:42 <TrueBrain> and even if you are not, you queue a mail on ONE server
08:37:45 <Xaroth> ... or use an internal relay :P
08:38:12 <TrueBrain> But, Microsoft solutions, what do you expect? I can only guess the problems these people have mailing around ....
08:43:33 <Xaroth> you spiked segra's interest btw
08:46:31 <TrueBrain> why does a <pre> kill the layout :s
09:18:17 <TrueBrain> the important thingies, I think
09:22:13 <Xaroth> tried with moving the planet out of the image, it didn't look right
09:38:02 <Xaroth> the whole stack thing is quite interesting
09:38:25 <TrueBrain> it is one of the cleverest parts of a whole computer :)
09:40:07 <Xaroth> ah, the flags thing is also quite useful .. that other link from last night had a lot of info.. but no 'extra info'
09:41:44 <Xaroth> I'll add that link to the bottom of Decompiling/Control_Flow
09:43:04 <TrueBrain> and I go back hunting this :0000 thingy
09:43:07 <TrueBrain> it seems very important :p
09:45:22 <Xaroth> for some odd reason it's not doing the namespace thing
09:45:38 <TrueBrain> I believe it is not enabled
09:45:48 <Xaroth> $wgNamespacesWithSubpages = array_fill(0, 200, true);
09:46:07 <Xaroth> but it might be to do with the fact there is no Decompiling
09:48:57 <Xaroth> no main dir == no subdir listing
09:55:18 <Xaroth> there, redirect made so it looks nice
09:55:42 <TrueBrain> please please please add doxygen comments to all functions, and document what they do as closely as possible :)
09:55:50 <TrueBrain> well, tab 2 is fine by me too, but I can't configure it in netbeans :p
09:56:08 <TrueBrain> and firefox shows 8 :p
09:56:11 <Xaroth> I think my default is 4, but i'll see if i can change it
09:56:20 <TrueBrain> it doesn't really matter
09:56:23 <TrueBrain> it doesn't matter at all :p
09:56:30 <TrueBrain> aligning should be done with spaces anyway )
09:56:47 <Xaroth> i'll have to read up on that before i start doing crap
09:56:58 <TrueBrain> simply put a /** block above it
09:57:24 <TrueBrain> the main point here is to document what it does, and what the parameters do (if any)
09:57:48 <Xaroth> re: variables, "int i" is valid right?
09:58:08 <TrueBrain> int variable_to_loop_with
09:58:20 <Xaroth> was about to ask that :P
09:59:11 <TrueBrain> also added not to use emu_ names :)
09:59:39 <Xaroth> Avoid useless statements (don't state the obvious) << :P
09:59:56 <TrueBrain> well, that is more important than you would think
10:00:01 <TrueBrain> many many people do things like this:
10:00:09 <TrueBrain> /* Assign 2 to 'a' */ \n a = 2;
10:00:24 <Xaroth> yeh, reading code is hard :P
10:00:31 <Xaroth> (IT IS WHEN IT'S ASM!)
10:00:37 <Xaroth> (but that's besides the point)
10:01:32 <TrueBrain> had to fix my own code to comply with coding style :p
10:01:52 <TrueBrain> before tonight I will make a SVN commit
10:01:58 <TrueBrain> to centralize all development
10:02:06 <TrueBrain> I just hope to hav efound most of the problems by then :p
10:02:35 <Xaroth> I'll still run some code through you before updating SVN with my 'validation stuffs'
10:04:02 <TrueBrain> I now just have the weirdest code ever ..
10:05:03 <Xaroth> hm, must not forget to upload a COPYING file separately btw
10:05:13 <TrueBrain> that I leave to you ;)
10:05:26 <Xaroth> I'll start on that after work then :P
10:05:44 <Xaroth> c/p ottd COPYING file ; sed -e 's/openTTD/openDUNE/' ;
10:06:05 <Xaroth> nice documentation btw on the decompiler things
10:06:16 <TrueBrain> tnx, I hope it helps you to start a bit :)
10:06:18 <Xaroth> and yes, it does make sense
10:06:23 <TrueBrain> remember that it is more important to identify then to just rewrite
10:07:07 <TrueBrain> I was tihnking, maybe the mouse handler is a nice start for you
10:07:34 <Xaroth> technically right, if you have an if that results in a f_XX_XX_XX_XX ; return; section, and that f_XX_XX_XX_XX is only called from that exact location, that just means that that function is the 'content' of the if
10:07:58 <Xaroth> see, even I make sense now O_O
10:08:09 <TrueBrain> just you have to be a bit careful
10:08:12 <TrueBrain> 2 situations happen:
10:08:24 <TrueBrain> that the if in the end just executes a few commands more, then joins the rest of the code again
10:08:28 <TrueBrain> or exactly the other way around
10:08:38 <TrueBrain> so be on the watchout for the same functions
10:08:55 <TrueBrain> and even for functions that partly share another function (for the we have the IP and length, to estimate that)
10:09:20 <TrueBrain> and I suggest you install DOSBox with debug. Then you can run in DOSBox: debug dune2.exe
10:09:29 <TrueBrain> then you execute: bp cs:ip of the function
10:09:43 <TrueBrain> then you can walk over it with F10, to see what it really executes .. to get an idea of the control flow
10:09:50 <TrueBrain> (sometimes that can be useful .. not always :p)
10:09:56 <TrueBrain> as I said: it is one big puzzle :)
10:10:21 <TrueBrain> talking about puzzles ...
10:11:06 <Xaroth> looks like some wierdass for loop
10:11:21 <TrueBrain> it is a normal for-loop, just didn't feel like resolving it yet
10:11:25 <TrueBrain> but what it does .... :s
10:11:59 <Xaroth> emu_bp only changes during loop1
10:12:34 <Xaroth> as such, so does emu_cx
10:12:44 <TrueBrain> hmm .. on ss:bp+0 is the bp of the former function
10:13:03 <TrueBrain> so in cx.x comes the bp of the former function .. it checks if the first bit is set (is that ever possible? :s)
10:13:15 <TrueBrain> then it checks if the cs is equal to dx
10:13:24 <TrueBrain> then it assigns ax to that, if that is true
10:14:10 <Xaroth> emu_shrw(&emu_cx.x, 0x1);
10:16:52 <TrueBrain> and in these moments I get DOSBox to get a 'live' view :p
10:17:25 <Xaroth> hm, what does carry flag actually do o_O
10:17:40 <TrueBrain> in shift right the cf is set if the bit moved out was set
10:20:52 <TrueBrain> haha, that is the idea, but it doesn't get more readable ;)
10:21:16 <TrueBrain> the goto loop1, is like a 'continue' normally
10:21:26 <TrueBrain> you don't put those entries together :)
10:21:38 <Xaroth> well, it looks like it
10:21:55 <Xaroth> top cx >>= 0x1 ; bottom cx <<= 0x1
10:22:09 <TrueBrain> yup; so in result it just removed the right bit
10:22:25 <TrueBrain> but okay, I am not here finding a way to write the function better, I am trying to find out what it does :)
10:22:35 <TrueBrain> remember, more important to identify than to rewrite ;)
10:22:37 <Xaroth> but doesn't it use bp to re-populate cx?
10:22:54 <Xaroth> so it constantly shifts -1?
10:22:54 <TrueBrain> well, it walks the stack from bp to bp, trying to find a value
10:23:08 <TrueBrain> remember I wrote that normally a bp is pushed at the begin of a function?
10:23:21 <TrueBrain> where bp is the sp of that moment
10:23:30 <TrueBrain> so if I have 1 bp, I can find the other bp
10:23:34 <TrueBrain> and walk the whole call-stack this way
10:23:50 <TrueBrain> (this is similar to how gdb find a backtrace)
10:24:12 <TrueBrain> so if every function on entering does: push(sp)
10:24:58 <TrueBrain> euh, push(bp) btw :p
10:25:08 <TrueBrain> that is how most functions start :)
10:25:48 <TrueBrain> but why it checks for &1, I don't get (yet)
10:29:05 <TrueBrain> seems to never ever happen :p
10:30:24 <TrueBrain> okay .. so it walks the call-stack, finding functions that when returning would go to 'dx', and making that to 'ax'
10:30:34 <TrueBrain> in the end the real value is stored somewhere safe
10:30:39 <TrueBrain> and later on this is restored
10:31:00 <TrueBrain> what is a bit odd, is that 2 functions are rewritten .. not the first, but the first two
10:35:08 <TrueBrain> 1 & 1 .. 1 and 1 .. = 1
10:35:14 <TrueBrain> 1 | 1 .. 1 or 1 .. = 1
10:35:18 <TrueBrain> 1 ^ 1 .. 1 xor 1 .. = 0
10:39:33 <TrueBrain> I think that does the same
10:40:40 <TrueBrain> euh ... 2 >> 1 == 1
10:40:45 <TrueBrain> dunno in what world you did that math ..
10:41:09 <Xaroth> Console.WriteLine("{0} >> 1 == 0 :: {1}", i, (i >> 1) == 0);
10:41:09 <Xaroth> Console.WriteLine("{0} & 1 == 1 :: {1}", i, (i & 1) == 1);
10:41:44 <TrueBrain> sorry, sometimes you leave me in complete oblivion what you are trying :)
10:41:55 <Xaroth> trying to figure out how both behave
10:42:08 <TrueBrain> simple math operations?
10:42:18 <TrueBrain> shift right .. moves all bits one to the right
10:42:20 <Xaroth> sorry, my bitwise is a bit rusty
10:42:26 <TrueBrain> that is why I gave you the wikipedia page :)
10:42:47 <Xaroth> so 2 >> 1 == 0 :: False
10:42:57 <TrueBrain> yes .. but I couldn't guess you did something that insane with that paste :p
10:43:13 <TrueBrain> sorry, I fail to see the use of that calculation :)
10:43:25 <TrueBrain> Console.WriteLine("{0} >> 1 == {1}", i, (i >> 1));
10:43:28 <TrueBrain> sounds more useful to me ;)
10:43:36 <TrueBrain> but okay :) As long as you understand, I am happy :)
10:44:05 <Xaroth> if you want to follow the code, you need to understand what exactly it does on each step, as such I can just look at my list to see whether it's false or true
10:44:09 <Xaroth> without constantly having to calculate
10:46:15 <Xaroth> so if emu_get_memory16(emu_ss, emu_bp, 0x0) is an even number, or emu_get_memory16(emu_ss, emu_bp, 0x4) is not dx , goto loop
10:46:36 <TrueBrain> if it is _not_ an even number :)
10:46:47 <TrueBrain> but as I said, stack manipulation is always +2 or -2
10:46:50 <TrueBrain> so it can never ever happen
10:47:04 <TrueBrain> one of those checks which are bogus in sane world :p
10:47:28 <TrueBrain> but for the rest your conclusion is correct :)
10:49:07 <TrueBrain> ah, that function is also used when an overlay is relocated
10:49:44 <TrueBrain> (Also, in the static world it is never really useful :p)
10:59:59 <TrueBrain> now how to name this thing ...
11:00:15 <TrueBrain> OverlayManagerReplaceCSOfAllFunctionFrames
11:02:36 <TrueBrain> OverlayManagerReplaceReturnCS
11:07:10 <TrueBrain> I think I made an error in rewriting that function :p
11:07:15 <TrueBrain> it now .. hangs .. or something :p
11:11:13 <TrueBrain> hmmm .... doxygen comments in the .h files or in the .c files?
11:15:40 <Xaroth> i'd personally say .h seeing the .c is full of code.. to separate code from huge pieces of explanation .. but at the same time it's more useful at the .c
11:16:43 <nsz> promotes useless verbosity
11:16:55 <TrueBrain> lol, you want to do without? :)
11:17:19 <TrueBrain> It really does help if you force people to tell something about the function
11:17:24 <nsz> i want one or two lines of comment if the code is not obvious
11:17:29 <TrueBrain> increases both readability, as the way people write functions
11:18:03 <TrueBrain> functions are never clear to other people ;)
11:18:39 <TrueBrain> you never had you didnt look at your own project for a year, and tried finding out why you named functions like you did? :)
11:19:17 <TrueBrain> take this function: OverlayManagerReplaceReturnCS <- the name does not say where it replaces it. How. When. What it returns.
11:19:35 <TrueBrain> to work together with a large group of people you want that clearly documented. Not everyone will understand it by reading the code
11:20:26 <TrueBrain> that is one of the missing things in C .. you only tell the return type of a function, you don't name it .. so what is it what it returns ;)
11:20:37 <nsz> well in this case i'd do something like
11:21:03 <nsz> uint16 overlay_fixcs(uint16 oldcs, uint16 newcs){}
11:21:28 <TrueBrain> and you think that doesn't need any leading comment on what it fixes?
11:21:41 <nsz> /* find and replace cs of func frames, return first match or 0 */
11:22:05 <nsz> much clearer since the whoule func would fit on my screen
11:22:12 <TrueBrain> Well, exactly :) So now why don't structurize that comment block a bit, so a system can run over it and make nice documentation out of it?
11:22:16 <nsz> with your comments half of the code is invisible
11:23:42 <TrueBrain> I have to say, I don't always like how doxygen wants things, but it is better than people doing what they think is best :) I have seen that in too many projects, that person A writes like this, and person B like that .. pff .. becomes a mess :)
11:24:07 <TrueBrain> giving a clear structure to such things only helps readability and overall maintainance :)
11:26:05 <TrueBrain> Xaroth: so I think we have to put it in the .h files?
11:26:35 <Xaroth> do you have to define everything from your .c files in the .h files?
11:26:46 <Xaroth> then how to solve that
11:26:55 <TrueBrain> so it has to be in C :P
11:27:14 <TrueBrain> the things I don't like about C :)
11:27:29 <Xaroth> things i like about C# .. everything in one file :P
11:27:39 <TrueBrain> and how is that better?
11:27:46 <TrueBrain> header-files are a very powerful thing
11:28:29 <Xaroth> for C# you just define how accessible it is, and that's it :P
11:29:53 <TrueBrain> bah, the header file now looks so empty ...
11:31:04 <TrueBrain> what I hate about C is that the order of defining stuff is important
11:38:01 <Xaroth> moved wiki logo to wiki
11:40:02 <TrueBrain> FUCKING RETARDED NETBEANS!
11:40:34 <TrueBrain> it doesn't like the removing and creating of the decompiled files
11:40:36 <TrueBrain> it keeps working in them
11:55:36 <TrueBrain> Xaroth: I really don't know what is more pretty .. the doxygen in the .h or in the .c
12:01:25 <nsz> why would you code c in netbeans
12:02:44 <TrueBrain> I can't find a better IDE on linux
12:04:53 <TrueBrain> I now located where it writes the :0000 stuff, and even where it removes it
12:05:06 <TrueBrain> but I still don't get WHY it does it .. and why if I make it stop doing it, I don't get the Westwood shit
12:06:40 <TrueBrain> owh .. hmm .. when it unload an overlay, for what ever reason, it walks over the stack replacing all calls inside that overlay with :0000 ...
12:06:48 <TrueBrain> of course .. then when it returns, the overlay is loaded back in
12:07:18 <TrueBrain> okay ... that makes perfect sense .. why didn't I think about that sooner :p
12:07:24 <TrueBrain> but how to replace that with something C can handle ...
12:07:44 <TrueBrain> as I can't just check every function outside the overlay if it happens to be such a call that reloads the overlay
12:07:47 <TrueBrain> would be impossible
12:11:10 <TrueBrain> hmm .. I really don't know a better solution :s
12:18:54 <TrueBrain> ha, one dirty solution :p
12:33:13 <TrueBrain> okay .. 15 minutes of fighting netbeans later :p
12:41:35 <TrueBrain> now why oh why does my solution fail .. hm ...
12:43:59 <Xaroth> TrueBrain: .c .. as .h doesn't have everything
12:44:35 <Xaroth> I don't like half documentation
12:44:47 <Xaroth> since it's always the undocumented stuff that bites back
12:47:24 <TrueBrain> I think my replacement overlay code has a flaw :)
12:47:31 <TrueBrain> without it it seems to work better :p
12:47:39 <TrueBrain> this is going to be such a nice ride ...
12:49:46 <TrueBrain> hmm .. no, I for sure made a nasty mistake :p Ghehe :)
12:52:11 <TrueBrain> I see the Westwood logo again :)
12:52:19 <TrueBrain> after that the stack overflows .. DETAILS! :p
12:52:56 <TrueBrain> but for sure my C code of the overlay manager is not perfect :p Ghehehehe :)
12:58:19 <TrueBrain> readding one function at the time, see what breaks ...
13:28:31 <Xaroth> being abused like that :P
13:43:22 *** ChanServ sets mode: +v Yexo_
14:03:01 <TrueBrain> k, found the function that is giving me trouble :)
14:06:11 <TrueBrain> now to figure out what is wrong ;)
14:10:39 <TrueBrain> lol :) I just made 2 'adds' a 'mov'
14:11:59 <Xaroth> redmine repo shows internal error again
14:12:25 <TrueBrain> it is consuming 150+MB :(
14:14:38 <Xaroth> which version of redmine is it running?
14:19:42 <Xaroth> hm, that GC thing might be worth a try
14:20:51 <TrueBrain> we will see if it really helps :)
14:21:14 <TrueBrain> I don't care; as long as the memory usage drops
14:21:57 <Xaroth> did you restart lighthttpd? they still show as 31% mem :o
14:22:21 <TrueBrain> as long as they don't grow, I don't mind
14:24:07 <Xaroth> took exactly 6 F5s to kill it
14:24:39 <Xaroth> we don't need gantt right?
14:26:04 <Xaroth> standard procedure with lighthttpd .. restart or reload?
14:26:16 <TrueBrain> I do stop, check if ruby is really dead
14:26:21 <TrueBrain> as ruby sometimes doesn't want to die
14:26:53 <TrueBrain> lighttpd starts 2 rubies, yes
14:27:02 <Xaroth> not after the stop i hope :P
14:27:04 <TrueBrain> and if they are still there after a stop, just kill them :)
14:27:15 <Xaroth> right.. that saved 0.8% ...
14:29:27 <Xaroth> refreshed around 20-odd times
14:29:51 <TrueBrain> else we make it 1 process that starts?
14:30:42 <Xaroth> it's only using 1 anyhow
14:30:42 <Xaroth> as I only see 1 mem/cpu change in top
14:30:43 <TrueBrain> when 2 people visit at the same time, 2 are used
14:30:45 <Xaroth> .. top also shows that by default we're running on swap rather than mem
14:31:35 <TrueBrain> in reality everything run in memory
14:31:46 <Xaroth> just copied the tab to the repository 5 times, still only one doing something, so I'd say nuke it down to 1 process
14:32:06 <TrueBrain> somewhere in /etc/lighttpd/conf-enabled/redmine or something
14:32:39 <Xaroth> not really enjoying the config files lighthttp uses, but it's understandable to a point
14:34:10 <TrueBrain> okay ... 2 things really need to change: the static analyser should generate a file in a new name, compare it, and move it if change
14:34:17 <TrueBrain> Make should compile in .o files
14:35:38 <Xaroth> right, launched 20 tabs in succession, still alive, 40% mem
14:36:10 <TrueBrain> right, and I see 'and' again
14:36:16 <TrueBrain> needed to patch 4 places so far ...
14:51:13 <TrueBrain> netbeans: fuck you! :)
14:57:44 <nsz> use a real editor if you cannot get along with that ide
14:59:44 <TrueBrain> another infinite loop patch ...
15:00:01 <TrueBrain> rather slowgoing as I need to unroll the loops myself
15:05:36 <TrueBrain> I wonder how many of these loops I will be seeing today :(
15:06:13 <TrueBrain> I am guessing 8 ...
15:06:39 <nsz> does the static version already work correctly?
15:06:53 <TrueBrain> yes; it only overflows in stack :)
15:06:59 <TrueBrain> will push a svn version later tonight
15:08:06 <TrueBrain> I just need to think how to do this ... I now copy away a few functions, rerun my static analyser, and he links everything to my new function-names
15:08:17 <TrueBrain> which means Xaroth needs the tool working too I guess ;)
15:10:07 <TrueBrain> WHOHO! Intro runs for a bit :)
15:11:55 <TrueBrain> damn, stack overflow over 12 functions :s :(
15:12:25 <TrueBrain> lots to do, lots to do :)
15:17:20 <TrueBrain> I see the Harvesters ...
15:17:39 <TrueBrain> The Emperor .. he even talks
15:18:57 <TrueBrain> whoho, intro works :)
15:19:09 <TrueBrain> just the main menu crashes, because it is a big loop :p
15:19:16 <TrueBrain> k, good enough for me :)
15:19:29 <TrueBrain> 3.1M executable .. auch
15:22:55 <nsz> btw have you tried to increas the stack size with ulimit -s
15:28:29 <Xaroth> allone in teh office \o/
15:29:49 <TrueBrain> nsz: possible, but it only delays the problem ;)
15:29:54 <TrueBrain> I can't compile a windows version
15:29:58 <TrueBrain> I don't have 2.5G free
15:30:05 <TrueBrain> (NO idea why ld wants that much ...)
15:31:12 <TrueBrain> well, after 1.9G in usage, my X session was terminated
15:31:17 <TrueBrain> but a quick calculation shows it would need 2.5 :p
15:31:48 <TrueBrain> (I love OOM killer .. why kill the 1.9G application if you can kill the X session)
15:32:12 <TrueBrain> lol, no, the final binary :p
15:32:18 <TrueBrain> that would be slightly insane :)
15:32:28 <TrueBrain> but linux kernels don't like that
15:32:38 <TrueBrain> the OOM killer is biased towards swapped out applications
15:32:50 <nsz> i can't do that as i'm using notebook
15:32:51 <TrueBrain> by the lack of it .. well .. lets say your computer performance better WITH swap
15:33:04 <TrueBrain> notebook or not .. it has more to do with the amount of memory
15:33:13 <TrueBrain> I have 2GB .. I consider that enough for any application
15:33:28 <TrueBrain> last time I saw a notebook with 6GB of RAM
15:33:29 <nsz> i thought it needs swap for suspend
15:33:39 <TrueBrain> suspend is written to the disk
15:33:52 <TrueBrain> well .. hybernate :p
15:34:11 <TrueBrain> either way ... let me commit this
15:34:15 <TrueBrain> cleaning up can be done later :p
15:35:03 <TrueBrain> for now I will also include the txt files
15:35:07 <TrueBrain> lets hope we can remove them sooner or later :p
15:36:12 <Xaroth> where'd ye want to get the COPYING file
15:36:21 <TrueBrain> in trunk/ is enough I guess
15:36:23 <TrueBrain> oh, it has to go in trunk
15:36:28 <TrueBrain> later on copies in tags and branches
15:36:34 <TrueBrain> but let me commit first please :p
15:36:45 <TrueBrain> it is taking long enough as it is :p
15:37:42 <Xaroth> COPYING is the only file with licensing information right?
15:37:53 <TrueBrain> later on we will need it in every file
15:37:58 <TrueBrain> oh .. I should have added $Id$ tags ..
15:38:42 <TrueBrain> as I said: let me commit first
15:39:02 <TrueBrain> it takes long enough without it failing
15:39:17 <Xaroth> what's that on about btw, the commit hook
15:39:28 <TrueBrain> to force a commit style
15:39:36 <TrueBrain> you need to do: -Add, or -Fix, or -Change, or what ever
15:39:42 <TrueBrain> keep comimt logs 1 line, where possible
15:40:15 <TrueBrain> so no commits like: -Add: I added blabla. -Fix: I also fixed blabla. -Add: oh, and I aded blabla
15:40:21 <TrueBrain> no .. that should be 3 commits
15:40:40 <Xaroth> that'll take some getting used to ^^
15:40:50 <TrueBrain> damn .... whitespaces :p
15:41:00 <TrueBrain> pre-commit failed :p
15:41:10 <TrueBrain> okay ... I first need to do a bit of cleaning
15:41:13 <TrueBrain> add $Id$ and stuff ..
15:42:00 <Xaroth> I'll do COPYING after dinner then
15:42:04 <Xaroth> seeing i'm eating late
15:42:17 <TrueBrain> for now my commit appears to hang :p
15:42:20 <TrueBrain> subversion doesn't like it :)
15:42:25 <TrueBrain> worst part: all .txt files contain a trailing space
15:42:28 <TrueBrain> and nothing I want to do about that :p
15:42:43 <Xaroth> doesn't it auto-fix that?
15:42:53 <TrueBrain> a VCS should never auto-fix anything
15:43:22 <Xaroth> I couldn't care much less about trailing space.
15:43:35 <TrueBrain> they are annoying :)
15:43:48 <Xaroth> one (maybe two) bytes of nothing :P
15:44:46 <TrueBrain> Xaroth: do we want the GPL stuff in every file too?
15:47:03 <Xaroth> normally I hate 10 pages of licensing on top of every file, but a small summary-esque thing
15:47:09 <TrueBrain> OpenTTD uses 4 lines
15:47:54 <nsz> why /* license: see COPYING */ isn't enough?
15:48:20 <TrueBrain> dunno .. not a lawyer
15:48:38 <nsz> i never put such lines in my code
15:48:57 <TrueBrain> it kind of is important to do nowedays
15:49:08 <nsz> code is for the programmers and compilers not for lawyers
15:49:16 <nsz> license lives in another file
15:49:31 <TrueBrain> lol :) What a wonder (but naief) world would that be
15:49:47 <TrueBrain> nsz: because you think that should be so, doesn't make it so :) I rather take it on the safe side ;)
15:51:00 <nsz> i'll make a compiler which gives an error on the word 'license'
15:51:29 <Xaroth> time to head home.. ttyl
15:52:19 <Xaroth> I will, metallica on high while driving is always soothing
16:01:23 <TrueBrain> grr, for now it is not doign what I want .. .so I am going to get something to eat first :)
16:01:29 <TrueBrain> Xaroth: feel free to do what ever you want with SVN :p
16:01:59 <TrueBrain> (well, there is a commit pending, but it doesn't seem to go anywhere :p
16:10:07 <TrueBrain> downside of subversion: while your transfer is pending, it doens't lock; so in that time you can commit. After which my commit comes back: out of date. After sending for 10 minutes long, that can be SO annoying :)
16:10:22 <TrueBrain> and Inever got the hang of 'svn lock' :p
16:10:55 <Xaroth> TB: svn co on the machine, upload files, add files, svn commit ?
16:11:04 <Xaroth> that should speed things up quite a bit
16:21:44 <TrueBrain> hehe :) True, but ... I have a 100mbit connection here :p
16:21:47 <TrueBrain> things should be instant!
16:21:52 <TrueBrain> stupid IO speed is fucking that up:p
16:25:56 <Xaroth> copying both to the NAS and to another disk kinda eats up all the IO...
16:36:31 <Xaroth> TrueBrain: safe to commit?
16:36:37 <Xaroth> or will that break whatever your pc is attempting to do?
16:58:05 <nsz> Content-Transfer-Encoding: binary
16:58:05 <nsz> Content-Disposition: attachment; filename="MainPage.txt"
16:58:28 <nsz> this is not the optimal way to serve text..
17:00:35 <nsz> well this entire redmine thing seems suboptimal.. but i guess the gaming community like these
17:00:53 <Xaroth> but one of the 'better' around..
17:09:29 <TrueBrain> Xaroth: as I said, you are free to abuse SVN :p
17:10:34 <TrueBrain> Xaroth: next time, please add a : between -<thing> and the rest
17:10:37 <TrueBrain> like: -Add: license file
17:10:45 <TrueBrain> (like the OpenTTD commit style :p)
17:11:09 <Xaroth> at least redmine recognises me :P
17:11:11 <TrueBrain> (which happens to be something I suggested back then :p)
17:13:53 <Xaroth> highly annoying that tortoisesvn wants me to auth 3 times before it'll display something
17:14:06 <TrueBrain> store it in the keyring
17:16:17 <Xaroth> and I'm not keen on creating a passwordless one
17:16:19 <TrueBrain> there is a ssh-agent or what ever it is called
17:16:29 <TrueBrain> it keeps your password for the thingy around for your session
17:17:44 <TrueBrain> k ... trying to commit again ...
17:18:09 <Xaroth> maybe too many files to commit at once?
17:18:20 <TrueBrain> I don't see any problem with that :p
17:18:53 <Xaroth> I don't think it'll go that far at once :P
17:21:57 <Xaroth> 500 - Internal Server Error
17:22:35 <Xaroth> I think ruby went tits up
17:23:37 <Xaroth> eek, restarted ruby, accessing repository now makes it go 100% cpu ..
17:23:46 <TrueBrain> leave it for a while :)
17:24:14 <Xaroth> ok, note to us, ruby does NOT like us uploading 10000 files at once :P
17:30:28 <Xaroth> woop, and internal error again
17:31:26 <TrueBrain> really ... redmine sucks :)
17:31:34 <TrueBrain> maybe install a non-stable
17:31:43 <TrueBrain> either way, SVN now contains code which is compilable
17:32:10 <TrueBrain> I did not commit my overlay work yet, mostly because it is far from anything sane ..
17:32:18 <TrueBrain> not sure if we want that in SVN ... on the other hand .. does it hurt .. hmm ..
17:32:33 <TrueBrain> k, policy time: do we commit partly converted assembly in SVN, or do we keep it in a personal HG?
17:32:39 <TrueBrain> the code does work, in both cases
17:32:54 <Xaroth> er, do we commit partly optimized code?
17:32:57 <TrueBrain> I guess at this stage it is okay to have partly converted stuff ..
17:33:08 <TrueBrain> as it is one hell of a job to do it all at once :p
17:33:27 <Xaroth> ok, /decompiled breaks ruby
17:33:38 <TrueBrain> how can it break ruby? :p
17:33:48 <TrueBrain> how can it break redmine? :p
17:34:25 <Xaroth> 20 refreshes on / , nothing wrong .. restart it (fresh stats), click on decompiled.. dead
17:34:36 <TrueBrain> it is too big for its memory
17:34:42 <TrueBrain> and I kind of refuse to give it more ...
17:34:51 <TrueBrain> but okay .. please try out svn :)
17:34:58 <TrueBrain> (svn://svn.opendune.org/trunk works too btw)
17:35:07 <TrueBrain> you need libemu.so and you need the data dir
17:35:23 <Xaroth> I'll leave repository dead then for now
17:36:26 <TrueBrain> I am going to try another windows compile ...
17:38:38 <TrueBrain> nope, still uses an INSANE amount of memory ...
17:45:33 <TrueBrain> okay, all I read about RedMine is: memory issues memory issues
17:48:50 <TrueBrain> we really need a commit-report bot :)
17:54:05 <TrueBrain> fixed Redmine .. had to feed it a LOT more memory
17:54:12 <TrueBrain> it uses it for a VERY short while, as I can't ever see it used ..
18:18:04 <Xaroth> it's still at 175m o_O
18:18:57 <TrueBrain> k, it now makes an objs/ dir, with the .o files
18:18:59 <TrueBrain> saves recompile time :)
18:24:29 <nsz> imho there is no info on the site about how to check out the repo
18:24:55 <TrueBrain> not only your opinion is what says that ;) I will add it in a sec :)
18:28:23 <TrueBrain> yippie, a small script which avoids compiles on rerunning 'toc' :)
18:32:20 <Xaroth> TrueBrain: Think that calls for another news entry :)
18:36:57 <TrueBrain> Xaroth: please, make one :)
18:37:33 *** TrueBrain changes topic to "Welcome to OpenDUNE || Web: www.opendune.org | Wiki: wiki.opendune.org | Forum: forum.opendune.org | Status: alpha"
18:37:33 *** ChanServ changes topic to "Welcome to OpenDUNE || Web: www.opendune.org | Wiki: wiki.opendune.org | Forum: forum.opendune.org | Status: Still waiting for EA..."
18:38:48 *** Xaroth changes topic to "Welcome to OpenDUNE || Web: www.opendune.org | Wiki: wiki.opendune.org | Forum: forum.opendune.org | Status: alpha"
18:39:15 <TrueBrain> You post an update in Redmine and on the forum?
18:39:18 <TrueBrain> I have typed too much today :(
18:39:42 <Xaroth> if you give enough time for a game of dota to get those creative juices flowing (aka adrenaline)
18:40:10 <TrueBrain> all the time in the world
18:40:52 <Xaroth> you should go relax a bit as well :P
18:40:58 <Xaroth> before you'll be TrueBrainMeltdown
18:41:09 <TrueBrain> I am very relaxed now we have this on track :)
18:41:12 <Xaroth> or worse.. TrueBrainDead
18:41:14 <TrueBrain> the rest is just filling in the blanks :)
18:42:37 <TrueBrain> trying a linux 64bit version now :)
18:43:11 <TrueBrain> I love portable code! :)
18:43:24 <TrueBrain> you might want to give MSVC a try
18:43:30 <TrueBrain> but I don;t know how knowledge you are with it ;)
18:48:33 <TrueBrain> okay .. so what next .. hmm ..
18:56:08 <nsz> i turned on ld tracing and cross compilation dies here
18:56:10 <nsz> Info: resolving _emu_memory by linking to __imp__emu_memory (auto-import)
18:56:24 <nsz> then starts eating lots of mem
18:56:33 <TrueBrain> so mingw32 sucks :)
19:03:55 <TrueBrain> damn, I just did it ... a workable C source .... :) hehe
19:03:58 <TrueBrain> I just realised that ;)
19:04:23 <TrueBrain> that I really did it :)
19:04:36 <TrueBrain> in the last 6 months or so many people told me I was insane, and that it couldn't be done
19:05:04 <TrueBrain> 130k lines of generated C source
19:05:12 <TrueBrain> and ignoring the stack problems: workable
19:05:27 <nsz> you can be still insane nevertheless.. ;)
19:05:39 <TrueBrain> hehe :) I guess they are right about that, yes :)
19:05:46 <TrueBrain> but damn ... I really did it :)
19:07:24 <TrueBrain> where does it fail / what goes wrong?
19:07:42 <nsz> Program Termination: jumped to 217E:01BA, which is not decompiled.
19:07:57 <TrueBrain> 1) make sure you have latest SVN
19:08:10 <TrueBrain> there is something related to a timer that might trigger an early quit
19:08:13 <TrueBrain> haven't looked at it
19:10:48 <nsz> Program Termination: jumped to 217E:01BA, which is not decompiled. The jump was triggered at decompiled/cs__217E.c:60 The jump appears to originate from 217E:0045.
19:11:40 <TrueBrain> you might want to consider to put the data files in data/ ;)
19:13:25 <TrueBrain> okay, main menu ... one big loop ... how am I going to resolve you ....
19:14:45 <TrueBrain> in main menu, I assume ;)
19:15:23 <TrueBrain> one big infinite loop :)
19:24:03 <TrueBrain> 0x200 bytes of a loop
19:24:06 <TrueBrain> that is one BIG function :s
19:25:33 <Xaroth> it's bitching about it not being able to find types.h
19:25:53 <TrueBrain> add the include/ as include dir :)
19:26:02 <TrueBrain> it is not so nice of me, but I didn't use relative linking :p
19:26:53 <Xaroth> opendune\trunk\src\main.c(9) : error C2143: syntax error : missing ';' before 'type'
19:27:36 <TrueBrain> beats the crap out of me
19:27:41 <TrueBrain> fiddle around with it a bit ...
19:28:23 <nsz> that's not allowed by the c standard
19:28:40 <nsz> move all those out side of main
19:29:01 <nsz> i mean the extern voig f(); declarations
19:29:23 <Xaroth> yep, now bitching about unresolved external symbol _emu_bla
19:29:58 <Xaroth> that might be due to no libemu.. i think
19:30:11 <nsz> emu_ should com from libemu.dll
19:30:23 <TrueBrain> you give up very fast :p
19:30:30 <TrueBrain> you just need to tell MSVC to include libemu.dll
19:30:45 <TrueBrain> (DLL need to resolve on link time .. a stupid MS requirement)
19:31:02 <TrueBrain> although I have a dl-compat which implements RTLD_LAZY for Windows ..
19:31:05 <TrueBrain> but that is another story :)
19:33:14 <Xaroth> yeh, need to compile libemu first then :P
19:33:28 <TrueBrain> or download it from my space
19:35:58 <Xaroth> ugh, MS VC annoys the crap out of me
19:37:32 <TrueBrain> pffff ... this function is really insane ..... so unbelievable big
19:37:36 <TrueBrain> I have a hard time linking it all together
19:39:41 <TrueBrain> and I talk about 12 deep here :s
19:39:43 <TrueBrain> I can't think that deep :(
19:40:38 <TrueBrain> hmm .. what if I just first copy/paste it, and replace function calls with gotos
19:40:58 <TrueBrain> for windows you don't need ncursesw
19:41:05 <TrueBrain> for linux, you can link the ncurses to ncursesw
19:44:38 <Xaroth> see, MSVC can learn something from that.
19:46:04 <Xaroth> missing sound tho, but that might be due to vmware
19:46:20 <Xaroth> and who needs sounds anyhow
19:46:32 <TrueBrain> you really expect I implemented sound? LOL!!!!
19:46:43 <Xaroth> hoping, not expecting :P
19:47:01 <TrueBrain> sound is a LONG way from working :p
19:47:10 <nsz> btw i got past emu_memory with corsslinking
19:47:26 <nsz> Info: resolving _emu_ss by linking to __imp__emu_ss (auto-import)
19:47:26 <nsz> Info: resolving _emu_memory by linking to __imp__emu_memory (auto-import)
19:47:26 <nsz> Info: resolving _emu_dx by linking to __imp__emu_dx (auto-import)
19:47:26 <nsz> Info: resolving _emu_ax by linking to __imp__emu_ax (auto-import)
19:47:49 <nsz> it seems each emu func requires about +200M memory or so
19:49:40 <Xaroth> anyways, I should be working on a news piece
19:49:58 <TrueBrain> bah, my idea of making them all labels doesn't work either :(
19:50:05 <TrueBrain> what a waste of 10 minutes of stupid work :p
19:51:21 <TrueBrain> hmm .. not a waste per-se ...
19:51:56 <nsz> emu_ax etc is not even a function
19:52:15 <nsz> how many symbols are there?
19:58:52 <TrueBrain> 52 functions done, 20 to go ..
19:58:54 <TrueBrain> damn, this is boring
20:16:58 <TrueBrain> then tomorrow is another day ;)
20:17:37 <TrueBrain> WHOHO! Menu works :)
20:17:45 <TrueBrain> clicking an entry .. not so much
20:18:10 <TrueBrain> nsz: which house did you play?
20:19:58 <TrueBrain> WHOHO! I can click a house!
20:20:04 <nsz> i think i played through harkonen and probably one other
20:20:08 <TrueBrain> it happens a lot that it fails ... but that is simply because we don't have enough :)
20:20:16 <TrueBrain> but we can collect that over time ;)
20:23:24 <TrueBrain> I just took together this main menu loop
20:23:34 <TrueBrain> and very ugly, I just made it all gotos :p
20:24:04 <TrueBrain> with the keyboard you can select things :p
20:24:05 <nsz> why did you have to rewrite that with hand then?
20:24:18 <TrueBrain> I could have automated it I guess ... but I wasn't sure :p
20:24:25 <TrueBrain> and when I was at 50%, the other 50% was just a small effort :p
20:24:48 <TrueBrain> I want to make the tool to do that .. that I select a region, and he makes this out of it
20:24:50 <nsz> i mean the decompiled code didn't work automatically
20:24:52 <TrueBrain> but ... I don't feel like doing that :p
20:25:10 <TrueBrain> it is one big loop .. which was called by calling functions recursively
20:25:14 <TrueBrain> that gives a stack overflow ;)
20:27:13 <TrueBrain> but there are tons of endless loops out there
20:27:21 <TrueBrain> like the house selection thing has one too
20:28:01 <nsz> -O2 should optimize thaat away
20:28:58 <nsz> maybe it doesn't work on infinite loops
20:28:59 <TrueBrain> if that works, I don't have to patch all those functions ;)
20:29:17 <TrueBrain> but my tool should do that .. I just really don't feel like implementing that right now :)
20:29:26 <TrueBrain> it should check a tree of calls if it can connect them
20:29:37 <TrueBrain> and via gotos try to make one single function (as long as they are jumps)
20:30:42 <TrueBrain> nsz: haha, nice idea! :) It works ;)
20:31:11 <TrueBrain> I tell you! INSANE! :)
20:31:42 <TrueBrain> lets make it Windows even more difficult :p
20:32:04 <Xaroth> ok, make clean spams a LOT :o
20:32:15 <TrueBrain> okay, I can now remove ALL patches
20:32:26 <TrueBrain> as a downside, with -O3 the backtrace might be corrupted
20:32:31 <TrueBrain> so ... should I do it, or not?
20:32:45 <Xaroth> is BT needed for getting things to work?
20:33:18 <TrueBrain> WHOHO! I am ingame :)
20:33:26 <TrueBrain> then it finally crashes :p
20:33:48 <nsz> i can make it crash just by moving the mouse around in the menu :P
20:33:58 <Xaroth> don't move the mouse :P
20:34:00 <TrueBrain> but we will fix that ;)
20:34:48 <Xaroth> svnserve: warning: environment variable LANG is en_US.UTF-8
20:34:54 <TrueBrain> okay, with -O3 it works, now lets try -O2 ...
20:35:23 <TrueBrain> nsz: or do you know the exact -f maybe? :p
20:35:31 <TrueBrain> (as compile-time with -O3 is a bit high :p)
20:35:41 <nsz> something about tail call optimization
20:37:15 <TrueBrain> -foptimize-sibling-calls I think
20:38:39 <TrueBrain> it is enabled with -O2 ...
20:40:55 <TrueBrain> -O1 takes 1 minutes to compile .. without it takes 30 seconds
20:42:14 <nsz> gcc -c -Q -O2 --help=optimizers
20:44:14 <nsz> cse = common subexpression elimination
20:46:45 <TrueBrain> k, enabled all of those
20:46:48 <TrueBrain> lets see if it works :p
20:47:25 <TrueBrain> so it is not documented like that
20:49:14 <TrueBrain> added all -f, doesn't work
20:49:18 <TrueBrain> so it is not an -f, or not a documented one
20:51:23 <nsz> that sibling call should be it, maybe some o1 stuff is needed as well
20:51:34 <TrueBrain> I enabled ALL things on -O2
20:51:38 <TrueBrain> via the command you gave
20:51:50 <TrueBrain> gcc -c -Q -O2 --help=optimizers | grep enabled | cut -b 3-32 | xargs -n 1 printf "CFLAGS += %s\n"
21:00:54 <TrueBrain> indeed, -O1 with -foptimize-sibling-calls works
21:06:56 <TrueBrain> I took over all the -f from -O1, and now it complains about missing symbols
21:08:36 <TrueBrain> I am glad if we can all switch safely to LLVM :p
21:09:39 <TrueBrain> okay ... so 1 minute compile-time
21:09:41 <TrueBrain> I can live with that ....
21:09:44 <TrueBrain> 30 seconds was better
21:11:51 <TrueBrain> now lets see if resuming still works :p
21:12:25 <TrueBrain> to explain to you nsz: copy the memory/crash.bin to memory/<something>.bin
21:12:38 <TrueBrain> attach the JIT (LD_PRELOAD) and start ./opendune memory/<something>.bin
21:12:40 <TrueBrain> it should now just continue
21:13:13 <TrueBrain> it just .. crashed here :p
21:13:17 <TrueBrain> that is, my screen no longer updates :p
21:14:16 <TrueBrain> it hits an infinite loop :p
21:15:15 <TrueBrain> the results I am seeing are, if I put it midly, weird
21:15:22 <TrueBrain> the mouse handler starts to call functions
21:15:26 <TrueBrain> doesn't sound right :p
21:15:45 <TrueBrain> I guess when it crashes inside a interrupt triggered from ahrdware, things break :)
21:15:48 <TrueBrain> not a real suprise :p
21:16:39 <TrueBrain> so that for sure I need to flag and handle nicely :)
21:17:08 <Xaroth> trunk/decompiled/cs__25C4.c:683: undefined reference to `f__2533_000D_001C_DBFD'
21:17:32 <Xaroth> that's when make'ing after svn up
21:19:40 <Xaroth> snoorbergen@snoorbergen-desktop:~/opendune/trunk$ svn diff
21:19:40 <Xaroth> snoorbergen@snoorbergen-desktop:~/opendune/trunk$ make clean; make
21:24:07 <TrueBrain> if it isn't the mouse pointer, it does
21:24:34 <nsz> hm no it turned into blank screen
21:25:12 <TrueBrain> I really need to fix those new functions and overlays .. they are annoying :p
21:25:16 <Xaroth> ugh, click play game, crash :P
21:26:18 <nsz> you should click at the right position at the right time ;)
21:27:53 <TrueBrain> let me see if I can patch that up a bit :)
21:29:04 <TrueBrain> it will take a long while before all problems are fixed ;)
21:29:11 <TrueBrain> about the time there are no files left in decompiled ;)
21:30:29 <TrueBrain> even in a still screen you can collect new functions :p
21:31:58 <TrueBrain> you did a nice job nsz
21:32:35 <TrueBrain> pressing scroll totally went wrong :p
21:34:09 <nsz> ok now resuming worked fine
21:34:23 <TrueBrain> tomorrow prio number one: fix overlay stuff
21:34:24 <TrueBrain> this is annoying :p
21:35:16 <TrueBrain> I have like 380 new functions of which ... 105 are inside overlay shit, which are not important at all
21:37:08 <TrueBrain> how ever much you try with the JIT attached, without it you immediatly run into trouble :p
21:37:22 <TrueBrain> not using the mouse is the best option :p
21:38:33 <TrueBrain> there .. uploaded a few more thingies
21:38:37 <TrueBrain> it is a bit more stable now
21:38:40 <TrueBrain> if you are lucky :p
21:39:37 <nsz> could not find file '_saave000.dat'
21:39:53 <TrueBrain> I guess I once again removed too much files? :p
21:41:24 <TrueBrain> bah bah bah, this overlay stuff is really bugging me
21:42:21 <TrueBrain> nsz: possible the options.cfg indicates there should be a safegame :p
21:42:29 <TrueBrain> I dunno ... sounds terrible wrong ;)
21:46:08 <nsz> options work with empty options.cfg as well but gives the same error
21:46:19 <TrueBrain> why did you need the options.cfg?
21:46:23 <TrueBrain> it works fine here in DOSBox without
21:46:34 <nsz> otherwise options does not work
21:46:51 <nsz> try to click on options in game without it
21:47:54 <nsz> now that i have an ingame crash dump i can start up playing pretty fast :)
21:48:00 <TrueBrain> oh, when you quit it fails
21:48:18 <TrueBrain> let me enable debugging
21:50:30 <TrueBrain> I think create file returns the wrong code or what ever
21:50:44 <TrueBrain> I know for sure that saving did work in one of my earlier versions
21:52:37 <TrueBrain> [EMU] [ INT21:3C ] CREATE FILE at 353F:2AB7 with attribute 0
21:52:39 <TrueBrain> [EMU] [ INT21 ] File name is 'options.cfg'
21:52:49 <TrueBrain> snprintf(buf, 1024, "data/%s", buf);
21:52:51 <TrueBrain> FILE *fp = fopen(buf, "wb");
21:53:28 <TrueBrain> something for another day :)
21:53:41 <TrueBrain> tomorrow I will first fix the overlay stuff, and remove the fuzzy warnings related to it
21:53:45 <TrueBrain> so we can see what really is new :p
21:54:04 <TrueBrain> then I will also build a few versions without a few files ... handle those errors nicely :)
21:54:29 <TrueBrain> then play the game a bit more, collect more stuff .. and I think I will start with some operating system entries, to translate those
21:54:37 <TrueBrain> or maybe the mouse handler ... he is still acting up :)
21:54:44 <TrueBrain> nsz: tnx for your help and input :) Sleep well
21:54:51 <TrueBrain> Xaroth: have a very good night :) See you tomorrow!
22:23:45 <Xaroth> 27894 www-data 20 0 429m 363m 3776 S 0 186.1 0:29.74 ruby
22:36:16 <Xaroth> TrueBrain: check /home/xaroth/test.sh ... quick whipup to see whether mem usage is 'acceptable' (to a percentage)
22:46:40 <Xaroth> TrueBrain: also, would it not be (technically) possible to just replace the repo browser of redmine, and replace it by something .. sane
22:46:50 <Xaroth> heck, websvn would outperform it (and not leak) O_O
continue to next day ⏵