00:59:00 -!- indigaz21 is now known as indigaz2 03:32:43 Experimental (bcrawl) branch on underhound.eu updated to: 0.23-a0-5261-gd9800d219b 07:25:55 <04d​racoomega> Thanks a bunch! 07:30:58 <04d​racoomega> (Just going to take a look at the test failure first) 07:52:39 <04d​racoomega> Hmmm... yes, the change in that PR seems to specifically cause crashes in the test suite related to monster spellcasting 07:55:09 <04d​racoomega> Not at all clear to me why, though (since the assert it's tripping is a lack of a foe in _should_cast_spell) 08:41:26 <04d​racoomega> Slowly narrowing in on the cause (which I'm not actually certain is a flaw in the iterator so much as some other flaw it has coincidentally exposed) 08:52:34 <04d​racoomega> So, the proximal cause is that on the first pass of moncast.lua, Sphinx Sisters summons a sphinx in the spot that the test suite expects to create a test statue a moment later. So a guardian sphinx gets picked as the foe for the second pass, instead of another test statue. And then shred kills the sphinx (because it doesn't have 10,000 hp), so it's dead by the time it gets back to casting sphinx sisters later, which asserts. I 08:52:34 don't know why specifically Sphinx Sisters is the only summon that successfully creates a monster in the first pass of the test, why Shred is the only spell that actually does damage to the other test monster, why other spells don't assert on having a dead foe, or why this doesn't seem happen with the previous buggy version of fair_adjacent_iterator (though maybe that just affects where the sphinx was first summoned??) 08:53:41 <04d​racoomega> I'd like to understand this a bit more before I do anything, since it feels like some other parts of this test may not be doing useful/correct things 08:54:41 03nlavsky02 07* 0.34-a0-102-g833c818450: fix: let Revenants cast enkindled spells via the quiver when at 0 MP 10(3 minutes ago, 1 file, 3+ 1-) 13https://github.com/crawl/crawl/commit/833c818450e8 09:09:36 03hellmonk02 07[thirstyforspells] * 0.34-a0-72-geb38203667: Compensate parchment weight 10(69 seconds ago, 1 file, 7+ 7-) 13https://github.com/crawl/crawl/commit/eb38203667ae 09:09:37 Branch pull/4578 updated to be equal with thirstyforspells: 13https://github.com/crawl/crawl/pull/4578 09:11:32 <09h​ellmonk> I think it may be an intermittent crash unrelated to the iterator change, I think I had this happen once when setting up my fork 09:13:41 <04d​racoomega> It's not intermittant. First thing I tried was repeating it multiple times with and without the change 09:13:48 <04d​racoomega> Reproduction was 100% 09:14:04 <04d​racoomega> So whatever domino effect is causing this to matter, it's definitely causing it to matter 09:14:26 <04d​racoomega> It may not be at fault, but it's not intermittant either 09:14:33 <09g​ammafunk> hrm, how will we want to count parchments in objstat 09:14:39 <09g​ammafunk> just as books? 09:14:59 <09g​ammafunk> there's the separate spell sheet output, but that's straightforward 09:15:20 <09g​ammafunk> looks like it's already been mapped to spellbook 09:15:38 <09g​ammafunk> ok so it's basically already taken care of 11:52:26 <04d​racoomega> Okay, after all this, I believe I have reached the (obvious in retrospect) conclusion that it's probably a matter of seed. Or rather, running make test uses the same seed every single time and changing the iterator code made what actually happens in that test diverge from the pre-change code, exposing several flaws in the test itself that would now consistently crash (since it rolls the same results every time that cause this) 11:52:26 after the iterator change. 11:52:49 <04d​racoomega> Which is likely also why running the test in isolation typically did not crash with either version 11:55:14 <04d​racoomega> (The exact sequence of events resulting in this crash is a little complicated, but basically the test places a Test Statue on a specific coordinate and then tells Crawl to perform a test with the monster at that coordinate, but makes no gaurantee that this monster is actually a test statue. And, in fact, if something is already there, the statue will be placed elsewhere and the monster chosen as the foe of the test statue will be 11:55:14 'whatever happens to be there', which in this case was a guardian sphinx) 11:56:10 <04d​racoomega> (There is a second bug that Shred is coded in a player-centric way and if cast by a hostile monster will damage their own allies - this doesn't currently matter outside the test, since hostile monsters can never have this spell) 11:57:36 <04d​racoomega> But also: I'm not sure a bunch of other parts of this test work effectively. Both test statues are aligned with each other, so I think hostile spells will never get cast at all 12:51:29 03WizardIke02 {DracoOmega} 07* 0.34-a0-103-gdc56b02a7e: Fix fair_adjacent_iterator returning duplicate locations 10(14 hours ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/dc56b02a7e52 12:51:29 03DracoOmega02 07* 0.34-a0-104-g7ead7bf300: Fix/improve a test slightly 10(10 minutes ago, 2 files, 13+ 0-) 13https://github.com/crawl/crawl/commit/7ead7bf3001b 12:51:29 03DracoOmega02 07* 0.34-a0-105-ga2f1e0a9fa: Make Shred code slightly less player-centric 10(5 minutes ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/a2f1e0a9fafa 12:51:29 03DracoOmega02 07* 0.34-a0-106-ga9c97bacbe: Fix reaper and friendly protean progenitor speach being buggy 10(2 days ago, 1 file, 1+ 0-) 13https://github.com/crawl/crawl/commit/a9c97bacbe78 12:55:58 <07w​izardike> @dracoomega I've had this test sometimes fail randomly previous in unmodified trunk. It doesn't always use the same seed when run locally. It also only failed when I ran all the tests instead of just the moncast test 12:56:59 <04d​racoomega> As far as I can tell, calling crawl -test uses a random seed, but make test calls test/run which itself calls crawl -test using a fixed seed (of 1) 12:58:11 <04d​racoomega> (Running the whole test suite as opposed to just one test will also leave the RNG in a different state, of course) 12:59:13 <07w​izardike> It also leaves the level terrain and monsters in the state from the previous test 12:59:14 <04d​racoomega> But in this specific situation, calling the whole test suite with the fixed seed of 1 that make test uses would reliably crash in exactly the same way (eventually allowing me to figure out what the problem was) 12:59:18 <04d​racoomega> Yeah, I know >.> 12:59:32 <04d​racoomega> It's really not ideal in that regard 12:59:47 <04d​racoomega> (It was really fiddly to actually get a view of what was even the map state at a given point in a test) 13:00:39 <04d​racoomega> ...I like how we wrote exactly the same line of code there, even though I had never even noticed that PR before >.>; 13:01:22 <07w​izardike> I guess 10000 hp is just the right amount to heal lol 13:02:08 <04d​racoomega> (Shred apparently does 4d549 damage when cast by a test statue, incidentally :P) 13:02:41 <04d​racoomega> But hopefully nothing will ever be able to do 10,000 😛 13:03:01 <07w​izardike> wow what does that scale off? 13:03:20 <04d​racoomega> Just HD like most spells. But test statues have 1000 HD 13:03:31 <04d​racoomega> And are formulas aren't really made with that sort of thing in mind 13:03:59 <04d​racoomega> Summon Scorpions attempts to summon up to 286 scorpions at once 13:04:32 <07w​izardike> If the statues weren't aligned MCC might be a problem 13:04:49 <04d​racoomega> Monsters can't cast MCC 13:05:09 <04d​racoomega> (I actually changed the test to now make a non-aligned statue for one phase of the test also) 13:05:21 <04d​racoomega> Since it seemed worth having it actually cast some attack spells 13:05:22 <07w​izardike> Oh right, monster's casting mcc would be very bad 13:05:50 <04d​racoomega> Get cornersniped by Lom 13:06:20 <04d​racoomega> (Like, this certainly doesn't make the test foolproof, but hopefully it's 'good enough') 13:10:15 03WizardIke02 07https://github.com/crawl/crawl/pull/4519 * 0.34-a0-107-g7a43b76cae: Fix viewing off level monsters, items, and clouds 10(5 weeks ago, 4 files, 14+ 1-) 13https://github.com/crawl/crawl/commit/7a43b76cae4d 13:21:08 CaptainBarge (L2 MiBe) ASSERT(valid_cursor_pos(pos.x, pos.y, region)) in 'libutil.cc' at line 407 failed. (invalid cursor position -30,9 in region 2, should be 7,9 in region 3) (D:1) 13:21:20 CaptainBarge (L2 MiBe) ASSERT(valid_cursor_pos(pos.x, pos.y, region)) in 'libutil.cc' at line 407 failed. (invalid cursor position -30,9 in region 2, should be 7,9 in region 3) (D:1) 13:23:21 -!- Discord|2 is now known as Discord| 13:26:14 -!- Discord|3 is now known as Discord| 14:02:54 New branch created: pull/4596 (1 commit) 13https://github.com/crawl/crawl/pull/4596 14:02:55 03WizardIke02 07https://github.com/crawl/crawl/pull/4596 * 0.34-a0-107-g862797e141: Fix rampage hints showing on levels you aren't on 10(7 minutes ago, 1 file, 1+ 1-) 13https://github.com/crawl/crawl/commit/862797e1416e 14:39:40 <09h​ellmonk> Good bug 14:41:00 <09h​ellmonk> @gammafunk is the best place to find spell placement info going to be objstat or did you have some other tool for figuring out how likely a spell is by a given floor 15:30:23 New branch created: pull/4597 (1 commit) 13https://github.com/crawl/crawl/pull/4597 15:30:23 03WizardIke02 07https://github.com/crawl/crawl/pull/4597 * 0.34-a0-107-g0ef6eec953: Fix the cloud targeter avoiding immune players 10(12 minutes ago, 3 files, 7+ 3-) 13https://github.com/crawl/crawl/commit/0ef6eec953be 15:38:20 Unstable branch on underhound.eu updated to: 0.34-a0-106-ga9c97bacbe (34) 15:47:28 <09g​ammafunk> ??objstat 15:47:28 <04C​erebot> objstat[1/2]: Spreadsheets for all released versions and trunk: https://drive.google.com/drive/folders/0B7VXhHzhWWb7S282VWhLVWRXbG8?resourcekey=0-USiftCbTwRlT9M7Uz5Fskg&usp=sharing/ ; See the README for details: https://docs.google.com/document/d/1D5mFqVi8ghz_nzvVmDUc3unx8VanVBWfgvZ8xCHaiJo/edit?usp=sharing 15:47:29 <09g​ammafunk> er 15:47:35 <09g​ammafunk> sorry, one sec 15:51:23 <09g​ammafunk> there's specifically a "spells" sheet in the output that gives the chance of finding a given spell on a given floor (also broken down by vault/shop). If you want to answer questions like, "what's the chance I get spell X by level Y of Dungeon" you'd need to do the usual probability inversion arithmetic of e.g. 1 - (1-P1)(1-P2)...(1-PY) where PN is the probability of finding the spell on floor N of dungeon etc 15:51:55 <09g​ammafunk> and the deeper into the game the more such math you'd need to do, of course 15:52:42 <09g​ammafunk> also that same sheet does give a count of the number of times that spell was generated on the given floor 15:54:07 <09g​ammafunk> so if you just want to look at the total sum to see how many copies of a spell in total and work off that for probability approximation 15:54:40 <09g​ammafunk> but yeah I think objstat is likely the best tool available, see that "spells" sheet 15:54:56 <09g​ammafunk> (or text file rather, when you run it locally) 16:07:18 <09h​ellmonk> sounds like look at objstat and then guess will get me close enough, unsure that we care super much about preserving exact spell distribution 16:16:03 <09g​ammafunk> when the players revolt, we hit them with the new dev team patreon link. say dcss 1.0 is is in early access and they need a zot tier membership to unlock the latest spell balance tweaks 16:18:50 <09h​ellmonk> gacha system for bvc access 16:43:24 <04d​racoomega> Frankly, I feel like the spell distributions we currently have are mostly by accident. Not only is it influenced by the vagaries of what the 'average level' of book any individual spell mostly coincidentally ended up with, but the weighting function was actually bugged for... well, years anyway (I brought this up before, but I believe never got around to trying to fix it properly because it seemed likely to get replaced anyway) So 16:43:25 I'd basically disregard any specific details and just see that the distribution seems vaguely sane 16:43:51 <06p​leasingfungus> i did fix it! 16:44:10 <06p​leasingfungus> %git bd1523b72e0910006a5b5d89a40e770b863b8f27 16:44:11 <04C​erebot> PleasingFungus * 0.33-a0-1195-gbd1523b72e: Fix probability_at (DracoOmega) (9 weeks ago, 1 file, 1+ 1-) https://github.com/crawl/crawl/commit/bd1523b72e09 16:44:23 <06p​leasingfungus> but yes, agree with your broader point 16:46:48 <04d​racoomega> Oh, right, the spell weight thing was just a manifestation of that bug and not something else specific to spells (probably) 16:47:25 <04d​racoomega> It gets remarkably hard to keep full track of what one has done versus intended to eventually do sometimes ^^; 16:59:56 New branch created: pull/4599 (1 commit) 13https://github.com/crawl/crawl/pull/4599 16:59:56 03WizardIke02 07https://github.com/crawl/crawl/pull/4599 * 0.34-a0-107-gf850e3ab90: Fix agony not saying when you are immune 10(5 minutes ago, 1 file, 2+ 0-) 13https://github.com/crawl/crawl/commit/f850e3ab9091 18:59:27 New branch created: pull/4600 (1 commit) 13https://github.com/crawl/crawl/pull/4600 18:59:27 03WizardIke02 07https://github.com/crawl/crawl/pull/4600 * 0.34-a0-107-g60443f30b8: Fix trolls not keeping claws with fungal fisticloak 10(6 minutes ago, 3 files, 25+ 16-) 13https://github.com/crawl/crawl/commit/60443f30b83d 19:29:19 New branch created: pull/4601 (1 commit) 13https://github.com/crawl/crawl/pull/4601 19:29:20 03antimachina02 07https://github.com/crawl/crawl/pull/4601 * 0.34-a0-107-ga774824211: Add several new skill titles 10(12 minutes ago, 1 file, 22+ 1-) 13https://github.com/crawl/crawl/commit/a774824211a6 20:39:44 New branch created: pull/4602 (1 commit) 13https://github.com/crawl/crawl/pull/4602 20:39:45 03WizardIke02 07https://github.com/crawl/crawl/pull/4602 * 0.34-a0-107-g1a90eece5b: Don't hide items on decorative floor cells on console (croikle) 10(6 minutes ago, 1 file, 2+ 1-) 13https://github.com/crawl/crawl/commit/1a90eece5ba3 22:35:38 Unstable branch on crawl.develz.org updated to: 0.34-a0-106-ga9c97bacbe (34) 22:58:31 Windows builds of master branch on crawl.develz.org updated to: 0.34-a0-106-ga9c97bacbe 23:00:00 -!- Discord|4 is now known as Discord| 23:13:52 Unstable branch on cbro.berotato.org updated to: 0.34-a0-106-ga9c97bacbe (34) 23:55:32 Monster database of master branch on crawl.develz.org updated to: 0.34-a0-106-ga9c97bacbe