00:33:13 Fix for broken mingw-w64 tiles compiling. 13https://crawl.develz.org/mantis/view.php?id=11268 by Implojin 00:39:18 Implojin: thanks, I'll take a look at that in the next couple days and merge if someone doesn't beat me to it 00:39:31 not sure if we can just do a more recent import of sdl2 or not 00:39:42 if you have the inclination or time, you might try the better fix posted on SDL2's bug page 00:40:04 i tried rebasing to sdl2 2.0.6 locally and it seemed to work, but there were merge conflicts to resolve 00:40:14 didn't do any in depth testing, though 00:40:24 but yeah 00:41:10 I will take a look 01:35:23 -!- Rast- is now known as rast 02:16:19 -!- amalloy_ is now known as amalloy 02:53:09 aidanh: did you see this? https://www.reddit.com/r/dcss/comments/78pea3/bug_nice_random_loot/ 02:53:41 they report that it happened after a trunk update 03:09:12 -!- amalloy is now known as amalloy_ 03:10:53 -!- amalloy_ is now known as amalloy 03:11:35 Unstable branch on crawl.beRotato.org updated to: 0.21-a0-404-g291f19a (34) 03:57:10 -!- amalloy is now known as amalloy_ 04:32:12 gammafunk: Ah, oops... it looks like they have their font size turned up, and I hadn't realized you could do that 04:34:54 Yeah, it's the tile_font_stat_size option 05:02:00 gammafunk: fixed in pull/636 05:02:15 cool, I can take a look tomorrow, thanks 05:05:06 New branch created: pull/636 (1 commit) 13https://github.com/crawl/crawl/pull/636 05:05:06 03Aidan Holm02 07https://github.com/crawl/crawl/pull/636 * 0.21-a0-402-gaa363c9: Fix sidebar for large tile_font_stat_size 10(10 minutes ago, 1 file, 8+ 22-) 13https://github.com/crawl/crawl/commit/aa363c9940cf 05:26:08 -!- amalloy_ is now known as amalloy 05:37:15 -!- amalloy is now known as amalloy_ 05:41:08 -!- amalloy_ is now known as amalloy 05:41:58 -!- amalloy is now known as amalloy_ 08:52:30 Is there any sort of generic tree template already in use in crawl? 08:54:58 aidanh: are map or set not sufficient for what you need? 08:55:28 I don't recall any tree container or anything like that in use; you might want to ask |amethyst though 08:58:18 Hm... not really suitable, as the hierarchical structure is important 09:07:27 <|amethyst> there is not, but depending on what you need template struct tree { T value; vector> children; } is short :) 09:08:53 <|amethyst> hm, I guess that doesn't actually work, you'd need a unique_ptr<> in there 09:11:22 <|amethyst> hm, or actually, it does 09:23:48 That could work 09:24:06 I'd probably need pointers to the parent as well 09:29:21 <|amethyst> that becomes more difficult, since you'd need an assignment operator and copy constructor to adjust all the childrens' pointers 09:29:27 <|amethyst> s/s'/'s/ 09:30:48 <|amethyst> I'm assuming this is a tree of UI components? In that case your internal nodes are going to be different from your leaves anyway 09:31:36 <|amethyst> so maybe it makes sense for the tree to be less generic, and possibly implicit in your components 09:33:05 <|amethyst> I guess components are probably something you want to prohibit copying of anyway 09:33:49 <|amethyst> s/probably/possibly/ 09:37:39 Tree of layout boxes, but same thing really, yeah 09:38:41 <|amethyst> I think just a tree of layout boxes, where layout boxes contain components, might not work that well 09:39:02 <|amethyst> because what if a layout box contains two components and has three children in the tree 09:39:12 <|amethyst> what is the relative order of those five things? 09:40:00 A UI node would be one-to-one with a layout box; the separation is simply to keep the layout model isolated 09:40:07 <|amethyst> oh, I see 09:40:23 But it does add complications; do you store the tree in the layout struct? in the ui node struct? 09:41:43 <|amethyst> so does that mean that (for example) a text input box can contain several radio buttons? 09:43:23 My current mental model has the layout box as a private member: so only container classes would expose an insert_child() method 09:45:47 <|amethyst> so the layout tree would just reflect the containment structure that's already present in the UI elements themselves? 09:46:50 Mostly 09:47:42 One required widget is a scrollbox, for things that are too large for the screen; it'd need a separate layout tree 09:48:34 <|amethyst> hm 09:48:41 It might be simpler to just keep box layout in the UINode base class 09:49:03 Because widgets like the scrollbox will need to override packing anyway 13:04:54 Unstable branch on crawl.akrasiac.org updated to: 0.21-a0-404-g291f19a (34) 16:08:37 Erymatos (L10 MiBe) ERROR in 'tileweb.cc' at line 207: Socket write error: Resource temporarily unavailable (D:10) 16:39:08 -!- amalloy_ is now known as amalloy 16:59:07 EvilAshe (L9 TeAE) ERROR in 'tileweb.cc' at line 207: Socket write error: Resource temporarily unavailable (D:8) 17:09:57 hm. cue having a spot of bother? 17:10:33 Webtiles server stopped. 17:10:49 Webtiles server started. 17:11:12 hmm 17:11:37 anyone on that can help me troubleshoot this error i was having that geekosaur pointed at yesterday 17:16:42 Webtiles server stopped. 17:26:16 Webtiles server started. 17:30:45 Webtiles server stopped. 17:30:54 Webtiles server started. 17:34:26 Webtiles server stopped. 17:34:39 Webtiles server started. 17:41:34 Could someone explain the logic in this commit? 17:41:35 http://s-z.org/neil/git/?p=crawl.git;a=commit;h=4939d66a1aa2bdcdb8e83ad42a9e975801bebc0e 17:42:20 The only thing this commit did was to introduce new bug: 17:42:36 https://crawl.develz.org/mantis/view.php?id=11241 17:46:13 !bug 9309 17:46:13 https://crawl.develz.org/mantis/view.php?id=9309 17:46:22 I think it's fixing that weird messaging order 17:46:42 yeh 17:46:53 since that put-on is in take_item() 17:47:17 which may mean the correct answer is to push the message down into take_item() 17:48:16 since take_item() knows exactly what it is taking butt its caller doesn't 17:48:49 no 17:48:52 take_item doesn't know it 17:49:10 The quantity that it takes it randomizes inside itself. 17:49:42 oh, sorry, didn't read you messages carefully 17:50:03 There is another issue with puoshing message inside it. 17:50:30 This function was designed purely for Maurice. But then somehow it ended up being used by Beogh. 17:50:44 yes, I noticed that when looking for the source 17:51:26 but that just means adding a bool parameter for messaging 17:51:59 or a source, which might allow more flexibility later 17:52:47 Sorry, what is the second message that was being misplaced before the commit? 17:52:52 -!- hessu_ is now known as hessuhobo 17:53:25 it's the same message but it was occurring after Maurice decided ti wear the stolen item 17:53:38 ah, I see 17:55:27 yeah, there's an example in that bug report 17:56:43 damn, only now I saw there was another link on our conversation 17:57:54 nano (L26 SpAs) ASSERT(load_mode != LOAD_VISITOR) in 'files.cc' at line 1352 failed. (D:255) 17:58:01 and in fact, since it was the same message, the bug you pointed out also existed before 17:58:21 since it couldn't know how many had been stolen unless it saved the original quantity 17:58:28 *had saved 18:01:03 I think it could. new_item stored the amount stolen 18:05:55 nano (L26 SpAs) ERROR in 'tileweb.cc' at line 207: Socket write error: Resource temporarily unavailable (Depths:5) 18:07:42 Having a really bad lag and freezes on CUE 18:08:45 yes, it appears to be acting up 18:08:50 TZer0, around? 18:09:05 (sadly the answer is probably 'no') 18:09:09 I sent him a tell 18:55:58 has there ever been any interest or work done on a FooTV style replayer for webtiles? Would it even be possible? 18:58:42 I am definitely interested. 18:58:44 that's a toughie 18:59:12 I think there's glyphs that would be ambiguous on which tiles to use 18:59:14 it's difficult because the ttyrec doesn; have enough information to reproduce tiles 18:59:26 yea that 19:00:08 Well, replayer simply ignoring would still be great. 19:00:15 in particular it can;t show equipment tiles, nor can it reproduce the exact tile used in a webtiles game when the game picks one of several and uses it consistently for a given monster 19:01:06 'equipment tiles' meaning it can;t show that a monster has e.g. a helmet or plate mail 19:01:47 i figured it would be tricky - so for spectating web tiles, is it just replaying the same socket information to spectators without the ability to input commands? 19:02:13 yes 19:02:51 if thats the case, then options are - see if we can salvage some data from the ttyrec, or implement a new system for ongoing games where we save the socket data 19:03:09 option 2 would mean it only works for new games 19:03:12 ttyrecs already are pretty big, and saving the JSON would be significantly bigger 19:03:24 johnstein or gammafunk: https://pastebin.com/FVwAWjFm i don't really know what to do 19:03:30 ^status 19:03:30 52 Crawlers. CBRO disk usage=97% (135GB) | RAM usage=50% (4GB)| uptime/CPU= 19:03:29 up 237 days, 23:41, 0 users, load average: 0.82, 0.72, 0.72 (4 Cores) http://status.berotato.org 19:03:56 almost all the disk space creep in that chart are ttyrecs 19:04:54 ZiBuDo, did you try disabling systemd-tmpfiles? 19:05:07 how much is footv used... if a webtiles based system works well would it potentially replace the need for ttyrecs? 19:05:10 i tried something like that but i wasnt even sure if that worked tbh 19:05:16 or are the ttys used for other things as well? 19:05:22 how do i fully disable it? 19:05:26 it's not the long term solution I would hope for but it would put you on par with the other servers whch dont do /tmp isolation 19:05:52 Unstable branch on underhound.eu updated to: 0.21-a0-404-g291f19a (34) 19:06:30 yea i understand the implications but i don't really understand how to get to that option 19:07:17 blah, all I am seeing now is hoe to disable the tmp cleaner, I want to disable temp file management 19:07:58 I pointed to one thing yesterday, to stop it from redirecting /tmp to a private temp directory --- you almost certainly need that so that the webtiles server and the crawl process see the same /tmp instead of different ones 19:08:07 yea that's what i was seeing along those lines or why it existed 19:08:17 yea i can loook for that again 19:09:01 https://stackoverflow.com/questions/30444914/php-has-its-own-tmp-in-tmp-systemd-private-nabcde-tmp-when-accessed-through-ng was this 19:09:45 yes 19:10:28 and I just got reminded that there may be selinux config as well that would have to be modified (or just to get things going, disabled) 19:11:10 especially if you are using fedora 19:12:44 yea seems like something in selinux 19:12:48 using ubuntu for this server 19:14:14 ubuntu doesn;t do selinux, it uses apparmor instead 19:14:20 should be less problematic 19:14:22 mrwooster: we'd still want to be able to see replays in console, but that wouldn't be a problem since any tiles replay system would probably require much more space than ttyrecs anyway 19:19:03 mrwooster: there's definitely interest in a tiles replay system, but only if it doesn't require a ton of space - I don't think it is hopeless to come up with a system that doesn't require a ton of space (maybe without replicating all the tiles details), but it is probably hard 19:19:15 elliptic - true 19:19:42 should be quite easy to test how large the file would be by just recording all the socket data for a game 19:20:22 not sure I'd even do that. ttyrec format might have an annotation mechanism already, just add the extra tile information to that. would make ttyrecs larger, but JSON is inherently a lot more verbose than a ttyrec 19:20:41 looks like most of the socket communication is binary anyway 19:21:09 as far as I can tell looking at wireshark, most of the comms are binary 19:21:39 unless its JSON encoded in some odd way 19:24:35 hm. might be compressed 19:25:34 looking at the code now 19:28:20 seeing how large the compressed socket data is over the course of a game would be interesting 19:29:13 -!- amalloy is now known as amalloy_ 19:31:00 my guess is far too large and that you'll have to do something at least somewhat clever to shrink things to a reasonable size, but I don't really know 19:34:04 geekosaur you were correct - its compressing the socket data - odd that chrome doesnt recognise it. So currently websocket data is compressed JSON 19:44:12 whats the average size of a ttyrec? 19:44:48 my (very) back of the napkin calculations are that a compressed webtiles recording should be ~10mb for a full game 19:45:04 that's hard to say. you get one ttyrec file per session (game loaded from a server) so you often have multiple ttyrecs for a game 19:45:05 -!- amalloy_ is now known as amalloy 19:46:01 !lg * -1 -ttyrec 19:46:04 7962458. DavyJones, XL12 DrTm, T:11310: Can't find ttyrec 19:46:24 average ttyrec size confirmed to be zero 19:47:23 !lg * x=avg(xl) 19:47:25 7962458 games for *: avg(xl)=5.03 19:56:43 yes, mrwooster 19:57:10 Webtiles server stopped. 20:01:20 Webtiles server started. 20:25:44 mrwooster: keen on tiles replay. I think the korean crawl community has built a hacky one already? 20:25:54 basically doing what you suggested. it replays the socket communication data and has the build-specific tiles pngs available 20:26:24 ye, looking at the code, recording the socket data and then hacking the webtiles client shouldnt be too hard 20:26:29 code will be messy tho 20:26:32 for a real solution, if you can just deduplicate the tile images somehow (at least so two games with the same build use the same image file 20:26:44 any links to the korean code base? 20:26:50 not sure, try gammafunk 20:27:10 in a perfect world, individual tiles would be deduplicated across every user and multiple builds 20:27:59 at the moment the tiles are not consistent across builds? 20:30:20 not guaranteed consistent, at least 20:39:31 mrwooster: whenever a tile is modified,a dded or removed, the tilesheet changes 20:40:03 mrwooster: so across most builds, the tilesheet doesn't change. But when it does change, the change might change the index order of every other tile (eg if you delete tile 0) 20:40:37 and your replay would make abyss look normal 20:41:11 ye, that would mess up the replays - e.g. if a replay from 0.19 was being watched on a 0.20 webtiles 20:56:14 yup 20:56:32 but trunk builds, even between 0.20.0 and 0.20.1 could be changes 20:58:12 -!- Dracunos_ is now known as Dracunos 20:58:46 orr even between commits 20:58:58 you get no guarantee in trunk 20:59:06 we already record the exact version hash at every milestone, making sure that ttyrecs know that wouldn't be too hard 21:05:11 well the good news is I was able to hack together a simple in browser playback just by recording the socket data and replaying it 21:05:31 so 'in theory' it works - I will try to put together a more robust proof of concept 21:21:24 yeah, I'm more worried about the space requirements 21:22:07 e.g. if it's 10x larger than a ttyrec, my understanding is that that isn't really practical 21:24:26 even 2x could be problematic given how often cbro runs out of space, and that cao has run out of space a couple of times as well 21:25:53 yeah 21:26:57 though I think ttyrecs aren't the only thing that contributes to that? but they are one of the major things for sure 21:27:08 ttyrecs are the majority 21:27:42 old binaries in ./source and stripping old binaries in the chroot are after that 21:28:10 for cbro I just can't upgrade the server anymore 21:36:16 i think it would be good to have a replay system for tiles and that there are ways to get round space issues if it becomes a problem 21:36:36 i dont think they will be much larger than ttyrecs 21:36:46 it's cheap when you;re not the one paying for the storage, yes 21:37:12 and could delete them after X amount of time, or even leave it up to the player to download and host their own recordings if they think its interesting 21:38:07 Webtiles server stopped. 21:38:08 Webtiles server started. 21:39:37 I mean, one of the nicest things about ttyrecs is that they exist for every game ever played (on servers that didn't decide to stop saving them because of space issues) 21:41:21 it's true that there are still nice things that could be done with more expensive recordings, but it wouldn't really be comparable 21:41:41 elliptic 100% agree - and I dont think this should replace ttyrecs - FooTV is not accessible to a large amount of the player base - especially new players 21:42:09 it is for some new players! (okay, very few nowadays :P) 21:42:56 anyway I don't mean to try to discourage you from working on this, just pointing out that the smaller you can make the recordings, the nicer it is for everyone 21:42:57 I really like the idea e.g. of being able to have links on the wiki to specific parts of demos - e.g. how to be good at avoiding monsters early on etc 21:43:30 I mean, people can still record themselves playing tiles and post it on youtube 21:43:51 there's literally nothing preventing people from making demos like that as is (and maybe they even exist by now?) 21:44:13 also - I realized that the JSON is only needed to communicate with webtiles - if the recordings are stored server side, they can be in a more compact format - and converted back into JSON by a replay app 21:44:45 ye agreed re YouTube - but that doesnt allow you to go back over a game you have already played 21:44:54 anyone know why i would get a /dev/null permission error in web tiles ins the ws_handler.py file 21:45:02 <|amethyst> JSON is used both for crawl <-> webtiles and webtiles <-> client 21:45:13 <|amethyst> ZiBuDo: did you mount /chroot/dev ? 21:45:19 hmm 21:45:26 checking again 21:45:30 cuz i went through those steps 21:45:42 elliptic - im going to put a few hours into it and work out what the file size impact would be and how much time it would take to dev - if it takes up too much space then will can it 21:46:32 |amethyst: 21:46:33 proc /home/crawl/server/proc proc defaults 0 0 21:46:33 devpts /home/crawl/server/dev/pts devpts defaults 21:46:44 those are right or should i do a diff? 21:49:26 Coud someone review, please? 21:49:26 https://crawl.develz.org/mantis/view.php?id=11241 21:49:55 <|amethyst> ZiBuDo: those are right, but you probably don't have anything (or at least not null) in $chroot/dev/ itself 21:50:55 <|amethyst> ZiBuDo: probably a bind mount for /dev makes the most sense, but you can instead create the device nodes you need by hand with mknod 21:51:02 i see stuff in dev and null 21:51:04 in the chroot 21:51:16 <|amethyst> ZiBuDo: what are the permissions on $chroot/dev/null ? 21:51:22 <|amethyst> ZiBuDo: they should be 666 21:51:35 <|amethyst> ZiBuDo: in CAO the contents of /chroot/dev are: 21:51:38 <|amethyst> crw-rw-rw- 1 root root 1, 3 May 1 2010 null 21:51:38 <|amethyst> crw-rw-rw- 1 root root 5, 2 Oct 26 18:50 ptmx 21:51:38 <|amethyst> drwxr-xr-x 2 root root 0 Sep 6 15:01 pts 21:51:38 <|amethyst> crw-r--r-- 1 root root 1, 9 Apr 2 2011 urandom 21:51:54 alright lemme mimic those perms 21:54:40 |amethyst: those perms worked 21:55:27 |amethyst: now getting: https://pastebin.com/3kxmsAbJ 21:57:00 <|amethyst> ZiBuDo: are you running webtiles server as non-root? 21:57:08 <|amethyst> ZiBuDo: if so, you can't use ports < 1024 21:57:22 i know that but i don't understand why it wouldnt be root 21:57:36 since i am running it with sudo webtiles.init script thing 21:58:11 <|amethyst> hm 21:58:28 is there some explicity way to check or should i just grep the pid 22:02:43 <|amethyst> ps won't tell the truth, since the webserver does setuid after it gets its listening socket 22:03:39 <|amethyst> hm 22:03:50 <|amethyst> but 22:03:59 <|amethyst> this error would be happening before that point 22:04:10 <|amethyst> so if you managed to catch it in ps, you should see user root 22:04:22 <|amethyst> but you'd have to get the timing down 22:04:52 <|amethyst> oh, wait... 22:05:09 <|amethyst> this isn't the internet socket 22:07:15 <|amethyst> ZiBuDo: Ignore what I was saying about root, and make sure the socket_path for your game (in config.py) is writable by the user it is changing to 22:07:31 ah kk 22:07:45 this is the user in the chroot? 22:08:09 <|amethyst> the user specified by uid = in config.py 22:08:21 yea but that uid is defined by the chroot configuration right? 22:08:47 <|amethyst> well, if it's not the same as the owner of a bunch of other directories, thing will break, yes 22:09:22 <|amethyst> but the thing that actually controls what user the webtiles server runs as (assuming you start it as root) is the uid = entry in config.py 22:09:39 <|amethyst> probably that's the same as in you dgl config, except I think config.py requires a number, not a name 22:09:44 <|amethyst> so on CAO: 22:10:06 <|amethyst> config.py says socket_path = "/crawl-master/webserver/sockets" for all the games, and uid = 5 22:10:31 <|amethyst> and /chroot/crawl-master/webserver/sockets is owned by games:games, where 'games has 22:10:37 <|amethyst> where 'games' has UID 5 22:11:23 <|amethyst> the numbers are what actually matters, but to be on the safe side I'd make sure there's an entry for that user in $chroot/etc/passwd with the same numeric ID as in the host /etc/passwd 22:11:28 <|amethyst> likewise for etc/group 22:12:06 Erymatos (L2 MiBe) (D:1) 22:12:07 <|amethyst> Yermak: hm, so this does look like it will change the behaviour of the wizmode give command 22:12:14 <|amethyst> Yermak: otoh, not necessarily in a bad way 22:12:33 Yes, it was a side-effect 22:12:34 <|amethyst> Yermak: if would also change beogh's give ability, if you could give anything that stacked, which you can't 22:12:38 a good side-effect 22:12:39 <|amethyst> s/if w/it w/ 22:12:48 hmmm, could you? 22:12:56 I don't believe it was possible 22:13:09 yea the crawl user has uid and guid of 1001 on both chroot and non chroot and owns the same dir as urs |amethyst 22:13:28 config py and the conf both have crawl and the ids as that too 22:14:01 <|amethyst> Yermak: hm, maybe it makes more sense to pick the number in steal_item_from_player 22:14:13 <|amethyst> Yermak: and pass that to take_item 22:14:45 <|amethyst> Yermak: the default for that parameter could be something like -1 or 0 signalling "everything", the same way is_stolen = false does in your case 22:14:49 I guess it does 22:15:03 But again it's an extra parameter 22:15:07 <|amethyst> so this would replace your new parameter 22:15:11 We still need bool for the message 22:15:35 ahh, I see 22:15:35 <|amethyst> not necessarily 22:15:38 <|amethyst> hm 22:15:50 <|amethyst> can anything else in take_item print messages? 22:15:55 <|amethyst> like dec_inv_item_quantity 22:16:08 yes, there are function that equips items 22:16:11 is* 22:16:17 <|amethyst> ah 22:16:19 <|amethyst> crap 22:17:08 <|amethyst> and there's not an easy way to get the correct message from your inventory slot, even if you do know what the number will be 22:17:53 |amethyst: getting new error after fixing socket: 22:17:53 2017-10-27 02:17:35,174 INFO: #1 P3 Crawl version: 0.21-a0-404-g291f19a919. 22:17:53 2017-10-27 02:17:35,284 INFO: #1 P3 ERR: /crawl-master/crawl-git-291f19a919/data/dat/des/builder/shops.des:483: unfinished string near '" ; 22:17:53 2017-10-27 02:17:35,284 INFO: #1 P3 ERR: ' 22:17:53 2017-10-27 02:17:35,284 INFO: #1 P3 ERR: Hit Enter to continue... 22:18:18 <|amethyst> %git 291f19a919 22:18:18 07amalloy02 * 0.21-a0-404-g291f19a: Add Yermak to CREDITS 10(27 hours ago, 1 file, 1+ 0-) 13https://github.com/crawl/crawl/commit/291f19a91913 22:18:28 Why isn't there an easy way? 22:18:37 |amethyst this error occurs for stable and git branches, any idea? 22:19:03 oh, I see what you mean 22:19:07 <|amethyst> ZiBuDo: what is that line? 22:19:28 1 sec 22:20:03 <|amethyst> Yermak: you'd have to either figure out yourself whether you need the number and where to put it; or temporarily change the inventory item's quantity you.inv[steal_what].name() gets the right number automatically 22:20:24 <|amethyst> Yermak: so I guess this is a reasonable place to pick the number 22:20:49 yes, I was going to propose the second option, it's a bit hackuy, but I guess it's all right? 22:20:49 hacky* 22:20:52 <|amethyst> Yermak: yeah, I think what you have now is more reasonable 22:20:58 ENDMAP 22:20:58 ##################################################### 22:20:58 # Contains only four items: an evocable item, a staff, a randbook, and a wand, 22:20:59 <|amethyst> ZiBuDo: here it's just a comment 22:21:05 <|amethyst> hm 22:21:08 yes lol 22:21:17 also got 22:21:22 Traceback (most recent call last): 22:21:22 File "/home/crawl/server/crawl-master/webserver/ws_handler.py", line 549, in on_message 22:21:22 File "/home/crawl/server/crawl-master/webserver/process_handler.py", line 640, in handle_input 22:21:22 File "/home/crawl/server/crawl-master/webserver/connection.py", line 90, in send_message 22:21:22 error: [Errno 2] No such file or directory 22:21:26 so might be related 22:21:37 <|amethyst> not related 22:21:41 xD 22:21:42 |amethyst: nothing wrong with my commit, i hope? 22:21:48 <|amethyst> amalloy: don't think so, no 22:22:08 <|amethyst> amalloy: I was just making sure that git hash wasn't some ancient version 22:23:05 actually, wait, I think I should move the messaging higher, because otherwise Maurice will drop something and only then steal. 22:23:36 <|amethyst> Yermak: I don't think that's a problem? 22:23:50 <|amethyst> Yermak: just like the player, he has to free up the slot before he picks up your item :) 22:24:04 well, ok, sounds good! 22:25:33 <|amethyst> Yermak: hm, what is the exact message now? 22:26:03 <|amethyst> Yermak: "Maurice steals your 12 stones?" 22:26:13 <|amethyst> err, s/?"/."?" 22:26:43 s/."/!"?" 22:27:56 yes, maybe it's better to have something like "Maurice steals your 7 out of 12 stones!" 22:28:31 <|amethyst> Yermak: "12 of your stones" 22:28:45 ok 22:28:49 <|amethyst> Yermak: but then you're back to the problems with composing your own message and determining whether you need the number or not 22:29:04 <|amethyst> Yermak: so "your 12 stones" is fine for now, if a bit awkward 22:30:07 So, should quantity parameter be added in the case of future needs? 22:30:26 <|amethyst> no, it can be added when and if it is needed 22:30:34 unironically remove maurice 22:31:23 <|amethyst> Yermak: if you *were* going to try to make the message better, like '12 of your 100 stones', I think that should be handled in item_def::name (or more likely one of the functions it calls) with a 'quantity' parameter 22:31:54 <|amethyst> Yermak: but, again, don't worry about that unless you really want to delve into our English code :) 22:32:22 I'm going to 22:32:38 So I'll upload a new patch 22:32:51 Any other remarks? 22:33:12 <|amethyst> Yermak: or I could apply this one and you can make a patch on top of it :) 22:33:29 Hmm, I'd prefer a single patch. 22:34:26 yea |amethysts seems like crawl games just bug out and crash 22:37:28 <|amethyst> ZiBuDo: hm, what are the permissions on your socket directory? 22:38:01 775 22:38:03 <|amethyst> ZiBuDo: (that won't help explain the shops.des problem, but maybe the "No such file or directory" 22:38:06 <|amethyst> ) 22:38:14 i think the no file 22:38:24 occurs when something tries 22:38:26 to access a game 22:38:28 that just crashed 22:38:30 <|amethyst> hm 22:38:38 and since it is crashing w/e isnt being made properly 22:38:39 <|amethyst> possibly, but that's weird 22:38:57 <|amethyst> I would have expected EPIPE or ECONNRESET or something 22:39:09 <|amethyst> but I guess if crawl deletes the socket on its way down, that would do it 22:39:21 <|amethyst> so yeah 22:39:25 yea it happens when it crashes 22:39:29 but since it waits for user to hit enter 22:39:34 it still quasi exists or w/e 22:39:46 tried spectating my crashed game 22:39:53 gives me a replication of the error 22:40:01 but i am not sure how to fix the start up crash 22:40:35 <|amethyst> hm, what does md5sum $chroot/crawl-master/crawl-git-291f19a919/data/dat/des/builder/shops.des say? 22:40:45 <|amethyst> just to make sure that file didn't get corrupted somehow 22:40:51 <|amethyst> I get 02f2c4f88e73eb5fc54fe9450857515d dat/des/builder/shops.des 22:41:59 02f2c4f88e73eb5fc54fe9450857515d 22:42:04 yea the problem might be 22:42:17 <|amethyst> :q 22:42:19 <|amethyst> doh 22:42:34 ummm 22:42:37 <|amethyst> huh, where does "unfinished string near" come from anyway? 22:42:40 how do i regenerate these files? 22:42:43 i don't even know 22:42:46 i tried finding it 22:42:51 there could be some spots 22:42:57 but i am not familiar with the file format 22:43:18 <|amethyst> ohh 22:43:56 <|amethyst> the error comes directly from lua, which means it ought to be about the cached file 22:44:09 oh 22:44:13 how 2 delete then xD 22:44:18 <|amethyst> hm 22:44:23 <|amethyst> or 22:44:35 <|amethyst> let me check something 22:44:38 kk 22:44:51 <|amethyst> will take a minute for me to build crawl :) 22:44:56 is k 22:45:01 i think this might be the last error 22:45:09 some new errors since the last building of the server 22:45:15 but now i know more xD 22:46:14 <|amethyst> ZiBuDo: what version of flex do you have in your build environment? 22:46:27 flex version 2.5.4 22:46:41 <|amethyst> hm 22:46:44 <|amethyst> https://crawl.develz.org/mantis/view.php?id=7646 22:46:58 <|amethyst> might be related, though that's FreeBSD 22:46:58 <|amethyst> but it is flex 2.5.4 22:47:45 what is ur flex then? 22:48:36 <|amethyst> 2.5.35 on CAO 22:48:53 so could i downgrade and then rebuild? 22:48:53 <|amethyst> 2.5.35 is over 9 years old :) 22:48:59 <|amethyst> that's an upgrade 22:49:01 <|amethyst> and yes 22:49:12 upgrade? 22:49:12 <|amethyst> 2.5.4 is at least 16 years old 22:49:18 why did they go backwards 22:49:19 what 22:49:21 <|amethyst> 35 > 4, it's not math 22:49:26 oh 22:49:28 im retarded 22:49:46 i read it as 2.5.3.5 or some stupid thing in my head 22:49:48 and was like 22:49:51 what is this versioning 22:50:05 alright let me try that 22:50:36 <|amethyst> I have seen software that does that (treats the version as a decimal number), but usually not with two dots 22:50:44 <|amethyst> perl used to work that way 22:50:44 yea 22:50:53 idk i just saw the 3 and was like 22:50:53 <|amethyst> hence 5.004 22:50:56 well 3 is less than 4 22:51:01 and just stopped working 22:51:16 aight went to 2.6.1 22:51:18 will try 22:51:38 i just run sudo /home/crawl-dev/dgamelaunch-config/bin/dgl update-trunk 22:51:38 to rebuild right 22:51:53 i don't have to do anything else to fix this error if the flex works? 22:52:12 <|amethyst> hm 22:52:21 <|amethyst> I guess that doesn't rebuild existing versions? 22:52:25 yea 22:52:28 <|amethyst> hm 22:52:31 just kinda realized that 22:52:34 when i rand the command 22:52:37 ran * 22:52:49 <|amethyst> I'm not sure what the best solution is in that case 22:53:37 <|amethyst> ah 22:53:57 <|amethyst> you could maybe run sqlite3 on the versions db and drop those rows 22:54:08 <|amethyst> the ones for the versions that need to be rebuilt 22:54:19 <|amethyst> assuming you know some sql :) 22:55:07 <|amethyst> (the file is $chroot/crawl-versions.db3 by default, and the table is called 'versions' 22:55:24 <|amethyst> you can select * from versions; to see what's there 22:55:36 <|amethyst> then delete from versions where hash = 'blahblah'; 22:56:13 yea 22:56:15 i can do that 22:57:26 <|amethyst> or I guess 22:57:26 <|amethyst> since this affects all your builds 22:57:27 <|amethyst> just delete from versions; and rebuild them all 22:58:07 how would i rebuild all of them 22:58:12 is that just git, and my stables 22:58:16 or every git version? 22:58:25 <|amethyst> oh right 22:58:35 <|amethyst> you still have some old version build on old cjr? 22:58:41 <|amethyst> s/sion/sions/ 22:58:46 ? 22:58:52 i transfered the files 22:58:54 i assume 22:58:56 the ones that are failing 22:58:58 <|amethyst> oh, okay 22:59:02 are probably ones i rebuilt 22:59:06 which would be current git 22:59:07 <|amethyst> the ones that are failing are the new builds yeah 22:59:09 and current stables 22:59:19 so i should remove those? 22:59:58 <|amethyst> yeah, any that have been rebuilt since you moved machines 23:00:21 <|amethyst> hm, does that include any stables? 23:00:31 <|amethyst> %git stone_soup-0.20 23:00:31 07gammafunk02 * 0.20.1-1-g8b1a95d: Fix some typos in the changelog 10(4 months ago, 1 file, 2+ 2-) 13https://github.com/crawl/crawl/commit/8b1a95d66d7d 23:01:16 <|amethyst> there haven't been new commits to stable for a long time, so I'm not sure if it would have rebuilt those 23:01:42 <|amethyst> if the crawl-master/crawl-0.*/ directories and crawl_versions.db3 were transferred over 23:01:50 yup 23:02:06 i think i would since i rebuilt them, so let's say i didnt move stable dirs 23:02:16 well here is a question 23:02:19 if i delete all versions 23:02:24 <|amethyst> don't delete all 23:02:39 <|amethyst> I only said that because I didn't realise you had versions transferred over 23:02:52 nono like i delete all versions from db and all dirs 23:02:58 i would lose saves 23:03:13 right? --- if some1 loses a save how do i fix that or is it better to avoid this 23:04:44 <|amethyst> you could force transfer the saves by moving the .cs files to the crawl-latests/saves directory 23:04:52 I just noticed that quantity is of short type. Does this mean we can't have more than 65535 stones? 23:05:26 so move all .cs files to the crawl/lastest/saves? 23:05:27 <|amethyst> since CJR isn't old enough to have any trunk saves with an old major version, they all can be transferred 23:05:52 any easy way to do this? 23:05:58 or should i write a script 23:06:59 !source item_def 23:06:59 1/2. https://github.com/crawl/crawl/blob/master/crawl-ref/source/externs.h#L600 23:07:18 Yermak: probably 32k 23:07:23 since it's signed 23:07:25 yes 23:07:53 but i wouldn't be surprised to find there's some artificial limit before that 23:07:53 I know many players just carry as many stones as they can. Hasn't anyone hit the mark yet? 23:08:14 <|amethyst> ??objstat[2 23:08:15 objstat[2/2]: Spreadsheets for all releases: https://drive.google.com/folderview?id=0B7VXhHzhWWb7S282VWhLVWRXbG8&usp=sharing ; See the README for details: https://docs.google.com/document/d/1D5mFqVi8ghz_nzvVmDUc3unx8VanVBWfgvZ8xCHaiJo/edit?usp=sharing 23:08:19 via multiple zig and pan scumming? 23:10:00 Yermak: it creates another stack 23:10:07 huh 23:10:10 g - 30000 stones h - 30000 stones 23:10:20 <|amethyst> probably not many people have managed that, if anyone 23:10:47 &%stone q:40000 creates no items 23:11:02 Nice to know it's envisaged. 23:11:20 <|amethyst> it would require a lot of scumming: a normal game without abyss pan and zig would have at most 2600 stones 23:11:46 piginabag's final achievement 23:12:21 Yermak: you know about wizmode, right? it's a good way to try out things where you're not sure what will happen 23:12:45 yep, I know 23:13:14 <|amethyst> ZiBuDo: probably you could in crawl-master do mv crawl-git-*/saves/*.cs crawl-latest/saves/ and then the same thing for saves/sprint/ 23:13:35 |amethyst: yea same thing i was about to do 23:13:37 <|amethyst> ZiBuDo: but it's a pain to undo that if there is a problem 23:13:45 nah i don't make problems 23:13:48 <|amethyst> heh 23:15:08 Heh, in tiles visual inventory any stack with more than 9998 items is displayed as 9999. 23:15:33 Normal inventory still shows the correct amount though. 23:15:40 <|amethyst> Yermak: hm, clearly that should be 9999+ instead 23:15:51 <|amethyst> or rather 999+ 23:16:06 <|amethyst> so it still fits 23:16:19 <|amethyst> 9997, 9998, 9999, 999+ 23:16:36 <|amethyst> or maybe start using random other sprites, like when you get > 9 lives in Super Mario Bros 23:16:44 didnt that get discussed when the change was made? (shortly after weight went away iirc) 23:17:03 wizamalloy (L25 FeWz) ERROR in 'tags.cc' at line 4302: Invalid item: stone (Tomb:1) 23:17:14 <|amethyst> %git c8e8cdb 23:17:14 07ontoclasm02 * 0.16-a0-653-gc8e8cdb: Change the local tiles number font (again) 10(3 years, 1 month ago, 25 files, 11+ 24-) 13https://github.com/crawl/crawl/commit/c8e8cdb14d7b 23:17:58 <|amethyst> %git 6a4e72fbd 23:17:58 07|amethyst02 * 0.15-a0-2267-g6a4e72f: Show quantities up to 10k in inventory panel (#8821) 10(3 years, 3 months ago, 12 files, 20+ 20-) 13https://github.com/crawl/crawl/commit/6a4e72fbd0df 23:18:56 <|amethyst> yeah, it was 999 before my change in 0.15 23:19:35 <|amethyst> I don't remember if we discussed a + sign or not, but I wouldn't be surprised 23:39:56 I am a bit confused. git question: I made a commit in my local git repo. Now I want to expand this commit and make the patch for all the changes. What is the optimal sequence of actions here? 23:41:01 <|amethyst> make a new commit, git rebase -i and change the keyword on the second commit to 's' or 'f' 23:41:07 <|amethyst> then you'll have a single commit 23:41:12 <|amethyst> or 23:41:31 |amethyst when i try to update the versions with the scripts it's already saying they are installed based on git references from crawl-dev/dgamelaunch-config 23:41:45 what would be the way to reset the submodules trackers for the scripts 23:41:48 <|amethyst> just make a new commit, and create a patch series with git format-patch HEAD^^..HEAD 23:42:21 <|amethyst> ZiBuDo: "based on git references"? 23:42:53 ;;;; Updating git submodules in /home/crawl-dev/dgamelaunch-config/crawl-build/crawl-git-repository 23:42:54 Submodule path 'crawl-ref/source/contrib/sqlite': checked out 'c8da44de4f27147a9d756863a6f3c89f536af93c' 23:42:54 Nothing new to install at the moment: you asked for 0.20.1-1-g8b1a95d66d and it's already installed, aborting. 23:43:11 ;;;; Updating git repository /home/crawl-dev/dgamelaunch-config/crawl-build/crawl-git-repository 23:43:11 Your branch is up-to-date with 'origin/stone_soup-0.19'. 23:43:11 M crawl-ref/source/contrib/sqlite 23:43:11 Switched to branch 'stone_soup-0.20' 23:43:13 Your branch is up-to-date with 'origin/stone_soup-0.20'. 23:43:15 Already up-to-date. 23:43:17 oops 23:43:19 well 23:43:22 it does a pull or w/e 23:43:26 and sees it is up to date 23:43:31 so it doesn't remake 23:43:52 <|amethyst> oh, with stable 23:43:59 <|amethyst> it doesn't use the versions db 23:44:10 yea 23:44:30 <|amethyst> looks like it runs the binary with -version 23:44:41 <|amethyst> so just remove $chroot/usr/games/crawl-0.20 or wherever it is 23:45:25 ah 23:45:28 forgot about these 23:46:01 alright 23:46:05 <|amethyst> I think you don't have to do that with trunk, since there it uses the version db 23:46:11 makes sense 23:46:25 <|amethyst> you can look at dgamelaunch-config/crawl-build/update-crawl-*-build.sh for the gory details 23:46:43 <|amethyst> in particular the stuff around REVISION_OLD 23:47:35 Khazaran (L1 MuWz) (D:1)