--- Log opened Fri Apr 03 00:00:02 2015 20150403 00:00:04< gfgtdf> vultraz: or maybe you can get a stacktrace of when teh exception is thrown ? 20150403 00:00:39-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has quit [Ping timeout: 245 seconds] 20150403 00:01:59< vultraz> try to :cl in linger mode 20150403 00:02:38< bumbadadabum> god every time I see a command like :command I see a smiley face 20150403 00:04:17< iceiceice> gfgtdf: i think maybe we should start putting some stackwalker code into wesnoth? 20150403 00:04:24< iceiceice> so that it can make backtraces? 20150403 00:04:36< iceiceice> i think the number of times i saw a bug report where a non-developer made a stacktrace is pretty low 20150403 00:05:07< vultraz> iceiceice, gfgtdf http://pastebin.com/w9FgQyQ7 20150403 00:05:45< vultraz> menu_events.cpp:3018 20150403 00:06:31< shadowm> I'm not gfgtdf but I like that idea, iceiceice. 20150403 00:06:42< iceiceice> shadowm: :) 20150403 00:06:43< bumbadadabum> you're not? 20150403 00:06:54< iceiceice> man that would be such an incredible shock lol 20150403 00:07:08< shadowm> No idea where you'll get a reasonably portable API hiding the details of vendor-specific symbol mangling, though. 20150403 00:07:34< iceiceice> i mean anura did it :p 20150403 00:07:48< iceiceice> it looks like there is some BSD license module here: 20150403 00:07:48< iceiceice> https://github.com/anura-engine/anura/blob/trunk/src/StackWalker.h 20150403 00:07:49< shadowm> Did they? I thought it was all commented out when I checked. 20150403 00:08:12< shadowm> Oh dear gods. 20150403 00:08:16< iceiceice> they are using this output backtrace stuff 20150403 00:08:17< iceiceice> https://github.com/anura-engine/anura/blob/trunk/src/asserts.cpp#L163 20150403 00:08:42< iceiceice> it looks like theres a nontrivial amount of #ifdef _MSC_VER 20150403 00:08:43< shadowm> Yeah, see? They didn't figure out demangling. 20150403 00:08:51< iceiceice> but they figured out a substantial amount i think 20150403 00:08:58< iceiceice> it seems to work great on linux anyways 20150403 00:09:13< shadowm> I did a backtrace code for my own persona project too but it only does demangling with GCC's code. 20150403 00:09:25< shadowm> I mean GCC's API, part of libstdc++. 20150403 00:10:11< iceiceice> according to comments in the commit history they got it to work in msvc also 20150403 00:10:31< iceiceice> if you can work with msvc and gcc i think thats probably 95% of our users 20150403 00:10:49< bumbadadabum> it just needs to work with whatever the packagers use 20150403 00:11:09< iceiceice> i guess i dont know how many os x users we hae 20150403 00:11:11< iceiceice> *have 20150403 00:11:14< shadowm> Packagers may use absolutely anything. It's safer to just allow disabling it wherever it causes problems. 20150403 00:11:31< bumbadadabum> I mean the Windows and OSX packagers 20150403 00:11:33< iceiceice> i mean the worst case is that some bug reports have some extra gibberish 20150403 00:12:15< iceiceice> bumbadadabum: thats true 20150403 00:12:20< shadowm> Oh hey, actually it appears I eventually found an alternative to demangling with custom code. 20150403 00:12:32< iceiceice> if windows releases are mingw then it doesnt even matter if it works with msvc i guess 20150403 00:12:39< iceiceice> except for devs who are using msvc 20150403 00:12:53< bumbadadabum> nobody who isn't a dev is going to compile it themselves 20150403 00:12:54< shadowm> I mean demangling with a specific API. 20150403 00:13:16< iceiceice> bumbadadabum: i think some of the people who wrote in the beta testing thread would 20150403 00:13:58< bumbadadabum> hmm fair enough 20150403 00:14:36< shadowm> https://gist.github.com/shikadilord/8bac8327699b8f061d85 20150403 00:15:30< gfgtdf> vultraz: ok that looks easy to fix 20150403 00:15:35-!- gfgtdf [~chatzilla@f054049086.adsl.alicedsl.de] has quit [Quit: ChatZilla 0.9.91.1 [Firefox 36.0.4/20150320202338]] 20150403 00:15:52-!- gfgtdf [~chatzilla@f054049086.adsl.alicedsl.de] has joined #wesnoth-dev 20150403 00:16:00< gfgtdf> accidently closed the window.. 20150403 00:16:03< iceiceice> shadowm: that looks pretty slick 20150403 00:16:11< irker196> wesnoth: Charles Dang wesnoth:master f4c7052b28ab / data/campaigns/Descent_Into_Darkness/scenarios/05_Orc_War.cfg: DiD S5: used [heal_unit] instead of [full_heal] http://git.io/vekm5 20150403 00:16:21< shadowm> My original plan was actually "copy off anura" but then I found the commented-out non-MSVC++ block. 20150403 00:17:24< gfgtdf> i thought there is a winapi function for demageling ? 20150403 00:18:28< gfgtdf> https://msdn.microsoft.com/en-us/library/windows/desktop/ms681400%28v=vs.85%29.aspx 20150403 00:18:37< gfgtdf> or yre you talikng about something different ? 20150403 00:20:40< shadowm> Boost.core demangle(). 20150403 00:21:10< shadowm> "Use Boost.Core demangle() function (from v1.56) for backtraces" -- it's a single header file I took from Boost since I don't have that version. 20150403 00:22:13< shadowm> Hm, seems to only do libstdc++ though. :| 20150403 00:25:20< shadowm> Yeah, the latest version still only does libstdc++: https://github.com/boostorg/core/blob/master/include/boost/core/demangle.hpp 20150403 00:26:10< iceiceice> if it works with mingw and gcc though its still pretty good imo 20150403 00:26:11-!- Coffee_irc [~david@ppp121-45-36-236.lns20.adl2.internode.on.net] has joined #wesnoth-dev 20150403 00:26:28< iceiceice> i mean we coudl put them together 20150403 00:26:30< shadowm> And whoever else happens to publish the same non-standard API. Since clang seems big on seamless compatibility with gcc, I presume libc++ might do as well. 20150403 00:26:44< shadowm> clang/llvm project. 20150403 00:27:28< iceiceice> how hard would it be to start having like auto crash reporting? 20150403 00:27:41< iceiceice> i guess the easiest way would probably be like 20150403 00:28:03< shadowm> That's more or less a matter of where and how to send the reports. Producing them is the easiest step. 20150403 00:28:11< iceiceice> we make a gna mailing list for crash reports 20150403 00:28:18< shadowm> Also preventing abuse, etc. 20150403 00:28:19< iceiceice> and who cares can subscribe themselves or browse the archive 20150403 00:28:39< iceiceice> i think probably the easiest way to send them would be like 20150403 00:28:50< iceiceice> gui2:: dialog "do you want to send a crash report?" 20150403 00:28:57< shadowm> We'd need to integrate a SMTP client into Wesnoth. :p 20150403 00:29:01< iceiceice> no i don tso 20150403 00:29:05< iceiceice> i thinkw e could just mailinator 20150403 00:29:11< iceiceice> and pack the message into a cgi thing 20150403 00:29:24< iceiceice> and use your desktop::open thing to open the webpage 20150403 00:29:51< iceiceice> (maybe i'm forgetting how this works) 20150403 00:30:20< iceiceice> ok i see, mailinator is read only 20150403 00:30:24< iceiceice> but i did use it in an auto email project once 20150403 00:30:55< shadowm> Okay, I've never used mailinator and don't approve of using or promoting disposable email services. 20150403 00:32:02< iceiceice> i mean the alternative is that 20150403 00:32:06< iceiceice> or an alternative is, 20150403 00:32:13< iceiceice> we just write a "Crash report" server and run it on baldras 20150403 00:32:33< iceiceice> but i think thats more involved than trying to write emails 20150403 00:32:52< iceiceice> maybe there can just be some generic "send an email" api 20150403 00:33:13< iceiceice> right we have desktop::open for urls 20150403 00:33:21< iceiceice> isn't "mailto::" a url or something? 20150403 00:33:38< vultraz> yes 20150403 00:33:38< iceiceice> there was a long time that people would put links like that in their home pages i remember 20150403 00:33:54< shadowm> mailto: is the URL prefix for SMTP, yes. 20150403 00:33:58< iceiceice> its kind of annoying i guess because it brings up outlook usually and no one uses outlook 20150403 00:34:10< matthiaskrgr> lol 20150403 00:34:14< shadowm> Outlook was discontinued after XP wasn't it? 20150403 00:34:26< iceiceice> i actually have no idea :p 20150403 00:34:42< vultraz> it got merged with hotmail to make Live Mail 20150403 00:35:17< vultraz> I believe 20150403 00:35:17< shadowm> I don't know what it's like nowadays and Firefox usually has the wrong idea of how to handle external application requests on Linux, so I don't know. 20150403 00:35:17< shadowm> Oh, vultraz, no. I don't mean Outlook as in the email provider. 20150403 00:35:17< vultraz> what other outlook is there 20150403 00:35:17< shadowm> I mean Outlook as in the email client that existed before the email provider in question borrowed that name. 20150403 00:35:26< shadowm> After the email client was discontinued. 20150403 00:35:49< vultraz> uh 20150403 00:35:51< shadowm> I dont' know what Outlook iceiceice meant but the old client was my first thought. 20150403 00:35:52< vultraz> If you say so 20150403 00:35:58< iceiceice> yeah thats what i meant 20150403 00:36:16< iceiceice> back in the day when you installed windows it would ask if you wanted to set up "pop3" to recieve emails 20150403 00:36:21< iceiceice> and no one knew what it meant 20150403 00:36:28< iceiceice> and now probably even fewer people know :p 20150403 00:36:37< shadowm> Microsoft Outlook used to be part of Microsoft Office. Outlook Express is a less feature-heavy spinoff that got included with IE starting on version 4. 20150403 00:37:27< shadowm> It was discontinued after XP and MS Outlook proper suffered a similar fate I believe. Then Microsoft recycled its name for Live Mail (originally Hotmail). 20150403 00:37:51< iceiceice> yeah i remember 20150403 00:37:53< iceiceice> there used to be hotmail 20150403 00:37:55< iceiceice> and hotbot 20150403 00:38:13< shadowm> Live Mail had its own eponymous client for a while too. 20150403 00:38:13< iceiceice> i remember when i was in highschool our librarian was explaining to use about search engines ... 20150403 00:38:28< iceiceice> and she was like "well most people probably dont use hotbot because it sounds too... pornographic" 20150403 00:38:30< vultraz> I dunno I remembered an old client called outlook on XP 20150403 00:38:43< shadowm> That was Outlook Express. 20150403 00:38:50< iceiceice> i think hotbot is gone 20150403 00:38:55< iceiceice> hotmail lasted a little longer i guess 20150403 00:39:15< vultraz> hotmail addresses are now just live aliases 20150403 00:39:42< shadowm> I still have a Hotmail address. 20150403 00:40:12< vultraz> Microsoft didn't force a conversion 20150403 00:40:26< iceiceice> tbh im pretty amazed yahoo still exists 20150403 00:40:28< shadowm> Hm, no, because no conversion is needed. It's the same thing as Outlook. 20150403 00:40:53< shadowm> The only thing they have to maintain is the old MX records, really. 20150403 00:41:13< shadowm> For Microsoft this is as expensive as purchasing a cup of coffee. 20150403 00:41:22< vultraz> like with google, both @gmail and @inbox are the same 20150403 00:42:15< shadowm> The platform changes names but it's still the same thing under the hood. 20150403 00:42:15< iceiceice> so i mean 20150403 00:42:38< shadowm> Like with Google you can purchase email services for your own domain name. 20150403 00:43:04< iceiceice> yeah i actually have no idea how most crash report systems are designed 20150403 00:43:10< iceiceice> idk if it would be easier to make it email based or not 20150403 00:43:35< iceiceice> i mean probably yes 20150403 00:43:40< iceiceice> otherwise we have to run somethign on baldras 20150403 00:44:09< iceiceice> and email will make it like, automatically organized sort of 20150403 00:44:11< shadowm> I think a good first step is to actually produce reports and allow them to be viewed in-game after a restart. 20150403 00:44:34< iceiceice> shadowm: i was thinking like 20150403 00:44:45< shadowm> And maybe replace assert() et al. 20150403 00:44:46< iceiceice> in that code that catches exceptions in wesnoth.cpp 20150403 00:44:58< iceiceice> just make it launch some gui2 something with the crash report 20150403 00:45:00< iceiceice> and a paste button 20150403 00:45:07< iceiceice> (or eventually email button i guess) 20150403 00:45:37< shadowm> That's doable only half of the time, since there are situations where an exception won't be thrown or unwinding the stack will make things worse. 20150403 00:45:59< vultraz> there are exceptions all over the place 20150403 00:46:30< shadowm> assert() doesn't throw exceptions on purpose, and if you fall into a SIGSEGV or SIGBUS handler the least thing you want to do is return to the original frame. 20150403 00:46:49< iceiceice> yeah 20150403 00:46:55< shadowm> (Or perform heap allocations.) 20150403 00:46:56< iceiceice> i think there is also like 20150403 00:46:59< iceiceice> we could make a std::terminate handler 20150403 00:47:06< iceiceice> that gets a backtrace i think 20150403 00:50:14< shadowm> That ony covers uncaught exceptions. I think we have a catch-all block in main()? 20150403 00:50:31< iceiceice> yeah but we could remove it i guess 20150403 00:50:43< shadowm> (It also covers a load of other things that involve exceptions.) 20150403 00:51:20< shadowm> Maybe it's just me, but I'm under the impression that most bug reports in the past have involved assertion failures or segmentation faults. 20150403 00:52:26< iceiceice> hmm it looks like you can register a "SIGSEGV" handler? 20150403 00:52:36-!- ToBeCloud [uid51591@gateway/web/irccloud.com/x-xskevtuqdskdrygt] has quit [Quit: Connection closed for inactivity] 20150403 00:52:51< shadowm> On Linux, yes, but it's finicky. 20150403 00:53:33< iceiceice> is it "linux" or "gcc" ? 20150403 00:53:40< shadowm> Linux. 20150403 00:53:45< iceiceice> i see 20150403 00:54:15< shadowm> As with other signal handlers, there's a small subset of system calls that are safe to call while handling a signal, but there's the added risk of performing heap allocations and triggering whatever it was that caused the kernel to raise SIGSEGV or SIGBUS in the first place. 20150403 00:54:57-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20150403 00:55:25< iceiceice> hmmmm 20150403 00:55:27< shadowm> So if you are there, you are not supposed to do much besides terminating immediately without touching anything. 20150403 00:55:40< iceiceice> http://spin.atomicobject.com/2013/01/13/exceptions-stack-traces-c/ 20150403 00:55:53< iceiceice> the thing i pasted is only about C, 20150403 00:56:38< iceiceice> idk i'm going to read a bit more 20150403 00:57:18< shadowm> They only signals that cannot be handled in Linux are SIGKILL and SIGSTOP, btw. 20150403 00:57:54< shadowm> Though I vaguely recall SIGTRAP not being able to handled either against what the documentation said, possibly a bug. 20150403 00:59:25< irker196> wesnoth: Charles Dang wesnoth:master 5c70bd2ffb85 / data/campaigns/Northern_Rebirth/maps/ (13 files): NR: saved maps in new format http://git.io/vekCH 20150403 00:59:33< iceiceice> shadowm: i think the hard part mgiht be generating the backtrace 20150403 00:59:42< vultraz> 08b 115 kb -> 34 kb. heh 20150403 00:59:45< iceiceice> i think it might be that catching SIGKILL is portable 20150403 00:59:50< iceiceice> this guy also seems to say this 20150403 00:59:50< iceiceice> http://oroboro.com/stack-trace-on-crash/ 20150403 00:59:58< iceiceice> (i don't really know what i'm talking about though) 20150403 01:00:03< shadowm> I just said you can't catch SIGKILL. :) 20150403 01:00:54< iceiceice> yeah but handling i mean :p 20150403 01:00:56< matthiaskrgr> is it possible to compile wesnoth with -fsanitize=address ? 20150403 01:00:57< shadowm> I'd be surprised if any Unix-like system allows doing so since the whole point of SIGKILL is terminating a process without giving it a chance to do anything. 20150403 01:01:08< matthiaskrgr> iirc it failed some time ago when I tried it 20150403 01:01:19< shadowm> Which is a great tool against programs that don't know how to write failsafe signal handlers (e.g. Subversion). 20150403 01:01:35-!- yann [~dwitch@nan92-1-81-57-214-146.fbx.proxad.net] has quit [Ping timeout: 250 seconds] 20150403 01:02:01-!- Espreon [~espreon@wesnoth/developer/espreon] has quit [Ping timeout: 250 seconds] 20150403 01:02:36-!- Espreon [~espreon@uruz.ai0867.net] has joined #wesnoth-dev 20150403 01:02:46< shadowm> The basic signal handling API is defined by POSIX so it should be portable to anything that's not Windows (without Cygwin anyway). 20150403 01:03:00-!- Espreon is now known as Guest23637 20150403 01:04:13< iceiceice> matthiaskrgr: i never tried, i didnt even know about that 20150403 01:04:25< iceiceice> did you try with clang? 20150403 01:04:36< iceiceice> *what exactly do you mean it failed 20150403 01:04:45< shadowm> Windows (or at least some versions of the MSVC++ runtime) defines only a subset of signals for compatibility but I don't know about their handleability. Since they are provided for minimal compatibility with earlier POSIX, they are most likely implemented in terms of part of the Win32 API and that may have more features. 20150403 01:05:57< shadowm> I guess the safest way to get a backtrace in the event of a catastrophic failure really is to have a parent process do it for you. 20150403 01:06:19< iceiceice> yeah i think thats an option 20150403 01:06:27< iceiceice> but i think the purpose of these signal handlers is more or less to do it, right? 20150403 01:06:42< iceiceice> i mean what else could you possibly want to do 20150403 01:07:05< shadowm> Set a flag for your program to do cleanup and exit after returning from the signal handler. 20150403 01:09:17< iceiceice> matthiaskrgr: i am trying now on master with this: `scons extra_flags_release="-fsanitize=address"`, didn't get any compiler errors with clang 20150403 01:09:25< shadowm> SIGHUP typically sets a flag to reload the configuration after returning, too. 20150403 01:09:49< matthiaskrgr> ok, let me see 20150403 01:09:50< shadowm> I mean, typically gets used to do that, by system services. 20150403 01:10:03< iceiceice> hmm i see 20150403 01:14:09< shadowm> Amongst the functions listed in signal(7) to be safe for use in signal handlers the streaming I/O functions are notoriously missing. 20150403 01:14:13-!- yann [~dwitch@nan92-1-81-57-214-146.fbx.proxad.net] has joined #wesnoth-dev 20150403 01:14:55< shadowm> The raw open(), read() and write() system calls are listed, though. 20150403 01:15:49< shadowm> printf() and friends are also missing, probably because they may make use of internal static buffers (they are also known for not being reentrant). 20150403 01:16:54< iceiceice> they allow you to use socket though 20150403 01:17:54< iceiceice> i mean really i want to use be able to bring up a dialog 20150403 01:18:08< shadowm> Memory allocation functions are also missing. 20150403 01:18:26< iceiceice> what does execve do? 20150403 01:18:28< shadowm> The reason is that the signal handler may be called in the middle of an allocation. 20150403 01:18:47< iceiceice> i guess that probably the easiest thing is like 20150403 01:18:53< iceiceice> run whatever backtrace finding code we can? 20150403 01:19:03< iceiceice> write it to a temporary file 20150403 01:19:08< iceiceice> and then run some kind of crash handler program? 20150403 01:19:16< iceiceice> that can find the backtrace and ask to report 20150403 01:19:22< shadowm> execve() is part of the exec() family and it's used to implement the others. 20150403 01:19:48< iceiceice> i mean actually the easiest thing is probably to just try to write the backtrace to cerr 20150403 01:20:01< shadowm> i.e. it's the shortest path to the underlying system call. 20150403 01:20:04< iceiceice> i thought that could be done using write, maybe i'm wrong 20150403 01:20:23< shadowm> Yes, that should be doable. 20150403 01:20:45< shadowm> stderr is always fd 2. 20150403 01:21:46< iceiceice> well 20150403 01:22:12< iceiceice> maybe we can just try cobbling together these various backtrace solutions 20150403 01:22:17< shadowm> I suddenly wonder what it'd be like to exec something in the middle of a segmentation fault. 20150403 01:22:20< iceiceice> put it in some "output_backtrace" function 20150403 01:22:34-!- Implementor37 [44b792a3@gateway/web/freenode/ip.68.183.146.163] has quit [Ping timeout: 246 seconds] 20150403 01:22:43< iceiceice> and try registering it to handle sigsegv 20150403 01:22:52< iceiceice> and do that on master and see if people get meaningful results 20150403 01:22:55-!- prkc [~prkc@4E5CD609.dsl.pool.telekom.hu] has quit [Remote host closed the connection] 20150403 01:22:55< shadowm> (i.e. Can the new image survive or does everything instantly go south before even replacing the current image? :p) 20150403 01:25:21< iceiceice> so 20150403 01:25:33< iceiceice> tbh i'm somewhat surprised if we can't just put all the code we want in the signal handler 20150403 01:25:49< iceiceice> even if the man page says that only "safe" things should be used i mean its just some posix standard 20150403 01:26:06< iceiceice> as long as it works on most OS's its fine 20150403 01:26:31< shadowm> It's about deterministic behavior vs. non-deterministic behavior, really. 20150403 01:26:40< iceiceice> i dont see why it should be nondeterministic 20150403 01:26:50< iceiceice> i mean it depends on what catching sigsegv means 20150403 01:26:59< shadowm> It all depends on how the code that's being executed at the time the kernel decides to switch execution to a handler is doing. 20150403 01:27:03< shadowm> *what 20150403 01:27:58< iceiceice> i mean presumably once it makes a bad dereference it instantly halts 20150403 01:28:01< shadowm> It might be at the kernel's system call boundary, it might be in the middle of a heap structure update, it might be performing floating point arithmetic, it might be waiting for I/O, etc. 20150403 01:28:30< shadowm> No, because the code being executed doesn't know it's doing a bad thing. 20150403 01:28:50< shadowm> The system stops it and doesn't let it clean up after itself. 20150403 01:29:42< iceiceice> maybe for like SigKill or something 20150403 01:29:47< iceiceice> where its like a preemptive halt 20150403 01:29:52< iceiceice> i guess that could happen 20150403 01:30:01< shadowm> I'd say the worst case is a heap allocation or deallocation taking place, since memory management functions usually involve a load of convoluted non-atomic crap behind the scenes. 20150403 01:30:07< iceiceice> but when its a segfault i think theres a well-defined time that the segfault happens 20150403 01:30:18< iceiceice> and its exactly the time that the allocator says "hey thats not your memory" 20150403 01:30:52< iceiceice> i mean, not the allocator, 20150403 01:30:56< shadowm> The CPU. 20150403 01:30:59< iceiceice> yeah 20150403 01:32:05< shadowm> It knows the full virtual memory mappings for the current task, so it's in charge of raising an exception the moment an invalid operation takes place (accessing an absent page, executing an NX page, writing to a RO page, etc.). 20150403 01:32:13< iceiceice> yeah 20150403 01:32:30< iceiceice> so i think that probably hte process gets stopped right there 20150403 01:32:33< iceiceice> and thats the stacktrace you hope to get 20150403 01:32:51< iceiceice> i dont know how it works in general though 20150403 01:33:39< iceiceice> i guess if its a sigkill you aren't realistically searching for a stacktrace anyways 20150403 01:41:53< iceiceice> wow i am still compiling that fsanitize thing 20150403 01:42:03< vultraz> o_O 20150403 01:42:08< iceiceice> completley forgot about that 20150403 01:42:11< iceiceice> its almost done i think 20150403 01:42:28< matthiaskrgr> hehe 20150403 01:44:13< shadowm> Okay, there's exactly one class-defined way to get a non-sane version_info and it's pretty much impossible. 20150403 01:45:19< shadowm> Actually, I'd say it simply doesn't happen, period. 20150403 01:46:10< shadowm> Unless you can think of a way to have lexical_cast() throw when given a string that is guaranteed to only contain ASCII digits. 20150403 01:48:06< iceiceice> idk can that fail if you give it arbitrarily large strings of digits? :p 20150403 01:48:10< iceiceice> if not i guess it sounds safe 20150403 01:48:36< iceiceice> if its guaranteed to contain only ascii digits then you could just skip lexical cast i guess 20150403 01:51:10< shadowm> If somebody uses x > 4294967296 as a version number component they deserve to have their computer explode in their face. 20150403 01:51:25-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20150403 01:52:50< iceiceice> agreed 20150403 01:53:11< shadowm> Same if somebody decides to spawn 2^64 units. 20150403 01:53:11< iceiceice> i bet coverity will whine about it though :p 20150403 01:53:15< iceiceice> if not we can report a bug to them 20150403 01:53:17-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20150403 01:53:42< shadowm> (Or whatever (size_t)(-1) yields for them.) 20150403 01:53:47< vultraz> don't give youknowho ideas 20150403 01:54:42< shadowm> Wesnoth would starve their OS of memory first. 20150403 01:55:20< shadowm> Probably. Maybe. 20150403 01:56:45< shadowm> Yeah, 2^64 > 128 GiB. 20150403 01:59:17-!- gfgtdf_ [~chatzilla@f054130031.adsl.alicedsl.de] has joined #wesnoth-dev 20150403 02:01:56-!- gfgtdf [~chatzilla@f054049086.adsl.alicedsl.de] has quit [Ping timeout: 272 seconds] 20150403 02:01:57-!- gfgtdf_ is now known as gfgtdf 20150403 02:02:39-!- gfgtdf [~chatzilla@f054130031.adsl.alicedsl.de] has quit [Client Quit] 20150403 02:07:45-!- kingdom_ [~kingdom@140.207.223.189] has joined #wesnoth-dev 20150403 02:08:42-!- kingdom_ [~kingdom@140.207.223.189] has quit [Max SendQ exceeded] 20150403 02:12:59< iceiceice> matthiaskrgr: i got tons of liner errors 20150403 02:13:09< iceiceice> *linker errors 20150403 02:13:41-!- kingdom_ [~kingdom@123.155.153.53] has joined #wesnoth-dev 20150403 02:14:00< iceiceice> literally it flooded my console 20150403 02:14:03< iceiceice> i have no idea why, sorry 20150403 02:14:28< matthiaskrgr> :( 20150403 02:14:32< shadowm> There's nothing I hate more than indentation changes resulting from control structure changes. 20150403 02:15:24-!- kingdom_ [~kingdom@123.155.153.53] has quit [Remote host closed the connection] 20150403 02:17:05< matthiaskrgr> well, it should be possible to fix these (somehow). I already found a bunch of bugs in cppcheck, freedroid and darkplace with address sanitizer 20150403 02:17:12-!- kingdom_ [~kingdom@123.155.153.53] has joined #wesnoth-dev 20150403 02:17:32< matthiaskrgr> it will be a lot faster then valgrind 20150403 02:18:08-!- kingdom_ [~kingdom@123.155.153.53] has quit [Max SendQ exceeded] 20150403 02:22:34-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20150403 02:35:48< iceiceice> matthiaskrgr: yeah that is a good point 20150403 02:35:57< iceiceice> so one thing we can also do is run the unit tests through valgrind 20150403 02:36:24< iceiceice> the unit tests actually cover a pretty decent chunk of the program i think 20150403 02:37:00< iceiceice> shadowm: does your code require C++11? 20150403 02:38:41< matthiaskrgr> you can also run address sanitizer and UB-sanitizer at the same time, if you want 20150403 02:40:32< shadowm> iceiceice: It uses a couple of C++11 keywords, otherwise no. 20150403 02:40:57< shadowm> Just the noexcept specifier and nullptr. 20150403 02:47:53-!- Necrosporus_ [~Necrospor@unaffiliated/necrosporus] has joined #wesnoth-dev 20150403 02:51:02-!- Necrosporus [~Necrospor@unaffiliated/necrosporus] has quit [Ping timeout: 250 seconds] 20150403 02:54:04-!- kingdom_ [~kingdom@123.155.155.179] has joined #wesnoth-dev 20150403 02:55:33-!- kingdom_ [~kingdom@123.155.155.179] has quit [Remote host closed the connection] 20150403 03:01:28< iceiceice> hmm you are using "free" and "std::free" int he same file 20150403 03:01:37< iceiceice> is that weird or i am crazy 20150403 03:03:29-!- kingdom_ [~kingdom@123.155.155.179] has joined #wesnoth-dev 20150403 03:03:29-!- iceiceice [~chris@wesnoth/developer/iceiceice] has quit [Read error: Connection reset by peer] 20150403 03:03:48-!- kingdom_ [~kingdom@123.155.155.179] has quit [Remote host closed the connection] 20150403 03:04:05-!- iceiceice [~chris@wesnoth/developer/iceiceice] has joined #wesnoth-dev 20150403 03:06:19< shadowm> libstdc++'s : `#include [...] namespace std { using ::free; }` 20150403 03:06:58< iceiceice> ah ok 20150403 03:07:19< shadowm> I was moving towards using the std versions but I clearly missed some instances. 20150403 03:11:51-!- kingdom_ [~kingdom@211.162.34.195] has joined #wesnoth-dev 20150403 03:12:58-!- kingdom_ [~kingdom@211.162.34.195] has quit [Remote host closed the connection] 20150403 03:13:15-!- kingdom_ [~kingdom@211.162.34.195] has joined #wesnoth-dev 20150403 03:13:51-!- kingdom_ [~kingdom@211.162.34.195] has quit [Remote host closed the connection] 20150403 03:18:46-!- kingdom_ [~kingdom@27.115.116.217] has joined #wesnoth-dev 20150403 03:21:26-!- kingdom_ [~kingdom@27.115.116.217] has quit [Remote host closed the connection] 20150403 03:21:43-!- kingdom_ [~kingdom@27.115.116.217] has joined #wesnoth-dev 20150403 03:22:35< irker196> wesnoth: Ignacio R. Morelle wesnoth:master 02a31a5b8945 / src/ (10 files in 5 dirs): Remove superfluous 'sane' flag from version_info http://git.io/vekFD 20150403 03:22:38< irker196> wesnoth: Ignacio R. Morelle wesnoth:master 257fa2b3c3ff / src/version.hpp: Documentation improvements and declaration reordering for version_info http://git.io/vekFy 20150403 03:22:54-!- kingdom_ [~kingdom@27.115.116.217] has quit [Remote host closed the connection] 20150403 03:24:29< irker196> wesnoth: Ignacio R. Morelle wesnoth:master 63e9b6be3361 / src/version.hpp: Remove stray comment I was meant to remove along with its counterpart http://git.io/vekFA 20150403 03:26:47< iceiceice> shadowm, gfgtdf: https://github.com/wesnoth/wesnoth/pull/393 20150403 03:26:57< iceiceice> it doesn't work right now it seems but maybe not too far 20150403 03:30:37< iceiceice> back later 20150403 03:33:06-!- kingdom_ [~kingdom@112.65.211.210] has joined #wesnoth-dev 20150403 03:33:37-!- kingdom_ [~kingdom@112.65.211.210] has quit [Remote host closed the connection] 20150403 03:33:53-!- kingdom_ [~kingdom@112.65.211.210] has joined #wesnoth-dev 20150403 03:34:35< shadowm> I'm going to look into writing FS code tests next. 20150403 03:34:59-!- iceiceice [~chris@wesnoth/developer/iceiceice] has quit [Ping timeout: 250 seconds] 20150403 03:35:13< irker196> wesnoth: Ignacio R. Morelle wesnoth:master a37276b450e2 / src/tests/test_version.cpp: Additional version_info corner case checks http://git.io/vekNA 20150403 03:35:22-!- kingdom_ [~kingdom@112.65.211.210] has quit [Remote host closed the connection] 20150403 03:35:40-!- kingdom_ [~kingdom@112.65.211.210] has joined #wesnoth-dev 20150403 03:36:09-!- kingdom_ [~kingdom@112.65.211.210] has quit [Remote host closed the connection] 20150403 03:36:24-!- kingdom_ [~kingdom@112.65.211.210] has joined #wesnoth-dev 20150403 03:36:36-!- kingdom_ [~kingdom@112.65.211.210] has quit [Remote host closed the connection] 20150403 03:37:09< shadowm> iceiceice: It's normal that you'll get stack traces with the current function at the top. :p 20150403 03:38:53< shadowm> Although it's possible to skip the topmost n frames or determine a frame to skip by using one of the compiler __FUNCTION__-like symbols, I'd say it's not worth the hassle. 20150403 03:39:20-!- bumbadadabum [~bumbadada@d155109.upc-d.chello.nl] has quit [Quit: Ik ga weg] 20150403 03:40:09< shadowm> We are the ones who are supposed to know what information is relevant and what information isn't, we can train ourselves to ignore the irrelevant bits. 20150403 03:41:34< shadowm> Linux kernel backtraces are similarly indiscriminate and no-one seems to have a problem with that. 20150403 03:46:25-!- SpoOkyMagician [~chatzilla@cpe-74-132-57-45.kya.res.rr.com] has quit [Quit: well im done. later] 20150403 03:46:28-!- kingdom_ [~kingdom@123.155.153.53] has joined #wesnoth-dev 20150403 03:47:23-!- kingdom_ [~kingdom@123.155.153.53] has quit [Remote host closed the connection] 20150403 03:47:59-!- kingdom_ [~kingdom@123.155.153.53] has joined #wesnoth-dev 20150403 03:48:15-!- kingdom_ [~kingdom@123.155.153.53] has quit [Remote host closed the connection] 20150403 03:54:54-!- kingdom_ [~kingdom@211.162.34.195] has joined #wesnoth-dev 20150403 03:56:34-!- kingdom_ [~kingdom@211.162.34.195] has quit [Remote host closed the connection] 20150403 04:02:05-!- travis-ci [~travis-ci@ec2-54-226-110-117.compute-1.amazonaws.com] has joined #wesnoth-dev 20150403 04:02:06< travis-ci> cbeck88/wesnoth#156 (crash_reporter - a657b94 : Chris Beck): The build passed. 20150403 04:02:06< travis-ci> Build details : http://travis-ci.org/cbeck88/wesnoth/builds/56987456 20150403 04:02:06-!- travis-ci [~travis-ci@ec2-54-226-110-117.compute-1.amazonaws.com] has left #wesnoth-dev [] 20150403 04:13:45-!- new_one [~new_one@128.42.94.164] has quit [Quit: WeeChat 1.1.1] 20150403 04:18:19-!- kex [~kex@78.157.29.160] has quit [Remote host closed the connection] 20150403 04:21:13-!- oldlaptop [~quassel@50-108-82-79.adr01.mskg.mi.frontiernet.net] has quit [Ping timeout: 245 seconds] 20150403 04:22:22-!- oldlaptop [~quassel@50-108-82-79.adr01.mskg.mi.frontiernet.net] has joined #wesnoth-dev 20150403 04:23:26-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20150403 04:33:09-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20150403 04:33:39-!- kingdom_ [~kingdom@123.155.155.179] has joined #wesnoth-dev 20150403 04:34:24-!- kingdom_ [~kingdom@123.155.155.179] has quit [Max SendQ exceeded] 20150403 04:34:46-!- kingdom_ [~kingdom@123.155.155.179] has joined #wesnoth-dev 20150403 04:34:52-!- kingdom_ [~kingdom@123.155.155.179] has quit [Max SendQ exceeded] 20150403 04:35:14-!- kingdom_ [~kingdom@123.155.155.179] has joined #wesnoth-dev 20150403 04:35:22-!- kingdom_ [~kingdom@123.155.155.179] has quit [Max SendQ exceeded] 20150403 04:36:02-!- kingdom_ [~kingdom@123.155.155.179] has joined #wesnoth-dev 20150403 04:36:06-!- kingdom_ [~kingdom@123.155.155.179] has quit [Max SendQ exceeded] 20150403 04:36:33-!- kingdom_ [~kingdom@123.155.155.179] has joined #wesnoth-dev 20150403 04:36:41-!- kingdom_ [~kingdom@123.155.155.179] has quit [Max SendQ exceeded] 20150403 04:37:06-!- kingdom_ [~kingdom@123.155.155.179] has joined #wesnoth-dev 20150403 04:37:14-!- kingdom_ [~kingdom@123.155.155.179] has quit [Max SendQ exceeded] 20150403 04:37:33-!- kingdom_ [~kingdom@123.155.155.179] has joined #wesnoth-dev 20150403 04:37:38-!- kingdom_ [~kingdom@123.155.155.179] has quit [Max SendQ exceeded] 20150403 04:37:58-!- kingdom_ [~kingdom@123.155.155.179] has joined #wesnoth-dev 20150403 04:38:25-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20150403 04:43:59-!- kingdom_ [~kingdom@123.155.155.179] has quit [Ping timeout: 245 seconds] 20150403 04:56:05-!- iceiceice [~chris@wesnoth/developer/iceiceice] has joined #wesnoth-dev 20150403 04:56:34< iceiceice> shadowm: i mean, so if i stick a line `*(int*)0 = 0` in sound.cpp at a random place, 20150403 04:56:39< iceiceice> the stack trace i get is this: 20150403 04:56:40< iceiceice> http://pastebin.com/A0JPL1Ym 20150403 04:56:55< iceiceice> thats for a segfault inside "play_UI_sound" 20150403 04:57:32< iceiceice> so... 20150403 04:57:37< iceiceice> i think that when the signal handlers are called, the old stack isnt where it needs to be or something 20150403 04:58:36-!- Appleman1234 [~Appleman1@s108.BMT-e1.vectant.ne.jp] has quit [Ping timeout: 252 seconds] 20150403 04:59:01-!- Kwandulin [~Miranda@p5B008A20.dip0.t-ipconnect.de] has joined #wesnoth-dev 20150403 05:04:20-!- kingdom_ [~kingdom@27.115.116.217] has joined #wesnoth-dev 20150403 05:04:31< iceiceice> hmm do i have to compile with debugging symbols or something/ 20150403 05:04:47< iceiceice> i tried disabling name demangling and all it got was like ./wesnoth [0xabcd] 20150403 05:05:03< iceiceice> but at least it got the full 10 entries 20150403 05:06:45-!- kingdom_ [~kingdom@27.115.116.217] has quit [Max SendQ exceeded] 20150403 05:07:34-!- kingdom_ [~kingdom@27.115.116.217] has joined #wesnoth-dev 20150403 05:07:43-!- kingdom_ [~kingdom@27.115.116.217] has quit [Max SendQ exceeded] 20150403 05:08:18-!- kingdom_ [~kingdom@27.115.116.217] has joined #wesnoth-dev 20150403 05:08:26-!- kingdom_ [~kingdom@27.115.116.217] has quit [Max SendQ exceeded] 20150403 05:09:00-!- kingdom_ [~kingdom@27.115.116.217] has joined #wesnoth-dev 20150403 05:09:56-!- kingdom_ [~kingdom@27.115.116.217] has quit [Max SendQ exceeded] 20150403 05:10:43-!- kingdom_ [~kingdom@123.155.155.179] has joined #wesnoth-dev 20150403 05:12:51-!- kingdom_ [~kingdom@123.155.155.179] has quit [Client Quit] 20150403 05:13:11< shadowm> *(int*)0 = 0 causes SIGILL? Huh? 20150403 05:13:13-!- kingdom_ [~kingdom@123.155.155.179] has joined #wesnoth-dev 20150403 05:13:54< shadowm> I thought page zero is supposed to be always absent for userland processes. 20150403 05:14:14< iceiceice> i mean clearly it should be a segfault or something 20150403 05:14:16< shadowm> I get SIGSEGV. 20150403 05:14:29< iceiceice> yeah idk 20150403 05:14:33< iceiceice> i compiled with clang 20150403 05:14:35< iceiceice> at -O2 20150403 05:14:43< iceiceice> maybe it optimized it or something 20150403 05:14:51< iceiceice> i really have no idea, i mean its undefined right 20150403 05:14:53< shadowm> Ah, that's very likely. 20150403 05:15:05-!- kingdom_ [~kingdom@123.155.155.179] has quit [Client Quit] 20150403 05:15:24< shadowm> Optimizations cause all kinds of impossible scenarios to take place when applied on UB-based code. 20150403 05:16:13< shadowm> Yep, clang -O2 optimizes that code into something wrong. 20150403 05:19:52< shadowm> iceiceice: You don't have libc6-dbg (Debian/Ubuntu package name) installed? 20150403 05:20:21< iceiceice> Reading state information... Done 20150403 05:20:21< iceiceice> libc6-dbg is already the newest version. 20150403 05:20:39< iceiceice> im going to try compiling with gcc 20150403 05:21:49< shadowm> I personally haven't tried using my code in conjunction with signal handlers yet, and I'd expect to have to rearrange some things for that. 20150403 05:22:46< shadowm> Mostly to eliminate the possibility of introducing or getting garbage in the heap. 20150403 05:23:08-!- Appleman1234 [~Appleman1@s108.BMT-e1.vectant.ne.jp] has joined #wesnoth-dev 20150403 05:23:19< shadowm> Er, introducing or retrieving, that is. 20150403 05:24:31< shadowm> Though a single illegal instruction statement shouldn't reveal any such issues assuming the compiler didn't do something funny with surrounding code. 20150403 05:28:54< iceiceice> yeah... 20150403 05:29:14< iceiceice> for some reason the whole backtrace symbols thing was giving me gibberish somewhat 20150403 05:30:43< iceiceice> http://pastebin.com/28Ft1p3F 20150403 05:36:41< shadowm> I think I know what's going on. 20150403 05:37:18< shadowm> Wait, clang actually takes nullptr in c++98 mode? 20150403 05:40:23< iceiceice> https://github.com/wesnoth/wesnoth/pull/393/files#diff-15e6960bfa3a4361bdd2e7769122b19bR76 20150403 05:40:43< shadowm> Ah, right. 20150403 05:45:13< shadowm> How do I list loaded libraries in gdb? 20150403 05:46:42< iceiceice> i dont know 20150403 05:47:59< shadowm> Okaay, so with this: https://dl.dropboxusercontent.com/u/21371130/poop/patch.patch 20150403 05:48:16< shadowm> I get only three frames: 20150403 05:48:20< shadowm> /lib/x86_64-linux-gnu/libc.so.6: +0x35180 [0x7ffff34cd180] 20150403 05:48:20< shadowm> /home/shadowm/src/wesnoth-pr-test/wesnoth: main+0x20 [0x44dd80] 20150403 05:48:20< shadowm> /lib/x86_64-linux-gnu/libc.so.6: __libc_start_main+0xf5 [0x7ffff34b9b45] 20150403 05:48:55< iceiceice> i was sticking the int segfault code in sound.cpp 20150403 05:48:58< shadowm> I presume the top frame is an implementation detail of backtrace(). 20150403 05:48:59< iceiceice> in play_ui_sound 20150403 05:49:31< iceiceice> yeah 20150403 05:49:55< shadowm> What was the problem again? Demangling causing frames to disappear? 20150403 05:49:58< iceiceice> are you using O2? 20150403 05:50:05< shadowm> -O3, clang 3.4. 20150403 05:50:13< iceiceice> so my problem is i dont get any function names 20150403 05:50:17< iceiceice> even with demangling off 20150403 05:50:33< shadowm> Is -g in the command line? 20150403 05:50:38< shadowm> The compiler's, that is. 20150403 05:50:44< iceiceice> no 20150403 05:51:00< iceiceice> but i tried a debug build 20150403 05:51:04< iceiceice> and it didn't seem to help 20150403 05:51:37< iceiceice> heres the debug build: 20150403 05:51:38< iceiceice> http://pastebin.com/BiZZpS0N 20150403 05:52:14< shadowm> Okay, an obvious issue with backtrace_to_stderr()'s demangling path is that if a frame doesn't conform to the expected format for whatever reason, it'll not be printed at all. 20150403 05:52:39< shadowm> Probably should add a fallback path there. 20150403 05:53:21< shadowm> else { std::cerr << indent << trace[k] << '\n'; } at the end of the last if block in that function. 20150403 05:53:53< iceiceice> i started trying with just this: http://pastebin.com/umNqB12c 20150403 05:54:34< shadowm> That won't demangle anything. :\ 20150403 05:57:23< iceiceice> yeah but why dont i get anything to demangle in the first places 20150403 05:59:32< iceiceice> ok i just compiled with g++ and -O0 release build 20150403 05:59:43< iceiceice> when i do gdb wesnoth i get a nice backtrace 20150403 05:59:43< shadowm> Confirmed the aforementioned theoretical bug. 20150403 06:00:08< iceiceice> http://pastebin.com/bJdhxUtb 20150403 06:00:16< iceiceice> but when i use the built-in backtracer i get 20150403 06:00:50< iceiceice> only hex addresses 20150403 06:01:34< iceiceice> there's gotta be something wrong with the code thats getting the backtrace i think 20150403 06:03:10< shadowm> Is USE_BOOST_CORE_DEMANGLE defined? 20150403 06:04:06< shadowm> It's not for me, so I'm using the built-in version. 20150403 06:05:50< shadowm> I don't expect any differences for me with Boost but I'm trying that anyway. 20150403 06:06:17< shadowm> Yep, looks good to me. Maybe if I introduce a function that actually requires demangling... 20150403 06:07:17< shadowm> And mayb if I don't allow it to get inlined. 20150403 06:07:30< shadowm> bbl building debug build. 20150403 06:11:38< shadowm> Blegh. 20150403 06:12:28< shadowm> Okay so I only get plain addresses for functions other than main() too. 20150403 06:14:33< shadowm> Trying to run my program again I got a SIGBUS on libstdc++'s ABI helper functions. 20150403 06:16:12< shadowm> Okay, that's probably because my location choice for injecting a backtrace call wasn't very smart. 20150403 06:17:12< shadowm> Grrr, I get a proper backtrace with it. 20150403 06:20:30< shadowm> Okay, it's not fully proper. 20150403 06:23:37-!- [Relic] [~Relic]@2602:306:33a3:6d30:ac22:2d9c:9190:202c] has quit [Quit: Leaving] 20150403 06:24:14< iceiceice> i see 20150403 06:24:18< iceiceice> its this -rdynamc thing 20150403 06:24:23< iceiceice> that you mentioned before 20150403 06:24:30< shadowm> I did? 20150403 06:24:55< shadowm> What does it even do? :p 20150403 06:25:24< shadowm> Include all symbols, huh? 20150403 06:25:35< shadowm> Well, then where is gdb getting its symbols from? 20150403 06:26:05< iceiceice> i have no idea 20150403 06:26:23< shadowm> Anyway, the pattern I've noticed with my program is that functions from anonymous namespaces don't have symbols: 20150403 06:26:33< shadowm> http://pastebin.com/ssEfa1T6 20150403 06:26:54-!- kingdom_ [~kingdom@123.157.71.141] has joined #wesnoth-dev 20150403 06:27:55< shadowm> Everything int he first backtrace that's not in the gdb backtrace is part of anonymous namespaces. 20150403 06:28:30< shadowm> I mean everything in the first backtrace that doesn't have symbols but appears with symbols in the gdb backtrace. 20150403 06:29:25< shadowm> (gdb is actually missing two frames that are part of the pre-main() initialization process). 20150403 06:29:44< shadowm> (Probably on purpose since people hardly ever need to see those.) 20150403 06:30:35< shadowm> clang doesn't know what -rdynamic is. 20150403 06:31:13-!- kingdom_ [~kingdom@123.157.71.141] has quit [Ping timeout: 252 seconds] 20150403 06:33:50< iceiceice> yeah i'm still confused 20150403 06:34:26< shadowm> Still no symbols for anonymous-namespace functions with gcc and -rdynamic -g -O0. 20150403 06:36:22< shadowm> They do appear in nm's listing too. 20150403 06:37:27< shadowm> Okay, in other words, backtrace_symbols is allergic to certain kind of symbols. 20150403 06:38:15< iceiceice> its mentioned here: http://stackoverflow.com/questions/6934659/how-to-make-backtrace-backtrace-symbols-print-the-function-names 20150403 06:38:16< shadowm> "Note that names of "static" functions are not exposed, and won't be available in the backtrace." 20150403 06:38:37< shadowm> But are anon ns functions equivalent to static functions to the linker? 20150403 06:39:34< shadowm> And nm lists them so... :\ 20150403 06:42:57< shadowm> Perhaps they have a special flag that tells the OS (even if the linker includes them) to discard them when loading the image in memory and gdb just reads the missing information from the executable file. 20150403 06:43:26< shadowm> So libc just can't know about those symbols. 20150403 06:44:40< shadowm> Okay, nm doesn't show any flags for them other than that they are in the text section. I give up. 20150403 06:47:52< shadowm> (Also, I mean nm(1), not "never mind".) 20150403 06:48:50-!- boucman_work [~jrosen@193.56.60.161] has joined #wesnoth-dev 20150403 06:48:50-!- boucman_work [~jrosen@193.56.60.161] has quit [Changing host] 20150403 06:48:50-!- boucman_work [~jrosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20150403 06:48:51< iceiceice> i have too many tabs open and i cant find where the information i thought i found came from T_T 20150403 06:49:33< iceiceice> hmm heres something: 20150403 06:49:33< iceiceice> http://www.gnu.org/software/libc/manual/html_node/Backtraces.html 20150403 06:49:48< iceiceice> "Function: char ** backtrace_symbols (void *const *buffer, int size)" 20150403 06:50:00< iceiceice> "Currently, the function name and offset only be obtained on systems that use the ELF binary format for programs and libraries. On other systems, only the hexadecimal return address will be present. Also, you may need to pass additional flags to the linker to make the function names available to the program. (For example, on systems using GNU ld, you must pass (-rdynamic.)" 20150403 06:50:30< shadowm> And that's what I did but the result isn't any different. 20150403 06:50:44< iceiceice> i am still trying to compile *again* with -rydynamic this time 20150403 06:50:53< iceiceice> since i couldnot find a way to make scons add it only to the linker 20150403 06:51:17< shadowm> I'd stick the code into a small standalone test program instead. :p 20150403 06:52:19< iceiceice> it is suggested here to use "libunwind" http://stackoverflow.com/questions/6934659/how-to-make-backtrace-backtrace-symbols-print-the-function-names 20150403 06:52:50< iceiceice> -rdynamic didn't do anything for me T_T 20150403 06:52:56< shadowm> I've never used that and I'm not a fan of depending on libraries for lesser functionality. 20150403 06:53:23< shadowm> Which is why I've never used that. 20150403 06:53:37< iceiceice> oooh i had that -f sanitize=address flag still on T_T 20150403 06:54:37< shadowm> Hmph. 20150403 06:54:50< shadowm> Yeah, probably should check that out one of these days. 20150403 06:55:31< shadowm> Maybe find out what kind of magic juice allows it to do what libc can't. 20150403 06:56:23< iceiceice> ok very sleepy now 20150403 06:57:13< iceiceice> well i have no idea why it doesnt work for me 20150403 06:57:20< iceiceice> i mean everything i have is GNU 20150403 06:57:23< iceiceice> so... 20150403 06:58:45< shadowm> Is everything leading up to the fault site in an anonymous namespace? 20150403 06:59:12< shadowm> Okay, no. 20150403 06:59:16< iceiceice> no 20150403 06:59:26< shadowm> Yeah, found the gdb bt paste. 20150403 06:59:35< shadowm> I'm out of ideas, sorry. :( 20150403 07:01:22< shadowm> Well, with Wesnoth the built-in backtrace doesn't show any symbols for me either. 20150403 07:02:00< shadowm> There's probably some subtle difference between how Wesnoth is built with scons here and how my program is built with cmake. 20150403 07:03:19< shadowm> cd /home/shadowm/src/projects/lilith/build/src && /usr/bin/g++ -DENABLE_CXX_BACKTRACE -rdynamic -g -I/home/shadowm/src/projects/lilith/src --std=c++11 -W -Wall -o CMakeFiles/lilith-core.dir/utils/literals.cpp.o -c /home/shadowm/src/projects/lilith/src/utils/literals.cpp 20150403 07:03:37< shadowm> /usr/bin/ccache clang++-3.4 -o build/debug/wesnoth.o -c -std=c++98 -pipe -march=native -pthread -W -Wall -Werror -Wno-unused-local-typedefs -Qunused-arguments -Wno-unknown-warning-option -O0 -DDEBUG -ggdb3 -D_GNU_SOURCE=1 -D_REENTRANT -DHAVE_LIBDBUS -DHAVE_LIBPNG -DHAVE_HISTORY -DHAVE_CONFIG_H -D_X11 -Ibuild -Isrc -I/usr/include/SDL -I/usr/include -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/glib-2.0 ... 20150403 07:03:43< shadowm> ... -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/fribidi src/wesnoth.cpp 20150403 07:04:19< iceiceice> im going to try using -g and -rdynamic 20150403 07:04:24< shadowm> Okay, other than g++ and -rdynamic (which were originally clang+ and no -rdynamic switch anyway) I see 20150403 07:04:39< shadowm> -ggdb3 20150403 07:05:49< shadowm> Doesn't affect my program. 20150403 07:06:19< iceiceice> it is pretty funny that Dugi led the april fools day this year 20150403 07:06:35< iceiceice> really did not see that coming 20150403 07:07:43< iceiceice> i am trying to compile again with -ggdb3 20150403 07:07:57< shadowm> Nah, it won't make a difference. 20150403 07:08:41< iceiceice> i didt have -g at all before 20150403 07:08:45< iceiceice> only -rdynamic 20150403 07:08:53< shadowm> I think libc just prefers my program to Wesnoth. 20150403 07:09:04< shadowm> Maybe it's allergic to big executables. 20150403 07:09:36< shadowm> (1.5 MiB versus 183 MiB.) 20150403 07:10:19< shadowm> Or compiling as C++11 somehow makes a difference because pie (IDK at this point). 20150403 07:11:15< shadowm> Well, I'm out, and I'm dedicating my time later to those FS tests. 20150403 07:12:38< iceiceice> yeah gn 20150403 07:36:20-!- Appleman1234 [~Appleman1@s108.BMT-e1.vectant.ne.jp] has quit [Ping timeout: 272 seconds] 20150403 07:52:13-!- Appleman1234 [~Appleman1@s108.BMT-e1.vectant.ne.jp] has joined #wesnoth-dev 20150403 08:19:16-!- Kwandulin [~Miranda@p5B008A20.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20150403 08:21:58-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20150403 08:24:37-!- kingdom_ [~kingdom@123.157.71.141] has joined #wesnoth-dev 20150403 08:26:50-!- kingdom_ [~kingdom@123.157.71.141] has quit [Read error: Connection reset by peer] 20150403 08:41:40-!- Haudegen [~quassel@85.124.51.57] has quit [Ping timeout: 255 seconds] 20150403 08:56:09-!- Haudegen [~quassel@85.124.51.57] has joined #wesnoth-dev 20150403 08:59:45-!- Kwandulin [~Miranda@p5B008A20.dip0.t-ipconnect.de] has joined #wesnoth-dev 20150403 09:03:28< irker196> wesnoth: Charles Dang wesnoth:master c869b79a8c97 / data/core/ (6 files in 2 dirs): Cloned Dwarvish Guardsman bob to the Stalwart. Images by Kwandulin http://git.io/veLf9 20150403 09:07:58-!- tomreyn [~tomreyn@megaglest/team/tomreyn] has joined #wesnoth-dev 20150403 09:41:06-!- shadowm_desktop [ignacio@wesnoth/developer/shadowm] has quit [Ping timeout: 272 seconds] 20150403 09:46:25-!- kingdom_ [~kingdom@27.115.116.218] has joined #wesnoth-dev 20150403 09:46:54-!- kingdom_ [~kingdom@27.115.116.218] has quit [Remote host closed the connection] 20150403 09:49:51-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has quit [Ping timeout: 244 seconds] 20150403 10:09:53-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20150403 10:19:23-!- Appleman1234 [~Appleman1@s108.BMT-e1.vectant.ne.jp] has quit [Ping timeout: 256 seconds] 20150403 10:42:42-!- Appleman1234 [~Appleman1@s108.BMT-e1.vectant.ne.jp] has joined #wesnoth-dev 20150403 10:45:40-!- mjs-de [~mjs-de@p508C95A0.dip0.t-ipconnect.de] has joined #wesnoth-dev 20150403 10:46:52-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20150403 10:59:21-!- Appleman1234 [~Appleman1@s108.BMT-e1.vectant.ne.jp] has quit [Ping timeout: 264 seconds] 20150403 11:17:11-!- Appleman1234 [~Appleman1@s108.BMT-e1.vectant.ne.jp] has joined #wesnoth-dev 20150403 11:31:44-!- Kwandulin [~Miranda@p5B008A20.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20150403 12:18:14-!- timotei_ [~timotei@wesnoth/developer/timotei] has quit [Ping timeout: 256 seconds] 20150403 12:19:15-!- timotei_ [~timotei@wesnoth/developer/timotei] has joined #wesnoth-dev 20150403 12:20:22-!- kex [~kex@78.157.29.160] has joined #wesnoth-dev 20150403 12:22:36-!- irker196 [~irker@uruz.ai0867.net] has quit [Quit: transmission timeout] 20150403 12:23:40-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has joined #wesnoth-dev 20150403 12:36:04-!- mordante [~mordante@wesnoth/developer/mordante] has joined #wesnoth-dev 20150403 12:36:08-!- mordante [~mordante@wesnoth/developer/mordante] has quit [Remote host closed the connection] 20150403 12:58:59-!- kex [~kex@78.157.29.160] has quit [Remote host closed the connection] 20150403 13:00:41-!- stikonas_ [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20150403 13:01:27-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Ping timeout: 256 seconds] 20150403 13:13:02-!- Kwandulin [~Miranda@p5B008A20.dip0.t-ipconnect.de] has joined #wesnoth-dev 20150403 13:13:03-!- ancientcc [~ancientcc@140.207.223.191] has joined #wesnoth-dev 20150403 13:13:04-!- ancientcc [~ancientcc@140.207.223.191] has quit [Read error: Connection reset by peer] 20150403 13:13:05-!- ancientcc_ [~ancientcc@140.207.223.191] has joined #wesnoth-dev 20150403 13:13:37-!- ancientcc_ [~ancientcc@140.207.223.191] has quit [Remote host closed the connection] 20150403 13:32:03-!- prkc [~prkc@4E5CD609.dsl.pool.telekom.hu] has joined #wesnoth-dev 20150403 13:40:19-!- ancientcc [~ancientcc@211.162.34.199] has joined #wesnoth-dev 20150403 13:42:01-!- ancientcc [~ancientcc@211.162.34.199] has quit [Client Quit] 20150403 13:46:11-!- mjs-de [~mjs-de@p508C95A0.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 20150403 13:56:25-!- Necrosporus_ is now known as Necrosporus 20150403 14:06:25-!- kex [~kex@95.180.213.88] has joined #wesnoth-dev 20150403 14:37:47-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has quit [Ping timeout: 252 seconds] 20150403 14:38:51-!- Haudegen [~quassel@85.124.51.57] has quit [Ping timeout: 250 seconds] 20150403 14:47:41-!- stikonas_ [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20150403 14:52:51-!- Haudegen [~quassel@85.124.51.57] has joined #wesnoth-dev 20150403 15:05:14-!- Appleman1234 [~Appleman1@s108.BMT-e1.vectant.ne.jp] has quit [Ping timeout: 246 seconds] 20150403 15:06:49-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has joined #wesnoth-dev 20150403 15:12:59-!- [Relic] [~Relic]@2602:306:33a3:6d30:659e:9b1d:f78b:12c] has joined #wesnoth-dev 20150403 15:14:15-!- ancientcc [~ancientcc@140.207.223.191] has joined #wesnoth-dev 20150403 15:17:37-!- ancientcc [~ancientcc@140.207.223.191] has quit [Remote host closed the connection] 20150403 15:45:07-!- boucman_work [~jrosen@wesnoth/developer/boucman] has quit [Ping timeout: 255 seconds] 20150403 16:30:47-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20150403 16:34:17-!- new_one [~new_one@128.42.64.208] has joined #wesnoth-dev 20150403 16:56:28-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20150403 16:56:53-!- Kwandulin [~Miranda@p5B008A20.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20150403 16:56:54-!- gfgtdf [~chatzilla@x55b112d0.dyn.telefonica.de] has joined #wesnoth-dev 20150403 17:02:44-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20150403 17:08:47< gfgtdf> vultraz: ^ 20150403 17:08:57-!- irker383 [~irker@uruz.ai0867.net] has joined #wesnoth-dev 20150403 17:08:57< irker383> wesnoth: gfgtdf wesnoth:master 3c1bead96fea / src/ (menu_events.cpp play_controller.hpp): fix :cl and :n debug commands in linger mode. http://git.io/vemeX 20150403 17:09:06< vultraz> will test 20150403 17:09:41< gfgtdf> vultraz: i actually dont know how they are supposed to work in linger mode 20150403 17:10:49< gfgtdf> vultraz: i think with that patch they will only set the next scenario but not end teh linger mode (you still have to press the "end scenario" button) 20150403 17:11:01< gfgtdf> vultraz: idk if rthats was teh previous behaviour 20150403 17:12:23< vultraz> IMO 20150403 17:12:33< vultraz> :n in linger mode should be the same as clicking End Scenario 20150403 17:12:52< vultraz> :cl in linger mode should be the same as clicking End Scenario, but with a different next_scenario 20150403 17:14:35< gfgtdf> vultraz: is there any reason to use :n in linger mode? I mean end scenrai is easier and you dont need debug mode for it. 20150403 17:15:00< vultraz> there isn't 20150403 17:15:02< vultraz> but it should still work 20150403 17:15:08< vultraz> just call the same codepath 20150403 17:15:23< vultraz> really, any scenario ending action should call the same codepath 20150403 17:17:21< gfgtdf> vultraz: it's not that easy 20150403 17:18:38< gfgtdf> vultraz: linger mode and normal game are already quiet codepaths. Most importantly the end turn button does differnt things. 20150403 17:32:27-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20150403 17:33:17-!- Kwandulin [~Miranda@p5B008A20.dip0.t-ipconnect.de] has joined #wesnoth-dev 20150403 17:33:20-!- noy [~Noy@S01067cb21b205894.vs.shawcable.net] has joined #wesnoth-dev 20150403 17:33:36-!- noy [~Noy@S01067cb21b205894.vs.shawcable.net] has quit [Changing host] 20150403 17:33:36-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20150403 17:35:23< irker383> wesnoth: Bär Halberkamp wesnoth:master ae0a2fe2cc66 / changelog data/core/macros/utils.cfg data/lua/wml-tags.lua: Removed [full_heal] http://git.io/vemYt 20150403 17:35:42-!- bumbadadabum [~bumbadada@d155109.upc-d.chello.nl] has joined #wesnoth-dev 20150403 17:51:45< vultraz> don't forget the wiki 20150403 17:53:47< vultraz> gfgtdf: it indeed just sets the next scenario 20150403 18:22:39-!- mjs-de [~mjs-de@p508C95A0.dip0.t-ipconnect.de] has joined #wesnoth-dev 20150403 18:40:06-!- esr [~esr@wesnoth/developer/esr] has quit [Quit: WeeChat 1.0.1] 20150403 18:41:25-!- Haudegen [~quassel@85.124.51.57] has quit [Ping timeout: 248 seconds] 20150403 18:42:29-!- esr [~esr@static-71-162-243-5.phlapa.fios.verizon.net] has joined #wesnoth-dev 20150403 18:42:29-!- esr [~esr@static-71-162-243-5.phlapa.fios.verizon.net] has quit [Changing host] 20150403 18:42:29-!- esr [~esr@wesnoth/developer/esr] has joined #wesnoth-dev 20150403 18:55:17-!- Haudegen [~quassel@85.124.51.57] has joined #wesnoth-dev 20150403 19:10:35-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has quit [Ping timeout: 252 seconds] 20150403 19:37:39-!- kex [~kex@95.180.213.88] has quit [Remote host closed the connection] 20150403 19:39:56-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20150403 19:40:34-!- Guest23637 is now known as Espreon 20150403 19:40:41-!- Espreon [~espreon@uruz.ai0867.net] has quit [Changing host] 20150403 19:40:41-!- Espreon [~espreon@wesnoth/developer/espreon] has joined #wesnoth-dev 20150403 19:53:07-!- anonymissimus [~chatzilla@HSI-KBW-078-042-069-130.hsi3.kabel-badenwuerttemberg.de] has joined #wesnoth-dev 20150403 19:55:13-!- shadowm_desktop [ignacio@wesnoth/developer/shadowm] has joined #wesnoth-dev 20150403 19:55:28< anonymissimus> I'm getting some strange stderr messages that I shouldn't as I don't have those addons installed: http://pastebin.com/d2ygBHuf 20150403 19:56:52< Ravana_> some other addon wants them then 20150403 19:57:03< anonymissimus> it's looking for "Bobs_RPG_Era" even when I start using an empty userdata dir (with --config-dir) 20150403 19:58:17< anonymissimus> running within a source tree..also cleared the cache...as if mainline is somewhere looking for that stuff 20150403 20:00:17< iceiceice> master or 1.12? 20150403 20:00:21< anonymissimus> 1.12 20150403 20:00:39< iceiceice> sounds like a bug :p 20150403 20:00:47< iceiceice> i have to go i will be back later 20150403 20:00:49-!- iceiceice [~chris@wesnoth/developer/iceiceice] has quit [Quit: Leaving] 20150403 20:03:40-!- mjs-de [~mjs-de@p508C95A0.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 20150403 20:04:18< anonymissimus> the addons sound kinda famliar though...perhaps wesnoth is confusing something, using an old cache from somewhere or similar; perhaps I had those installed, or have it installed somewhere else 20150403 20:04:50-!- anonymissimus [~chatzilla@HSI-KBW-078-042-069-130.hsi3.kabel-badenwuerttemberg.de] has quit [Quit: ChatZilla 0.9.90.1 [Firefox 11.0/20120312181643]] 20150403 20:18:33-!- travis-ci [~travis-ci@ec2-54-226-110-117.compute-1.amazonaws.com] has joined #wesnoth-dev 20150403 20:18:34< travis-ci> cbeck88/wesnoth#159 (crash_reporter - 9afeb5e : Chris Beck): The build was broken. 20150403 20:18:34< travis-ci> Build details : http://travis-ci.org/cbeck88/wesnoth/builds/57087427 20150403 20:18:34-!- travis-ci [~travis-ci@ec2-54-226-110-117.compute-1.amazonaws.com] has left #wesnoth-dev [] 20150403 20:19:10-!- travis-ci [~travis-ci@ec2-50-16-2-196.compute-1.amazonaws.com] has joined #wesnoth-dev 20150403 20:19:11< travis-ci> cbeck88/wesnoth#160 (crash_reporter - 3fd9e93 : Chris Beck): The build has errored. 20150403 20:19:11< travis-ci> Build details : http://travis-ci.org/cbeck88/wesnoth/builds/57087600 20150403 20:19:11-!- travis-ci [~travis-ci@ec2-50-16-2-196.compute-1.amazonaws.com] has left #wesnoth-dev [] 20150403 20:35:10-!- bumbadadabum [~bumbadada@d155109.upc-d.chello.nl] has quit [Ping timeout: 244 seconds] 20150403 20:37:13-!- irker383 [~irker@uruz.ai0867.net] has quit [Quit: transmission timeout] 20150403 20:40:15-!- Kwandulin [~Miranda@p5B008A20.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20150403 20:41:03-!- travis-ci [~travis-ci@ec2-50-16-2-196.compute-1.amazonaws.com] has joined #wesnoth-dev 20150403 20:41:04< travis-ci> cbeck88/wesnoth#161 (crash_reporter - c2ac0dd : Chris Beck): The build failed. 20150403 20:41:04< travis-ci> Build details : http://travis-ci.org/cbeck88/wesnoth/builds/57090044 20150403 20:41:04-!- travis-ci [~travis-ci@ec2-50-16-2-196.compute-1.amazonaws.com] has left #wesnoth-dev [] 20150403 20:41:58-!- new_one [~new_one@128.42.64.208] has quit [Quit: WeeChat 1.1.1] 20150403 21:02:55-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20150403 21:13:56-!- shadowm_desktop [ignacio@wesnoth/developer/shadowm] has quit [Ping timeout: 252 seconds] 20150403 21:15:36-!- shadowm_desktop [ignacio@wesnoth/developer/shadowm] has joined #wesnoth-dev 20150403 21:17:51-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has joined #wesnoth-dev 20150403 21:19:00-!- irker462 [~irker@uruz.ai0867.net] has joined #wesnoth-dev 20150403 21:19:00< irker462> wesnoth: gfgtdf wesnoth:master afab09aae934 / RELEASE_NOTES: Update RELEASE_NOTES http://git.io/veYpI 20150403 21:20:53< shadowm> shikadibot: seen ancestral 20150403 21:20:53< shikadibot> shadowm: The person with the nick ancestral 3d 16h ago they left with the message: Quit: ancestral 20150403 21:24:19-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20150403 21:25:58-!- travis-ci [~travis-ci@ec2-50-16-2-196.compute-1.amazonaws.com] has joined #wesnoth-dev 20150403 21:25:59< travis-ci> cbeck88/wesnoth#162 (crash_reporter - a3a184c : Chris Beck): The build was fixed. 20150403 21:25:59< travis-ci> Build details : http://travis-ci.org/cbeck88/wesnoth/builds/57091481 20150403 21:25:59-!- travis-ci [~travis-ci@ec2-50-16-2-196.compute-1.amazonaws.com] has left #wesnoth-dev [] 20150403 21:32:54< shadowm> Do we currently use the Boost STL list initialization list thingy? 20150403 21:34:14< gfgtdf> shadowm: we currently use boost::list_of if thats what you mean 20150403 21:52:50-!- cjhopman [cjhopman@nat/google/x-fworbartwrcmfiij] has quit [Ping timeout: 256 seconds] 20150403 21:54:48< shadowm> Ah, yes, that's it. 20150403 22:04:43-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20150403 22:07:39-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20150403 22:08:22-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Client Quit] 20150403 22:12:49-!- new_one [~new_one@50.15.126.83] has joined #wesnoth-dev 20150403 22:20:49-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20150403 22:27:12-!- kex [~kex@78.157.29.160] has joined #wesnoth-dev 20150403 22:35:07-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Read error: Connection reset by peer] 20150403 22:35:29-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20150403 22:56:52< shadowm> The hell. 20150403 23:03:20-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20150403 23:25:49-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has quit [Ping timeout: 265 seconds] 20150403 23:44:30< gfgtdf> ? 20150403 23:44:47-!- Haudegen [~quassel@85.124.51.57] has quit [Ping timeout: 244 seconds] 20150403 23:57:37-!- Haudegen [~quassel@85.124.51.57] has joined #wesnoth-dev --- Log closed Sat Apr 04 00:00:29 2015