00:10:06 Unstable branch on crawl.jorgrun.rocks updated to: 0.22-a0-357-ga98e25f713 (34) 00:15:13 03CanOfWorms02 {GitHub} 07* 0.22-a0-358-g7563fe7: Scale skills correctly when checking fail rate 10(12 seconds ago, 1 file, 8+ 1-) 13https://github.com/crawl/crawl/commit/7563fe7e7f42 01:09:51 Unstable branch on crawl.jorgrun.rocks updated to: 0.22-a0-358-g7563fe7e7f (34) 01:21:02 Unstable branch on CRAWL.XTAHUA.COM updated to: 0.22-a0-358-g7563fe7 (34) 01:25:19 Unstable branch on crawl.develz.org updated to: 0.22-a0-358-g7563fe7 (34) 01:57:02 Windows builds of master branch on crawl.develz.org updated to: 0.22-a0-358-g7563fe7 02:37:41 03Nikolai Lavsky02 {Aidan Holm} 07* 0.22-a0-359-g5e80d7e: Remove books from shopping list on pickup (Kipster) 10(23 hours ago, 1 file, 3+ 5-) 13https://github.com/crawl/crawl/commit/5e80d7e212b4 02:54:31 Monster database of master branch on crawl.develz.org updated to: 0.22-a0-359-g5e80d7e 03:09:53 Unstable branch on crawl.jorgrun.rocks updated to: 0.22-a0-359-g5e80d7e212 (34) 03:11:50 Unstable branch on crawl.beRotato.org updated to: 0.22-a0-359-g5e80d7e (34) 03:39:28 -!- amalloy is now known as amalloy_ 07:54:18 -!- muffindrake1 is now known as muffindrake 10:10:00 so I'm considering replacing all the quiet/silent boolean parameters with a RAII-based system 10:11:30 the logic here is that the usual default is to log messages with mprf etc, but sometimes you want a function call (and whatever it calls) to not log anything 10:13:24 so mprf() etc would be called normally by all crawl code, but if a lower stack frame has a message_muter object instantiated, all mprf calls silently return 10:29:49 aidanh: how is that implemented? some kind of global state variable that all message_muter objects set? 10:30:43 there's something like that already with no_messages 10:31:42 oh, I guess, it'd work pretty much like how no_messages does it 10:31:54 oh, heh, yeah it does look exactly like that 10:33:34 is this really less problematic than passing arguments though, I wonder 10:33:59 is it just a good way of preventing argument creep 10:34:14 I'd say it's worth it 10:34:48 yeah, that's what I'm wondering, what's the biggest ultimate benefit of this 10:34:53 you have fewer arguments (which really helps with the "five bool parameters in a row" problem), better separation of concerns, and assurance that if you make a no_messages object, it's really going to be silent 10:35:26 hm can you give a specific example of where this change would impact? 10:35:36 i.e. there's no risk of some sub-sub-function call printing a message when it shouldn't 10:36:31 this does sound like no_messages 10:36:37 yeah that is true, if mpr refuses to print at all with this state variable set, that's more reliable than having to check a quiet parameter in some caller of mpr 10:36:49 but I wonder how many places there's a silent param that isn't intended to have a recursive effect 10:37:07 probably not a lot since it's the sort of bug where you can see it pretty easilly 10:37:12 anywhere that *does* should be replaced by no_messages already, but no one has done it systematically 10:37:13 since you see a message where you shouldn't 10:37:49 another issue this fixes is that, when adding a new function that might need to be quiet, you now need to add a quiet parameter to every function it calls 10:38:12 or use no_messages? 10:38:18 I'm confused :) 10:38:50 well, yeah, that's what I was proposing (before wheals pointed out that no_messages already existed) 10:38:59 ahh ok 10:39:47 I don't think there'd be any places where you'd want quiet=true to have a non-recursive effect 10:39:55 the notion seems ill-formed 10:40:10 I'm not sure about that 10:41:27 could you think of any examples? 10:41:42 well one would have to go through them all 10:41:55 yeah, I guess so 10:42:05 i think there might be a couple cases, though, where quiet=true suppresses some messages but not all 10:42:17 though that in itself is not great, especially if there's no function documentation to that effect 10:42:29 perfect 10:42:31 I think that technique is sometimes used when a calling function overrides the messages in some way 10:42:42 but I'd have to dig through specific cases 10:43:46 rename those args from 'quiet' to 'quieter' 10:44:06 sorta_kinda_quiet_sometimes 10:44:16 hm it's also used sometimes to condtionalize the message calls, this probably won't matter in practice a lot, but an RAII approach would probably involve calling all of those 10:44:29 !source make_hungry 10:44:30 1/3. https://github.com/crawl/crawl/blob/master/crawl-ref/source/actor.h#L142 10:44:31 random example 10:44:34 er 10:44:41 !source food.cc::make_hungry 10:44:42 Can't find food.cc::make_hungry. 10:44:45 !source food.cc:make_hungry 10:44:46 Can't find food.cc:make_hungry. 10:44:52 well, that one 10:44:56 probably only likes line numbers 10:45:04 !source food.cc:50 10:45:05 https://github.com/crawl/crawl/blob/master/crawl-ref/source/food.cc#L50 10:46:50 sheesh 10:47:02 that silent param there is a bit of a mess, huh 10:47:12 obligatory meme: r e m o v e f o o d 10:48:56 I do think more raii for messages is the way to go, I have a long term message revamp in the (slow) works that uses recursive circular buffers for better control of ordering as well as expandable sub-message buffers, it's something |amethyst and I have discussed from time to time 10:49:01 I'm not sure what you mean by 'calling all of those' 10:49:37 with that param set to true, _describe_food_change is never called 10:49:52 using no_messages would have the same effect, but it would be called 10:50:07 and run, etc 10:50:07 advil: I'll look into this further in a while, but in case you're interested, some warning I got when compiling spooky_vaults after merging master: 10:50:17 files.cc: In function ‘bool define_ghost_from_bones(monster&)’: 10:50:18 files.cc:1889:11: warning: variable ‘ghost_errors’ set but not used [-Wunused-but-set-variable] 10:50:19 well, just add messages.is_silenced() if it's really necessary for performance/other reasons 10:50:20 bool ghost_errors = false; 10:50:34 files.cc: In function ‘bool _update_permastore(const std::vector&, bool)’: 10:50:37 files.cc:2515:59: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] 10:50:40 while (permastore.size() < GHOST_PERMASTORE_SIZE && i < ghosts.size()) 10:50:42 was the second 10:50:45 but I'll take a look at that in a while 10:51:01 var set but not used was the scary sounding one 10:51:39 hm, that is odd relative to what the branch does 10:51:59 that message revamp sounds interesting; I was considering having some sort of messages.freeze() and messages.thaw() call pair that would queue all mprf() calls in between, and then print them all in sorted order 10:52:15 ghost_errors is already used in master 10:55:16 gammafunk: ok, I think on some build configurations the code that sets that will get compiled out, it is harmless (just means less messaging from some ancient debugging mess) 10:55:41 hrm, ok 10:56:03 sounds like at least some more careful handling of ifdef cases then? 10:56:10 my build was webtiles 10:56:20 yes, there are a bunch of weird ifdefs for old debugging stuff 10:56:26 oh, I guess without dgl? 10:56:53 sounds good then, I can take a look in some more detail later 10:57:11 I should just turn all that stuff into dprfs, I'm not sure why it is so complicated 10:57:37 oh, maybe someone wanted this to be visible online in wizmode 11:13:11 aidanh: yes, that is along the same lines. The existing circular buffer code is not in amazing shape for doing something like that though 11:24:42 * aidanh will have to poke around in there when he refactors the messages UI 12:44:59 -!- amalloy_ is now known as amalloy 13:05:33 Unstable branch on crawl.akrasiac.org updated to: 0.22-a0-359-g5e80d7e (34) 14:02:44 -!- Fixer_ is now known as Fixer 15:18:09 -!- _mitz is now known as FredericMitz 15:25:05 Hello! Anybody knowledgeable about building on Mac OS X? I get this after fetching the contribs and trying to make TILES=y: 15:25:07 HOSTLINK tool/tilegen.elf clang: error: no such file or directory: '../contrib/install/x86_64-apple-darwin17.5.0/lib/libpng.a' clang: error: no such file or directory: '../contrib/install/x86_64-apple-darwin17.5.0/lib/libz.a' 15:26:48 Perhaps I need to tinker with tilegen's Makefile? 15:27:06 more likely you didn't put the contribs in the right place so it's not building them 15:28:33 I think it built the rest of them (source/contrib) ok. 15:29:59 Or perhaps not! Will investigate. 15:31:19 it sounds like libz was not built 15:31:27 or you missed that oen 15:40:31 Figured out my error, I had mishandled the contrib directory and lost the files (including Makefile), plus I hadn't read INSTALL.txt carefully enough about going to the contrib dir and running make. Thanks! 17:21:49 -!- gresshopper is now known as gressup 18:10:23 03advil02 07* 0.22-a0-360-g76f67b3: Disable the poison effect in fsim 10(77 minutes ago, 1 file, 3+ 0-) 13https://github.com/crawl/crawl/commit/76f67b38c380 18:10:23 03advil02 07* 0.22-a0-361-g68eecb7: Refactor fsim for retaliatory damage, and to just be a little better 10(40 minutes ago, 3 files, 209+ 120-) 13https://github.com/crawl/crawl/commit/68eecb799f04 18:11:12 I am getting back towards ghosts, I promise 18:19:11 Unstable branch on underhound.eu updated to: 0.22-a0-359-g5e80d7e212 (34) 18:25:09 -!- amalloy is now known as amalloy_ 19:09:58 Unstable branch on crawl.jorgrun.rocks updated to: 0.22-a0-361-g68eecb799f (34) 19:49:27 does anyone know if there's a way to get prompt_invent_item to show only rings? do I need to create a new object_selector or something? 19:51:50 -!- DaneitwoTWO is now known as Pertinei 19:51:50 this code doesn't use enough functional programming 19:52:21 <|amethyst> advil: I think you can use OBJ_* instead of OSEL_* 19:52:30 <|amethyst> that's why OSEL_* are negative 19:52:35 there's only OBJ_JEWELERY 19:52:40 <|amethyst> oh 19:52:56 <|amethyst> right 19:53:20 <|amethyst> then, yeah, you'd need to implement a new OSEL_ probably 19:53:38 I'm not sure I'm going to be able to bring myself to do that 19:53:38 <|amethyst> I don't know if there's anything currently that distinguishes rings from amulets 19:53:58 <|amethyst> in terms of listing items that is 19:54:08 yeah, it's not obvious if there is 19:58:16 thx 20:08:52 03advil02 07* 0.22-a0-362-g535178c: Fix the octopode + P interaction when wearing many rings (aubilenon) 10(4 minutes ago, 1 file, 17+ 1-) 13https://github.com/crawl/crawl/commit/535178c5c5b0 20:10:17 I just let it show all jewellery 20:10:26 (a word I find very hard to remember how to spell) 20:11:52 I might rewrite that to take an arbitrary filtering function 21:09:57 Unstable branch on crawl.jorgrun.rocks updated to: 0.22-a0-362-g535178c5c5 (34) 22:01:11 -!- amalloy_ is now known as amalloy 22:05:23 advil: you'll be pleased to know that some "misspellings", eg jewelry, are also correct