00:33:18 Unstable branch on cbro.berotato.org updated to: 0.33-a0-656-g0a0a479413 (34) 00:55:32 Monster database of master branch on crawl.develz.org updated to: 0.33-a0-656-g0a0a479413 04:33:43 Experimental (bcrawl) branch on underhound.eu updated to: 0.23-a0-5249-g4a8afe7061 05:31:36 Unstable branch on crawl.akrasiac.org updated to: 0.33-a0-656-g0a0a479 (34) 09:10:33 -!- rozlav89 is now known as rozlav8 09:48:01 <09h​ellmonk> learning that not only is shop greed not centered around the number we divide shop greed by but also that it depends on depth 09:57:28 The deeper the greeder? 09:57:43 <09h​ellmonk> yes 10:00:29 <09h​ellmonk> There is also a large increase for antique shops (plus separate code that increases pricing for unidentified items by a flat amount) 10:00:54 <09h​ellmonk> which explains why unided ego plate costs one billion dollars 10:19:21 <05i​coson> what're the ci issues? looks like everything is ok currently in trunk? 10:24:53 <05i​coson> (I've never been sure that running code coverage stuff in CI is particularly useful, since we have essentially no coverage; it's just too far from the ideal to serve as a motivator) 10:29:37 <09g​ammafunk> I think we have a workaround in place that reverts our CI to an earlier ubuntu @icoson : 10:29:47 <09g​ammafunk> %git 1404ca9d21218393ff94eb4ec2d80caba34464f3 10:29:48 <04C​erebot> Implojin * 0.33-a0-643-g1404ca9d21: Temporarily set CI to ubuntu 22.04 (5 days ago, 1 file, 11+ 11-) https://github.com/crawl/crawl/commit/1404ca9d2121 10:30:32 <09g​ammafunk> which I guess that's fine, but we apparently have multiple build issues on 24.04 (for certain build targets but not all) 10:44:26 <03i​mplojin> github updated their ubuntu-latest runner to ubuntu 24.04, and this broke a bunch of things related to debian packages updating: https://discord.com/channels/735056636644687913/747522859361894521/1326576071788990464 that above commit was just to let CI continue to work while we fix it properly, here's the branch i was poking at: https://github.com/Implojin/crawl/commits/glusquash/ 10:49:06 <09g​ammafunk> for glu stuff, I don't see the necessary packages being added to deps.py 10:49:25 <09g​ammafunk> tiles does build fine on 24.04 so long as you install those two new required packages 10:50:05 <09g​ammafunk> I see you trying to modify code and some make arguments in that commit, but have you tried just adding the two package requirements to deps.py? 10:50:40 <09g​ammafunk> specifically probably here: https://github.com/Implojin/crawl/commit/d1c6557f78dffb499f1ea2e9a410ba2fe17de007#diff-3f8189556689965b8647a98d137d2c3d0678f603e9bb35b7657c6a5b0f79fb28R65 10:51:47 <09g​ammafunk> might just be the case that CI needs to know to install libglu1-mesa and libglu1-mesa-dev 10:52:34 <09g​ammafunk> I can mess with that a bit later tonight in any case 11:01:21 <03i​mplojin> the idea here was originally to get rid of the glu dep completely because apparently glu relies on calls that have been deprecated for more than a decade and glu support may be going away entirely at some point (i think the "modern" way to get the replacement glext mipmap function is to link against mesa's OpenGL instead, but then we have compatibility questions), but also it seems we can't get rid of glu on windows without introducing 11:01:21 a different opengl extension loader dependency 11:02:49 <03i​mplojin> possibly we just link against the newer glu package and kick this problem down the road 11:04:58 <09g​ammafunk> Yeah 11:05:08 <09g​ammafunk> At least for now 11:37:34 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 11:38:07 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 11:46:04 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 11:46:18 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 11:46:34 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 11:46:48 <03i​mplojin> !crashlog MAN 11:46:49 <04C​erebot> 6. MAN, XL27 MiGl, T:64190 (milestone): https://underhound.eu/crawl/morgue/MAN/crash-MAN-20250109-184633.txt 11:48:39 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 12:00:34 <12g​e0ff> how is it possible to destroy a shop? 12:01:59 <03i​mplojin> looks like it might be a duplicate from the last time this came up: https://discord.com/channels/735056636644687913/747522859361894521/1304615339182522431 not sure if we ever fixed that, or if the fix just didn't make it into 0.32 12:02:57 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 12:03:33 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 12:04:04 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 12:05:24 <12g​e0ff> 99.9% sure it wasn't fixed: i don't remember such fix and can't find it in git log 12:07:42 <05i​coson> "Standing on/in/over feature: rock wall" 12:12:02 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 12:13:46 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 12:14:15 <12g​e0ff> the player is in a zig:26, and the game crashes as soon as the loot pile is revealed 13:18:15 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 13:18:51 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 13:20:34 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 13:20:48 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 13:21:03 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 13:21:18 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 13:21:37 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 13:23:39 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 13:24:14 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 13:24:26 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 13:24:54 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 13:25:31 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 13:26:01 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 13:27:40 MAN (L27 MiGl) ASSERT(shop) in 'shopping.cc' at line 2016 failed. (Depths:4) 14:10:22 <05i​coson> this looks very similar except for the abandoning in abyss part, that happened just in vaults 1 14:20:40 <05i​coson> well, that crash is easy to replicate at least 14:20:57 <05i​coson> and also to fix, someone just needs to tell MAN to clear the item from their shopping list 14:22:25 <05i​coson> (to fix from the player's end, that is) 14:23:56 <12g​e0ff> is there a "message the player" server feature (or was it only server-wide or was it implemented at all?) 14:24:10 <05i​coson> there's chat 14:24:23 <12g​e0ff> there's chat but there's no player atm 14:24:33 <05i​coson> yeah, nothing more than that 14:35:52 <04d​racoomega> I never looked into this bug the first time, but having a quick scan of the code now, it's not actually clear to me why abandoning in the Abyss specifically should fail. (Or what about the Abyss specifically would behave differently than being in other levels when abandoning). I may be missing something obvious. 14:48:29 <05i​coson> well, it isn't in my testing 14:48:47 <05i​coson> does anyone know why backspace is no longer working at the local console main menu? 14:49:55 works for me but I haven't done my weekly update yet 14:58:46 just updated, backspace works here? 14:59:56 <05i​coson> perhaps it's mac-specific 15:05:03 <05i​coson> hm, so this particular gozag bug is because someone (me) in 2019 broke running dactions on level excursions, and the implementation of shop removal relied on that 15:05:33 <05i​coson> the fix is pretty easy, however, running dactions on excursions seems pretty wild and I'm a bit nervous about completely restoring that behavior 6 years later 15:05:51 <05i​coson> does anyone happen to know if other code relies on dactions being run on excursions? 15:09:09 <05i​coson> that is,ShoppingList::remove_dead_shops is implemented by doing an excursion to every shop, with the daction being run as a side effect; but that side effect hasn't been in place since 2019 15:09:37 <05i​coson> of course the daction still gets run if the player enters the level, but the shopping list doesn't get updated properly 15:19:17 <04d​racoomega> Oh! I foolishly took the code at its word 😛 (I've been busy compiling for other things and not investigating this more actively than some code browsing while doing so) 16:40:34 Unstable branch on underhound.eu updated to: 0.33-a0-656-g0a0a479413 (34) 17:02:59 <08n​icolae> you can't trust the code. behind every semicolon there's two ampersands ready to stab you in the back 17:44:10 it's the ors that are the real stilettos though 😛 17:52:24 <05i​coson> my inclination is still to fix the shopping list problem in another way, dactions on excursions just sounds too weirdness-prone to me even if that's the way it used to work 17:58:12 <04d​racoomega> It seems possible in theory to just store another prop on shopping list entries for "Came from a Gozag shop" and then one could just remove all those items when you abandon Gozag, rather than needing to do excursions at all 17:59:12 <04d​racoomega> (I've not dealt with shopping list code much myself, but a quick glance seems to suggest this could be straightforward.) 18:07:37 (…three months later…) 18:08:21 <08n​icolae> pretty sure you've just uttered the magic phrase to jinx the whole thing 18:10:08 <04d​racoomega> Look, not everything in Crawl is a nesting doll of horrible problems 18:10:15 <04d​racoomega> Only some of them 😛 19:30:58 @gammafunk / @i​mplojin - glu is very killable. OpenGL 3+ and similar for OpenGL ES 2+ has a replacement function. It's like 3 lines of code. And the relevant OpenGL version required to replace it is also like 10 years old so everything under the sun has it too (even in like 2012, 93% of computers supported the version, if some post I came across is correct. And that was literally a deacde ago)The only problem is you have 19:31:46 The only problem is you have to work out the exact set of #define eldritch invocations required to make the relevant function declarationv isible 19:31:55 or you can just give up and hard code it 19:41:40 It looks like this: 19:41:41 https://github.com/crawl/crawl/pull/4210 19:41:43 plus: 19:48:47 https://github.com/crawl/crawl/pull/4217 19:49:14 New branch created: pull/4217 (2 commits) 13https://github.com/crawl/crawl/pull/4217 19:49:15 03Cgettys02 07https://github.com/crawl/crawl/pull/4217 * 0.33-a0-650-gdab8b357c7: hack on mipmapping 10(9 minutes ago, 1 file, 9+ 2-) 13https://github.com/crawl/crawl/commit/dab8b357c772 19:49:15 03Cgettys02 07https://github.com/crawl/crawl/pull/4217 * 0.33-a0-651-g5347110a5e: hack on mipmapping 10(6 minutes ago, 1 file, 0+ 5-) 13https://github.com/crawl/crawl/commit/5347110a5e17 19:53:56 As for code coverage... give me a few 19:54:13 Local repro will need: 19:54:15 sudo apt install python3-pip 19:54:26 sudo apt install python3.12-venv 19:54:41 python3 -m venv my_venv 19:55:51 source my_venv/bin/activate 19:56:06 https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/ 19:57:02 pip install -r webserver/requirements/dev.py3.tx 19:59:20 actally, maybe all of that is sikippable, it's just package installation :D 19:59:50 sudo apt install lcov 19:59:54 that's all that whole thing is 20:00:03 Python seems... a bit overkill for that 20:03:03 https://manpages.ubuntu.com/manpages//noble/man5/lcovrc.5.html 20:05:02 https://github.com/linux-test-project/lcov/issues/209 20:19:51 lcov --capture --directory . --output-file ../../coverage.info --ignore-errors source --rc branch_coverage=1 --rc geninfo_unexecuted_blocks=1 --exclude=/usr/include/c++/* --ignore-errors mismatch 20:19:56 Gets it down to warnings only 20:20:02 probably should dig into some of them more, they're quirky 20:24:15 Back to the glu discussion - modern way is probably to link yeah 20:24:20 possibly dynamic linking... one sec 20:25:29 not dynamic linking, what's the term 20:25:38 well kinda dynamic linking 20:25:43 function pointer tomfoolery 20:25:44 https://www.khronos.org/opengl/wiki/Load_OpenGL_Functions 20:26:33 here you go 20:26:34 https://stackoverflow.com/questions/38048126/sdl2-and-sdl-opengl-glext-h-undefined-external 20:27:48 with a check that the extension is supported and returned function pointer is not null 20:28:09 but I think you can also instead just link normally and everything should work on OpenGL 3+ 20:28:20 <03i​mplojin> /users 20:28:34 https://registry.khronos.org/OpenGL-Refpages/gl4/html/glGenerateMipmap.xhtml 20:28:39 ^ is OpenGL 3.0 20:28:53 <03i​mplojin> My understanding is that your HACK HACK HACK is eliding past a good chunk of boilerplate needed to do this properly, and without that, this may just crash. Note that crawl is pushing 30 years old and it's semi-common for us to get reports from users on esoteric OSes running, like, thinkpads from 2003. 20:29:08 <03i​mplojin> if i'm misunderstanding this, please let me know 20:29:45 https://stackoverflow.com/questions/18257063/glgeneratemipmap-or-glgeneratemipmapext 20:30:01 Short version, is kinda 20:30:13 I am hacking past a good amount of boilerpalte I haven't figured out yet 20:31:00 But I'm pretty sure it can be safely done 20:39:52 -!- The topic of #crawl-dev is: Crawl Development | https://github.com/crawl/crawl | Logs: http://s-z.org/crawl-dev/, temporarily http://crawl.akrasiac.org/logs/cheibriados/ | People with +v have commit access, devs on bridged discord as well | General Crawl-related chat to #crawl | Long stuff to a pastebin service, please 20:39:52 -!- The topic of #crawl is: Play Dungeon Crawl Stone Soup online now! Type ??online for instructions, ??lg / !lg for play stats | PM Sequell for long queries | http://crawl.develz.org | FooTV game replays: ??footv for instructions | #crawl-dev for dev discussion, #crawl-offtopic for offtopic 20:43:26 Right 20:43:31 SDL has some utility functions 20:44:13 I just pushed another version 20:44:21 that is also hideously hacky and is missing a bunch of checks 20:44:29 but is much closer to the "sound" way to do this 20:44:46 03Cgettys02 07https://github.com/crawl/crawl/pull/4217 * 0.33-a0-652-g57d76003ac: Still horrendously hacky, but probably more correct 10(49 seconds ago, 1 file, 10+ 6-) 13https://github.com/crawl/crawl/commit/57d76003ac0d 20:44:57 the way I showed i'm pretty sure will fail to link if the platform doesn't support it, assuming platform it's built on is the platform it's run on, whichi s a bad assumption 20:48:13 <03i​mplojin> yeah, i noticed SDL_opengl_glext.h in there, but i'm reasonably sure we still need to check the gl context to see if we have access to 3.1 extensions, and even then i wasn't able to get glGenerateMipmap available when linking using -lopengl32 in the msys section of our makefile (possibly I was doing this incorrectly) 20:49:47 <03i​mplojin> (remember, we need this to compile on all supported platforms, not just modern debian) 20:55:12 <03i​mplojin> anyway i'm out of my depth here beyond putzing around with some toy renderers years ago, so glad for any help 20:57:03 I don't think it's a 3.1 extension 20:57:05 just 3.0 20:57:10 I got it to link with that hack 20:57:33 I think I have the "right" way maybe working, cross fingers... still need ot add versioncheck 20:57:37 and I only have 24.04 to test on 20:57:46 no mac or ancient hw here handy 20:58:11 <03i​mplojin> yeah, not having access to local hardware to build on has limited me too 20:58:19 <03i​mplojin> can spin up some vms later i guess 21:11:39 I think I have it right now 21:11:49 03Cgettys02 07https://github.com/crawl/crawl/pull/4217 * 0.33-a0-653-g9185586266: Done properly 10(19 seconds ago, 2 files, 46+ 7-) 13https://github.com/crawl/crawl/commit/918558626605 21:11:50 same PR 21:16:10 03Cgettys02 07https://github.com/crawl/crawl/pull/4217 * 0.33-a0-654-g497b98bc5c: Remove glu library references 10(71 seconds ago, 5 files, 9+ 9-) 13https://github.com/crawl/crawl/commit/497b98bc5c3d 21:16:30 I think my sync point is too old to have the readme commit, or search is just being dumb 21:16:35 but I think that's the ticket 21:16:39 I think it's quite safe too 21:16:56 every part of it is allowed to fail as long as it fails according to the spec it'll be fine 21:17:24 And if you don't have OpenGL at all, we'd crash anyway almost certainly 21:19:25 Let me squash and rewrite the description 21:26:59 03Cgettys02 07https://github.com/crawl/crawl/pull/4217 * 0.33-a0-650-g6cab2605da: Avoid depending on deprecated, terrible GLU library by dynamically loading glGenerateMipmap where available. 10(2 hours ago, 8 files, 62+ 17-) 13https://github.com/crawl/crawl/commit/6cab2605da15 21:37:59 Alright, published 21:38:53 <03i​mplojin> much appreciated, on first pass it looks okay, will take a closer look when i'm less tired 21:39:06 Sounds good to me 21:39:36 This sort of LoadLibrary/GetProcAddress stuff or linux equivalents aren't actually that complicated under the hood 21:39:48 they just bend your brain a bit the first few times you see them :D 21:55:04 03Cgettys02 07https://github.com/crawl/crawl/pull/4217 * 0.33-a0-650-g8891797152: Avoid depending on deprecated, terrible GLU library by dynamically loading glGenerateMipmap where available. 10(2 hours ago, 8 files, 76+ 17-) 13https://github.com/crawl/crawl/commit/8891797152a0 21:55:15 I added more comments because most devs probably aren'tgoing to have encountered the joys of dynamic linking 21:57:42 <09g​ammafunk> my issue is not really whether glu is "killable". I'm sure it is and it's fine if people want to work on removing it and eventually merge a PR doing so, but there's no big rush and we can take whatever time is necessary to do it properly. My issue is that we get back to running CI on ubuntu latest sooner rather than later. 22:01:34 <03i​mplojin> should be fine to run ci with the updated glu package while the rest gets worked out, i'd gotten sidetracked with this glu stuff because we really do want to drop that dependency, i think 22:02:30 <03i​mplojin> just need to figure out what's going on with lcov and then get around to fixing up the myriad warnings, i think 22:15:43 <04d​racoomega> I'm afraid all of this sort of stuff is pretty outside my wheelhouse; hence my lack of comments on the subject ^^; 22:16:04 <04d​racoomega> (Not that I don't already have my hands full as it is, I guess :P) 22:19:28 <04d​racoomega> Think you've removed all of something and then run into more zombie methods while doing the next thing 22:20:15 I can explain what the error messaages mean 22:20:20 just not why they're happening 22:21:18 The command I sent in chat above earlier got me a success from lcov 22:21:21 a noisey success but a sucess 22:27:18 I'll put together a PR, giv eme a minute 22:35:48 https://github.com/crawl/crawl/pull/4218 22:36:02 New branch created: pull/4218 (1 commit) 13https://github.com/crawl/crawl/pull/4218 22:36:03 03Cgettys02 07https://github.com/crawl/crawl/pull/4218 * 0.33-a0-650-g552440c3f1: Get coverage to warn instead of error 10(2 minutes ago, 1 file, 8+ 2-) 13https://github.com/crawl/crawl/commit/552440c3f1ba 23:07:24 03Isaac Clancy02 07https://github.com/crawl/crawl/pull/3877 * 0.33-a0-657-ge6b1fd6322: Allow manifold assaulting with a weapon that warns 10(7 months ago, 4 files, 93+ 38-) 13https://github.com/crawl/crawl/commit/e6b1fd632289 23:44:10 03Isaac Clancy02 07https://github.com/crawl/crawl/pull/3968 * 0.33-a0-657-gb0dea55192: Improve malign gateways targeter 10(5 months ago, 5 files, 105+ 14-) 13https://github.com/crawl/crawl/commit/b0dea55192d9 23:52:49 03Isaac Clancy02 07https://github.com/crawl/crawl/pull/3968 * 0.33-a0-657-g4cb59b7f60: Improve malign gateways targeter 10(5 months ago, 5 files, 101+ 14-) 13https://github.com/crawl/crawl/commit/4cb59b7f6097