00:18:53 does freeze include branch+tag or do we do that later 00:19:17 03ebering02 07* 0.23-a0-900-ga39c873: Changelog through 0.23-a0-899-gbbae0a335a 10(59 seconds ago, 1 file, 29+ 3-) 13https://github.com/crawl/crawl/commit/a39c87378c14 00:22:25 I think freeze is branch+tag 00:22:37 ? 00:22:52 that's what the release guide in docs/develop says 00:22:57 I guess we're a day overdue 00:32:08 Unstable branch on crawl.kelbi.org updated to: 0.23-a0-900-ga39c87378c (34) 00:34:01 Unstable branch on CRAWL.XTAHUA.COM updated to: 0.23-a0-899-gbbae0a3 (34) 00:36:09 well, I guess I'll go ahead and branch+tag 00:36:16 sounds good to me 00:36:19 unless there are any HANGONS 00:36:44 I have some bugs to fix and I will add a menu item, but I think those can go later 00:36:54 so, hm, should `x(y(a), z(b))` have a stable order of execution y and z in c++? 00:37:06 I would have thought so, but evidence suggests otherwise 00:37:20 advil: in C it certainly doesn't. in C++ i think it also doesn't but i'll have to check 00:37:38 ok 00:37:43 do you know if it is just up to the compiler? 00:38:56 advil: you mean, is it implementation-defined, or what? 00:39:04 yeah, I guess 00:39:17 well, I suppose it must be implementation defined 00:39:31 no, it doesn't even have to be that 00:39:41 I wonder if this is a gcc vs clang thing that I just haven't detected 00:39:58 I think my travis test so far might have been coarse enough to miss this 00:40:18 the thing that is causing seed variation between windows and unix builds right now is a call that is basically that, `coord_def(random_range(...), random_range(...))` 00:40:23 https://en.cppreference.com/w/cpp/language/eval_order - there is no ordering between the arguments of a function call 00:40:48 the two random_ranges may run in either order on different builds, which immediately gets the rng out of sync 00:41:21 thanks 00:41:26 (this has been an exciting preview of what it is like to debug seeding) 00:42:07 i just tried to paste the relevant section from that page but it right-justified my IRC client somehow 00:42:44 anyway (3) and (15) look most relevant 00:43:50 well, the fix is easy enough but given this I should audit all random calls to make sure that there aren't more instances around, so I'll fix this tomorrow 00:45:55 New branch created: stone_soup-0.23 (0 commits) 13https://github.com/crawl/crawl/tree/stone_soup-0.23 00:58:28 is it time to install / push players on to the new branch? 00:58:48 also, it's my understanding that the next trunk commit will necessarily contain the next devel tag, is that correct? 01:02:45 yes 01:05:11 advil: my sympathies. But also exciting you've figured it out 01:05:43 03GenericPseudonym02 {ebering} 07* 0.23-b1-1-g1e53798: Quiet confirm_action in the ability menu (11738) 10(27 hours ago, 1 file, 13+ 10-) 13https://github.com/crawl/crawl/commit/1e5379801fce 01:10:44 is that yes to both? 01:13:10 floraline: sorry; yes we would greatly appreciate it if you installed the new branch; 01:13:24 chei is confused about the description of that commit, I pushed the tag second 01:16:37 and mark it as beta? will do 01:17:16 Unstable branch on crawl.kelbi.org updated to: 0.24-a0-0-g1e5379801f (34) 01:21:57 Riposte + constriction + stairs bug 13https://crawl.develz.org/mantis/view.php?id=11847 by CanOfWorms 01:36:43 Stable (0.23) branch on crawl.kelbi.org updated to: 0.23-b1-0-ga39c87378c 01:40:44 huge lags on cxc 01:49:40 Webtiles server stopped. 01:49:46 Webtiles server started. 02:09:42 Enemy transmuters: corrosion status disappears when they change form 13https://crawl.develz.org/mantis/view.php?id=11848 by GrumpyCat 02:11:22 Webtiles server stopped. 02:11:30 Webtiles server started. 02:21:05 The build passed. (stone_soup-0.23 - a39c873 #10996 : Edgar A. Bering IV): https://travis-ci.org/crawl/crawl/builds/485748211 02:39:01 -!- amalloy is now known as amalloy_ 03:07:44 i wonder if it's feasible to allow webtiles to reload config.py without restarting 03:07:48 with only minimal changes 03:08:18 if i get the time i might like to look into that 03:16:44 The build passed. (0.23-b1 - a39c873 #10997 : Edgar A. Bering IV): https://travis-ci.org/crawl/crawl/builds/485748312 04:15:46 how does the scores file work? Is it always sorted? 05:05:31 The build passed. (0.24-a0 - 1e53798 #10999 : GenericPseudonym): https://travis-ci.org/crawl/crawl/builds/485753088 08:31:41 Vaults 3 Floor Extremely Small (Due to Ghost Vault?) 13https://crawl.develz.org/mantis/view.php?id=11849 by Kuprin 09:58:06 man, barely anything guarantees eval order within expressions in c/c++ 09:58:43 gonna have to rewrite a lot of elegent short bits of code to deal with this 10:15:19 gammafunk: i was down with the flu - now need to catch up at work 10:15:31 gammafunk: how much time would it take? 10:15:32 oh, glad you're feeling better :) 10:15:50 Napkin: I don't believe it would take too much time for you to set up? It's mostly just creating the database we can use 10:15:53 from that crawl user account 10:16:08 however there is the question as to whether the script would be ok CPU wise? 10:16:18 it's not very intensive or anything, but I'm not sure if it's a problem 10:16:20 oh, and disk space 10:16:25 we'll see 10:16:39 disk space is quite low at the moment, less than 100gb 10:17:12 would that be enough? 10:17:14 looks like we're using about 5.8 GB for all past tournament 10:17:28 ah, that's not much 10:17:29 yeah, 100gb should be just fine 10:17:38 would you do the work? 10:17:40 yes 10:17:47 well myself and maybe another dev with a login 10:37:43 PowerComplex (L1 FoFi) Crash caused by signal #15: Terminated (D:1) 10:54:00 looks like we're going to try to host this tourney on CDO if the load average doesn't prove to be too much somehow 12:25:52 Unstable branch on crawl.akrasiac.org updated to: 0.24-a0-0-g1e53798 (34) 12:25:53 ebering: looks like you make 0.23 branch? just need to let me know so I know to contact server admins 12:26:03 s/make/made/ 12:26:09 %git 12:26:09 07GenericPseudonym02 {ebering} * 0.24-a0: Quiet confirm_action in the ability menu (11738) 10(2 days ago, 1 file, 13+ 10-) 13https://github.com/crawl/crawl/commit/1e5379801fce 12:26:21 %git stone_soup-0.23 12:26:21 07ebering02 * 0.23-b1: Changelog through 0.23-a0-899-gbbae0a335a 10(12 hours ago, 1 file, 29+ 3-) 13https://github.com/crawl/crawl/commit/a39c87378c14 12:26:55 Medar: stone_soup-0.23 is available for you to install on CXC when you have a chance 12:38:30 -!- amalloy_ is now known as amalloy 12:44:34 johnstein: stone_soup-0.23 is available for you to install on CBRO when you have a chance 12:46:43 |amethyst: you probably know about 0.23, but just in case not, stone_soup-0.23 is available for you to install on CAO 12:46:59 -!- amalloy is now known as amalloy_ 12:48:06 -!- amalloy_ is now known as amalloy 13:45:14 gammafunk: yes I did 13:46:21 yeah I've contacted people 13:46:37 and am setting up tournament (hopefully) on CDO now 13:50:22 Stable (0.23) branch on underhound.eu updated to: 0.23-b1-0-ga39c87378c 14:41:46 Webtiles server stopped. 14:41:53 Webtiles server stopped. 14:41:54 Webtiles server started. 15:15:25 03advil02 07* 0.24-a0-1-g14c3f58: Expand out the seed vs generation test for a few more levels 10(2 minutes ago, 1 file, 17+ 1-) 13https://github.com/crawl/crawl/commit/14c3f5860993 15:15:25 03advil02 07* 0.24-a0-2-gcdddf7c: Sequence many, many random calls whose order was undefined 10(8 minutes ago, 32 files, 412+ 145-) 13https://github.com/crawl/crawl/commit/cdddf7c89e99 15:16:57 lua eval order is also technically undefined 15:17:58 it might be that all implementations go left-to-right though, I can't quite tell 15:21:37 Unstable branch on crawl.kelbi.org updated to: 0.24-a0-2-gcdddf7c89e (34) 15:26:13 cool, reading through that guide you wrote 15:27:15 I wonder if there is an easy way to catch non-stable code 15:27:30 I did some googling and couldn't find it 15:28:15 well, the sei thing did suggest some code analyzers that could find call order issues 15:29:42 so this is something where you want to do this even for non-dungeon-generation code? 15:30:13 well, in principle 15:30:20 it may be a bit quixotic right now 15:34:03 I hope the lua side of this doesn't matter, there's a ton of relevant cases 15:35:02 03advil02 07* 0.24-a0-3-g5a19998: checkwhite 10(16 seconds ago, 2 files, 1+ 2-) 13https://github.com/crawl/crawl/commit/5a199981cbad 15:47:07 Unstable branch on crawl.kelbi.org updated to: 0.24-a0-3-g5a199981cb (34) 15:50:14 advil: it seems like gcc and clang evaluate in reversed order from each other, let along windows vs unix 15:50:41 (according to this link and the one it links to https://stackoverflow.com/questions/28570758/can-i-change-the-order-of-argument-evaluation-in-clang ) 15:52:07 still getting some diverging seeds on my local build vs travis 15:52:18 windows matches travis now at least 15:53:09 osx? 15:53:19 yeah 15:53:35 at least osx matches itself :D 15:54:26 btw, the weekly seeding is working great. All levels generation, one attempt per week, highscores 👌 15:56:38 advil: I think the lua side should be ok; lua defines an order of evaluation for arguments 15:56:49 I found people claiming it doesn't 15:57:04 it's just that there's basically one implementation, that does 15:57:14 hhhhhhhhhm. I thought I'd seen that in the 5.1 manual. 15:57:26 Getting perl vs. Perl flashbacks 15:57:53 language as the only interpreter interprets it vs. language as specified 15:58:34 it might be partly clang vs gcc but right now travis clang and travis gcc seem consistent with each other, at least in the ways that I'm testing 15:58:59 well, gotta go do some real work for a while 15:59:02 except "as specified" might not bother to specify this, ohai C 15:59:04 ebering: fwiw the first search result i found for this was "Evaluation order and assignment order are both explicitly undefined. 15:59:04 " 15:59:17 geekosaur: no, C explicitly specifies it as unspecified 15:59:35 (which imo is different from not bothering to specify it) 16:04:25 though i don't see in the lua spec where it's "explicitly" undefined. it's left unstated in "All argument expressions are evaluated before the call" 16:11:14 my new feature request: jumping spiders can be affected by reflection 16:11:20 and bounce off you and web some other monster 16:24:40 The build was broken. (master - cdddf7c #11000 : advil): https://travis-ci.org/crawl/crawl/builds/486090384 18:22:26 Unstable branch on underhound.eu updated to: 0.24-a0-3-g5a199981cb (34) 19:33:24 03advil02 07* 0.24-a0-4-g4a9ad93: Another batch of randomization sequence fixes 10(32 seconds ago, 6 files, 41+ 17-) 13https://github.com/crawl/crawl/commit/4a9ad9352148 19:38:08 that faerie armour plus code is really weird 19:38:55 there is much weird code that shows up in these changes 19:38:55 are you sure the compiler is not going to optimize away some of these changes? 19:38:55 yes 19:38:56 ; guarantees a sequence point 19:39:36 well, it ought to optimize them a bit, but if it's obeying the c++11 standard, every compiler ought to optimize them in a way that doesn't change order 19:39:49 i see 19:40:22 one way of thinking about it is that the code I'm removing has more freedom for being optimized, because the compiler could choose either order 19:40:31 of function call 19:40:41 that makes sense 19:41:20 gammafunk hopefully the ugliness of writing these sequenced random calls will make people avoid it in the future 19:41:39 yeah, one would hope 19:41:54 but it shows how there's probably a lot of dubious randomization like that we should audit 19:42:18 yep 19:42:26 I have changed very little of it, in fact just one call so far 19:42:39 for the slaying plus? 19:42:49 yeah, the cursed slaying minus really 19:42:57 oh that's what that is 19:43:01 just because it was easier than adding a sequence point there 19:43:19 are you implying that these calls with 4 nested random(8-12) aren't balanced with perfect precision? 19:45:08 sadly, I'm still not getting things to converge, I guess I'm going to have to finally give in and spin up a linux vm 19:45:36 windows was matching as far as I've tested, at least 19:45:39 advil: wouldn't that be better as just -(2 + random2(5)) to preserve min, max, and average? 19:47:28 oh, right 19:47:46 Unstable branch on crawl.kelbi.org updated to: 0.24-a0-4-g4a9ad93521 (34) 19:48:25 those enormous nested randoms go straight back to linley's code, don't they 19:51:56 yep 19:52:30 https://github.com/crawl/crawl/blame/8f474f6a0858eddfa1a6552858f6d79fbf7473cb/crawl-ref/source/dungeon.cc#L1492 19:54:12 03advil02 07* 0.24-a0-5-g797c3c0: Fix accidental cursed slaying nerf (gammafunk) 10(30 seconds ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/797c3c0885db 20:00:57 couldn't some of these random2(x) + random2(x) calls be replaced with random2avg(2x, 2)? I might be wrong though 20:02:16 Unstable branch on crawl.kelbi.org updated to: 0.24-a0-5-g797c3c0885 (34) 20:05:02 not the same average 20:05:30 nor the same max 20:06:15 rip 20:11:21 where is the code that makes simulacrum attacks be cold? 20:11:37 in mon-data.h, all simulacrum entries are just AF_PLAIN 20:12:11 !source _downscale_zombie_attack 20:12:12 1/1. https://github.com/crawl/crawl/blob/master/crawl-ref/source/mon-util.cc#L1817 20:12:16 thank you ##crawl-dev 20:14:56 random2(x) + random2(x) should be the same as random2(2x - 1, 2), though 20:15:19 er, random2avg in the last case, of course 20:16:52 poor advil 20:17:53 just catching up on the many randomness changes and they look like a pain. i bet some smart aleck will come along and propose refactoring things back to the way they were in at least one case 20:20:05 yeah, I didn't anticipate this issue at all 20:23:39 advil: for many of the relatively simple cases (but presumably not some complicated ones), you could define a new function that accepts non-random arguments and calls random2 on them in a guaranteed order 20:24:17 eg, int random_sum(int x, int y) { int ret = random2(x); ret += random2(y); return ret;} 20:24:39 then reuse that at many call sites, instead of having to write this painful multi-step addition over and over 20:24:43 I thought about that, and that's probably the one that would be used most, but I'm not sure it's that many calls 20:24:59 okay 20:25:07 might be worth it though 20:25:17 what are you using to discover expressions like this that need fixing? 20:25:37 I'm basically looking at every random call 20:25:47 I've used some heuristics to prioritize, I guess 20:26:17 and I've ignored a lot of non-dungeon code 20:27:38 ah, sure 20:29:47 i wonder if there's a clang warning for something like this 20:30:58 gcc seems to have -Wsequence-point but i'd be surprised it if knew that random2 is a function that needs worrying about 20:31:36 I did find something in the SEI doc (-Wunsequenced) but it didn't do anything for me 20:31:36 I think it's equivalent to -Wsequence-point 20:31:36 https://wiki.sei.cmu.edu/confluence/display/cplusplus/EXP50-CPP.+Do+not+depend+on+the+order+of+evaluation+for+side+effects 20:31:39 yeah 20:31:56 so if instead of random2 you were modifying a local, we'd get a warning 20:36:54 sadly i don't see any way to tag random2 with some attribute or something saying "please consider this function as dangerous as mutating a local" 20:41:03 -!- amalloy is now known as amalloy_ 20:42:17 I don't suppose volatile would do it? 20:42:24 I realize that's not what volatile means 21:02:15 -!- amalloy_ is now known as amalloy 21:12:13 I've got a last set of trunk updates for 0.23 plus tournament announcement in a draft on cdo wordpress 21:12:21 advil: you may want to elaborate on the seeding 21:12:31 gammafunk: or anyone else I'd appreciate a second set of eyes 21:13:30 esp since it doesn't work yet 21:17:10 ebering: trap placement in Tomb got overhauled 21:17:24 not in changelog proper but good for a trunk update post 21:17:37 hm ya 21:17:47 Don't think it has to say much aside from Tomb:2 traps being toned down and traps placing more throughout all tomb levels 21:18:00 you could mention your new klown vaults too 21:18:07 that seems fine, I added the word "experimental" to indicate that it might not work 21:18:13 ok 21:18:57 oh, and singing sword got revamped again; could just mention how it uses its sonic wave spell at all tension levels and generally does more damage 21:19:31 grate trap removal is a good comedy option, guess you can also mention your klown kar vault 21:19:38 I think that just barely missed the last update 21:19:54 literally did! 21:20:01 the commit after the changelog update for last time 21:20:05 ha! 21:20:28 I went with High Elves being removed again, datafiles merge caused them to appear in -playable-json 21:20:56 yeah 21:21:09 but maybe you could mention how it's gone still 21:21:14 it's kind of an iconic trap 21:21:19 infamous rather 21:21:32 yeah 21:22:19 high elf removal is obviously excellent to reference when possible 21:22:40 before that the great dev meme was "Remove Pan" 21:22:50 Pan referring to the unique grunt made for Forest branch 21:23:23 although I feel we have quite a few removal memes going these days... 21:27:10 maybe we should remove some 21:51:29 +amalloy | gcc seems to have -Wsequence-point but <-- there might be a directive to tell gcc "this function [random2] should be worried about 21:51:41 oh you said that already 21:51:50 I checked sonarqube and it has no such functionality 21:54:11 hm, didn't someone run a static analyser on the codebase a while ago? It was a github issue, and ebering fixed some things I think. Maybe that has functionality... 21:56:33 I didn't do the fixing, but the issue is still open 22:02:21 checking the pvs warnings, nope 22:07:41 I think I did the fixing 22:08:00 alexjurkiewicz: that SEI thing I linked to has a list of analyzers that handle cases like this 22:23:25 03advil02 07* 0.24-a0-6-g964d818: Use a separate rng for ghosts 10(4 minutes ago, 2 files, 9+ 6-) 13https://github.com/crawl/crawl/commit/964d818aa416 22:23:46 now we're getting somewhere 22:52:18 Unstable branch on crawl.kelbi.org updated to: 0.24-a0-6-g964d818aa4 (34) 23:35:52 -!- amalloy is now known as amalloy_ 23:40:04 03advil02 07* 0.24-a0-7-g1bb0902: Clear unrand state for relevant tests 10(55 seconds ago, 1 file, 1+ 0-) 13https://github.com/crawl/crawl/commit/1bb09026696b 23:47:10 Unstable branch on crawl.kelbi.org updated to: 0.24-a0-7-g1bb0902669 (34)