00:31:25 Unstable branch on CRAWL.XTAHUA.COM updated to: 0.21-a0-110-g8e1637b (34) 00:46:57 johnstein: i don't know about msys2, but on linux/mac you want to increase the ccache size so that it's large enough to hold a whole build of crawl at once 00:53:58 yea. looks like on cbro it's 1GB but I just upped it to 2GB 00:54:47 and figured out the msys2 ccache location is /usr/lib/ccache/bin, which according to the internet and gammafunk, is kinda weird 00:55:25 feels like it's working now too. I can switch between two branches and rebuilding doesn't take an hour and looks like it's jumping past o files pretty fast 00:55:46 now I just need to figure out how to make msys2 64 bit load up my .bashrc file by default 00:58:09 with msys2 you use make to build, right? have you tried something like `nice make -j4`? on my macbook i use -j6 and compile times are pretty reasonable without getting in the way of my doing other stuff while it builds. an hour seems outrageous to me 00:58:53 on my desktop i use -j16 and compile in under a minute, which is a nice experience to have, but i wouldn't try that on a lower-power machine 00:59:12 is the -j the parallel stuff? 00:59:26 yes, -jN uses N processes at once 00:59:37 what's the 'nice' for? 00:59:51 `nice foo` runs foo at a lower process priority 00:59:56 ah ok 01:00:07 that would be handy. that was a rough hour yesterday for the first build 01:00:16 which included the contribs 01:00:22 so that your browser/editor/whatever still gets as much CPU as you need to niteractive work, and the spare all gets dumped into compiling 01:03:03 Killing Natasha removes her annotation from level 13https://crawl.develz.org/mantis/view.php?id=11135 by Lavandula 01:10:32 that is a very nice bug 01:18:14 old, known, hard to fix iirc 01:21:06 yeah i'd imagine the fastest way to deal with it would be a monstrous hack 01:24:52 a similar and similarly hard to fix bug (I don't recall if it's been hacked around or not) is: a player ghost can fall down a shaft out of sight of the player, potentially even while the player is offlevel? and the annotation on the original level remains forever 01:27:16 hello again! I have a couple more vault questions 01:27:30 putting "skeleton" in MONS seems to give a level-appropriate random skeleton mob, but is there a way to have it give only the humanoid skeletons? 01:29:01 and second question: if I want to change a tile to either all of one thing or all of another thing, how do I do that? 01:29:22 I tried...... TILE: F : dngn_tree_dead / dngn_dry_fountain / dngn_statue_wraith 01:29:27 but it didn't work 01:29:30 Wander: the answer to your second question is SHUFFLE; look up the syntax for that 01:30:03 will it work for those special tiles like dead trees and gravestones? 01:30:10 basically you make F always be dry_fountain, and T always be statue, and you shuffle between placing all Ts or all Fs 01:30:18 ohhhh 01:30:26 ty, I'll try that 01:31:04 for the first question, there's no way to say 'any humanoid', it's either 'skeleton' or ' skeleton' 01:31:22 aw, ok 01:31:42 I was hopeful since I saw references to humanoid skeletons in the source 01:32:33 but you could again use SHUFFLE or SUBST/NSUBST to pick between various listed skeletons 01:32:41 amalloy, nice definitely makes my computer run better, but does take longer. even with nice make -j16 01:32:53 there is a notion of skeleton shape in the backend, there's just no way to access it in vault syntax 01:33:08 gotcha, thanks for the answer :) 01:34:12 come to think of it, you should be able to do e.g. MONS: 2 = human skeleton / orc skeleton / ... 01:34:12 optionally with weights on some of them to make them more or less common 01:34:42 mhm 01:35:03 but you then lose the notion of appropriate for level or w/e, so you often end up with extra lua around it to make different lists for different branches or level ranges 01:35:59 that's mainly what I was worried about, but I'll be careful with it 01:36:08 lua is a little beyond me though, haha 01:36:11 make -j16 is significantly faster 01:45:00 johnstein: you mean nice make -j16 even runs slower than just a plain old make? 01:45:54 hm. I don't know about that 01:46:07 (i'm glad to hear you got it faster, just not sure i understand what problems you ran into along the way) 01:46:34 my understanding, I think, is. nice make should run the slowest. make -j16 should run fastest 01:46:39 yes 01:46:48 and there's probably a break even point in the middle that I could probably figure out.... 01:46:59 i mean, depends on number of cores you have. like, -j1024 would be pretty slow 01:47:03 it's neato though 01:47:12 I only have 2 cores. it's an ancient computer 01:47:19 oh, i'd just use like -j4 then 01:47:26 just turned 10 this year! 01:47:29 yea 01:47:33 maybe 6. 16 is probably just adding more overhead for no gain 01:48:29 a rule of thumb i've heard is, use a number of processes equal to your number of cores, plus one or two to make sure you don't run dry 01:53:12 sounds like a good rule of thumb. -j16 didn't seem to kill my performance much though 01:53:42 probably effectively topped out at much lower or something. diminishing returns and all that 01:57:21 My vault won't work and I don't know why, RIP 01:57:40 here it is, if anyone has a good eye for these things: https://pastebin.com/Eb6Uvmad 01:58:31 Windows builds of master branch on crawl.develz.org updated to: 0.21-a0-110-g8e1637b 02:01:45 what kinda error did you get? 02:02:10 crawl won't open 02:02:27 don't know how to find out any specific errors 02:05:58 actually, I think I read once that the console version will tell you the line the error occured on if it crashes? Is that true? (I only play on tiles) 02:06:38 I've noticed you get more debug info with console 02:06:40 yes playing on console does that 02:06:52 running crawl from command line, that is 02:07:19 hm, guess I'll go download the console version 02:07:24 this will be an adventure 02:08:17 are you on windows? 02:08:20 yes 02:08:38 then i doubt console will give you more feedback 02:08:59 i mean going into the crawl directory in a terminal, and starting the game with ./crawl 02:09:19 could be wrong though 02:09:24 :o I'll give it a try still 02:19:09 oh neat, it gave me an error! 02:19:30 witness the incredible power of !tiles 02:19:45 bad spec: 'floor_cobble' in 'floor_cobble' 02:20:04 that's strange though, I thought that line was fine 02:22:07 oh wait, is there no such thing as "floor_cobble" ? I'm going to feel really dumb if that's the case 02:25:14 ok, yeah 02:25:20 I'm actually just that stupid 02:25:28 sorry for bothering you all, lol 02:25:40 (it works now) 02:26:34 I didn't realize I had to do a full recompile for a console build 02:26:43 I probably should have known 02:28:38 ??levdes 02:28:38 I don't have a page labeled levdes in my learndb. 02:28:47 ??vim 02:28:47 I don't have a page labeled vim in my learndb. Did you mean: im, vit, vm. 02:28:56 ?/vim 02:28:57 Matching terms (2): nivim, vimpulse; entries (2): hi_all[1]: see {vimpulse} | praise[14]: Also, thank you, all, for making Crawl what it is. (Probably the most-fun game I've ever played.) 02:29:12 I'm trying to remember how I set up the level des syntax highlighting for vim 02:29:25 there are instructions in the syntax file 02:29:30 I find it counterintuitive that sometimes you have to start the floor/tile definitions with the dngn_ prefix, and most often you don't 02:30:06 ?/syntax 02:30:06 Matching entries (14): !fight[2] | !help:!dam[1] | !help:!firstgameafter[1] | !help:!isonline[1] | !help:!order[1] | des[1] | good_item[1] | learndb[5] | regex[1] | regex[2] | ssh[2] | star_item[1] | superb_item[1] | trivia[10] 02:30:20 ??des 02:30:20 des[1/2]: The syntax used to define a {vault}, see the level docs: https://github.com/crawl/crawl/tree/master/crawl-ref/docs/develop/levels 02:30:46 anyway it's in dat/des/syntax/ or something 02:30:52 ty 02:32:42 this? https://github.com/crawl/crawl/blob/master/crawl-ref/source/dat/vim/syntax/levdes.vim 02:33:00 yeah that's what he's looking for 02:35:31 yep 02:35:41 very handy 02:37:57 I really don't understand ccache 02:38:03 sometimes it seems like it's not doing anything 02:38:25 I compiled TILES=7 02:38:27 =y 02:38:38 then immediately did a: make 02:38:49 it had to recompile everything. took a while 02:39:00 then I immediately did a make TILES=y again 02:39:09 and it's recompiling everything again it seems 02:42:06 I wondered about that as well; thought I was doing something wrong 02:42:57 amethyst mentioned he was doing make TILES=1 && mv crawl crawl-tiles and the same for console as well I think 02:44:05 maybe there's a trick involved to not have to recompile 02:44:42 I also had to recompile everything when I made some very tiny changes in one file at one point, but it might just have been included universally 02:45:54 I should be more specific. I know ccache was working earlier when I was compiling two different branches (pretty similar ones). recompiling tiles went fast. 02:45:59 and that's a good idea for the mv 02:46:32 I've been spoiled by just using the crawl update infrastructure on cbro 02:46:54 but that's pretty overkill for futzing around 02:54:24 Monster database of master branch on crawl.develz.org updated to: 0.21-a0-110-g8e1637b 03:39:50 I thought that this would be a simple vault, but I've spent an absurd amount of time debugging it... there's another problem :( 03:40:02 SUBST: ? : tV! 03:40:12 TILE: t = dngn_tree_dead 03:40:17 TILE: ! = dngn_statue_angel 03:40:39 when the dead tree or dry fountain are rolled, they're displayed properly 03:40:51 but the statue doesn't show up when it's rolled 03:40:59 anyone know the problem? 03:41:13 the problem is vaults which only work in tiles.... 03:42:07 it just leaves a . where your ! should be? 03:42:18 yeah 03:42:36 have you tried moving the TILE definition before the SUBST? just a guess 03:42:37 <|amethyst> what's your vault's definition for ! ? 03:42:56 <|amethyst> because ! doesn't mean anything by default, so would become floor 03:43:30 how should I define the statue then? I'm already using 'G' for gravestones 03:43:30 yeah doesn't it have to be a statue to have a statue tile? 03:43:39 KFEAT 03:43:41 <|amethyst> KFEAT: ! = granite_statue 03:44:01 oh nice, let me try that 03:44:01 <|amethyst> then you can also have the TILE: rule to say while tile to use for that statue 03:44:29 yeah, that makes sense that there would be a problem trying to use G for both a gravestone and a statue 03:44:29 <|amethyst> s/while/which/ 03:44:35 let me try it out 03:44:53 <|amethyst> I assume your gravestones are actually statues as well? 03:45:06 yeah 03:45:26 was trying to use both gravstones and the angel statue in a graveyard vault 03:48:01 it worked! thanks for your help, everyone! 03:49:13 here's the finished vault: https://pastebin.com/12qnJXEb 04:39:48 n ice. i suggest you randomly don't spawn some gravestones and statues 04:39:58 you can use NSUBST to replace a certain amount with ground (.) 04:44:52 johnstein: you probably don't have a big enough ccache to store two builds at once? 04:45:48 if ccache speeds up the second build in a row of the same thing, but not after compiling a different version in between, then it is probably unable to find room for two builds in cache 04:53:22 yeah, you can change your cache size in the config 04:53:53 in ~/.ccache/ccache.conf I have 04:53:55 max_size = 5.4G 04:59:26 he recently increased it enough to see some advantage for a single version 04:59:32 so i assume he just didn't make it large enough for two 05:01:01 -!- amalloy is now known as amalloy_ 05:04:35 even 1g should be larger than needed for two compiles 05:04:50 at least i'm pretty sure osx brew ccache defaults to 1gb, and i have a 33% hitrate 07:25:08 checkers: not a bad idea, I even learned something from testing it out: for some reason... 07:25:10 NSUBST: G = 30:G / *:. 07:25:19 TILE: G = dngn_gravestone 07:25:26 works perfectly 07:25:29 but.... 07:25:39 TILE: G = dngn_gravestone 07:25:45 NSUBST: G = 30:G / *:. 07:25:54 doesn't work at all, it does nothing 07:25:57 weird 07:27:33 that was probably one of the problems I was having earlier, I had the SUBST after the things being defined 08:41:19 johnstein: have you tried running `ccache -s`? 09:01:41 johnstein: I just compiled debug console from an empty cache and the resulting cache size is 458.0 MB, then I did tiles and the total result is 948.7MB. So 1GB should just barely cut it, assuming other compilers are comparable 09:01:54 however, for that process, cache hit rate 0.67 % 09:02:31 five (5) hits, 460 misses, for the tiles build 09:03:02 my ccache install's default cache is 5GB 09:04:15 -!- steve509 is now known as stebl 09:12:25 probably the low hit rate is a sign of way too many ifdefs 09:22:19 of course after doing both of those compilation is basically instant 09:56:30 thanks for the stats advil. I don't think I increased the cache size yet. that could definitely explain part of the issue 10:00:35 it might just not be working, if you do ccache -s and see lots of 0s, then you'll know 10:03:04 does a hit mean ccache used a cached object file? 10:03:42 yes 10:04:02 and are you implying above that if we have too many ifdefs that ccache could be a futile effort? 11:44:16 johnstein: no because you can just cache both builds and that speeds up many things, but I was a little dismayed that the overlap in cache between tiles and console was so low 11:44:54 not really surprising in retrospect 11:45:25 ah ok. I get it 11:47:18 I've thought occasionally about whether there could be ways of minimizing or better compartmentalizing all the crawlcode platform ifdefs (it feels very 1990s) and there probably are, but the payoff for the work seemed too low 11:47:32 well not the platform ones, the build type ones 12:11:16 agentgt (L20 DEAE) ASSERT(mon_act == mon) in 'state.cc' at line 431 failed. (D (Sprint)) 12:12:22 !crashlog 12:12:23 17630. PublicChat, XL1 TrCK, T:1 (milestone): https://webzook.net/soup/morgue/0.19/PublicChat/crash-PublicChat-20170706-200001.txt 12:12:33 !crashlog sprint 12:12:35 No milestones for sprint (crash). 12:12:41 !crashlog agentgt sprint 12:12:53 1. agentgt, XL20 DEAE, T:3693 (milestone): http://crawl.berotato.org/crawl/morgue/agentgt/crash-agentgt-20170707-161108.txt 12:24:57 <|amethyst> advil: also note that switching between debug/debug-lite and a non-debug build cannot cache anything 12:25:06 <|amethyst> advil: since they use different optimisation flags 12:25:25 <|amethyst> but, yeah, it would be nice if fewer of our headers had #ifdef USE_TILE_LOCAL 12:25:28 <|amethyst> and such 12:25:36 ah, good to know 12:28:02 <|amethyst> AppHdr.h, which is #included everywhere, has 12:28:03 <|amethyst> # ifdef USE_TILE 12:28:03 <|amethyst> # include "libgui.h" 12:28:03 <|amethyst> # endif 12:28:03 <|amethyst> # include "tiles.h" 12:28:07 <|amethyst> #endif 12:28:32 <|amethyst> which pretty much guarantees the need for a full rebuild 12:28:51 <|amethyst> err, the inner IFDEF guarantees that 12:29:28 hmm 12:29:42 <|amethyst> that's probably not the only thing though 12:30:15 <|amethyst> player.h is included pretty much everywhere, and it also has differences depending on USE_TILES 12:31:53 what is the ideal way to handle this type of stuff instead of ifdef? 12:33:19 <|amethyst> probably each case is different, but for one thing, not storing tiles-specific information in the same data structures as everything else 12:34:24 <|amethyst> also, having functions with the same signature but different versions for the two or three cases (tiles vs console vs webtiles) 12:34:32 <|amethyst> we do that for some things 12:34:53 I mostly know this which is quite old: http://www.literateprogramming.com/ifdefs.pdf 12:45:56 I think the player.h one can be quick-fixed just by pulling that struct to a different .h, it's not widely used 12:47:11 <|amethyst> oh, I hadn't noticed it was in a separate struct, not player 12:47:29 wow does codewarrior still exist? 12:47:29 good article Advil 12:48:12 |amethyst: yeah, it's just the doll info for the save file summary struct 12:48:52 <|amethyst> which is used in like four .cc files 12:48:59 yeah 12:52:51 libgui.h: "// TODO enne - slowly morph this into tilesdl.h" 12:53:34 sscrono2 (L16 OpAs) ASSERT(!invalid_monster(&mons)) in 'mon-death.cc' at line 1887 failed. (D:15) 12:54:50 it's not so obvious to me why either libgui.h or tiles.h need to be included from AppHdr.h, but I'm not fully sure I understand the context described in the initial comment in AppHdr.h either 13:02:25 in fact reading up a bit about precompiled headers it seems like it's generally described as a mistake to include your own .h files in the precompiled header? 13:07:25 %git 5f7fb6871ba30fbbeab0a31b0ef5df230468d7fa 13:07:25 07kilobyte02 * 0.10-a0-2742-g5f7fb68: Fail Windows webtiles builds with a descriptive error. 10(6 years ago, 4 files, 9+ 6-) 13https://github.com/crawl/crawl/commit/5f7fb6871ba3 13:07:35 also doesn't need to be in AppHdr.h I suspect 13:08:33 this one is good on other hand: 13:08:35 %git 660a66c471d8ed81a4078849baa250cd21d02d87 13:08:36 07kilobyte02 * 0.10-a0-2750-g660a66c: Make tile enums available in console builds. 10(6 years ago, 9 files, 5+ 44-) 13https://github.com/crawl/crawl/commit/660a66c471d8 13:08:43 though it still doesn't need to be in AppHdr.h 13:09:02 !crashlog 13:09:03 17631. sscrono2, XL16 OpAs, T:25925 (milestone): http://crawl.berotato.org/crawl/morgue/sscrono2/crash-sscrono2-20170707-165325.txt 13:09:48 ooh nice DEAD_MONSTER, my favorite 14:27:54 Forced exit on stairs to new level: Unable to open lock file. Game rebooted immediately this time. 13https://crawl.develz.org/mantis/view.php?id=11136 by stoneychips 14:53:31 -!- amalloy_ is now known as amalloy 15:02:02 -!- Menche_ is now known as Menche 15:05:44 stupid question: what would "#ifdef __cplusplus" do in the context of crawl? 15:10:58 I'd expect it to mark code that came from elsewhere and could be built for C or C++ (the latter including class foo etc.) 15:11:35 some of the RNG code and some of the dungeon generation code is imported 15:13:18 hmm this is in AppHdr.h 15:13:40 around stuff that is crawl-specific in fact 15:16:24 oh. AppHdr.h will be precompiled headers foo, there may well be different rules involved there 15:16:34 (not sure if we even use that any more though) 15:18:21 I think we do still precompile that, at least, something different is done with it in the Makefile 15:19:56 but I see no AppHdr.h.gch or AppHdr.h.pch; it may be legacy 15:20:30 ah good point 15:20:51 hm, there's a PCH option that enables it. wonder if anyone has tested it recently 15:20:59 I'm trying it now 15:21:24 just saw that at the same time I think...it throws a warning but appears to work? 15:21:28 clang: warning: treating 'c-header' input as 'c++-header' when in C++ mode, this behavior is deprecated [-Wdeprecated] 15:21:43 maybe that has something to do with why the ifdef was needed 15:22:35 that or it's also used from C code (stuff in rltiles possibly, or contribs) 15:22:45 ah 15:23:12 oh, only C code currently aside from contrib is fake_pty 15:23:43 clang wants it to be a .hpp file 15:24:40 great, so supporting older compilers will prevent clang support at some point in the future :/ 15:25:01 *golfclap* 15:25:10 just for precompilation, in this case 15:34:50 there's some pretty weird dependencies going on in here...as far as I can tell "libconsole.h" is included for all builds, but it's just conditionalized for each of them in different places 15:39:42 this is going to be another one of things that I regret starting, isn't it 15:56:11 Area exclusions around staircases don't prevent moving up stairs into excluded area. 13https://crawl.develz.org/mantis/view.php?id=11137 by 4Hooves2Appendages 16:05:46 -!- aditya1 is now known as aditya 16:42:11 Kriya needs tile! 16:43:49 -!- Shard1697_ is now known as Shard1697 16:52:23 no u 17:17:16 (What messageless thing would need to happen for summoned imps to become hostile without triggering Oka penance?) 18:20:04 ?/kriya 18:20:05 No matches. 18:20:41 ?/kryia 18:20:42 Matching terms (3): kryia's_mail_coat, kryias, kryias_mail_coat; entries (4): :[1] | kryia's_mail_coat[1] | kryias[1] | kryias_mail_coat[1] 18:21:09 (devs please stop with the meme spellings you are killing everyone) 18:26:46 imo add a !memekills command so devs can track that 18:27:08 track times that players were killed by kryia's? 18:27:26 killed by being unable to spell something, as neizenel reports 18:27:36 it could be a competition 18:28:07 ctrl-f kikiubackooda 18:28:10 no matches 18:28:24 "Hrm, I guess no kiku this game"...then they worship Qaz instead and die 18:28:34 :devs HELLPP?? 18:28:47 :whars h3lfpsle altar 18:29:03 :i NEED to lose that 10% hp 18:29:22 !help cmd 18:29:22 !cmd: Define custom command: `!cmd ` to define, `!cmd -rm ` to delete, `!cmd ` to query, `!cmd -ls` to list. 18:31:54 1cmd memekills !lg * recent ikiller=(lorocyproca|tzitzimitl) god=(kiku|hep) 18:33:02 is there a way to query what someone was wearing when they died? assuming that isn't tracked 18:33:57 New branch created: header_simplification (2 commits) 13https://github.com/crawl/crawl/tree/header_simplification 18:33:57 03advil02 07[header_simplification] * 0.21-a0-111-g37b8227: Pull a tiles dependency out of player.h 10(2 hours ago, 10 files, 52+ 57-) 13https://github.com/crawl/crawl/commit/37b82275220a 18:33:57 03advil02 07[header_simplification] * 0.21-a0-112-g5862fdc: Factor tile-related #ifdefs out of AppHdr.h 10(2 hours ago, 45 files, 102+ 81-) 13https://github.com/crawl/crawl/commit/5862fdc6e1c7 18:34:16 now let's see what travis makes of that 18:39:54 <|amethyst> neizenel: no way to query; you'd have to fetch and parse the morgue file 18:40:25 <|amethyst> neizenel: sequell does know their AC at the time of death (or milestone) 19:18:09 The build passed. (header_simplification - 5862fdc #8511 : advil): https://travis-ci.org/crawl/crawl/builds/251336506 19:23:14 advil: travis gave you a passing grade, but didn't seem to award you any extra credit 19:41:36 -!- Dracunos_ is now known as Dracunos 19:53:14 -!- amalloy is now known as amalloy_ 20:52:56 -!- MarvinPA_ is now known as MarvinPA 21:54:49 -!- amalloy_ is now known as amalloy 23:17:17 -!- amalloy is now known as amalloy_