00:38:05 03alexjurkiewicz02 07https://github.com/crawl/crawl/pull/721 * 0.22-a0-280-ga90d2a0: Generate species data from YAML files 10(6 weeks ago, 62 files, 2846+ 2679-) 13https://github.com/crawl/crawl/commit/a90d2a06c175 00:38:05 03alexjurkiewicz02 07https://github.com/crawl/crawl/pull/721 * 0.22-a0-281-gcbef7eb: Clean up random/viable character selection 10(3 days ago, 6 files, 77+ 84-) 13https://github.com/crawl/crawl/commit/cbef7ebc52f4 00:38:05 03alexjurkiewicz02 07https://github.com/crawl/crawl/pull/721 * 0.22-a0-282-gf2d15f2: Document species/jobs missing recommendations 10(3 days ago, 2 files, 6+ 2-) 13https://github.com/crawl/crawl/commit/f2d15f24e00c 03:11:44 Unstable branch on crawl.beRotato.org updated to: 0.22-a0-374-g5dfd9e3 (34) 05:22:52 -!- amalloy is now known as amalloy_ 07:25:48 advil: right, thanks; well, looks like we'll all need bigger screens now 08:41:40 03Aidan Holm02 07https://github.com/crawl/crawl/pull/728 * 0.22-a0-358-g89f4b71: Add hierarchical UI system 10(6 months ago, 4 files, 770+ 1-) 13https://github.com/crawl/crawl/commit/89f4b7185cd3 08:41:40 03Aidan Holm02 07https://github.com/crawl/crawl/pull/728 * 0.22-a0-359-gc05df19: Add widget preferred size caching 10(6 months ago, 2 files, 15+ 0-) 13https://github.com/crawl/crawl/commit/c05df19128cb 08:41:40 03Aidan Holm02 07https://github.com/crawl/crawl/pull/728 * 0.22-a0-360-gb8ba8a6: Add crt/sdl-specific widget margin helpers 10(6 months ago, 1 file, 13+ 0-) 13https://github.com/crawl/crawl/commit/b8ba8a61d91c 08:41:40 03Aidan Holm02 07https://github.com/crawl/crawl/pull/728 * 0.22-a0-361-g114e2a6: Add rowspan, colspan, and flex_grow to grid 10(6 months ago, 2 files, 84+ 56-) 13https://github.com/crawl/crawl/commit/114e2a64ed19 08:41:40 03Aidan Holm02 07https://github.com/crawl/crawl/pull/728 * 0.22-a0-362-g33c8a4f: Add UI scissor stack 10(6 months ago, 2 files, 50+ 2-) 13https://github.com/crawl/crawl/commit/33c8a4f74a15 08:41:40 03Aidan Holm02 07https://github.com/crawl/crawl/pull/728 * 0.22-a0-363-g7dd0da7: Add text widget 10(4 months ago, 2 files, 189+ 0-) 13https://github.com/crawl/crawl/commit/7dd0da779e93 08:41:40 03Aidan Holm02 07https://github.com/crawl/crawl/pull/728 * 0.22-a0-364-g67baf1c: Only render visible grid rows 10(5 months ago, 2 files, 41+ 10-) 13https://github.com/crawl/crawl/commit/67baf1c0bd2c 08:41:40 03Aidan Holm02 07https://github.com/crawl/crawl/pull/728 * 0.22-a0-365-g143e157: Add UI widget event observer API 10(4 months ago, 4 files, 308+ 50-) 13https://github.com/crawl/crawl/commit/143e157409b6 08:41:40 03Aidan Holm02 07https://github.com/crawl/crawl/pull/728 * 0.22-a0-366-g958dcfb: Add scroller widget 10(5 months ago, 2 files, 108+ 0-) 13https://github.com/crawl/crawl/commit/958dcfbaac59 08:41:40 03Aidan Holm02 07https://github.com/crawl/crawl/pull/728 * 0.22-a0-367-gaa3f1bf: Don't expand grid tracks beyond their natural size 10(5 months ago, 1 file, 22+ 6-) 13https://github.com/crawl/crawl/commit/aa3f1bf7cbaa 08:41:40 ... and 82 more commits 08:41:47 03Aidan Holm02 07[ui-overhaul] * 0.22-a0-358-g89f4b71: Add hierarchical UI system 10(6 months ago, 4 files, 770+ 1-) 13https://github.com/crawl/crawl/commit/89f4b7185cd3 08:41:47 03Aidan Holm02 07[ui-overhaul] * 0.22-a0-359-gc05df19: Add widget preferred size caching 10(6 months ago, 2 files, 15+ 0-) 13https://github.com/crawl/crawl/commit/c05df19128cb 08:41:47 03Aidan Holm02 07[ui-overhaul] * 0.22-a0-360-gb8ba8a6: Add crt/sdl-specific widget margin helpers 10(6 months ago, 1 file, 13+ 0-) 13https://github.com/crawl/crawl/commit/b8ba8a61d91c 08:41:47 03Aidan Holm02 07[ui-overhaul] * 0.22-a0-361-g114e2a6: Add rowspan, colspan, and flex_grow to grid 10(6 months ago, 2 files, 84+ 56-) 13https://github.com/crawl/crawl/commit/114e2a64ed19 08:41:47 03Aidan Holm02 07[ui-overhaul] * 0.22-a0-362-g33c8a4f: Add UI scissor stack 10(6 months ago, 2 files, 50+ 2-) 13https://github.com/crawl/crawl/commit/33c8a4f74a15 08:41:47 03Aidan Holm02 07[ui-overhaul] * 0.22-a0-363-g7dd0da7: Add text widget 10(4 months ago, 2 files, 189+ 0-) 13https://github.com/crawl/crawl/commit/7dd0da779e93 08:41:47 03Aidan Holm02 07[ui-overhaul] * 0.22-a0-364-g67baf1c: Only render visible grid rows 10(5 months ago, 2 files, 41+ 10-) 13https://github.com/crawl/crawl/commit/67baf1c0bd2c 08:41:47 03Aidan Holm02 07[ui-overhaul] * 0.22-a0-365-g143e157: Add UI widget event observer API 10(4 months ago, 4 files, 308+ 50-) 13https://github.com/crawl/crawl/commit/143e157409b6 08:41:47 03Aidan Holm02 07[ui-overhaul] * 0.22-a0-366-g958dcfb: Add scroller widget 10(5 months ago, 2 files, 108+ 0-) 13https://github.com/crawl/crawl/commit/958dcfbaac59 08:41:47 03Aidan Holm02 07[ui-overhaul] * 0.22-a0-367-gaa3f1bf: Don't expand grid tracks beyond their natural size 10(5 months ago, 1 file, 22+ 6-) 13https://github.com/crawl/crawl/commit/aa3f1bf7cbaa 08:41:47 ... and 82 more commits 08:41:48 !seen aidanh 08:41:49 chequers: You have 2 messages. Use !messages to read them. 08:41:49 I last saw aidanh at Thu Apr 26 11:25:48 2018 UTC (1h 16m 1s ago) saying 'advil: right, thanks; well, looks like we'll all need bigger screens now' on ##crawl-dev. 08:42:00 wow, talk about timing 08:42:11 hey chequers ! 08:42:31 congrats on landing that 08:43:19 it's not landed yet, just has its own branch on crawl/crawl; but hopefully will be soon 08:44:00 I wanted to ask you for some info on how to generate constexprs. I think the basic idea is I build a map of species to an array of recommended_jobs, and I prefix the map name with 'constexpr' which makes it compile-time. Is that right? 08:44:39 btw, I will need four such maps. One for species -> recommended jobs. On for species -> non-banned jobs (eg demigod bans zealots). And the same for backgrounds 08:46:36 like: static constexpr map species_recommended_jobs = .. something goes here 08:51:05 that's the basic idea, yeah; then you just assign an initializer list 08:52:29 so static constexpr ... = {{sp1, {jobs}}, {sp2, {jobs}}, ...}; 08:52:57 except that won't work, because your arrays will be all the same size 08:53:00 I guess it's easy to generate such a table from codegen 08:53:42 easy enough, yeah 08:54:12 I have no idea how to fix that array size issue you mentioned, or even really what it means. Do I have to worry about it? 08:55:01 array<> is templated on the size; so array<5,job> for an array of five jobs is a different type to array<3,job> 08:55:24 oh. What's the variable size thing called again? vector or something 08:55:37 yes 08:56:02 vector, yeah; they can be constexpr constructed as well, and it's possible the compiler will remove the extra indirection 08:56:52 an alternative is a vector>, where you have species-job pairs sorted by species 08:57:56 sounds like duplicated data. Inefficient! Those kilobytes aren't free 08:58:05 Can you help with the syntax? 08:58:07 newgame.cc:171:59: error: constexpr variable cannot have non-literal type 'const map >' static constexpr map> species_recommended_jobs = { ^ 08:58:27 hm no newline support in webchat 08:59:53 it would probably be cheaper than a map; a map uses an rb-tree internally, so every node is at least 18 bytes, instead of 2 bytes for a vector> 09:01:37 and the code is cold; it's run once or twice per game load, so the extra memory usage is really not relevant 09:03:24 I don't really understand this clang error. The stackoverflow references to "constexpr variable cannot have non-literal type" are all talking about putting constexpr inside a class defintion, but this is just two enums 09:07:17 hm, I may be wrong about being able to do constexpr maps 09:08:09 might be simpler to stick with filter_enum 09:08:27 03alexjurkiewicz02 07https://github.com/crawl/crawl/pull/721 * 0.22-a0-283-g3e56be5: species: Make difficulty mandatory 10(28 minutes ago, 12 files, 13+ 3-) 13https://github.com/crawl/crawl/commit/3e56be5e93d7 09:08:31 I had the same error with vector> 09:11:43 std::array works 09:15:08 i gotta go to sleep, I'll try to look at this more tomorrow. std::array seems to give the same error for me with static constexpr std::array, 10> species_recommended_jobs 09:15:44 I think the problem is with the assignment, not the type 09:15:47 btw, filter_enum actually won't work for cleaning up the do..while loops because we need to pass multiple parameters to the filter function. I can create a specialised version but unsure if that's then still better 09:15:53 can you paste the exact line from the source in? 09:15:54 No worries; this works for me, btw: constexpr array, 1> foo = { make_pair(SP_HUMAN, JOB_FIGHTER) }; 09:17:13 then to pick an item, you use std::copy_if to copy all the items that match your predicate into a temporary, then pick a random element of that 09:17:20 I pasted your line into newgame.cc and it still failed to compile 09:17:54 huh.. what's the error? 09:18:22 https://pastebin.com/raw/kj7ciLSn 09:19:53 interesting... 09:19:58 also, this compiles for me: const map> x = {{SP_HUMAN, {JOB_FIGHTER,JOB_WIZARD}}}; 09:20:19 Apple LLVM version 9.0.0 (clang-900.0.39.2) 09:20:30 you might need to #include 09:20:47 I am using the exact same compiler :) 09:20:51 but it does seem to be finding a definition for it, so maybe not 09:21:23 that changes it: error: constexpr variable 'foo' must be initialized by a constant expression 09:21:40 anyway, i really have to go. Sorry to drop in the middle of debugging. I'll write up a summary of the approaches in the PR 09:21:50 thanks for your help here and with the PR in general 09:21:57 no worries 09:22:21 oh hm, I *do* get errors using `constexpr` instead of `const` 09:23:21 sp `constexpr map> x = {{SP_HUMAN, {JOB_FIGHTER,JOB_WIZARD}}};` replicates chequers' error 09:23:29 s/sp/so 09:23:53 does for me too 09:24:32 because map<> is not a literal type 09:24:32 i.e. it cannot be constexpr-constructed 09:25:37 if arrays are out, pair foo[] = { make_pair(SP_HUMAN, JOB_FIGHTER) }; could be an option 09:26:17 it's probably not a big deal if it's just const, not constexpr 09:27:08 yeah, copying the array to filter it is going to take back any cycles we gain 09:33:19 The build was fixed. (ui-overhaul - eb4da12 #9542 : Aidan Holm): https://travis-ci.org/crawl/crawl/builds/371539851 09:34:12 not too sure what that out-of-bounds write was caused by... hopefully it doesn't rear its ugly head immediately after merging 09:48:38 any problems with https://github.com/crawl/crawl/pull/744 ? 09:49:10 I was going to merge it, but it's so simple that surely someone would have merged it already, unless there was a reason not to... :) 09:51:14 it looks good, though you'd have to merge it manually because gamma just modified that function yesterday 09:52:25 alright, thanks 09:54:34 advil: wrt your pr 599 todo, there's a branch pr-599 with some work already 09:56:04 I think the remaining task is to adjust spell ranges/flags, so that some monster spells (invisibility?) don't display a range 09:58:59 03NormalPerson702 {Aidan Holm} 07* 0.22-a0-375-g2895223: Fix the message order when unwielding randart weapons (damerell, #11427) 10(7 days ago, 1 file, 28+ 10-) 13https://github.com/crawl/crawl/commit/28952231187b 10:10:00 Unstable branch on crawl.jorgrun.rocks updated to: 0.22-a0-375-g2895223118 (34) 10:56:11 ah, I hadn't seen that branch 10:57:59 re 744 seems fine, I would have merged if I could hit the button (but it's just a matter of cherry-picking the first commit or something) 10:58:39 aidanh: I might try running that abyss test locally a bunch of times to see if it replicates 10:58:58 ./crawl -test test/abyss_short_run.lua 10:59:33 thanks, will do; I tried it a few times, but it might need to be run overnight or something 10:59:38 oh nm it's not run that way 10:59:59 there's test/stress/run 11:00:02 yeah 11:00:07 which I think initializes the seed 11:01:00 I have noticed in various debugging circumstances that those x,y values don't always seemed to be properly initialized 11:01:12 at least, what I'm assuming are the same x,y values 11:02:21 let me see if I can find an example 11:02:32 the abnormally large values in that travis crash? I'd be very interested in knowing more about that.. 11:14:48 I'm not finding it 11:15:29 this was on ui-overhaul though? 11:15:40 not sure 11:15:57 IIRC it wasn't the cause of whatever crash it was. I suspect I saw it on a travis failure, because I think it was in the full gdb trace and most server crashes (as well as my local crashes) don't have that 11:19:31 ok, no worries; I'll give abyss_short_run a go through valgrind 11:20:22 in my branch, large values like that can show up in widget size requests: if a widget wants to expand horizontally, its desired width is just set to a huge number 11:20:27 so that's one possible cause 11:21:01 ah 11:22:02 but that's only used when determining how to allocate the available space though, which is always a subset of the screen size 11:22:26 so widget's m_region (a x,y,w,h tuple) should always be within the screen bounds 11:23:16 instead of using a giant arbitrary number (if I'm understanding right), you could maybe use the current window width or something? i.e. the max possible in principle number 11:24:40 <|amethyst> the thing is, 1047421306 and 1919903265 are both rather arbitrary large values to appear somewhere like that 11:25:04 <|amethyst> I'd rather suspect that it's smashed or uninitialised memory 11:25:33 hm I guess that travis log got overwritten with some other issue 11:25:45 <|amethyst> e.g. 1047421306 = 0x726f6621 = 0b111110011011100110000101111010 = 2 * 17 * 2011 * 15319 11:26:05 it's not that giant; it's only ~16 million (0xffffff to be precise) 11:26:42 so you'd need to stack a few hundred widgets end-to-end for the requested size to overflow, and that'd crash in a different way (not enough size allocated for widgets) 11:27:15 <|amethyst> yeah, then I suspect that had nothing to do with this crash, because neither the OOB x nor y position was 0xffffff times a small number plus a small number 11:27:28 yeah, memory clobbering seems likely 11:27:54 I don't suppose crawl builds are reproducible? 11:28:16 that test in particular is pretty random 11:28:27 <|amethyst> they're intended to be, if you use the same seed 11:28:40 <|amethyst> but that might or might not actually be the case 11:29:17 there's also this sporadic random segfault that has shown up in los_symm.lua very occasionally. since it's entirely unclear so far what's causing the segfault, it could present in multiple ways 11:29:59 <|amethyst> well, I guess 'reproducible' isn't the right word 11:29:59 <|amethyst> the game engine, including RNG, is supposed to be reproducible 11:30:42 I meant the build system, but if the bug is reproducible that's enough 11:32:06 <|amethyst> if you have exactly the same libraries etc., it's probably "mostly reproducible" (there might be a timestamp buried in the executable somewhere); but I don't think we use travis in such a way as to guarantee that each build will have exactly the same library versions, if the repo updates 11:32:41 oh, the travis log getting wiped was me trying to rebuild after I'd already pushed a rebased version 11:34:00 advil: I can't use the maximum screen size because there's no actual relationship between that and the screen area that a widget might be allocated 11:34:38 <|amethyst> I think 0xffffff seems fine for that kind of thing, though actually I'd consider 0x1000000 instead 11:34:58 <|amethyst> it's clearly out of bounds and will cause an error if it's actually used, which seems like exactly what you'd want 11:35:20 e.g. the manual text is a single text widget that has a very tall allocation; most of it isn't on the screen 11:35:51 will cause an error if actually used, in what sense? 11:36:32 <|amethyst> if you try to actually draw something at position 0xffffff + 2 for example 11:38:55 this constant is just for size requests where a widget wants to take up all available space in a given direction 11:39:15 the amount of screen space a widget actually gets allocated is separate 11:39:41 <|amethyst> right, and the number being large and out of bounds means you will find out quickly if those aren't kept separate :) 11:40:18 right, but the number is already large and out of bounds :) 11:41:22 I'm not sure that any particular bit-pattern is going to be all that noticable, either; the small bits would likely be shifted by some offset, depending on the UI layout 11:42:27 cgotoxy() already asserts for positions out of bounds (obviously) and it's not considered an error for SDL 12:05:30 -!- Euph0ria is now known as TabMasher 12:08:43 I'm not too sure what that test is doing, but there doesn't seem to be any abyss walking at all 12:10:22 it should move around a little bit as the last thing it does 12:11:00 you can watch it if you run it using the command in the comments at the begginning of the file 12:14:16 well, the last thing it does every ready cycle 12:14:34 cmds is mostly movement keys 12:15:13 though hm, is this even going to the abyss? 12:17:07 yup, that's what I'm saying; it's not 12:17:23 yeah I just read "walking" 12:17:26 which there is 12:17:38 perhaps a dungeon generator change broke the seed? because it's spending a lot of time walking in a circle at the end of a corridor 12:18:02 i.e. not moving at all 12:18:02 I think the walking code would work better for abyss, it gets stuck in normal maps 12:18:22 oh nvm, that's the cmds array, I get it 12:18:35 but yeah, no abyss here 12:18:53 it looks a bit like it's written assuming an AK start? 12:20:17 right, that was my guess; that was changed in 41de0b3ea9 12:20:56 %git 41de0b3ea9 12:20:57 07kilobyte02 * 0.12-a0-3019-g41de0b3: Two canned tests in the Abyss. 10(5 years ago, 4 files, 125+ 2-) 13https://github.com/crawl/crawl/commit/41de0b3ea907 12:23:40 github doesn't show it at all, but that commit copies it from test/stress/abyss.rc, with minor modifications 12:25:06 git log -p -M --follow test/stress/abyss_short_run.rc is useful here 12:28:58 well, maybe not...it looks like string.char(2) should be Ctrl-b, which works correctly in abyss_short_wait.rc 12:32:33 !learn edit past_tournaments s/The 0.20 tournament ran from 20:00 UTC Friday 26 May 2017 to 20:00 UTC Sunday 11 June 2017/The 0.21 tournament ran from 20:00 UTC Friday 5 January 2018 to 20:00 UTC Sunday 21 January 2017/ 12:32:33 Use: !learn edit past_tournaments[NUM] s/// 12:32:40 !learn edit past_tournaments[1] s/The 0.20 tournament ran from 20:00 UTC Friday 26 May 2017 to 20:00 UTC Sunday 11 June 2017/The 0.21 tournament ran from 20:00 UTC Friday 5 January 2018 to 20:00 UTC Sunday 21 January 2017/ 12:32:41 past tournaments[1/6]: The 0.21 tournament ran from 20:00 UTC Friday 5 January 2018 to 20:00 UTC Sunday 21 January 2017. Tournament home page: http://dobrazupa.org/tournament/0.20/ 12:33:12 urgh, just realized I've been valgrinding the wrong commit 12:33:30 s/0\.20/0.21/ 12:33:35 oh lol 12:34:04 !learn edit past_tournaments[1] s/0\.20/0.21/ 12:34:04 past tournaments[1/6]: The 0.21 tournament ran from 20:00 UTC Friday 5 January 2018 to 20:00 UTC Sunday 21 January 2017. Tournament home page: http://dobrazupa.org/tournament/0.21/ 12:34:04 !ping 12:34:04 pong 12:34:06 !learn edit past_tournaments[1] s/0\.20/0.21/ 12:34:06 sequell hello 12:34:07 No change: regex `0\.20` does not match `The 0.21 tournament ran from 20:00 UTC Friday 5 January 2018 to 20:00 UTC Sunday 21 January 2017. Tournament home page: http://dobrazupa.org/tournament/0.21/` 12:34:37 erm well that fixed it even though it returned an error, so i dunno what's going on there... 12:36:02 oh sorr 12:36:04 sorry 12:36:05 whoops 12:36:15 wrong channel, sorry guys :) 12:38:05 aha I figured out the bug in that test 12:39:04 though I don't quite see why it has the effect that it does 12:39:40 yeah? 12:39:46 maybe an error response to sendkeys bails on ready() 12:40:00 boots of flight activate automatically, and also the hotkey is no longer h anyways 12:40:27 so the sendkey that is supposed to make you fly gives an error, and I guess prevents the last two setup lines from running 12:41:03 I will commit a fix, not that that helps you track down your problem :) 12:41:56 anyone know when that hotkey was changed? 12:44:56 oh, that makes sense, yeah 12:45:31 nice catch 12:46:21 i'm surprised that doesn't throw a big red error message 12:47:09 there's just a normal error message ("You can't do that") that isn't visible because it immediately goes to the next ready cycle 12:47:56 does seem like a bit of a trap if that sort of error quits ready() without any special notification 12:48:01 I'm not very familiar with the sendkeys behavior, I try to avoid using it when writing tests 12:48:16 oh right, because the menu just ignores the keys that don't respond to actual menu items 12:48:50 perhaps that should abort, when running a test 12:49:05 sounds pretty reasonable 12:53:52 there's not really a good command-line flag for that though 12:55:35 also, "You can't do that" is specific to the ability menu, and there's around a hundred variations on that theme 12:55:40 ... I suppose /^You can't / would work 12:58:50 03advil02 07* 0.22-a0-376-g15e0017: Fix abyss_short_run.rc (aidanh) 10(14 minutes ago, 1 file, 1+ 2-) 13https://github.com/crawl/crawl/commit/15e00174aab2 12:59:07 I'm not sure why an error like that should abort lua code 13:00:49 well, the idea was to catch any sort of deviation 13:02:58 did sendkeys() actually raise an error? or did the menu ignore the incorrect keybind? 13:05:15 Unstable branch on crawl.akrasiac.org updated to: 0.22-a0-376-g15e0017 (34) 13:06:19 if calling ready() throws an error, that's easy to catch and abort on, but if not, then matching messages is going to catch more test breakages than checking only menu keys is 13:06:47 this is assuming that "You can't do foo" shouldn't happen in test code 13:09:54 Unstable branch on crawl.jorgrun.rocks updated to: 0.22-a0-376-g15e00174aa (34) 13:23:00 -!- Mindiell_ is now known as Mindiell 13:24:43 I didn't really diagnose exactly what happened, except that if that line is in there further lines don't get executed. There was no obvious error; I assume that message got printed but was too fast to see 13:26:29 looking at the sendkeys code I'm not really sure why it would behave that way 13:27:26 there's no lua error reporting 13:31:27 yeah, that doesn't make much sense; there's nothing in crawl_sendkeys_proc() that would reasonably throw an error 13:34:10 on a positive note, valgrind is spewing out reams of "Conditional jump or move depends on uninitialised value" 13:34:36 there's even a chunk_writer::raw_write() writing uninitialized memory in there 13:35:12 fun 13:35:15 huh, now I get "Okay, then." on a bad ability command 13:45:02 oh, I bet I know roughly what's going on 13:45:32 sendkeys doesn't actually do anything immediately, it just pushes stuff into the macro buffer 13:45:55 and then the buffer is processed after the lua code gives up control, I think 13:46:06 so the macro sequence will stop on the relevant type of error 13:47:31 which does make sense from a ui perspective for regular macros, because in general if you get that sort of response to a keypress the remaining keys in the sequence will do who knows what 13:49:03 the cancelling all happens in canned_msg (which is also where all the various flavors of "bad key error" are collected, or should be collected) 13:49:56 -!- hellmonk_ is now known as hellmonk 13:50:15 hm.. so ready() queues the keys, then _get_next_cmd() pops the first key and runs the corresponding command, which pops subsequent keys as necessary 13:50:52 yeah, something like that 13:50:53 that's straight-forward enough, but what's not clear is why that causes a lua error 13:51:01 well it doesn't, really 13:51:04 all the lua runs fine 13:51:21 but any keys in the buffer after the failed ability keys don't get used 13:51:36 because cancel_cmd_repeat flushes the input buffer 13:52:33 ah! ok, that makes sense 13:52:39 one could show an error message there (in fact I have a vague memory that there used to be one?) 13:54:00 !source flush_input_buffer 13:54:01 1/1. https://github.com/crawl/crawl/blob/master/crawl-ref/source/macro.cc#L794 13:54:42 could it be reasonable to abort when flushing if there are still keys in the buffer? 13:55:07 abort what? 13:55:16 I was thinking about printing an error at that point 13:57:01 fail the running test 13:58:03 well, I'm not sure how regularly the buffer is flushed, but if it's only in erroneous situations, that might be possible 13:58:03 maybe, but I'm not sure how to do that -- this doesn't happen during lua execution at all 13:58:15 it should only show up for errors 13:58:33 although who knows, the macro buffer is used in unexpected places 13:59:42 semi unrelated, but are there any multi-key macros? because some parts of the macro code seem to support that, and others don't 14:00:36 multi-key triggers, that is 14:01:17 not sure, I've never encountered one 14:01:24 maybe some multibyte things? 14:02:31 -!- amalloy_ is now known as amalloy 14:02:58 I'm 95% sure there's no support for human input, but sendkeys could still produce them 14:11:21 what do you mean, multi-key triggers? like, can you macro "fa" as the macro "key" to perform some action? 14:11:42 yup 14:12:43 i don't think so. my best guess was that maybe you could macro /f as F, or *f as ^F, but neither of those seems true 14:13:36 !source macro_buf_add_long 14:13:37 1/1. https://github.com/crawl/crawl/blob/master/crawl-ref/source/macro.cc#L483 14:14:05 interestingly, a macro defined on F will not be activated if you press /f 14:14:22 there's a 10-year old comment in there explicitly mentioning the functionality 14:14:38 future-proofing 14:14:53 someday, we'll add emacs controls to complement the vim keys 14:15:11 to move west: C-x c b 14:15:47 grand idea 14:17:10 well, there's a possibility my refactoring will venture into UI handling, especially with the keymap stuff 14:17:28 so if that stuff is unused and broken, I'll probably just cut it out 14:28:41 you're going to ~remove~ it? the devs are always removing things! stop it! 14:39:32 I don't quite get what test/stress/woken_rest.lua is supposed to do 14:39:43 it just seems to print a lot of "There are monsters nearby" messages? 14:46:18 huh, i wonder how the player in https://gist.github.com/amalloy/05bff8f73b00df33fa14a58b58c9b8e0 managed to get down to *** trog piety at XL14, despite using 0 BiA and 3 trog's hand. too much resting, maybe? 14:51:28 he made it to 5* 16k turns earlier, so i guess that's it 14:56:49 advil: looks like it's just trying to see if resting 1k turns on a fully awake level can cause a crash 14:56:49 ah 14:56:55 well, it never actually rested in the times I ran it 14:57:01 it does say in the comments that it's trying to identify "performance problems" but it's clearly not actually addressing performance 14:57:45 maybe it's just not a good test if something equivalent is already happening with other tests 14:57:49 <|amethyst> gammafunk: it might have found performance problems earlier when there was a shorter timeout on tests, and computers were slower 14:58:05 |amethyst: yeah, I was wondering how timeouts would come into play there 14:58:15 like travis timeouts? 14:58:27 <|amethyst> make test has its own timeouts 14:58:31 ah 14:59:21 I know that when I get stressed I'd sometimes like to have access to a stress.entomb() function 15:02:27 <|amethyst> that's how spores work, right? 15:10:25 03advil02 07* 0.22-a0-377-g846bec1: Add a way of detecting sendkeys problems for stress tests 10(9 minutes ago, 11 files, 31+ 1-) 13https://github.com/crawl/crawl/commit/846bec1a06ee 15:11:01 that was a bit hacky 15:11:33 but it did seem dumb that the test didn't work for 2 years because it didn't produce an error (though granted, I guess no one looked at it in those two years either) 15:12:32 advil: what's the first "player_ghost" tag used for in the set of ghost vaults? 15:12:43 I see your chance_player_ghost and luniq_player_ghost tags 15:13:03 nothing, I had added it initially because I thought I might want to do something different with how those vaults are selected 15:13:09 gotcha, ok 15:13:11 so it could be removed 15:14:20 advil: is there anything preventing the placement of multiple ghosts in a vault? 15:14:34 nope, one could write a multi-ghost vault 15:14:52 if we're going to have transporter ones that's probably a good use case for that, or we could just place some additional fun monsters 15:14:55 nice 15:15:05 gonna make a ghost guantlet 15:15:23 in current trunk there's a very low probability to place multiple ghosts (though it needs there to be enough in the bones file, which is extremely rare) 15:15:26 not really, but it could be fun to try a vault with multiple ghosts 15:15:39 yeah, I think at least a rare 2 ghost vault could be fun 15:36:03 advil: hrm, for basic_ghost_runed_special you give a lower chance 15:36:16 I believe you're trying to give that one lower weight? 15:36:21 it's sharing the same tags 15:37:30 If you'd like that one to simply be a less common choice, just giving it a WEIGHT will do this 15:37:43 weights apply normally to a set of vaults chosen with a common tag 15:38:40 the vaults ghost vaults might also be a problem, since that we'll no longer have a flat chance, unless you've modified the vault layout appropriately 15:40:45 I should put these comments in the PR anyhow 16:09:51 Unstable branch on crawl.jorgrun.rocks updated to: 0.22-a0-377-g846bec1a06 (34) 16:30:10 -!- timbabwe is now known as Timbabwe 17:17:13 advil: backtrace I get from a crash where I try to reload a level with CHANCE: 100% in those two ghost vaults: http://dpaste.com/3CPQXCG 17:17:46 I think I might have fixed that actually 17:18:01 maybe I didn't push 17:18:48 %git bc518ec7597f5a213d 17:18:48 07advil02 * 0.22-a0-382-gbc518ec: Don't crash on mprf while loading ghosts 10(3 days ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/bc518ec7597f 17:18:51 I shold have mention how I've merged master 17:19:00 should be fixed in that commit 17:19:11 interesting, maybe I need to do a pull 17:19:14 hmmmm 17:19:20 I did rebase, maybe after you pulled? 17:19:26 it's rebased on top of a pretty recent master 17:19:33 oh, are you rebasing the branch? 17:19:46 ok, I guess I'll just pull the current one then 17:19:50 I did a couple days ago (or something) 17:20:20 yeah, on Tuesday it looks like 17:20:51 at some point I may need to make some commits, so as long as you don't force push over any of these 17:21:03 ok 17:21:43 I just wanted to rebase since it was a few months behind, I'll hold off on any rebasing in the immediate future 17:22:20 yeah, merge would be fine though 17:24:24 re basic_ghost_runed_special, yeah, I wasn't quite sure how to do that. is each probability tag supposed to have the same probability for each vault that has it? 17:24:49 in mapstat setting that to 5% actually seemed to work, but it definitely didn't seem to be what the docs said to do 17:25:13 just setting the WEIGHT is what you're supposed to do, yeah 17:25:29 do I need to then set weights on all of them? 17:25:39 well they all already have a weight with a default of 10 17:25:43 oh 17:25:57 but yeah, I'm not fully sure what CHANCE with a different percentages will do, it might give a separate independent chance 17:26:07 regardless of tags, it's sort of ill-defined 17:26:21 I guess there's a problem with our specification language here any way you look at it 17:27:08 if I set it to a different chance tag, but luniq_player_ghost, would that work? 17:27:38 well, isn't what you want to do exactly equivalent to using WEIGHT: 5? 17:27:43 heh maybe 17:28:20 it will use the overall chance but the odds of that vault being selected will be 5 / 25 given the 10% rolling positive 17:28:43 ok, so it uses the sum of all in that category as the denominator? 17:28:47 right 17:28:55 that's just always how WEIGHT works 17:29:28 it's not easy to see what that demoninator is for some groups of vaults since they're a massive list 17:29:28 but in your case you know what the set is 17:29:38 and you should see this reflected in mapstat output, but let me know if not 17:29:43 or I can test myself as well 17:30:14 I'll try it out sometime tonight maybe 17:52:01 hrm, I deleted my bones file, but I still get 17:52:02 Regenerating level. 17:52:02 No ghost files for this level. 17:52:02 Ghost file 'saves/bones/bones.store.D-13' invalid before read. 17:52:06 when regenerating a level 18:19:58 Unstable branch on underhound.eu updated to: 0.22-a0-377-g846bec1a06 (34) 18:33:29 Slave description states: "Killing this monster yields no experience, nutrition or items." 13https://crawl.develz.org/mantis/view.php?id=11459 by RoGGa 18:40:23 "invalid before read" actually includes if it doesn't exist 18:40:37 for some reason 18:57:33 -!- EuphOria is now known as TabMasher 19:34:15 -!- amalloy is now known as amalloy_ 20:03:25 -!- Bammboobies is now known as Bammboo 21:26:54 -!- amalloy_ is now known as amalloy 23:43:27 -!- mikee__ is now known as mikee_