00:00:21 if it's just with each new release then the admins will know about the release 00:00:41 but it was more to be aware of the fact that those games will not be playable at all on certain servers if we do this 00:16:01 Unstable branch on CRAWL.XTAHUA.COM updated to: 0.23-a0-109-g5e4b187 (34) 00:36:47 what does dgl do in this context? 00:40:14 it's a wrapper between webtiles server and the client 00:40:35 It provides the "do you want to upgrade your save to the latest version?" prompts you might have seen 00:40:57 actually, I'm not sure if it works in webtiles. Maybe this stuff only works in SSH? 00:41:53 hm, I may be completely wrong but I thought that had more to do with the trunk version you were playing, and less about actual compatibility/migration 00:42:10 that does show up in webtiles, yes 00:46:40 <|amethyst> aidanh: if you don't transfer or can't transfer, dgl keeps your save in the old directory (each trunk build gets its own dir) and lets you run the old version 00:47:25 <|amethyst> if you do transfer, it moves your save to the new directory and starts the new version on it 00:47:37 <|amethyst> it's actually a launcher script invoked by dgl and also by webtiles on such servers 00:48:26 <|amethyst> crawl-git-launcher.sh in dgamelaunch-config 00:48:50 <|amethyst> chroot/bin/crawl-git-launcher.sh , to be more specific 00:49:29 right; my question is, if backwards compatibility is limited to the previous version, what difference does not having dgl make? the save can't be upgraded either way 00:49:52 <|amethyst> aidanh: some servers only keep around one trunk build at a time 00:50:02 <|amethyst> meaning it's impossible to launch the game with the old version of crawl 00:50:23 <|amethyst> whereas on dgl servers you can continue playing, you just can't upgrade if there has been a major bump 00:50:50 ah, got it, thanks 01:27:38 Unstable branch on crawl.develz.org updated to: 0.23-a0-109-g5e4b187 (34) 01:56:14 |amethyst: does the script work in webtiles, or only SSH 01:57:17 oh, you said "also by webtiles" 02:13:01 one possible approach is to have a server with an API for save upgrading 02:13:32 single sign on would presumably need a similar setup 02:19:22 wait, didn't you feel queasy about adding to crawl's fragmented and unmaintained distributed infrastructure? 02:19:29 or was that the other A 02:24:03 alexjurkiewicz: the dgl launcher script checks if you're playing webtiles, spits out html to create a prompt, and perfoms an action based on reading from the weboscket; if you're not on webtiles, it just prints the prompt and reads your response from the terminal 02:24:21 so yeah the prompt works for both 02:45:39 wow, nifty 02:59:11 Monster database of master branch on crawl.develz.org updated to: 0.23-a0-109-g5e4b187 03:18:15 Stable (0.21) branch on crawl.beRotato.org updated to: 0.21.1-77-g46dbe93 03:26:53 Unstable branch on crawl.beRotato.org updated to: 0.23-a0-109-g5e4b187 (34) 03:43:45 -!- amalloy is now known as amalloy_ 08:57:45 Webtiles server restarted. 09:11:16 alexjurkiewicz that was me 09:11:56 I def think that any centralized apparatus we add needs to come with forward planning, multiple admins, a succession plan, stuff like that 09:20:17 as boring and unpleasant as that might be 09:22:49 probably very, but necessary yeah 09:24:55 re upgrading, one solution if we could get server admins to do it, would be to simply switch things so that any trunk games before 0.23 (or whatever version breaks save compat) upgrade to 0.22 stable, rather than current trunk 09:25:21 I guess that won't work if the player already has a 0.22 game going 09:25:47 a possible alternative to a centralized server is for servers to do some sort of peering with each other 09:26:31 federated dcss 09:27:32 something of the sort, I guess 09:29:52 as far as save upgrading goes, couldn't saves get upgraded to trunk via 0.22 stable? 09:31:11 or is that about dgl-less servers? 09:33:11 well, I just don't really think we need to support endless upgrading 09:34:44 at this point all that it means is that the save loads, but upgrading a game from 0.12 or whatever is inevitably going to get a very weird game 09:35:02 could make that a tournament category 09:36:48 0.12 had item weight, different dungeon depths (D:27 iirc), species that don't exist any more, a ton of removed items/monsters, etc 09:36:56 daisy chaining upgrades is effectively free if you support the previous version 09:37:14 it's technically free but I just don't think it makes sense gameplay-wise any more 09:37:15 whether or not we want to expose that is another matter 09:37:24 yeah 09:38:01 0.12 didn't even have depths, I wonder how that works 09:38:51 actually even 0.11 saves can now technically load 09:39:05 %git 35673f843b 09:39:05 07kilobyte02 * 0.12-a0-1828-g35673f8: Restore save compatibility with 0.11 final. 10(6 years ago, 9 files, 242+ 26-) 13https://github.com/crawl/crawl/commit/35673f843b19 09:39:20 though honestly a lot of this old code probably gets tested only very rarely this far along 10:00:29 why does performing non-actions like checking % menu cancel acrobat buff 10:00:50 or checking m menu 10:00:54 anything really 10:09:30 they don't cancel the acrobat buff 10:09:50 the acrobat buff is active only on the monster's turn; it is shown on the beginning of your turn because there is no other time to show it 10:11:53 but if you take a wait or move action on your turn, it will be active again on the next monster turn 10:15:53 ah 12:09:56 03Aidan Holm02 07* 0.23-a0-110-gd4e5561: Fix webtiles whitespace formatting (NormalPerson7, #11632) 10(30 minutes ago, 3 files, 32+ 14-) 13https://github.com/crawl/crawl/commit/d4e5561ac007 12:09:56 03Aidan Holm02 07* 0.23-a0-111-g6bf7575: Fix god screen powers colours on webtiles (btonasse) 10(5 minutes ago, 2 files, 8+ 4-) 13https://github.com/crawl/crawl/commit/6bf7575dfdf1 12:10:05 03Floodkiller02 {Aidan Holm} 07[stone_soup-0.22] * 0.22.0-28-gf996011: Add another set of Gnoll playerdoll tiles 10(6 weeks ago, 3 files, 2+ 0-) 13https://github.com/crawl/crawl/commit/f99601175f15 12:10:05 03Aidan Holm02 07[stone_soup-0.22] * 0.22.0-29-g6c8001e: Fix webtiles whitespace formatting (NormalPerson7, #11632) 10(30 minutes ago, 3 files, 32+ 14-) 13https://github.com/crawl/crawl/commit/6c8001e90905 12:10:05 03Aidan Holm02 07[stone_soup-0.22] * 0.22.0-30-g341435d: Fix god screen powers colours on webtiles (btonasse) 10(5 minutes ago, 2 files, 8+ 4-) 13https://github.com/crawl/crawl/commit/341435da70d6 13:03:37 Stable (0.22) branch on crawl.akrasiac.org updated to: 0.22.0-30-g341435d 13:05:02 hey! could I get a pointer about where to look if I am interested in the differences between how lua code is handled in init.txt/.crawlrc and in the wizmode interpreter? 13:08:46 I'd like to import an external library using require. the library is found if I do it via the interpreter (but a boolean is returned instead of a library handle or smth). advil pointed me to https://github.com/crawl/crawl/blob/master/crawl-ref/source/clua.cc#L1221 and I am looking into modifying that so that it actually returns what I need. However ideally I would like to do this from init.txt and currently I cannot seem to make it see any external 13:08:46 library that I installed. however, package.path looks good. 13:09:02 Unstable branch on crawl.akrasiac.org updated to: 0.23-a0-111-g6bf7575 (34) 13:10:03 is that a clua/dlua thing? two separate interpreters and all that? 13:10:30 Stable (0.22) branch on crawl.jorgrun.rocks updated to: 0.22.0-30-g341435da70 13:17:52 where should I put a question/request for guidance if I struggle to be often on IRC? is there a dev mailing list? github issue maybe? 13:20:24 perhaps on tavern, in the technical support section? 13:20:50 Unstable branch on crawl.jorgrun.rocks updated to: 0.23-a0-111-g6bf7575dfd (34) 13:21:32 -!- amalloy_ is now known as amalloy 13:21:54 sure, thanks! 13:26:27 -!- The topic of ##crawl-dev is: Crawl Development | Logs: http://s-z.org/crawl-dev/ | People with +v have commit access. | Please keep general Crawl-related chat to ##crawl. | Dev wiki: http://crawl.develz.org/wiki | Long stuff to a pastebin service, please. 13:41:50 well, one bug seems to be that CLua::execfile() marks files as loaded before actually loading them 13:42:20 this causes require("doesnt-exist") to fail the first time but return true for all subsequent times 13:48:00 pibborn_: is there any chance this is what happened when you loaded a library via the interpreter? i.e. it errored the first time without you noticing and then silently returned true, leading you to believe it had succeeded? 13:48:44 I can't get either dlua or clua interpreters to load an external library, and looking at the code I can't see how they could do so either 13:51:25 aidanh: I double checked right now and I don't think so, no. I followed a suggestion made by advil and modified https://github.com/crawl/crawl/blob/master/crawl-ref/source/clua.cc#L773 so that it loads all lua libraries. after that, it seems to be "working" in the sense that I get a true return result the first time if the library is installed 13:53:31 it also seems to be working without the change I was suggesting. 13:55:45 if you are having trouble maybe it's a lua version thing? I needed to take care about using luarocks5.1 specifically since dcss is using that (mac os here, maybe linux distros have a smarter way to handle that) 13:59:09 no luck with 5.1 packages here 14:02:38 pibborn_: and you don't have any require "foo" calls in your crawlrc that would be causing that first initial error without you noticing? are you using the clua or the dlua interpreter? 14:05:49 aidanh: yeah that was it actually :( good catch. I am using the clua interpreter. 14:06:16 no worries, it confused the hell out of me too 14:07:58 so .crawlrc uses the clua interpreter, right? 14:08:38 yep 14:09:24 ok. maybe I'll mess around with how the require function seems to be registered here? https://github.com/crawl/crawl/blob/master/crawl-ref/source/clua.cc#L809 14:10:06 apart from the fact that you can't load system modules, having require() return true instead of the module return value makes it kind of useless 14:11:34 well, except that crawl dlua uses globals with wild abandon.. 14:13:00 yeah, `git grep require\(` does return a lot of stuff in dat/des/builder/*.des 14:13:16 is that the "same require" however since it seems to be dlua? 14:13:33 it's the same one 14:14:31 uhhh how is that useful then? it pollutes the namespace or something? 14:16:48 Text overflow in description of Amulet of Vitality 13https://crawl.develz.org/mantis/view.php?id=11633 by silenth 14:16:48 in practice it's used as a glorified dofile() 14:17:57 03Aidan Holm02 07* 0.23-a0-112-g497f4a5: Fix require() only failing the first time (pibborn) 10(4 minutes ago, 1 file, 2+ 2-) 13https://github.com/crawl/crawl/commit/497f4a5a2c8d 14:18:08 I see. so any change to how require works is going to break stuff big time I guess 14:18:24 12 year old bug, that 14:18:59 not really; you can just make it respect package.path, and then put the existing search paths at the front of package.path 14:19:49 changing the return value from true to "whatever the module returns" should also be fine; the only corner case is if the module returns nil 14:21:48 yeah, I kind of see now, thanks. I'll look into it! 14:22:25 np! 14:28:48 03Aidan Holm02 07* 0.23-a0-113-gb59193a: Revert item description fix (silenth, #11633) 10(65 seconds ago, 1 file, 0+ 1-) 13https://github.com/crawl/crawl/commit/b59193a44f03 14:29:19 03Aidan Holm02 07[stone_soup-0.22] * 0.22.0-31-g64d1889: Revert item description fix (silenth, #11633) 10(2 minutes ago, 1 file, 0+ 1-) 13https://github.com/crawl/crawl/commit/64d1889cd4aa 15:03:54 03advil02 07* 0.23-a0-114-g55e0228: Provide a (disabled-by-default) way to use lua require 10(2 minutes ago, 1 file, 13+ 0-) 13https://github.com/crawl/crawl/commit/55e0228dadfa 15:05:41 that should basically fix this issue as I understand it; I've only sort of tested it because my system only has lua 5.3 installed, and those libraries don't tend to actually work on lua 5.1, but I am at least getting their error messages 15:06:38 e.g. `lua_require "luarocks.loader"` gives me an error message indicating that it at least tried 15:10:29 Stable (0.22) branch on crawl.jorgrun.rocks updated to: 0.22.0-31-g64d1889cd4 15:20:43 Unstable branch on crawl.jorgrun.rocks updated to: 0.23-a0-114-g55e0228dad (34) 15:29:42 mmm 15:29:44 luarocks 16:04:35 oh wow advil thanks a lot, I will try that right now :) 16:19:48 yeah I agree that now it does seem to be trying to load the library! 16:33:07 now the issue is that if the external library uses require, then the interpreter is going to use that one so it is going to fail 16:33:41 I can probably replace the requires with lua_requires though 16:41:11 would probably make more sense to rename crawl's special "require" function so that the global one works as normal if it exists 16:45:30 yeah, I didn't go that route because it's used a fair amount and I didn't want to mess with that during t 16:45:46 you could probably restore regular require before loading the library 16:48:41 well, except that crashes in a typically cryptic way 16:56:14 I will merge a change like that after t, I agree it's not good practice for us to be shadowing require in the first place 17:00:51 another thing that might be of interest is that if the interpreter finds a require via a "lua_require x" it will 1. fail (already discussed) 2. complain about "loop or previous error loading module x" on subsequent lua_requires of the same module x 17:02:18 it sounds like this will fix itself if the plan is to "unshadow" require, however it is possible that the lua stack keeps some stuff about the first lua_require even if it fails 17:03:45 which is probably undesirable. it is hard to say what might be the command line repl's behaviour in this situation. I have no idea at least 18:21:49 Unstable branch on underhound.eu updated to: 0.23-a0-114-g55e0228dad (34) 19:00:10 -!- amalloy is now known as amalloy_ 19:16:40 for non-DGL servers, one approach to keep games "alive" across a save-compat break is to temporarily fork off a "trunk (old)" version people can play, which is the last trunk version that has old-save-compat. But I do think that's overkill, a clearly announced flag day will be enough notice IMHO 21:41:11 the problem with unshadowing the builtin require is that it's not so easy to make package.path (and other objects) read-only 22:13:01 normally it isn't loaded at all 22:17:29 if dcss could run inside a container it might be less of a problem having an unrestricted Lua execution environment 22:18:44 it's already deployed in a chroot on servers, which accomplishes the same thing 22:19:35 but access to dlua from clua should still be restricted 22:23:22 it's not quite the same, because within a chroot you can access files from other users 22:24:00 dlua definitely off limits though :) 22:29:38 -!- tcsc_ is now known as tcsc 22:29:39 -!- doy_ is now known as doy 22:34:55 =nemelex VSFE 22:34:58 Defined keyword: nchoice => VpFE|BaEn|CeIE|DDCj|HaAE|KoVM|CeEE|BaFE|DrAM|TeWr|SpSu|DEAK|BaNe|DgEn|MuWr|FoTM|GnAK|MfEE|HuAE|DEHu|GnCK|VSSu|HaCj|OpAM|OgVM|FoWz|HOEn|SpIE|GhEn|DESk|VSFE 23:45:35 03gammafunk02 07* 0.23-a0-115-g8d3be6a: Updated shock serpent tile (ontoclasm) 10(57 minutes ago, 1 file, 0+ 0-) 13https://github.com/crawl/crawl/commit/8d3be6a08845 23:47:40 03gammafunk02 07[stone_soup-0.22] * 0.22.0-32-gbc6daba: Updated shock serpent tile (ontoclasm) 10(59 minutes ago, 1 file, 0+ 0-) 13https://github.com/crawl/crawl/commit/bc6dabad2187