00:10:49 Inappropriate insult by Donald (https://crawl.develz.org/mantis/view.php?id=1702) by Niccus 00:51:37 -!- jarpiain_ is now known as jarpiain 01:30:34 -!- pineappl1 is now known as pineapple 01:51:44 -!- by has joined ##crawl-dev 01:52:31 !lm * type=crash 01:52:32 9. [2010-06-08] BirdoPrey the Sneak (L5 VpAs) ASSERT(item.base type == OBJ CORPSES && item.sub type == CORPSE BODY) in 'misc.cc' at line 155 failed on turn 3218. (D:4) 01:52:38 also, good morning 01:52:44 !lm * type=crash -tv 01:52:45 9. BirdoPrey, XL5 VpAs, T:3218 (milestone) requested for FooTV. 01:53:12 !lm * type=crash -tv:cancel 01:53:21 !lm * type=crash -tv:<0.2 01:53:35 9. BirdoPrey, XL5 VpAs, T:3218 (milestone) cancel requested for FooTV. 01:53:35 9. BirdoPrey, XL5 VpAs, T:3218 (milestone) requested for FooTV. 01:55:50 !lm * type=crash -tv:cancel 01:55:50 9. BirdoPrey, XL5 VpAs, T:3218 (milestone) cancel requested for FooTV. 01:56:13 !lm * type=crash -tv:<0 01:56:14 9. BirdoPrey, XL5 VpAs, T:3218 (milestone) requested for FooTV. 01:57:41 ??henzell 01:57:47 henzell[1/2]: Linley Henzell is the original creator of Crawl. He is also the ##crawl bot. If you want the source for *this bot*, go here: http://crawl.akrasiac.org/henzell/src/ or git clone http://crawl.akrasiac.org/henzell/src/henzell/.git 02:19:12 !tell greensnark For some reason, crash playback seems to start at ttyrec beginning. 02:19:12 by: OK, I'll let greensnark know. 02:36:43 Summon Ugly Thing summons a group in Pan (https://crawl.develz.org/mantis/view.php?id=1703) by evktalo 02:37:02 it always summons a group. 02:48:39 -!- ortoslon has joined ##crawl-dev 02:49:00 xale: No, it does not. 02:49:28 Hey ortoslon - played Hydorah yet? :) 02:49:49 yes, i'm on the last level now 02:51:32 i won't record a video of it though, TimW at http://www.youtube.com/indiegamescom#p/u is doing a good job 02:54:39 I managed to beat the first three levels! \o/ 02:56:16 Hi. 02:57:11 -!- ais523 has joined ##crawl-dev 03:04:27 -!- elly__ has joined ##crawl-dev 03:04:39 -!- sorear_ has joined ##crawl-dev 03:05:14 -!- elly has quit [Disconnected by services] 03:05:19 -!- elly__ is now known as elly 03:06:00 Hi due! 03:06:15 Hi eino! 03:09:15 -!- sorear has quit [*.net *.split] 03:09:16 -!- ixtli has quit [*.net *.split] 03:09:16 -!- Gretell has quit [*.net *.split] 03:09:19 -!- ixtli_ has joined ##crawl-dev 03:13:33 mmm, is -pedantic really necessary? 03:13:45 always 03:14:27 well, it's pretty buggy 03:15:02 elly: for catching errors, or is it actually needed for the compile? 03:15:11 no idea 03:15:13 I hope it's the first, but you never know with Crawl... 03:15:40 like, it complains about commas after the last enum, even though that's specifically allowed in C++98, C++03 and C++0x, not to mention C99. 03:16:16 --std=c99 allows that but you can't specify that for C++ 03:16:34 and that's a point even MSVC gets right 03:17:20 msvc allows a lot of useful non-standard things for what I've seen. 03:18:12 -!- ortoslon has quit [Read error: Connection reset by peer] 03:18:38 the issue with msvc is that it uses a different syntax for many of the nonstandard things than everyone else's 03:18:54 compare C99's %lld printf specifier to MSVC's 64, for instance 03:19:07 *compare C99's %lld printf specifier to MSVC's %I64, for instance 03:19:15 (%I is a control code in this client unless escaped) 03:19:51 If you've got to invent things, you might as well make them understandable. 03:20:28 -!- sorear_ is now known as sorear 03:20:28 I wonder if C ever will be a strict subset of C++ again? 03:20:46 IIRC the standards bodies want to move in that direction, just it's so hard to get anything standardised 03:21:12 not possible, C++ explicitely disallows some constructs 03:21:36 C99 has deprecated some of those constructs, hasn't it? 03:21:38 I wonder what kind of clang that lad yesterday used for Crawl. 03:21:47 maybe C will disallow them too in the future 03:21:47 and try this: "int class;" -- I can think of no way C++ could possibly allow that 03:22:02 The one from Fedora fails horribly at arcane things like and :D 03:22:02 hmm, perhaps 03:22:19 KiloByte: would you consider merging Luca__'s clang fixes? I'm not that comfortable with the makefiles 03:22:25 you might need just the one compatibility include, then 03:22:47 it wouldn't conflict with the C standards to say that #include or whatever would make the word "class" disallowed for use by the user 03:22:57 * Zao pokes Luca__ with a stick. 03:23:01 by: Debian's clang doesn't run C++ yet, lemme try to install it from source 03:23:17 much like #include means that you aren't allowed to mess with the definition of getc 03:23:58 -!- by has quit [Disconnected by services] 03:24:01 -!- by_ has joined ##crawl-dev 03:24:09 -!- by_ is now known as by 03:26:58 unify level id handling (https://crawl.develz.org/mantis/view.php?id=1704) by rob 03:30:35 morning rob 03:31:15 hi due 03:32:10 hmm, where's Gretell off to 03:33:25 @whereis Gretell 03:33:50 (is that an infinite loop?) 03:34:27 casmith789: I've seen botloops, they aren't pretty 03:34:29 but that wouldn't be one 03:37:50 Gretell's in a split 03:40:47 wow, that's a long split, more than half an hour 03:40:52 splits tend to be larger but shorter 03:42:05 Napkin is unsplit (even though he ragequit ##crawl-dev due to having a single bad mudation in a nice set) 03:42:53 in a DS? 03:43:20 btw, never think about compiling clang with -jX without having nearly a GB of memory per job 03:43:52 the system thrashes so bad even irssi takes >1s to respond to keypresses 03:44:05 -!- ogaz has quit [Quit: ChatZilla 0.9.86 [Firefox 3.6.3/20100401080539]] 03:47:44 -!- Niccus has quit [Quit: out] 03:51:54 -!- syllogism has joined ##crawl-dev 03:51:57 -!- Textmode has quit [Quit: Over the ages, man has been certain of a great many things. some of these things were even true.] 03:54:22 that would seem to depend on a scheduler. :-) 03:56:18 the linux scheduler fails HARD in one-disk thrash death situations 03:56:22 is yours better? 03:56:54 (actually, any kernel mode I/O situation. 2GB core dump = 3 minute system unusability) 03:57:02 KiloByte: I'm confused as to why ragequitting a game would make you ragequit a channel 03:57:46 ais523: there's quitting, and then there's quitting 03:58:00 hmm, I suppose so 03:58:04 one is the 'Q' command, the other is a verb form most commonly applied to drugs 03:58:53 control-Q, surely? 04:00:00 * ais523 tries to remember what plain Q does in Crawl 04:00:30 ah, it's quiver, just like in NetHack 04:00:39 couldn't remember because I normally just use ( and ) 04:05:41 anyone know why DELAY_DESCENDING_STAIRS passes along you.absdepth0 as a delay parameter? 04:07:36 ... 04:07:53 that sounds outright wrong 04:08:28 unless it's just a case of epic mislabelling 04:08:34 I'd expect absdepth0 to not change between starting the delay and handling it 04:09:01 as far as I can tell, the old_level parameter to down_stairs is just needed for the portal spell 04:10:07 speaking of down_stairs()... don't even look at up_stairs() or you'll get a seizure due to witnessing the worst case of harmful code duplication ever 04:10:18 I am right now... 04:12:08 KiloByte: are the two functions actually different in important respects? that would be even worse 04:12:52 many things can happen only when going up or when going down 04:14:44 ugh 04:15:34 down_/up_stairs make me *cry*. 04:17:33 I've only read one of the Crawl sourcefiles, and it made me physically ill 04:17:36 I'm not sure I'll dare to read another 04:17:50 Some of them are good. 04:17:52 Some of them are... bad. 04:18:34 from what I've heard, the efforts of the current devteam are making things better on average 04:18:56 Yeah. 04:28:58 by: "delay parameter" means "parameter to the delay function" aka "userdata" 04:29:22 it has nothing to do with the number of turns. which is calculated in an unrelated place! 04:29:54 ais523: don't forget the thirteen years of previous devteams 04:30:28 sorear: yes, I understand that (I think) 04:31:20 the issue is that instead of calling down_stairs(you.absdepth0), _finish_delay calls down_stairs(delay.parm1), and main.cc starts DELAY_DESCENDING_STAIRS with parm1 == you.absdepth0 04:31:53 I can't think of any way that you.absdepth0 would change between starting and finishing the delay 04:32:20 and I'd like to get rid of the old_level argument to down_stairs, which seems to only be used for a portal hack 04:32:33 sorear: no, I know about them, that's the most likely explanation iMO 04:32:42 the current devteam are doing a good job, especially given what they have to work with 04:38:31 can a multi-turn action be interrupted by a user? 04:38:55 or by game events only. 04:39:33 at least some can be interrupted configurably 04:40:32 I'm sure you could write a Lua function that prints a message every turn and interrupt activities on that 04:40:43 not sure if there's a direct way to do it 05:02:15 our makefile is a monstrosity, using zoology instead of feature tests :( 05:02:41 looking at the compiler's version instead of checking if it accepts X is the worst 05:04:39 -!- Mu_ has joined ##crawl-dev 05:04:46 neunon takes it badly when I replace his tables with checks, but fixing clang support would be extra hairy otherwise 05:05:21 but gcc-opt.pl and gcc-opt-x86.pl are just beyond words 05:05:46 not to mention that they do the same thing as -march=native except for being badly incomplete 05:11:10 -!- ortoslon has joined ##crawl-dev 05:29:55 -!- ortoslon has quit [Quit: bye] 05:34:03 -!- eith has joined ##crawl-dev 05:45:09 03by * redf2169b753f 10/crawl-ref/source/stairs.cc: Also erase old level data in down_stairs if appropriate. 05:45:09 03by * re08777be5870 10/crawl-ref/source/files.cc: Don't reset you.prev_targ, you.prev_grd_targ in _save_level. 05:45:09 03by * r4b4c3a1ca466 10/crawl-ref/source/ (delay.cc main.cc): Don't use parm1 for DELAY_DESCENDING_STAIRS. 05:45:09 03by * rbfbd93d7ffc3 10/crawl-ref/source/ (9 files): Replace down_stairs old_level argument by forced destination. 05:45:09 03by * r7e4039d061d9 10/crawl-ref/source/stairs.cc: Don't consider Portal destination stairs known. 05:45:22 03by * r06a73d1d0edd 10/crawl-ref/source/files.cc: Make visitor's _load_level pass an invalid id as the old level. 05:45:33 03by * r3582d859caa6 10/crawl-ref/source/ (files.cc files.h stairs.cc startup.cc wiz-dgn.cc): Make load() take level_id old_level. 05:45:44 03by * r09062a67d643 10/crawl-ref/source/files.cc: Use shorter _make_filename some more. 05:46:01 woohooo 05:46:05 03by * rb60cdfa1fc43 10/crawl-ref/source/files.cc: Update travel cache before saving level. 05:46:10 looks *hoot* 06:11:21 03dolorous * redf888b2941d 10/crawl-ref/source/player.cc: Add spacing fixes. 06:14:53 by: Thanks for fixing tc save 06:14:54 greensnark: You have 1 message. Use !messages to read it. 06:15:01 I totally didn't think of that 06:15:03 !messages 06:15:03 (1/1) by said (3h 55m 51s ago): For some reason, crash playback seems to start at ttyrec beginning. 06:15:12 Hm 06:15:17 !lm * type=crash 06:15:17 11. [2010-06-08] MUMMY the Summoner (L15 VpTm) ASSERT(mimic->inv[MSLOT MISCELLANY] != NON ITEM) in 'mon-stuff.cc' at line 177 failed on turn 87084. (Snake:4) 06:15:35 ooh, more crashes 06:15:49 !lm * type=crash -tv:<0.3 06:15:49 11. MUMMY, XL15 VpTm, T:87084 (milestone) requested for FooTV. 06:16:10 Hm, what do you know 06:16:28 did it work now? 06:16:32 Can't say :) 06:16:43 !lm * type=crash -tv 06:16:43 11. MUMMY, XL15 VpTm, T:87084 (milestone) requested for FooTV. 06:17:06 Well, he tried to describe a mimic 06:17:09 crash crash crashy mccrash 06:17:21 But that's not a good test for whether seeking works correctly in FooTV :) 06:17:24 !lm * type=crash -tv -2 06:17:24 10. MUMMY, XL15 VpTm, T:87272 (milestone) requested for FooTV. 06:17:28 What 06:17:46 He must be very interested in mimics 06:18:27 obsessed? 06:18:58 !lm * type=crash 10 -tv:cancel 06:18:58 10. MUMMY, XL15 VpTm, T:87272 (milestone) cancel requested for FooTV. 06:19:02 !lm * type=crash 10 -tv:<0.3 06:19:02 10. MUMMY, XL15 VpTm, T:87272 (milestone) requested for FooTV. 06:19:44 * greensnark ponders 06:19:50 !lm * type=crash 10 x=time 06:19:50 10. [2010-06-08] [time=2010-06-08] MUMMY the Summoner (L15 VpTm) ASSERT(mimic->inv[MSLOT MISCELLANY] != NON ITEM) in 'mon-stuff.cc' at line 177 failed on turn 87272. (Snake:4) 06:19:54 Bleh 06:21:41 greensnark: I'd like to merge Luca__'s clientserver work (it seems very good), but am unsure about 0.7 -- what do you think? 06:22:17 Hm, it's probably best to wait until 0.7 is branched 06:24:32 -!- Henzell has quit [Remote host closed the connection] 06:25:08 Oh, Gretell is awol? 06:25:20 I should convert Gretell to basicbot so she reconnects 06:25:49 -!- Gretell has joined ##crawl-dev 06:26:05 -!- Henzell has joined ##crawl-dev 06:26:18 !lm * type=crash 10 x=time,rstart 06:26:20 10. [2010-06-08] [time=2010-06-08 [20100508111131S];rstart=2010-06-02 [20100502091145S]] MUMMY the Summoner (L15 VpTm) ASSERT(mimic->inv[MSLOT MISCELLANY] != NON ITEM) in 'mon-stuff.cc' at line 177 failed on turn 87272. (Snake:4) 06:33:39 ?/ mimics causes crash (https://crawl.develz.org/mantis/view.php?id=1705) by OG17 06:33:47 03kilobyte * rfc187f589343 10/crawl-ref/source/ (makefile util/gcc-opt-x86.pl util/gcc-opt.pl): Purge get-opt{,-x86}.pl, -march=native does the same without incomplete zoology. 06:33:48 03kilobyte * r30ac188b995f 10/crawl-ref/source/ (makefile util/gcc-gte.pl): Replace gcc version comparison by feature checks. 06:43:43 Allies detect mimics, attack without revealing them (https://crawl.develz.org/mantis/view.php?id=1706) by OG17 06:54:25 -!- ortoslon has joined ##crawl-dev 07:08:51 Summons' torment is broken (https://crawl.develz.org/mantis/view.php?id=1707) by OG17 07:13:30 by: Looks like FooTV seek was failing for crash milestones because the crash timestamp is after the timestamp of the last ttyrec frame 07:13:48 ah 07:13:54 I've fixed it to just use the last frame if the timestamp is beyond the end 07:14:13 thanks for looking into it! 07:14:29 No problem, it's a good thing to have working 07:14:38 is it ok to leave the crash milestone as is, then? 07:15:15 Yes 07:15:57 !lm * type=crash 10 -tv:<0.3 07:15:57 10. MUMMY, XL15 VpTm, T:87272 (milestone) requested for FooTV. 07:16:58 Huh :P 07:28:34 -!- Zaba has quit [Ping timeout: 264 seconds] 07:30:28 -!- ortoslon has quit [Ping timeout: 260 seconds] 07:32:09 -!- Zaba has joined ##crawl-dev 07:39:19 -!- ixtli_ has quit [Quit: ixtli_] 07:40:32 Ack, the Ugly Thing & Haunt level increases are behind a version bump.. I can't get them for my current game. :P 07:42:08 ^Qyes helps with that 07:42:35 Oh, I see you did :P 07:43:04 Master branch on CDO updated to: 0.7.0-a0-2275-g30ac188 (25.2) 07:43:09 ..needlessly :) 07:44:07 -!- bhaak is now known as demoqorqon 07:44:14 -!- demoqorqon is now known as bhaak 07:45:33 -!- ixtli has joined ##crawl-dev 07:52:59 -!- eith has quit [Ping timeout: 248 seconds] 07:56:03 short len = unmarshallShort(th); 07:56:07 can things go wrong there? 07:56:27 unmarshallShort returns int16_t 07:57:27 short could be not 16 bits 07:59:41 actually, the marshalled short is always 16 bit, and marshalled long is 32 (!), even though you'd expect 64 08:00:04 why would you expect that? 08:00:21 since sizeof(long) == 8 08:00:33 depending on the architecture, of course 08:00:51 elly: "may", I'd say, as it most can be 16-bit :D 08:01:07 +certainly 08:01:20 on all architectures currently supported by crawl, int is 32 bits, but long varies 08:01:57 expect the unexpected! 08:02:29 anyway, I'm wondering if (un)marshallString could have issues that explain https://crawl.develz.org/mantis/view.php?id=1466 08:02:33 at least it's not win64 where QWORD is not four, but one word long :p 08:02:54 the crashes seem to be in unmarshallString 08:03:10 on a lot of architectures it isn't. on most, I'd say. 08:03:35 I was wondering if unmarshallCString could return a negative value, say 08:05:54 Zao: I used clang svn head 08:06:08 released versions probably don't work 08:07:11 also, if using a clang release build, I don't think it's supposed to have huge memory consumption 08:07:26 I think it's supposed to use less memory than gcc 08:07:30 -!- Luca__ has quit [Remote host closed the connection] 08:07:42 I thought he was referring to a memory consumption when building clang itself. 08:07:45 -!- Luca__ has joined ##crawl-dev 08:08:37 unmarshallString looked horrible when I last read it 08:08:48 in particular, it imposes a 1000 char limit for no reason 08:09:02 instead of using ostringstream in the obvious way 08:10:00 btw, how about an overloaded operator << and operator >> instead of marshall* ? 08:10:22 then you can also overload operator & to both read and write like boost does 08:10:35 it would hide the type, which is bad 08:10:40 it's good 08:10:50 it just works then 08:10:57 it can be error-prone for integer types 08:11:13 we want to always specify the type explicitely, otherwise we'll get loads of unobvious errors 08:12:01 for integers you can use a variable-sized implementation 08:12:03 marshall is a mouthful though, it could be just a mem. fun with a type name 08:12:16 so they are serialized independent of the type length 08:12:22 like the one in my repository 08:12:43 only problem is signedness, but if you get that wrong it will immediately and obviously break 08:12:57 since the sign bit is put in bit 0... 08:13:05 where is it in your repo? 08:13:54 http://repo.or.cz/w/crawl/crawl-nettiles.git/commit/702392b41773381b20f3a5bb48dd01f10b2eec6e 08:14:14 oh I misunderstoof 08:14:37 look at http://www.boost.org/doc/libs/1_43_0/libs/serialization/doc/index.html 08:15:00 I thought you mean that you select a conversion function based on type size. 08:15:04 no 08:15:09 yeah I see now. 08:15:19 you send bytes with 7-bit of data and 1 end bit 08:15:44 clearly, the original type size doesn't matter because it works for arbitrarily long integers 08:16:00 signed/unsigned is necessarily different though unless you encode everything as signed 08:16:29 btw, perhaps the crawl approach could also be dropped in favor of Boost.Serialization 08:16:30 htonl and such are probably much more efficient though. 08:16:54 e.g. they don't have loops. 08:16:57 except, what would you need arbitrarily long integers if they get put into fixed-width variables right then? 08:16:59 in what sense? I think variable sized will result in a more compact output 08:17:17 KiloByte: integers are usually small, so the output is smaller 08:17:32 also, you can expand datatypes without breaking compatibility 08:21:01 03by * r0220ef6173ea 10/crawl-ref/source/ (tags.cc tags.h): Add some asserts to unmarshall(C)String. 08:28:13 heh, clang compiles slower than gcc, and produces minimally slower code. -O0: gcc 1m37s, clang 1m44s, -O2: gcc 2m07s, clang 2m09s. 08:28:36 evktalo (L8 HuSu) (D:8) 08:29:05 That was a crash. 08:29:24 http://crawl.develz.org/morgues/trunk/evktalo/crash-evktalo-20100608-132836.txt 08:29:30 KiloByte: with --enable-optimized right? 08:29:42 yes, it reports the assert message if any, and this wasn't an assert 08:29:43 compile times are stable, run times not really since I lack any decent reproducible tests (-seed works differently) 08:29:59 Luca__: of course, current SVN 08:31:24 I can't think of any long tests that would not involve randomness. And with randomness, we'd need a lot more iterations than I did. 08:32:38 actually, I'm not sure why -seed desyncs, we do everything strictly deterministically 08:32:56 by: I see. I took the downstairs and it crashed, probably generating the level. 08:33:09 no, saving the old level from the backtrace 08:33:43 maybe fsim? 08:33:52 Ah. 08:34:03 fsim is random too, right? 08:34:35 it may be far more stable than -arena 'cerebov v test spawner' that I'm using, though 08:34:36 it does a lot of iterations though, and maybe seed works 08:34:48 delay:0 of course 08:35:02 by: Should I try again? 08:35:24 time (for (( i=0; i<100; i++ ));do ./crawl -arena 'cerebov v test spawner delay:0' >/dev/null;done) 08:35:33 gcc 3m47s, clang 3m55s 08:36:02 Keskitalo: can you copy your save to be on the safe side? I fear it's a random crash, though 08:36:41 Okay. 08:37:05 It won't start. 08:38:20 By which I mean it says "starting (hashnumber)", then "hit enter to continue" and then goes back to CDO menu. 08:39:54 http://crawl.develz.org/saves/dumps/evktalo-30ac188-100608-1336.tar.bz2 08:40:11 clang produces heaps of valgrind errors 08:41:24 Luca__: Slightly tangential, but how's Boost with clang++? 08:41:32 Suicidal or kind of working? 08:41:40 Keskitalo: it's quite possible that the save is messed up because it crashed while saving 08:41:49 :/ 08:41:57 http://clang.llvm.org/cxx_status.html 08:42:06 they claim it passes all tests on darwin/x86-64 08:42:49 Not at losing the game, but not having useful save for the bug :) 08:44:39 the errors come from hundreds of places, but they all are either "Conditional jump or move depends on uninitialised value(s)" or "Invalid read of size 8" 08:45:32 the latter is typically when reading something four last bytes of a malloced area and four bytes past the end of it 08:46:20 it's possible clang throws away the rest of the data read, but it still would crash if it were mmapped not malloced 08:46:56 you could file a bug :-) 08:49:00 could std::vector::push_back failing to allocate cause a backtrace like Keskitalo's above? 08:52:43 could _pbuf be null? that's the first thing that comes to mind. 08:54:52 the game did apparently leave a huge core 08:55:52 actually.. it probably wouldn't get to the handler 08:55:52 if _pbuf were null, I wouldn't expect to see the std::vector functions in the trace 08:56:28 yep, it could very well be an allocation failure. 08:57:10 Could be the change to save maps in the level save is causing Crawl to hit ulimit 08:57:37 infinite loop calling writeByte? 08:58:47 greensnark: what change do you mean? 08:59:19 by: I changed level save to also save full map metadata 08:59:26 Which could be largeish 08:59:53 I don't recall what ulimit cdo uses 08:59:56 But it does use a ulimit 09:00:11 the core is among the maximal ones 09:00:19 You have the core? 09:00:24 How big is it? 09:00:48 77M 09:00:55 Hm, sounds pretty likely then 09:01:12 Could be map saving, or could be a leak 09:01:29 it doesn't seem to happen on every save, at least 09:01:44 Let me try generating a bunch of vaults and saving with a ulimit around 100M 09:01:59 -!- Cryp71c has joined ##crawl-dev 09:03:00 I can just list the cores, however 09:03:07 Morning 09:03:07 Cryp71c: You have 1 message. Use !messages to read it. 09:03:09 !messages 09:03:09 (1/1) casmith789 said (4h 43m 27s ago): I think my remembering of shadow imps was from 3s summoning other 5s; that's what's happening now to cause them to appear, anyway. 09:06:43 well well, looks like my lua marker read crashes are also likely to be out-of-memory caused 09:07:01 that would also explain why they aren't repeatable 09:08:12 could we detect the fact that we're failing to allocate in the crash handler? 09:09:12 -!- by has quit [Disconnected by services] 09:09:12 -!- by_ has joined ##crawl-dev 09:09:17 -!- by_ is now known as by 09:10:05 maybe put an exception-catching block aroud everything? 09:10:17 it should catch an std::bad_alloc 09:10:48 you could redefine new. 09:12:24 and whatever allocators are used by libraries, e.g. lua. 09:12:59 that probably won't be enough though if you have something like strdup() somewhere. 09:18:53 Oh, ^F shows the place where the item is now? 09:19:12 yes, there was some discussion on crd 09:19:26 It's neat, but I don't know if it needs to be the default action 09:19:28 on whether to hide that behind an option, or add extra modes, or whatever 09:19:50 it's an extra Enter (probably ok), though the extra redraw might be problematic 09:20:30 I get a reliable crash with ^F, choose item and hit enter to travel 09:20:35 Apparently in my code :) 09:21:33 I decided to just implement it as now because the stash tracker menu code scared me 09:22:05 Yeah, stash menu has a fairly tangled history 09:22:24 Looks like my changes to vault_placement don't survive level excursions very well 09:22:39 Still doesn't explain the OOM though :) 09:24:44 by, there are numerous uses of an in_array function, but its such a common implement and yet is not already present that I cannot help but think it was left out intentionally, do you know anything on those lines? 09:24:55 no 09:25:07 Would you be opposed to me implementing one? 09:25:55 no (no opinion on the matter) 09:26:15 in_array? 09:26:20 Any other developers want to weigh in? 09:26:37 What would in_array do? 09:26:59 greensnark, yeah, just a function which uses a for loop to check for the presence of a particular value in a particular array. 09:27:20 std::find? 09:28:36 I wasn't aware it could be used on arrays. 09:29:19 I thought std::find was only usable on the more object-oriented containers like lists and vectors. 09:30:05 You can use it on arrays 09:30:17 Don't know if it does the right thing on char * though, probably not 09:32:51 does anyone know about the "you can't press tab to select previously chosen character" bug on cdo atm? 09:33:49 don't thinks it's known 09:35:26 heh, the player dies of zero stats after a while in the arena 09:36:23 greensnark, how do you get pointers to .begin() and .end() of the array, then? Declare an iterator manually? 09:36:48 Cryp71c: int x[10]; start would be x and end would be x + 10 09:37:01 ah, that's what I'm doing wrong, thanks. 09:38:23 C++ knows how large an array is even after it's been passed to a function? 09:38:35 I thought it was the same as C, and forgot 09:38:44 ais523: It does not 09:38:45 no, unless it's \0 ended 09:38:50 That's why you have to specify the end 09:38:52 then you can count it 09:38:55 due to decaying the array into a pointer to its first element 09:38:57 ah, ok 09:39:39 Non-nagas can wear naga bardings. (https://crawl.develz.org/mantis/view.php?id=1709) by casmith789 09:39:39 You can't press tab to select previously chosen character (https://crawl.develz.org/mantis/view.php?id=1708) by casmith789 09:39:39 03by * r4109ace5a863 10/crawl-ref/source/ (tags.cc tags.h): Some file output asserts. 09:39:53 03by * r4faff9bab901 10/crawl-ref/source/arena.cc: Give player non-zero stats in arena. 09:40:11 casmith789: Nice bug with bardings <3 09:40:12 casmith789: thanks for filing 09:40:23 np 09:40:48 greensnark: heh, yeah I thought so 09:46:46 -!- violetj_ is now known as violetj 09:46:51 spriggans cant :( 09:47:05 trolls can 09:47:44 get your barding troll started, quick 09:47:59 can you acquire bardings? 09:48:07 not if you aren't a naga 09:48:09 or centaur 09:48:18 casmith789: how did you find that out? 09:48:26 as in, what made you think of trying? 09:48:30 it was white 09:53:39 03greensnark * rc8b90db1f2bc 10/crawl-ref/source/ (files.cc files.h travel.cc): Fix crash when using ^F to travel to an item. 09:54:45 03Cryp71c * re84710bde9e8 10/crawl-ref/source/mutation.cc: Restrict possible demonic guardian summons 09:54:51 Yay, deleting 47 lines to fix a crash :P 09:54:59 hurray 09:55:02 did they actually do anything useful? 09:55:08 Once upon a crime yeah 09:55:19 But later superseded by superior code 10:08:09 arena in valgrind claims that some memory is lost through dgn_register_place 10:09:54 What's the trace? 10:10:42 http://sprunge.us/MiJc 10:10:56 ...hrmm, is there a depth limit on when a Zig can appear? 10:10:59 -!- ortoslon has joined ##crawl-dev 10:10:59 it's very little, but I guess arena just generates one level 10:11:16 maybe it's just because crawl doesn't clean up on exit? 10:11:20 I have one on D:3...its quite surprising. 10:11:38 dat/des/portal/ziggurat.des or something 10:12:16 by: Right, Crawl doesn't toss level_vaults on exit, but the std::vector destructor will forget the pointers, ergo leak 10:16:31 Kyrris (L6 SEFE) (D:4) 10:17:55 what is Gretell reporting? 10:19:27 crashes 10:19:34 !lm kyrris 10:19:38 2668. Kyrris the Firebug (L6 SEFE), worshipper of Sif Muna, on D:4 on -01-, with 0 points after 4723 turns and 0:28:15. 10:19:47 oh 10:19:54 ah 10:20:24 Could well be the ^F crash :P 10:20:28 !lm * type=crash -tv 10:20:28 14. Kyrris, XL6 SEFE, T:4723 (milestone) requested for FooTV. 10:20:40 he said a corrupted level 10:21:03 Or it could be OOM from ulimit again 10:21:40 -!- badp has joined ##crawl-dev 10:21:51 Hello, are you aware of the problem with launching trunk on CDO? 10:21:53 Wow, no end of cores on cdo 10:22:25 I've logged on 10:22:29 pressed P to play 10:22:35 pressed Tab to select SpEn 10:22:50 and got the following message 10:22:52 Starting Dungeon Crawl Stone Soup 30ac188... 10:22:52 No player name specified. 10:22:52 Hit Enter to continue... 10:23:18 Selecting Spriggan and Enchanter with letters, otoh, starts the game regularly 10:23:52 badp: I just reported that bug 10:23:59 okay, cool. 10:24:53 How can I load up this savefile? There are a number of files here with various extensions. 10:25:37 ? 10:26:26 Cryp71c: copy the save to your save directory 10:26:43 and change the uid to your uid 10:27:50 -!- ais523 has quit [Read error: Connection reset by peer] 10:28:01 -!- ais523 has joined ##crawl-dev 10:29:55 Attempted autotravel crashed, corrupted level. (https://crawl.develz.org/mantis/view.php?id=1710) by Kyrris 10:30:23 I'm updating cdo 10:35:14 -!- ortoslon has quit [Quit: bye] 10:35:41 Master branch on CDO updated to: 0.7.0-a0-2280-ge84710b (25.2) 10:37:48 Looks like we need Napkin to delete corrupted level files 10:38:34 Napkin said to message him if he's needed 10:43:22 Ok, hopefully everyone's off that release 10:43:33 Let me nuke it just in case 10:45:23 Hmm, savegame-all-transfer is heavy machinery :) 10:48:01 why do we have traps separate from features instead of e.g. DNGN_TRAP_BLADE? 10:48:51 alternatively, how about the opposite thing: removing DNGN_TRAP and letting traps stack with potentially any feature? 10:49:29 I like the second option 10:49:46 on a related note, do things like statues and trees in grd() not have a floor type specified? 10:49:55 No 10:50:04 They're terrain features themselves 10:50:08 Not objects 10:50:30 I think traps on any feature is a lot of complexity with little gain 10:50:34 so for example if a tree is removed in the dungeon you get the floor, but in swamp you get water. 10:50:46 xale: That's hardcoded 10:51:10 would traps-over-features be useful at all for gameplay purposes though? 10:51:29 i.e. is trap-over-shop or trap-over-stairs really a good idea? 10:51:43 Luca__: Not very useful at the moment, although traps in shallow water and such might be nice for the map designers 10:51:59 If alternative walkable terrain is added it could be more useful 10:52:00 Do you have known problems with minimaps in morgue files? 10:52:18 Look at http://crawl.develz.org/morgues/trunk/bp/morgue-bp-20100608-154751.txt 10:53:03 if you want tv, use "!hs bp char=SEAM -tv" 10:53:22 not sure I can give you more help about it. 10:53:42 could you file it on mantis? 10:54:19 I guess I could, I just don't have enough material and the tv link might get broken in the future 10:54:31 (even though I don't plan on playing SEAMs again.) 10:54:43 ok, could you please file it on mantis? :) 10:54:59 !lg bp char=seam max=sc x=id 10:54:59 2. [id=735214] bp the Ducker (L3 SEAM), hit from afar by Ijyb (stone) on D:2 on 2010-06-08, with 169 points after 2416 turns and 0:13:08. 10:55:10 you can give the id, that shouldn't change 10:55:19 ??mantis 10:55:19 mantis[1/2]: http://crawl.develz.org/mantis/ 10:55:26 no time to look at it right now 10:57:29 -!- ais523 has quit [Remote host closed the connection] 10:57:31 !lg id=735214 -tv 10:57:32 1. bp, XL3 SEAM, T:2416 requested for FooTV. 10:57:39 !lg id=735214 -tv:cancel 10:57:39 1. bp, XL3 SEAM, T:2416 cancel requested for FooTV. 11:01:41 do I get/can I set up email notification from bugs? 11:02:03 usually you get notified automatically for bugs that you've filed or otherwise interacted with 11:02:08 cool. 11:02:16 thanks for filing! 11:05:06 Uncentered or garbled minimap on morgue file (https://crawl.develz.org/mantis/view.php?id=1711) by bp 11:09:17 -!- ixtli has quit [Quit: ixtli] 11:13:20 -!- ortoslon has joined ##crawl-dev 11:15:43 -!- ixtli has joined ##crawl-dev 11:17:22 yay 11:17:36 Luca__: I got two tiles crawls to talk to each other 11:17:45 wow 11:17:47 Luca__: you can press keys in one window and it moves the doll in the other 11:18:02 so you aren't sending tiles, just commands? 11:18:09 not tiles yet, no. 11:18:16 btw, my nettiles interface sends raw keys 11:18:28 my clientserver work should allow sending the map right now 11:18:28 I think we should send commands in this case. 11:18:41 I'm working on making the tiles code use that map to create the tiles 11:19:13 I'm going to clean-up everything now so that it looks more like something that can be committed rather than a pile of hacks. 11:19:43 does it work with console too? 11:19:57 I don't see why it wouldn't. 11:20:34 what about prompts, input in the aptitude screen, etc.? 11:20:52 it's just messages and commands right now 11:21:18 what is it using as a protocol/connection? 11:21:36 tcp? not sure I understand the question. 11:21:46 ad-hoc tcp code? 11:21:50 pretty much 11:22:24 I think it would be good to use the tags.cc framework (possibly modified) at least for server->client 11:22:51 since the code already exists to serialize items, and I wrote tags.cc code to serialize monster info and map cells too 11:23:33 and possibly the nettiles connection abstraction on the client, so it can connect to ssh servers easily on windows, etc. 11:23:44 ssh with compression is also likely a must 11:26:01 I thought about that, but somehow I don't like to tie the save files format with the wire protocol. 11:26:25 imho it makes sense, since otherwise you get duplicate code 11:26:35 both have similar compatibility concerns too 11:27:17 I'm not really a fan of the coding style of tags.cc, but that is marginal and fixable anyway 11:28:52 out of curiosity, what is crawl written in? 11:28:57 C++ 11:28:59 c with classes. 11:29:07 okay. Thanks. 11:30:07 a mix of good c++ and "c in c++" 11:35:33 btw, what about the clua bindings in a client/server codebase? 11:36:10 should they be moved on the client (higher lag), kept on the server, or even used to drive the protocol? 11:37:28 it seems like they must be moved to the client. 11:38:12 the problem of that is that every time you finish a turn, you need a roundtrip 11:38:27 i'm not sure, but i think this is pretty much unavoidable. 11:38:54 why unavoidable? things could be kept as they are now 11:39:09 same thing with travel: moving it on the client side would make it way slower 11:39:33 (since you need to check if a monster popped up after every move) 11:39:34 what about interrupting it? 11:40:12 that might work 11:40:49 it's complicated though, you would probably need to interrupt any time map_knowledge changes 11:40:55 i'm worried about latency too 11:41:06 since e.g. a boring beetle could have dug the dungeon, or something similar 11:41:07 but i not sure there is a good way to keep all this on server 11:41:27 well, that's the way it is right now 11:41:45 what about non-local rc files in tiles? 11:42:08 they can be uploaded every time though. 11:42:09 perhaps the client could send its rc file to the server? 11:42:13 yeah 11:42:24 that would also solve the problem of the hard to use on-server editor 11:42:51 (relatively hard to use) 11:44:41 wouldn't that eventually lead to a need to keep things like keypresses or a repetition info on the server as well? 11:45:39 it seems much cleaner to do all this on the client and only send commands back. 11:45:46 but yes, latency could be a problem. 11:46:00 then again, it won't be worse than sshing to cdo. 11:46:52 can't repeat work at the logical command level? 11:47:05 there is no logical command level at the moment 11:47:09 but yes, it should 11:47:14 i.e. we have a structure/class hierarchy containing all the info need to run a command 11:47:28 and we both pass that from client to server and reexecute it for repeat 11:47:29 yes, that would be good to have 11:47:51 part of this is done with "dist" (targeting choices) 11:47:54 hmm how can it work now btw? 11:48:05 what if different game state causes different prompts? 11:48:14 repeat? it only works to some extent 11:48:18 -!- ixtli has quit [Quit: ixtli] 11:48:20 i.e. za6 11:48:35 but if there is no monster, z fails, and "a6" goes to the main loop? 11:48:56 or maybe it is careful to only run a single command? 11:48:59 targeting used to have special repeat code (that was broken in other ways) 11:51:05 for client/server there is also the issue of unpredictable prompts 11:51:08 Luca__: another problem is that lua bindings could control display in a platform-specific ways 11:51:19 e.g. you read an unidentified scroll, and the server finds out it is acquirement 11:51:25 like do something in tiles, that isn't possible in console and vice-versa. 11:51:44 so if you move them to the server, that probably won't work. 11:51:57 I guess lua tiles should only access the platform-independent data that is sent on the wire 11:51:57 or play sounds or whatever. 11:52:03 lua bindings* 11:52:40 are there such sound/graphics bindings right now? 11:52:56 don't think so 11:53:03 anyway, it's not really an important issue 11:53:22 -!- Zaba has quit [Ping timeout: 276 seconds] 11:53:49 the initial version should definitely not attempt to move anything to the client except drawing the main dungeon view (and the map view too if possible) 11:55:21 I'd say only later it makes sense to move all examination commands, the stash tracker, command interpretation, etc. to client 11:55:38 things like targeting should be on the client too 11:56:00 I think initially it can be handled by the server sending "draw beam path on cell (x,y)" packets 11:57:00 (as well as sending env.map_knowledge for normal drawing) 11:57:58 -!- Zaba has joined ##crawl-dev 11:58:07 -!- Enne has joined ##crawl-dev 11:59:33 -!- ixtli has joined ##crawl-dev 12:10:33 i think some things will still need to be moved 12:10:57 for example the server cannot really know anything about the more prompt 12:11:19 indeed, that's a problem 12:11:21 unless the client tells it how large is the message area, but that seems very broken. 12:11:49 actually, I think it needs to be both on the server and the client 12:11:52 due to force_more_message 12:12:10 unless you move that to the client too, but it's harder 12:12:59 how about making the server behave as if it had an infinite window, pass messages and forced more requests to the client, and have the client both do its own mores and respect the server requests? 12:13:23 haven't looked closely at the messaging though 12:13:29 something like that would work. 12:14:56 or perhaps just don't do the more on the client 12:15:07 the player can just Ctrl-P to see old messages 12:15:28 and the graphical version could have a scrollbar 12:16:46 all this is not really a problem, it was just an example. 12:16:54 I'm pretty sure there are more things like that. 12:18:25 -!- eith has joined ##crawl-dev 12:18:43 well I'd say to first get something working, then worry about that :) 12:19:19 btw, is your code in some repository? 12:23:47 nope. I'll put it somewhere tomorrow. 12:24:10 maybe I should register on github so it can be put into your repo there? 12:24:54 or a separate one, if you don't want that. 12:25:42 it's the same 12:25:43 -!- ixtli has quit [Quit: ixtli] 12:26:39 -!- Luca__ has quit [Remote host closed the connection] 12:26:56 -!- Luca__ has joined ##crawl-dev 12:30:37 Is the compiler used for crawl -std=c++0x or -std=gnu++0x by chance? 12:32:19 do you plan to start using c++0x? 12:33:07 Luca__, I'm only trying to redefine an array that's already been instantiated and I get a compiler warning saying its only supported by those two compilers. 12:33:26 reassign* 12:33:28 not redefine 12:33:48 as in char foo[]; foo = {1, 2, 3}; ? 12:34:07 Luca__, yes 12:34:31 I think it's a c++0x only feature (initializer lists) 12:34:51 Ah, do you know of any other means by which I can reassign an entire array? 12:34:55 old way is to define another array and copy, or set elements manually 12:35:22 k, thanks. 12:35:22 has anyone touched the zig / portal placement code? I've gotten 3 zigs in 3 straight games all before D:4 12:35:43 -!- st_ has quit [Ping timeout: 260 seconds] 12:37:40 -!- st_ has joined ##crawl-dev 12:39:00 Cryp71c: Use a std::vector 12:40:01 greensnark, its only 3 integers, a vector seemed a bit much 12:40:06 with std::vector you can't use initializer lists at all pre-c++0x 12:40:15 Yes 12:40:26 But you can reassign 12:41:05 -!- ixtli has joined ##crawl-dev 12:41:11 It's not clear why he'd want to reassign an array you defined with an initializer list; presumably there's some easier way to achieve what he wants 12:41:33 It's ixtli in a blue cape 12:41:49 :o 12:41:51 Whoa. 12:41:52 Woah. 12:41:53 greensnark, I have an array that is used 90% of the time, 10% though (determined by RNG) I need to use a different array. 12:41:55 Just calm down. 12:42:06 ixtli: So... red cape? :P 12:42:21 greensnark: \o/ 12:42:29 Now you've got it! 12:42:49 there is also the option of using a pointer to either of the arrays 12:43:21 Luca__, declare both and use a pointer to reference the active one? 12:43:36 that's an option 12:43:55 hmm 12:52:37 03by * r7a7f2376db52 10/crawl-ref/source/files.cc: files.cc: Simplify save_exists by using file_exists. 12:52:42 03by * r54d3624cb6ff 10/crawl-ref/source/files.cc: files.cc: Extract save unpacking into function unpack_file. 12:52:42 03by * r430af9ab3b42 10/crawl-ref/source/l_debug.cc: Some debug Lua bindings to make player take stairs. 13:03:34 -!- Niccus has joined ##crawl-dev 13:07:29 by: How long have these Lua marker crashes been happening? 13:08:20 the first one I had was start of may 13:08:35 strangely I seem to be the only one to get them 13:09:24 Ah, interesting 13:09:38 Do you have a lot of Lua code in your rc 13:09:51 The Lua states have a memory alloc limit 13:10:09 Although that should not apply to dlua, hm 13:15:50 can i call save_game(true) at arbitrary places? 13:16:13 usually when waiting for a user's input. 13:16:35 It will do bad things if it's waiting for the user to confirm something 13:16:46 Like what stat to raise on level up 13:17:09 I think that particular case (level up) is handled somewhere. 13:17:24 xale: Not robustly 13:17:36 And there are similar problems in other places 13:17:41 like acquirement? 13:18:01 I can't recall offhand if acquirement is one, but if the scroll is destroyed before hitting the prompt, yes 13:18:10 What are you trying to do? 13:18:28 Raising a HUP signal should try to do the right thing in general 13:18:34 I need to do something meaningful if connection times out (or is dropped) 13:18:38 for commands I just return CMD_SAVE_GAME_NOW 13:18:41 greensnark: I think my crashes were all 77MB cores 13:18:52 Connection dropping sounds like a case for SIGHUP handling 13:19:08 so it's likely just the 500kb LUA_MAX_CHUNK allocation that failed 13:19:31 or was that just 500b 13:20:09 It's 500k 13:29:05 Looks like RLIMIT_AS is 100M 13:30:42 !hs * cdo start>20100515 13:30:44 13751. hyperbolic the Fencer (L26 DSVM), worshipper of Jiyva, escaped with the Orb and 15 runes on 2010-05-30, with 14291658 points after 107571 turns and 12:56:57. 13:30:45 -!- ortoslon has quit [Quit: bye] 13:31:34 Cryp71c: I'd say, it would be nice to open up features newer than C++90, at least if they're supported by all of: gcc, msvc, clang. And even msvc made large steps recently towards covering almost all of C++03 and a good chunk of C++0x 13:32:12 Cryp71c: right now, -pedantic is set to -std=c++90, sadly, and -pedantic is buggy like hell too 13:33:20 can -pedantic be dropped in favor of just -Wall? 13:33:29 it even prevents using 1ULL as a constant 13:33:45 (because long long is not in C++98, but everything supports it of course) 13:34:12 hear hear 13:34:59 KiloByte: Let's lose -pedantic 13:35:09 Er, Luca__ 13:36:54 by, do you agree? 13:37:15 I don't care 13:37:21 feel free 13:37:53 cool! 13:44:06 Cryp71c: did you check if MSVC supports initializer lists? 13:48:53 Cryp71c: no, it doesn't :( 13:49:26 03by * r5057ee2c4215 10/crawl-ref/source/view.cc: Fix offset morgue screenshots with messages_at_top. (#1711) 13:49:27 Cryp71c: and neither does clang :( 13:50:03 that was MSVC08, lemme check 10 13:51:16 if this is about e84710bde, a small static function that switches on the chosen monster_type would be better than using arrays 13:53:43 MSVC10 doesn't allow them too 13:54:30 by: of course, but it's nice to know if there is a problem with a certain feature or not in general 13:55:09 sure 13:55:15 and even with out focus on gcc, something that is not in current msvc and clang is a no-go 13:55:22 s/out/our/, doh 13:57:24 http://www.aristeia.com/C++0x/C++0xFeatureAvailability.htm 13:57:58 better, http://wiki.apache.org/stdcxx/C++0xCompilerSupport 13:58:36 c++0x is not a fully finished standard, it may be better to stick with c++03. But definitely not 90 or 98. 13:59:08 isn't c++03 just a bugfix of c++98? 14:03:02 by: Looks like first game on a new cdo version is very likely to hit the memory limit because of loaded maps 14:03:27 Looking at the cores, all the 70M+ cores are first core for that version 14:03:39 anyway, apparently the following c++0x features should be safe (and useful): auto, decltype, lambdas, rvalue references, static_assert, foo>. std::unique_ptr, TR1 functionality 14:04:19 Luca__: MSVC supports all of those? 14:04:26 apparently in msvc10 14:04:41 i.e. 2010 14:04:50 woh... lambdas are just LPC's functionals, and they are something I sorely missed in any other language 14:06:24 pulling in boost could also be an interesting addition (with no compatibility issues, unlike c++0x features) 14:07:07 Boost would be great to have 14:07:23 But it'll complicate the build setup process for non-devs 14:07:47 Boost alone makes C++ so much nicer to work with 14:07:54 is that really a significant concern? 14:07:57 on linux, it's trivial 14:08:16 On Windows it's nontrivial, last time I checked 14:08:19 on other platforms, you still have to get sdl, libpng, freetype, lua, zlib and possibly others 14:08:36 Well, those are all smushed into contrib now 14:08:38 I don't think boost is harder to install than those; is that wrong? 14:08:42 But I've never worried about tiles deps 14:08:46 let's put boost in contrib too then 14:09:31 no? 14:09:53 Hmm, it's worth thinking about 14:10:13 Boost is pretty huge though 14:12:01 and you'll have to put jam (or what was it called) there too then. 14:12:26 That's part of the boost source dist 14:14:28 the thing about boost is 14:14:56 either some people will use a bit of it, and so you'll end up with some boost in some places and it won't be so great. 14:15:10 or you want to actually use it, but then stuff like FixedVector needs to be removed. 14:15:25 Shrug, it'll ease itself in if we start using it 14:15:28 or CrawlHashTable 14:15:38 and maybe a lot of other things. 14:15:44 It's not like Crawl has fully left its C past behind either 14:15:53 CrawlStoreValue too (related to CrawlHashTable) 14:16:42 on a related note, crawl also doesn't use tr1 currently 14:17:01 (which all recent compilers have and boost provides) 14:17:27 std::tr1::shared_ptr, std::tr1::unordered_map, std::tr1::unordered_set especially 14:17:59 there are also RNG classes, maybe even one equivalent to the current one 14:18:22 there is everything including networking. 14:18:27 it's huge! 14:18:47 boost networking is also multiplat already 14:18:49 yes, it does have an mt19937 rng 14:19:05 not totally sure it has the same output as the crawl one, but seems likely 14:23:57 -!- Luca__ has quit [Remote host closed the connection] 14:24:13 -!- Luca__ has joined ##crawl-dev 14:36:10 Help screen ?/G for TSO with OgAs gives abbreviated evil/undead response (https://crawl.develz.org/mantis/view.php?id=1712) by Tenaya 14:38:17 heck, even core C10 has mt19937 14:39:17 I don't get why the core language would mandate a specific implementation, but it does. 14:41:16 03kilobyte * ra7e9368205d0 10/crawl-ref/source/makefile: Drop -pedantic. 14:41:22 03kilobyte * r13c6cab02a22 10/crawl-ref/source/ (70 files in 2 dirs): Bring sanity to enums by making them diffable/patchable. 14:43:46 Yay, commas on final enum declarations. <3 KiloByte. 14:46:39 mmm 14:47:21 should it be "ogreish" or "ogrish"? Wiktionary lists both forms, but "ogrish" has four times as many Google hits. 14:48:43 (On that same note, it's really too bad that constructor parameter lists don't have an elegant way to do that.) 14:48:48 (I've seen a lot of : BaseClass\n, firstParam\n, etc..., but if there's no BaseClass constructor, then the first param has a colon and so has diff issues.) 15:04:51 03kilobyte * r896b20b1d757 10/crawl-ref/source/item_use.cc: Fix humans wearing naga bardings (bring me brown paper headgear...) [1709] 15:13:04 !seen doy 15:13:04 I last saw doy at Sat Jun 5 01:08:25 2010 UTC (3d 19h 4m 39s ago) saying 14:09 < Yredelemnul> Oh well, Ill probably be back again on ##crawl-dev. 15:13:25 -!- Textmode has joined ##crawl-dev 15:13:45 it's be nice to finally release 0.6.1 with bugfixes we gathered 15:13:59 morning all 15:14:17 there's no reason to break people's games with things like vampiric butcher swap instadeath 15:14:20 -!- Luca__ has quit [Remote host closed the connection] 15:14:20 Textmode: meow! 15:14:34 -!- Luca__ has joined ##crawl-dev 15:14:38 ...what the feck did I copypaste? 15:15:02 nothing, you just plain quit, at least from our point of view 15:15:35 uh, Luca__ quit 15:15:35 hmm... 15:15:58 dammit, Luca__ not Textmode 15:16:10 uh? 15:16:22 22:14 -!- Luca__ [~Luca__@93-34-50-130.ip48.fastwebnet.it] has quit [Remote host closed the connection] 15:16:22 * Textmode huggles KiloByte and Luca__ 15:20:06 KiloByte: I doubt doy would object if you put together 0.6.1 15:22:11 right, it's just a matter of tagging it and posting official builds 15:22:36 for the last part, we'd need Eino or Napkin 15:22:44 -!- ortoslon has joined ##crawl-dev 15:35:31 03by 07stone_soup-0.6 * r841cd2669409 10/crawl-ref/source/invent.cc: Use the appropriate position for items owned by mimics (xale). 15:58:31 -!- Enne has quit [Quit: Enne] 16:09:14 03by 07stone_soup-0.6 * r69b175e18bc2 10/crawl-ref/source/art-data.txt: Sniper is now a crossbow. (#1688) 16:09:18 03by 07stone_soup-0.6 * r9b40f1ab7c5e 10/crawl-ref/source/makefile: Add missing library for mingw with sounds. 16:15:50 -!- Enne has joined ##crawl-dev 16:20:59 -!- by has quit [Quit: leaving] 16:36:07 anyone knows offhand what's the minimum that needs to be filled for tiles to draw a bit of the dungeon? 16:36:26 Minimum what? 16:36:47 for example: you.pos, grd[x][y] around that position and so on 16:37:41 minimum game state. 16:38:49 What are you trying to do? 16:39:27 crawl_view.vbuf is filled during view.cc:viewwindow() using the dungeon to fill in what's in view. 16:39:39 just trying to make it show something without a properly generated levels. 16:39:40 As well as what the player remembers, etc... 16:39:50 I'm calling viewwindow, but I don't have enough of the dungeon apparently. 16:39:52 You could fill in the vbuf yourself and pass it to load_dungeon. 16:40:11 Like your own equivalent of viewwindow. 16:40:37 You may run into asserts if something tries to use grd later on, but you can probably work through those case-by-case. 16:44:31 xale: Have you set vgrdc correctly? 16:44:43 nope! 16:50:06 xale: nettiles does exactly that 16:50:35 but hmm, are you duplicating what I'm doing? 16:53:06 that could easily happen. 16:53:58 doesn't seem a great idea 16:54:36 it isn't, but I don't know what exactly you're doing. 16:55:15 or planning to do. 16:56:13 1. refactor the code so that everything the player knows is easily accessible, in particular expanding env.map_knowledge to including all known info about the map and visible stuff 16:56:25 2. refactor the console code to build screen output from that 16:56:34 3. refactor the tiles code to build screen output from that 16:56:56 4. serialize and deserialize that structure, allowing to run the code in (2) and (3) on the client 16:57:19 (1) and (2) are mostly done and seem to mostly work, (3) compiles but doesn't work yet, (4) is not started 16:57:23 Luca__: I know this is an implementation detail, but I'm curious how the mcache fits into 2 and 3. 16:57:35 mcache = monster cache 16:57:38 ? 16:57:43 I think it can be constructed on the client 16:58:19 currently I changed the code to randomize demon parts based on the name and changed the ghost code to randomize equipment 16:58:21 Do you write "I saw an orc knight holding a hand axe" and store it in map_knowldge? 16:58:27 yes 16:58:30 map 16:58:44 Awesome. Just curious if that's how that ended up working. :) 16:58:51 map_knowledge is an array of map_cell, holding a smart pointer to monster_info, which holds a smart pointer to "erased" item_def 16:58:52 So you don't need an mcache, you can just construct it directly from stored knowledge. 16:59:09 yes, there is the problem that the current code accesses stuff like the ac and ev value 16:59:20 I changed it to be random instead currently 16:59:42 perhaps we could pass some more info about player ghosts instead 17:00:00 -!- stabwound has quit [Ping timeout: 264 seconds] 17:00:08 basically it's env.map_knowledge(c).monsterinfo()->inv[MSLOT_WEAPON] 17:00:16 Awesome. :) 17:00:35 that's essentially what you suggested iirc 17:00:50 ...oh! Well, good job, past me. ;) 17:01:06 and it's indeed the cleanest way, despite being unfortunately rather intrusive 17:01:39 currently 68 files changed, 3014 insertions(+), 2201 deletions(-) 17:01:55 I'm excited about the console/tiles code unification and having the tiles drawing code be more "functional programming" and less "let's access global variables willy-nilly". 17:02:32 also allows to have the same savegames for the tiles and non-tiles version 17:02:40 ...without information loss, you mean. 17:03:51 yes 17:04:48 Where's the repository for all this, if I wanted to take a look? 17:05:09 the tiles part is unfinished 17:06:01 anyway http://repo.or.cz/w/crawl/crawl-nettiles.git/shortlog/refs/heads/clientserver 17:06:40 or http://github.com/luca-barbieri/crawl-lb if you prefer github 17:06:57 Clicking on the close button of the windowed screen does not close the game. (https://crawl.develz.org/mantis/view.php?id=1713) by Robsoie 17:07:46 Luca__: Thanks. :) 17:07:56 -!- badp has quit [Quit: Lost terminal] 17:08:40 the first commits should be relatively clean (but break tiles), the last 3 are rather messy and incomplete 17:10:38 i was going to do (4) or any approximate of it, most so that i can debug/improve networking stuff 17:11:06 because things like text messages are not very representative. 17:11:14 -!- ortoslon has quit [Read error: Connection reset by peer] 17:11:58 Right-Click when inside an informative panel does not return to the game anymore (https://crawl.develz.org/mantis/view.php?id=1714) by Robsoie 17:13:21 i guess i could take your map_cell and work with that without actually drawing it. 17:13:26 in my codebase, marshallMapCell called for the whole map will serialize it 17:13:42 only could theoretically use unmarshallMapCell on the client and then call viewwindow 17:13:56 it will need fixes before it actually works though 17:14:03 -!- Enne has quit [Quit: Enne] 17:14:34 also I'm not sure how to handle all the other input/output 17:15:27 did you add marshallMapCell()? 17:15:38 -!- ortoslon has joined ##crawl-dev 17:15:38 yes, it's used in the savegame 17:15:48 the console version seemed to be able to save and reload 17:15:59 right now I managed to crash the linker somehow and trying to fix it 17:17:55 -!- stabwound has joined ##crawl-dev 17:19:24 hmmh 17:20:04 -!- Cryp71c has quit [Quit: Leaving] 17:20:55 are you planning to do the actual sending after that then? 17:22:58 also why do you need to save/load the knowledge at all? 17:23:11 hm, never mind, you actually need that. 17:24:03 yes, perhaps your network code could be useful for that 17:25:24 how are you planning to do knowledge updates? 17:25:48 at first sending the whole map and let ssh compression handle it 17:26:10 perhaps later keep a set of changed cells 17:26:33 I thought that whenever player moves we should just send everything that's in los 17:26:47 and the client will merge that with existing knowledge 17:27:23 for objects like monsters and items we can also send an id instead of sending the whole thing 17:27:56 I think it's more flexible to track changed cells in general and send only those 17:28:20 because of stuff like detection spells and partial changes 17:29:03 for monsters and items, perception on them can change (e.g. hp get reduced, mimics revealed, polymorph, orcs blessed by Beogh), so it's also non-trivial 17:29:18 although I suppose one could store the old monster_info and compute a delta 17:29:47 anyway, ssh uses dictionary compression, which should quite efficiently do that automatically 17:32:04 Deep Dwarves hunger when wearing rings of regeneration (https://crawl.develz.org/mantis/view.php?id=1715) by jpeg 17:46:03 03dolorous * r70f65c480be8 10/crawl-ref/source/mon-place.cc: Fix Mantis 1703. 17:46:57 the tiles code seems to work at least basically 17:48:15 xale: did you upload your protocol code somewhere? 17:49:15 no 17:52:11 Range nerf should be reverted/changed. (https://crawl.develz.org/mantis/view.php?id=1716) by casmith789 18:01:08 Luca__: I'm going to clean-up everything a bit and hand it to you. 18:01:27 not sure it will be useful though, but whatever. 18:12:17 Doll has no hair when hatless (https://crawl.develz.org/mantis/view.php?id=1717) by Shin Majin 18:27:13 -!- Enne has joined ##crawl-dev 18:27:15 -!- Enne has quit [Client Quit] 18:27:28 -!- Luca__ has quit [Remote host closed the connection] 18:27:44 -!- Luca__ has joined ##crawl-dev 18:28:37 -!- syllogism has quit [] 18:35:26 omg, AF_CHAOS 18:36:39 a monster attack flavor, also an address family. 18:38:11 protip: 26**2 != Infinity 18:38:26 it's pretty big, sorear :P 18:39:20 yes, but anyone who thinks that all concepts can be assigned unique two-letter abbreviations is guilty of some fallacy involving large numbers 18:39:32 I forget what it's called 18:40:29 it helps that the distribution of first letters isn't uniform over the alphabet 18:41:19 -!- ortoslon has quit [Quit: bye] 19:04:46 Luca__: still here? 19:04:51 yes 19:05:33 Luca__: http://sprunge.us/OiHJ 19:06:08 thanks 19:07:57 if you run that with two tiles instances connected to each other you can walk around and get messages. 19:08:02 but nothing else works. 19:08:44 is tcp really a good idea vs just using stdin/stdout? 19:09:17 well if actually going to push it through ssh then stdin/stdout is probably easier 19:09:55 I suppose that would make sense given the current cao/cdo setup 19:11:12 i'm not sure how that will work with packages though. 19:13:00 you mean downloadable versions? 19:13:09 I guess either: 19:13:15 1. mixed client and server like now 19:13:25 2. client and server in the same process but still talking the protocol 19:13:38 3. client and server in different processes, with pipes 19:13:58 the way it's done in that patch, you can have both local and remote games (and serve them too) without any trouble at all 19:14:23 and cao/cdo won't be affect if this versions is ever used there, because they can continue running local games 19:14:49 re: packages. what I'm not sure about is how something like a windows version will work if you want to pipe output to ssh. 19:14:49 because of the io_source_base derived classes? 19:15:14 yes, because of everything. 19:15:17 well, the whole point is to run the server part on cao/cdo and the client part on your system 19:15:46 optionally, run the client on cao/cdo as well for console users who prefer the current system 19:15:52 cao/cdo will never be replaced with this 19:16:06 they could run the server in addition to what they already run now. 19:16:31 there is also the problem of recording games and watching games 19:16:34 for example ttyrec won't work 19:16:36 right. 19:16:45 you could record the protocol stream 19:16:52 that won't work 19:16:58 why? 19:17:06 because you won't see me browsing the inventory 19:17:21 and a lot of other reasons. it won't be the same as a ttyrec 19:17:39 because it's not really needed anyway. 19:17:43 s/because/besides/ 19:18:05 if inventory is done locally, then you can browse it on the client 19:18:14 otherwise, you'll see it in the recording 19:18:20 why it's not needed? 19:18:35 the other option is to run a console client on the server for the sole purpose of generating a ttyrec 19:18:55 the other purpose is to allow people without a client to play 19:19:08 there is no reason to break any of this really. 19:19:29 you can run the console client on the server for them 19:19:37 sure. 19:19:49 I'm not sure how to do it all exactly 19:19:55 i.e. whether to always have separate processes 19:20:17 whether to let multiple connection to crawl server, or defer multiplexing to dgamelaunch (for watching) 19:21:19 it seems like you can keep what's already working and have online tiles too without much trouble 19:21:33 so I'm not really sure why would you change the part that's already working (on cao/cdo). 19:21:39 hmm 19:22:22 my idea was to reroute all places that accept input or generate output with calls into this io sink. 19:22:28 not changing the part that is already working is impossible without duplicating code 19:22:36 that would do the right thing depending on what mode we're in. 19:22:43 because the current display code looks at internal structures 19:22:53 yeah, sure that needs to be changed 19:23:03 and you already mostly did that, I thought. 19:23:24 yes, but once that is done well, the client server are essentially already separated, while running in the same process 19:23:31 yes. 19:24:13 so what you are saying is to continue allowing this mode of compilation instead of forcing to build two different executables? 19:24:35 well, look at the patch. it works and does not require recompilation. 19:24:45 same executable can work as wither client, server or a local game. 19:25:38 i think it's good to not try to change everything overnight. 19:25:57 it makes it more likely that your patches will actually be, you know, committed. 19:28:19 yes, sure :) 19:35:22 I have a minimal idea 19:36:00 the server is a normal console version, but also dumps the protocol data on stderr 19:36:15 the client is a modified version of nettiles which recognizes the protocol data 19:36:34 the server advertises support for the protocol by printing a magic string 19:36:44 nettiles enables it by sending a magic byte 19:38:44 i'm not sure about the stderr part. what are you going to do with that? 19:39:00 the idea was that the ttyrec recorder would record stdout only 19:39:40 it seems a bit of a problem though due to synchronization issues 19:40:10 i think the biggest problem here is that depending on how much is moved to the remote client 19:40:18 the local client will only see some actions. 19:40:47 for example, examining the map or browsing the inventory won't be visible in a ttyrec. 19:41:22 but it would work for other things though. 19:41:44 but frankly, I think it would be better to focus on getting it to work at all, and worry about ttyrecs later. 19:42:11 especially since they are never going to work with tiles like they work with local games now. 19:42:24 in what sense? 19:42:25 i had another idea, by the way. 19:42:47 to allow spectators to issue arbitrary informational commands while the tiles client is connected. 19:42:51 if you take a ttyrec of the internal protocol, and can examine stuff on the client, it should be perfect 19:43:29 basically allowing multiple connections, and having spectators run a command and get output privately? 19:43:34 yep 19:43:41 problem is, it doesn't work if you are watching a ttyrec 19:43:41 a ttyrec records text output and nothing else 19:43:47 it won't 19:43:55 but it will work for live spectators at least. 19:43:58 you could make a "ttyrec" record a binary protocol dump instead 19:44:14 (ttyrec becomes a misnomer of course, it's a protocol trace/dump actually) 19:44:49 I guess that is going to be a must eventually 19:44:59 yeah that would work too. 19:44:59 otherwise you can't replay "ttyrecs" in the tiles client well 19:46:44 though that would probably introduce a lot of compatibility problems. 19:47:25 because essentially you'll have to support all your versions of all your wire protocols as long as there are recordings. 19:47:52 !lg * min=date 19:47:52 Unknown selector: date 19:48:14 !lg * min=time 19:48:14 Unknown selector: time 19:48:32 !lg * min=start 19:48:33 656759. Lemuel the Skirmisher (L0 XXFi), starved to death on D:1 on 2008-10-15, with 0 points after 1447 turns and 0:01:25. 19:49:13 !lg * 1 19:49:13 1. Testing the Shield-Bearer (L1 HuFi), got out of the dungeon alive on 2006-12-02, with 256 points after 45 turns and 0:00:16. 19:49:36 min=start should work, but there are some null start dates from crashes 19:51:15 i think you should just connect a local spectator (possible inside the same process) to tiles games 19:51:21 and record that as a normal ttyrec. 19:51:47 it won't be very awesome, but it will be something. 19:54:48 I'd say the simplest thing is add a --protocol-fd FD to the console version 19:55:06 if specified, it additionally dumps binary protocol data to that file descriptor 19:56:06 again, I don't understand what are you going to do with that data. 19:56:08 dgamelaunch will either send that fd or not to the player/a given watcher depending on whether an environment variable was set in the ssh session or via telnet negotiation 19:56:18 just send it to interested clients 19:56:35 ttyrec recorder just gets normal output as it is now 19:59:36 that'll probably work, but i'd do something else though. :-) 20:00:55 -!- Enne has joined ##crawl-dev 20:07:26 -!- Mu_ has quit [Quit: Defecator, may everything turn out okay so that you can leave this place.] 20:14:38 -!- morik has quit [Disconnected by services] 20:14:40 -!- morik_ is now known as morik 20:15:05 -!- bfein_ has joined ##crawl-dev 20:35:55 -!- eith has quit [Ping timeout: 260 seconds] 20:51:37 03enne.walker * r0712bba602d4 10/crawl-ref/source/ (map_knowledge.cc tileview.cc tileview.h): Clean up tiles-specific behavior in clear_map. 20:51:38 03enne.walker * rc4b79eddc53a 10/crawl-ref/source/ (tileview.cc tileview.h view.cc): Add a tiles function for wiz-mode magic mapping. 20:51:40 03enne.walker * r46d2fc5989b0 10/crawl-ref/source/ (tilepick.cc tilepick.h): Remove unused tileidx_unseen_terrain function. 20:51:42 03enne.walker * r919dd7e782fd 10/crawl-ref/source/tilepick.cc: Add compile assert for TILE_DNGN_UNSEEN assumption. 20:51:45 03enne.walker * r5837ba942295 10/crawl-ref/source/ (tilepick.cc tilepick.h view.cc): Add tileidx_out_of_bounds function. 20:51:45 Nope. 20:51:46 03enne.walker * r97836cfa4e1c 10/crawl-ref/source/map_knowledge.cc: Remove tiles-specific map knowledge flag logic. 20:51:48 03enne.walker * rb384af3456fb 10/crawl-ref/source/ (invent.cc menu.cc tilepick.cc tilepick.h tileview.cc): Refactor tileidx_feature function. 20:51:50 03enne.walker * r99492108ecb2 10/crawl-ref/source/ (mon-place.cc tilepick.cc tilepick.h): Move tile-specific monprops func into tilepick.cc. 20:51:52 03enne.walker * r5d16a7dbfa22 10/crawl-ref/source/ (menu.cc tilemcache.cc tilepick.cc tilepick.h tileview.cc): Refactor tileidx_monster function. 20:51:54 03enne.walker * r324a8f17c3d0 10/crawl-ref/source/ (5 files in 2 dirs): Add tileidx_out_of_los function. 20:51:57 03enne.walker * r24970e8a4a50 10/crawl-ref/source/ (show.cc tilepick.cc tilepick.h tileview.cc tileview.h): Simplify tile_place_monster function. 20:51:59 03enne.walker * r2d900bb4c548 10/crawl-ref/source/ (tags.cc tilepick.cc tilepick.h): Properly init missing tile info from show_type. 20:51:59 03enne.walker * rb4373cee1630 10/crawl-ref/source/ (show.cc tilepick.cc): Remove unneeded tiles #ifdef in _update_monster. 20:52:21 Ah, well. 20:52:27 I swear I updated that script? 20:52:57 Oh, oops. That's just a copy. :P 20:53:13 * Enne blushes. 20:53:15 Did you not update the version on SF? 20:53:19 Yeah, I did that too. 20:53:19 <.< 20:53:21 >.> 20:53:25 -!- Vandal| has quit [Ping timeout: 264 seconds] 20:55:43 Wow, that's a lot of changes. 20:56:10 -!- TGWi has joined ##crawl-dev 20:56:44 It was all to fix https://crawl.develz.org/mantis/view.php?id=1653 20:57:01 And I started pulling the thread of brokenness and that's what fell out. 20:57:05 :( 20:57:19 -!- Vandal has joined ##crawl-dev 20:57:23 Strange but cool. 20:58:43 The code for drawing magic mapped squares and detected monsters had hardcoded characters in it. :( 20:58:58 Yeah, strange. 21:00:33 -!- TGWi has left ##crawl-dev 21:04:02 03enne.walker * r575dd19e71e3 10/crawl-ref/source/tilepick.cc: Use the unseen monster tile for sensed monsters. 21:04:43 as opposed to a question mark? 21:07:27 Yes. Although, also as opposed to using TILE_PROGRAM_BUG which shouldn't ever be used. 21:08:26 There's TILE_PROGRAM_BUG? :) 21:08:30 Is it cutesy and bug-like? 21:08:49 It's just an ugly question mark. 21:09:18 There was a cutesy and bug-like program bug at some point, but it may have gotten used for something else? 21:09:35 Poor_Yurik, we need a program bug icon! 21:15:09 -!- flowsnake has joined ##crawl-dev 21:31:23 -!- Luca__ has quit [Remote host closed the connection] 21:31:40 -!- Luca__ has joined ##crawl-dev 21:34:50 -!- Eronarn has quit [Quit: leaving] 21:51:49 -!- permagreen has joined ##crawl-dev 21:56:32 -!- flowsnake has left ##crawl-dev 22:25:51 I live, again 22:26:20 yaaay 22:31:16 -!- permagreen has quit [Quit: Welcome to the real world] 22:57:58 due, it will be done. 22:58:27 but wait, it isn't ever to be used? :( 22:58:41 may i suggest a broken cauldron. 22:59:33 must be an actual bug 23:57:02 -!- Poor_Yurik has quit [] 23:57:06 -!- Enne has quit [Ping timeout: 240 seconds] 23:59:11 Kiku should not offer to bloody unbrandable weapons (and non-weapons) (https://crawl.develz.org/mantis/view.php?id=1718) by MrMisterMonkey