03:43:13 Fork (bcadrencrawl) on crawl.kelbi.org updated to: 0.22.1-90-gb093743d0b 03:47:22 Monster database of master branch on crawl.develz.org updated to: 0.24-a0-170-gd8427f5 04:05:38 -!- amalloy is now known as amalloy_ 05:49:28 -!- voker57_ is now known as Voker57 11:30:02 Karagy (L11 FoFi) Crash caused by signal #6: Aborted (D:9) 12:00:41 Tavern's down 12:01:02 SQL ERROR [ mysqli ] 12:01:02 etc 12:34:47 -!- amalloy_ is now known as amalloy 12:55:15 Tavern is giving an error: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) [2002] 12:55:16 svendre: You have 3 messages. Use !messages to read them. 13:03:20 Napkin: mysql on CDO might need a kick 13:03:56 doesn't seem to be running at all; 14:40:24 thanks, advil 15:02:30 On crawl servers it is possible to sort games by name, XL, idle time, etc. 15:02:37 FR: use stable sort there. 15:27:45 -!- aidanh_ is now known as aidanh 15:51:47 My mistake. It is stable already as required. 16:37:50 03advil02 07* 0.24-a0-171-g9dfec57: Fix cross-platform lua number->int conversion the hard way 10(20 minutes ago, 23 files, 203+ 178-) 13https://github.com/crawl/crawl/commit/9dfec575989f 16:37:50 03advil02 07* 0.24-a0-172-gc07d39d: Revert "Add a build option to not use SSE" 10(5 minutes ago, 1 file, 0+ 8-) 13https://github.com/crawl/crawl/commit/c07d39d5f47b 16:37:50 03advil02 07* 0.24-a0-173-gc15b636: Revert "Build for SSE2 on all systems, including 32bit targets" 10(5 minutes ago, 1 file, 15+ 18-) 13https://github.com/crawl/crawl/commit/c15b636e9cf1 16:41:09 oops, I guess I reverted the auto_opt fix there too 16:43:24 kilobyte commented!!! 16:44:04 yeah, he shows up when someone does something that breaks debian 16:44:22 it's not the first time 16:45:22 hah, I had no idea 16:45:58 boy that whole lua int thing turned out to be quite involved even past the intial SSE2 fix 16:46:45 yeah, it's a pain 16:47:09 I still wonder if disallowing system lua is maybe the best solution 16:47:33 that's not the only thing determined at compile time 16:47:57 in principle even something like the int type could differ 16:48:09 (where, believe it or not, the default is `ptrdiff_t`) 16:52:43 hm, not fixed, 32 bit linux with system lua is still diverging, just at a different place now 17:09:09 Unstable branch on crawl.kelbi.org updated to: 0.24-a0-173-gc15b636e9c (34) 17:55:44 advil: looks like there's a typo in the commit message for c15b636e9c, the latest commit you made (presumably 'Results' is meant to be 'Resolves'?). 17:55:57 just a heads up 18:22:10 yeah, I know 18:22:19 I manually closed the one of those that was open 18:22:21 thanks 18:22:58 would we want to just switch lua away from system lua, using the contrib, or would we want to be more systematic 18:23:12 in terms of using contribs for others as well 18:23:33 I wonder if that gets you into trouble with linux distributions at all 18:24:20 I suppose if there are security issues, it's not really a problem for them, they just have to remake the crawl/crawl-tiles packages 18:25:28 -!- greqrg is now known as toneLive 18:26:46 a lot of distros have guidance not to do that 18:40:19 hm, it seems that forcing sse2 on 32 bit builds was indeed enforcing some floating point stability 18:40:44 and the builder uses floats :-/ 18:43:08 in this one calculation I'm checking, with sse2 on, 100 * .7000000 is 70.000000, with x87 it's 69.999999 18:46:30 <|amethyst> for doubles, x87 uses 80 bits internally (for intermediate results that don't need to be stored back to memory), while SSE2 uses 64 bits 18:47:47 these are `float` but I'm guessing the same point applies 18:47:49 <|amethyst> hm 18:48:14 I wonder if upsizing it to double would make some of the specific issues go away (probably the fix is to use fixed point math) 18:48:43 <|amethyst> I bet you haven't even looked at non-x86 platforms :) 18:48:50 heh no 18:48:58 apparently someone was checking this on android though??? 18:49:02 <|amethyst> ah, cool 18:49:30 <|amethyst> yeah, floating point is not so great for portable reproducibility 18:50:17 <|amethyst> kilobyte used to object (and then usually change it) every time someone used floating point in Crawl 18:50:28 <|amethyst> well, almost every time 18:50:37 sounds like a thankless task 18:50:39 it seems that that's my job now 18:50:56 <|amethyst> My nemesis crawlcode uses floating point 18:51:24 oh heh ray? 18:51:24 <|amethyst> yes 18:51:26 <|amethyst> and the problems are because of floating point 18:52:03 <|amethyst> essentially, calculating the same thing two different ways then asserting that the answers are the same 18:52:22 <|amethyst> '"same" thing' I should say 18:53:02 I wonder how much the fact that lua uses doubles as its numeric type is going to provide a fundamental barrier towards real stability in the limiting case 18:54:24 <|amethyst> as long as you're not dividing, calculations on 32-bit integers should be exact 18:54:42 this mention of floating point made me search the codebase for 'double', and the actual first hit is a bug that lets you cause a crash (but only in wizmode) 18:55:02 try: &ANAN 18:55:58 |amethyst oh, interesting -- so this calculation starts off by doing `percent / 100.0f`, it should be exact even as a float if it does that perhaps? 18:56:02 no other division 18:56:20 new lua has integer type btw 18:56:22 <|amethyst> No, / 100 gives you something that's not exactly representable 18:56:44 Hyena yeah, I saw that 18:56:44 *if it doesn't do that 18:56:44 <|amethyst> but if you converted it to just work with the percent directly 18:57:02 <|amethyst> (so fixed-point as you said) 18:57:02 yeah, that's what I meant to type 18:57:39 or even floating point with just multiplication, if I understand what you are saying 18:57:51 because this doesn't actually need to start by dividing by 100 18:58:03 it multiplies by 100 at the end 18:58:07 <|amethyst> wow 18:58:49 Hyena I have the impression it's not super easy to change lua versions for something as intertwined with it as crawl is, though :-/ 18:59:16 yep it will break things, I've been through this with one of my pet projects 18:59:29 there's a difference between 1.0 and 1 19:00:13 <|amethyst> Hm, but upgrading our Lua (and removing uses of floating-point where possible) would probably be a good idea 19:00:35 <|amethyst> I don't like the suggestion to require building contrib Lua, and I think the distributions would like it even less 19:00:44 that's what I figured 19:01:12 hm, I was sort of hoping to fix this particular issue without affecting 0.23.1 seeds, since it comes up in the gotm seed (and doing this math exactly will change the calc for some other numbers relative to sse2 builds it looks like) 19:02:09 <|amethyst> I think for 0.23 it would be fine to say "seeds only work on x86-64, sorry, we'll fix that in the future" 19:02:09 ah. the rng seed thingy, now I get it how floating points can bring problems on different machines :D 19:02:14 tough one 19:03:09 03amalloy02 07* 0.24-a0-174-g1e70621: Don't return NaN from prompt_for_float 10(47 seconds ago, 1 file, 2+ 1-) 13https://github.com/crawl/crawl/commit/1e706217e8ff 19:03:23 |amethyst win32 build is the issue. But even kilobyte was ok with force-enabling sse2 on the windows build 19:07:54 well, that's slightly unexpected...switching it to a double on an sse2 build now gives exactly the same behavior as a 32 bit x87 build using a float 19:09:02 perhaps trying to understand the "whys" is not the best use of my time, burn all floats to the ground instead 19:11:31 ok well I was wrong in that this calc as written *does* need to do division eventually, can't get around that 19:11:42 <|amethyst> where are we looking? 19:12:17 !source l-dgnbld.cc:1386 19:12:18 https://github.com/crawl/crawl/blob/master/crawl-ref/source/l-dgnbld.cc#L1386 19:12:37 I mean, it's perfectly possible to do in fixed point 19:17:18 Unstable branch on crawl.kelbi.org updated to: 0.24-a0-174-g1e706217e8 (34) 19:21:00 <|amethyst> so, looking over this, it could just be 9 calls to bernoulli(), but that doesn't help because bernoulli() uses doubles 19:21:28 Unstable branch on underhound.eu updated to: 0.24-a0-173-gc15b636e9c (34) 19:21:30 <|amethyst> but if you look at how it's being used 19:21:39 <|amethyst> it's in an x_chance_in_y later 19:22:04 <|amethyst> hm 19:24:48 <|amethyst> on the one hand, it would be a bit wasteful to just simulate the "for each neighbor, there's a 1/n chance" thing with that many calls to x_chance_in_y in a loop 19:27:38 <|amethyst> I hate to mention this because it's a bad horrible terrible idea, but... 19:27:59 <|amethyst> you could hard-code the percent_for_neighbors array 19:28:06 <|amethyst> hm 19:28:13 <|amethyst> oh, right 19:28:17 <|amethyst> percent changes 19:29:37 maybe the win32 build could just be win64, and you can have a win32 build for the few people who use windows 32-bit 19:29:38 <|amethyst> hm, and fixed point is no good because 100**8 is too big to fit in an int 19:30:19 <|amethyst> s/fixed point/rational arithmetic/ 19:35:59 well, I'm not sure that doing this calculation exactly matters a lot 19:37:08 <|amethyst> hm, existing callers use 10, 90, 60, 30, 50 (and the default 100) 19:39:37 when I hand-checked one case with 2 digit decimal math, the later values in the sequence were off by a few, but not by much 19:43:05 <|amethyst> I realize you need a short-term fix that doesn't change results for most people, but I think this probably should be converted to use bernoulli 19:44:30 <|amethyst> which I realize doesn't solve anything, but eventually bernoulli will need to be fixed too 19:46:39 <|amethyst> though I suppose level-gen is more important than most times 19:46:56 <|amethyst> as far as reproducibility goes 19:53:01 <|amethyst> You could get "exactly right" results if you made it a number out of 10 and just kept track of denominators too (they'll all be powers of 10) 19:53:28 The build was broken. (master - 1e70621 #11213 : Alan Malloy): https://travis-ci.org/crawl/crawl/builds/504966816 19:53:32 <|amethyst> better than the current one, in fact, since it uses integers out of 100 in the end 20:03:00 I think for the short term fix I'm probably going to force-enable sse for just windows builds, and declare 32 bit linux out of luck 20:08:08 -!- amalloy is now known as amalloy_ 20:24:14 -!- amalloy_ is now known as amalloy 21:25:31 not sure what the fix is for the isnan, that bug seems very version-specific judging from google results 21:25:42 also, std::isnan fails for me 21:26:00 even though it seems like that should work on c++11 21:31:18 maybe ::isnan would work 21:33:22 03advil02 07* 0.24-a0-175-ge201941: Un-revert a Makefile fix 10(5 hours ago, 1 file, 15+ 15-) 13https://github.com/crawl/crawl/commit/e201941ac7c4 21:33:22 03advil02 07* 0.24-a0-176-gc3651c4: maybe fix the build 10(27 seconds ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/c3651c4c4443 21:34:31 ture programmers compare the value to itself to determine whether it's nan 21:35:37 apparently that isn't actually portable 21:47:19 Unstable branch on crawl.kelbi.org updated to: 0.24-a0-176-gc3651c4c44 (34) 22:29:50 The build is still failing. (master - c3651c4 #11214 : advil): https://travis-ci.org/crawl/crawl/builds/505010786 22:32:16 !lg * s=ckiller / god=xom ?: N>2 22:32:21 228874/10192989 games for *: 16620/880183x quitting [1.89%], 13927/544971x a gnoll [2.56%], 10095/335164x a player ghost [3.01%], 9577/438075x an orc priest [2.19%], 8325/398620x an adder [2.09%], 7727/293527x an ogre [2.63%], 6608/310095x an orc wizard [2.13%], 6263/238522x Sigmund [2.63%], 6124/218496x an orc [2.80%], 5793/388853x a kobold [1.49%], 5703/236425x an orc warrior [2.41%], 5186/43476... 22:32:32 !lg * s=ckiller / god=xom o=% ?: N>2 22:32:37 228875/10192993 games for *: 3/3x toadstool [100.00%], 3/3x a chaos effect from your falchion of chaos [100.00%], 3/3x a rod of destruction [ice] {god gift} [100.00%], 3/3x a sabre of venom [100.00%], 3/3x a glowing orcish trident [100.00%], 3/3x a scythe [100.00%], 3/3x worker ant [100.00%], 3/3x fungus [100.00%], 3/3x a whip of freezing [100.00%], 3/3x ogre [100.00%], 3/3x ooze [100.00%], 3/3x g... 22:33:00 !lg * s=ckiller / god=xom o=% ?: N>5 22:33:06 228332/10169643 games for *: 6/6x it (buggy) [100.00%], 6/6x a dwarven mace [100.00%], 8/8x rat [100.00%], 8/8x orc wizard [100.00%], 9/9x bat [100.00%], 12/12x hobgoblin [100.00%], 13/13x jackal [100.00%], 15/15x goblin [100.00%], 15/15x adder [100.00%], 24/24x orc [100.00%], 721/721x xom [100.00%], 294/298x the capriciousness of Xom [98.66%], 27/28x a spear {=f} [96.43%], 41/43x a spear [95.35%]... 22:40:58 oh oops that was supposed to be in PM sorry 22:41:10 i should *really* change irc clients 22:48:11 ebering: https://i.imgur.com/trVFcWi.png 23:25:16 New branch created: pull/1009 (4 commits) 13https://github.com/crawl/crawl/pull/1009 23:25:16 03Umer Shaikh02 07https://github.com/crawl/crawl/pull/1009 * 0.24-a0-175-g505c761: Remove use of testbits in is_valid_shaft_effect_level 10(4 hours ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/505c7614d455 23:25:16 03Umer Shaikh02 07https://github.com/crawl/crawl/pull/1009 * 0.24-a0-176-gc0fcd71: Use a function instead of duplicating logic 10(4 hours ago, 1 file, 1+ 6-) 13https://github.com/crawl/crawl/commit/c0fcd7101f9d 23:25:16 03Umer Shaikh02 07https://github.com/crawl/crawl/pull/1009 * 0.24-a0-177-g6ed76fb: Refer to function by name, not position, in comment 10(2 hours ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/6ed76fb643c7 23:25:16 03Umer Shaikh02 07https://github.com/crawl/crawl/pull/1009 * 0.24-a0-178-g00180e5: Check trap effects' validity before choosing effect 10(85 minutes ago, 1 file, 49+ 24-) 13https://github.com/crawl/crawl/commit/00180e57d489 23:36:08 ebering: I have just submitted some minor changes to traps.cc. I'd be interested if you have time to glance at it and anything to say; I think this is stuff you worked on last