00:27:08 Unstable branch on CRAWL.XTAHUA.COM updated to: 0.24-a0-429-g4608c8fa30 (34) 00:28:33 Stable (0.23) branch on CRAWL.XTAHUA.COM updated to: 0.23.1-79-g0e89c35649 00:56:09 there is an array in describe.cc `const char* const size_adj[] =` 00:56:29 how do I write a run-time assert that my index is not larger than the array? 00:56:40 I can check it doesn't underflow with ASSERT(static_cast(size) > 0); 01:13:08 -!- tehgeek is now known as MoonMoon 01:13:24 -!- MoonMoon is now known as SunMoon 01:14:42 alexjurkiewicz: Isn't this just a job for ARRAYSZ? 01:14:51 -!- SunMoon is now known as Psymania 01:45:32 -!- amalloy_ is now known as amalloy 02:04:27 <|amethyst> ASSERT_RANGE(size, 0, ARRAYSZ(size_adj)); 02:05:37 <|amethyst> (assuming 0 is a valid size) 02:05:57 <|amethyst> (and that the size of the array is not a valid index) 02:06:42 <|amethyst> s/valid size/valid index/ 03:17:14 Unstable branch on crawl.beRotato.org updated to: 0.24-a0-429-g4608c8f (34) 03:28:39 nice 03:34:26 New branch created: pull/1084 (1 commit) 13https://github.com/crawl/crawl/pull/1084 03:34:26 03alexjurkiewicz02 07https://github.com/crawl/crawl/pull/1084 * 0.24-a0-430-g6632800: Guard against out of bounds array access 10(5 minutes ago, 1 file, 1+ 0-) 13https://github.com/crawl/crawl/commit/6632800931ab 03:51:14 Fork (stoatsoup) on crawl.kelbi.org updated to: 0.21.2-987-g5d2755fedf 05:07:59 -!- amalloy is now known as amalloy_ 09:38:59 alexjurkiewicz: was there a specific case that came up for that assert? FWIW that constraint should already be partially enforced by the use of the enum type + the compile time check on the array, it's really just size < NUM_SIZE_LEVELS that's missing 09:45:43 well, I suppose it's probably a bloatcrawl thing 09:46:03 03advil02 07* 0.24-a0-430-g69c6a51: Fix signed/unsigned comparison (gammafunk) 10(3 minutes ago, 1 file, 2+ 2-) 13https://github.com/crawl/crawl/commit/69c6a515889a 10:02:30 Unstable branch on crawl.kelbi.org updated to: 0.24-a0-430-g69c6a51588 (34) 11:23:58 Stable (0.23) branch on underhound.eu updated to: 0.23.1-79-g0e89c35649 11:58:04 Fork (stoatsoup) on crawl.kelbi.org updated to: 0.21.2-988-gd4dae30470 12:51:30 %git 38f3c1a516ae676 12:51:30 07advil02 * 0.24-a0-290-g38f3c1a: Make ds, wn, and dswn starts more deterministic by seed 10(4 weeks ago, 4 files, 17+ 6-) 13https://github.com/crawl/crawl/commit/38f3c1a516ae 13:14:01 Unstable branch on crawl.akrasiac.org updated to: 0.24-a0-430-g69c6a51 (34) 16:00:51 -!- amalloy_ is now known as amalloy 16:36:48 03advil02 07* 0.24-a0-431-g80c1907: Use unordered_set for tags, instead of set 10(5 hours ago, 7 files, 51+ 39-) 13https://github.com/crawl/crawl/commit/80c1907ebbf6 16:36:48 03advil02 07* 0.24-a0-432-g90a0943: Cache the top three vault tags as bools 10(3 hours ago, 6 files, 90+ 11-) 13https://github.com/crawl/crawl/commit/90a09432193d 16:36:48 03advil02 07* 0.24-a0-433-gbe6fa4f: Faster starts_with implementation 10(2 minutes ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/be6fa4f6cc9d 16:37:40 that's pretty much the bottom of the barrel for really obvious/easy levelgen speedups 16:39:55 I think all told I've gotten about 20-30% off the total time for a non-optimized build, which is not too bad 16:44:24 well, there's still 4s total time spent in `has_tag`, but I'm not sure how to optimize that further without changing something less low level, the problem is just that it's called millions of times 17:08:07 Unstable branch on crawl.kelbi.org updated to: 0.24-a0-433-gbe6fa4f6cc (34) 17:45:08 MarvinPA: would you read that last post from a github random in the "they" PR as transphobic? I can't tell if I'm overreacting, so I'm not sure what the best thing to do with it is 17:46:11 (in any case, as a professional linguist I do think changing to singular "they" is absolutely the right thing to do) 18:01:39 oh ugh, it does read that way yeah 18:03:41 i guess i can just comment that it definitely won't be optional, but happy to block/ban people if needed too 18:19:56 I wasn't sure about how to respond 18:20:53 I guess blocking maybe depends on what they do after one of us comments, github block is very extreme 18:22:30 Unstable branch on underhound.eu updated to: 0.24-a0-433-gbe6fa4f6cc (34) 18:41:24 advil: yeah it happened while fork developing but it seemed like a good thing to catch for normal crawl since the results seemed pretty bad 18:42:02 about the github comment I think it is going to be, but I figured if you get clarification then you ("the devs") can make a clear comment that it's Not OK 18:42:29 yeah, I saw that you responded 18:51:42 oh great, lua string comparison is locale sensitive 20:43:24 -!- amalloy is now known as amalloy_ 21:03:00 -!- amalloy_ is now known as amalloy 21:13:48 floraline tells me anyone with voice here can run a build on CKO; please could someone rebuild Stoat Soup? I think I have fixed the horrible starvation bug. 21:18:14 running now 21:18:41 Fork (stoatsoup) on crawl.kelbi.org updated to: 0.21.2-989-g6bb62fb1ba 21:18:45 Thanks 21:18:46 ...that was unusually fast... 21:19:28 I guess it uses ccache; I only changed two files, no headers. Now, did it work? 21:20:20 Yes! I'm not starving to death. :-/ 21:20:28 Thanks again. 21:51:39 man, this lua string issue is really annoying. A seed divergence issue that just came up was happening because capitalized unique names were being sorted differently on different systems, apparently because the default locale used by lua is different (and capital letters are collated differently) 21:52:56 the most obvious solution is to force "C" locale I guess? 21:54:49 what locale even collates capital with lowercase letters 21:55:27 <|amethyst> en_US does on my system 22:04:30 I think also on mac for some reason it is not inheriting the locale from the main process 22:06:41 advil: was that the divergence I saw? 22:08:55 it's not what I was just chasing down but it is conceivable if you have yet another locale, I don't know how far this extends 22:10:26 it's coming up on current trunk seed 1 for hanged_man_spin_cycle which at the absdepth corresponding to Depths:5 (where it places in that seed) builds a monster weight table that includes both uniques (capitalized) and non-uniques at the same weight, so sorts them 22:10:56 *hangedman 22:10:56 which I can easily fix by changing the capitalization but this is kind of a worrying issue 22:11:14 there are all sorts of locales that will change sort orders in minor or major ways, not just capitalization issues 22:12:56 mine is just en_US 22:13:32 <|amethyst> also, I don't know if we ever convert strings to numbers in Lua, but apparently that's locale-dependent too 22:13:45 haha of course it is 22:14:15 we do do that sometimes, not sure how much 22:14:43 <|amethyst> probably most relevant for numbers with decimal points 22:14:50 <|amethyst> but not entirely 22:14:57 <|amethyst> s/entirely/only/ 22:19:40 ugh lua doesn't use locale in any particularly compartmentalized way, so I'm not sure their os.setlocale is a viable option 22:20:27 <|amethyst> Yeah, from the name, I would figure os.setlocale would just call the C setlocale function 22:20:34 yes 22:21:07 !source describe_spell 22:21:07 1/1. https://github.com/crawl/crawl/blob/master/crawl-ref/source/describe.cc#L3141 22:21:41 <|amethyst> hm, and I don't know if there's a particularly portable choice to just set LC_COLLATE 22:21:55 <|amethyst> I guess "C" 22:23:11 in that function, I don't quite understand how the more variable can be accessed from 3229 22:24:06 oh 22:24:08 <|amethyst> gammafunk: that's the more() function, not the variable 22:24:09 it's not 22:24:11 dammit 22:24:21 <|amethyst> more() is maybe not the best name for a global function 22:24:30 yeah I guess I got foiled by a bad variable name 22:24:31 <|amethyst> concise though it may be 22:24:39 or right, a bad metho name 22:25:13 oh heh 22:25:27 yeah the `auto more` is local to its own scope 22:25:47 <|amethyst> even message_window::more isn't quite so bad 22:27:04 <|amethyst> compared to the free function more() on message.cc:1774 22:27:22 <|amethyst> IMO rename it to prompt_more or something 22:27:35 or put it in a namespace 22:30:39 allow me to change the subject from me doing renaming work to one of getting clarification on how this menu code works 22:31:07 currently learn_spell() creates MemoriseMenu via _choose_mem_spell() 22:31:22 yet in viewing the spell description from said menu 22:31:41 you can directly hit M to (M)emorise the given spell 22:32:01 _choose_mem_spell() gets the spell to memorise from this menu 22:32:27 so in the case where the player uses that spell description hotkey 22:32:49 and where this is calling learn_spell(spell) (another function signature) 22:33:28 how does it doing that not lead to the parent caller of learn_spell() (no argument) calling learn_spell(spell) a second time? 22:33:58 oh, maybe it just does call it a second time? 22:34:32 no, I don't think it does call it a second time, since apparently that'd print a message 22:34:55 ahh 22:35:02 I think it does call it a second time, perhaps 22:35:04 <|amethyst> already_learning_spell 22:35:06 damn 22:35:11 that seems kind of a bad design 22:35:47 for my sif casting thing I'll have a similar problem 22:36:32 except I'll have no queued delay to check or anything 22:37:49 since I have to pass a new `sif` variable to various spell description functions in order to get descriptions to show correct info already, and this is kind of invasive 22:38:17 I'm tempted to set some kind of global state like how we do for spell memorisation searches 22:38:40 but I'm worried that this state wouldn't get properly unset given all ways to exit this menu, somehow 22:45:06 |amethyst: not sure if you saw my musing there, but I wonder if I should set up some global state like you.trying_to_sif_cast (with a better name) since I apparently need that to properly handle this menu state and because spell description functions currently have to be modified to have a "trying to sif cast" variable to show correct info 22:45:34 just not sure if I can put resetting that state in e.g. my menu classe's deconstructor and have it actually work 22:46:32 well, it's also the spell casting code that needs this new "sif cast" variable, maybe those functions could use the argument and the menu/desc code could use the state 22:52:15 heh 22:52:25 what do I see as a browse player.h but 22:52:36 // Skill menu states 22:52:36 skill_menu_state skill_menu_do; 22:52:36 skill_menu_state skill_menu_view; 22:56:21 oh, I suppose I could reliably reset the state in my function that creates the menu 22:56:36 so this shouldn't be too hard after all