--- Log opened Mon Jun 18 00:00:04 2018 20180618 00:09:22-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Remote host closed the connection] 20180618 00:22:20-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20180618 00:22:26-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth-dev 20180618 00:41:47<+discordbot2> ceeeelllliiiiiin 20180618 00:41:53<+discordbot2> ....ceeelllmmmiiinnnn 20180618 00:44:59<+discordbot2> does the wml module/core have an equivalent to lp8.copyTable 20180618 00:59:10<+discordbot2> looks like there are mainline equivalents for only some of the lp8 code 20180618 01:01:21< celticminstrel> Huh? What are there equivalents for? 20180618 01:01:37< celticminstrel> There's definitely no copy table function in Wesnoth's Lua libraries though. 20180618 01:01:44< celticminstrel> Neither deep nor shallow. 20180618 01:01:49<+discordbot2> this is 100% unfortunate 20180618 01:02:00< celticminstrel> I'd say it's more like 60% unfortunate. 20180618 01:02:09<+discordbot2> anyway, looks like lp8.get_child has an equivalent, though the lp8 version takes a function 20180618 01:02:17<+discordbot2> easily convertible 20180618 01:02:29<+discordbot2> lp8.copyTable, no equivalent 20180618 01:02:32<+discordbot2> please add 20180618 01:02:36< celticminstrel> Um, is wml.get_child really an equivalent to that? (Or is something else an equivalent?) 20180618 01:02:46<+discordbot2> lp8.get_children is wml.child_array 20180618 01:02:47<+discordbot2> I think 20180618 01:03:07< celticminstrel> Okay perhaps I should start at the beginning. 20180618 01:03:09< celticminstrel> WTH is lp8 20180618 01:03:46<+discordbot2> https://github.com/8573/wesnoth-lp8 20180618 01:03:53<+discordbot2> Lua library 20180618 01:04:25<+discordbot2> I asked you to consider its features for addition 20180618 01:04:27<+discordbot2> you did not 20180618 01:04:47<+discordbot2> lp8.remove_subtag.... there's no equivalent 20180618 01:04:57<+discordbot2> remove_child doesn't match on ID 20180618 01:05:05<+discordbot2> or take a predicate 20180618 01:05:17< celticminstrel> Ah okay. 20180618 01:05:24< celticminstrel> remove_child needs some work still, yeah. 20180618 01:05:43<+discordbot2> lua cfg = helper.shallow_parsed(cfg) for subtag in lp8.subtags(cfg) do subtag[2] = helper.literal(subtag[2]) end 20180618 01:05:46<+discordbot2> no equivalent 20180618 01:06:07< celticminstrel> I don't even know what that's supposed to do. 20180618 01:06:07<+discordbot2> for unit in lp8.values(wesnoth.get_units {id = 'Niryone, Elynia'}) do 20180618 01:06:13<+discordbot2> probably can just use ipairs... 20180618 01:06:27<+discordbot2> celmin: -- Parse the toplevel to substitute variables, then write the rest -- of the config object as literal to preserve variables for later -- access in the inventory 20180618 01:07:08 * celticminstrel wonders if you were aware of Lua multiline comment syntax. 20180618 01:07:55<+discordbot2> yes 20180618 01:08:08<+discordbot2> for spell in lp8.children(helper.get_child(unit, 'variables'), 'spell') do 20180618 01:08:10<+discordbot2> hmm 20180618 01:08:13< celticminstrel> Anyway your answer isn't super-helpful. 20180618 01:08:25<+discordbot2> this is probably... wml.child_range 20180618 01:08:39< celticminstrel> Does lp8.subtags iterate over all subtags? 20180618 01:08:51< celticminstrel> As opposed to child_range? 20180618 01:09:04<+discordbot2> i'm guessing 20180618 01:09:12< celticminstrel> Isn't that just ipairs then? 20180618 01:09:28< celticminstrel> Well... maybe ipairs discarding the index... 20180618 01:09:41<+discordbot2> celmin: https://github.com/8573/wesnoth-lp8/blob/master/8680s_Lua_Pack/docs/wml.md 20180618 01:09:45< celticminstrel> What's lp8.values? 20180618 01:10:26<+discordbot2> that's here https://github.com/8573/wesnoth-lp8/blob/master/8680s_Lua_Pack/docs/utils.md 20180618 01:11:07<+discordbot2> i honestly wish you had referred to lp8 when crafting the wml module 20180618 01:11:20< celticminstrel> lp8.match_tag seems like it's closely related to wesnoth.wml_matches_filter. 20180618 01:11:56< celticminstrel> I don't like lp8.subtags. 20180618 01:12:16<+discordbot2> well I kinda need it 20180618 01:12:58< celticminstrel> ...hmm, the alternative I would prefer wouldn't work with your example though... 20180618 01:12:59<+discordbot2> or maybe not 20180618 01:13:02<+discordbot2> I can't remember 20180618 01:13:18<+discordbot2> shallow parsing is toplevel anyway 20180618 01:13:35< celticminstrel> I think it would be better to be able to write something like this: for tag, c in wml.subtags(cfg) do c = helper.literal(c) end 20180618 01:13:36<+discordbot2> so I can't remember why I needed that 20180618 01:13:40< celticminstrel> But that assignment wouldn't work. 20180618 01:14:08<+discordbot2> copyTable is the big thing I need 20180618 01:15:00< celticminstrel> If you're just copying a WML table you can probably use something like this: function copy_wml(cfg) return wml.literal(wml.tovconfig(cfg)) end 20180618 01:15:09< celticminstrel> Oh wait... 20180618 01:15:24<+discordbot2> no 20180618 01:15:27<+discordbot2> lua T.object { silent = true, duration = "forever", no_write = true, removal_id = removal_id, { 'effect', lp8.copyTable(attack, { apply_to = 'new_attack' }) } }, 20180618 01:15:29< celticminstrel> ...no yeah I think that should work, because wml.literal will mean the config is converted back to a table. 20180618 01:15:51< celticminstrel> ...okay WTH is this actually supposed to do then. 20180618 01:15:54<+discordbot2> also 20180618 01:15:57<+discordbot2> if not wesnoth.eval_conditional { { "have_unit", lp8.copyTable(usable_by, { x,y = "$x1,$y1" }) } } then 20180618 01:16:08< celticminstrel> WTH is this function even supposed to do. 20180618 01:17:09<+discordbot2> https://github.com/8573/wesnoth-lp8/blob/master/8680s_Lua_Pack/docs/table.md 20180618 01:17:43< celticminstrel> Okay so lp8.keys and lp8.values sound like thin wrappers around pairs. 20180618 01:17:56< celticminstrel> Basically it should be equivalent to using pairs and just ignoring the value you don't want, IIUC. 20180618 01:18:06<+discordbot2> yes 20180618 01:18:20< celticminstrel> lp8.ivalues similarly sounds like a thin wrapper around ipairs. 20180618 01:20:19< celticminstrel> Okay so lp8.copyTable isn't a clone as I initially assumed but rather a merge. 20180618 01:20:28<+discordbot2> basically copyTable gives me a new table with the contents of arg 1 merged with the contents of arg 2 20180618 01:20:30<+discordbot2> it's very useful 20180618 01:20:32< celticminstrel> So the name is slightly misleading. 20180618 01:21:09< celticminstrel> Maybe we should actually expose the config merge functionality to Lua, that could be useful. 20180618 01:22:23<+discordbot2> isn't that a bit much 20180618 01:23:17<+discordbot2> x,y = "$x1,$y1" 20180618 01:23:24<+discordbot2> actually, how does that even work.. 20180618 01:23:28<+discordbot2> it looks like it wouldn;t 20180618 01:23:37<+discordbot2> should it be x,y = "$x1", "$y1"? 20180618 01:26:22< celticminstrel> ??? 20180618 01:26:37< celticminstrel> What are you even talking about now+? 20180618 01:34:59<+discordbot2> How does x,y = evaluate in lua 20180618 01:40:25<+discordbot2> because in the case of a, b = "str,str", doesn't that mean a = "str,str" and b = ""? 20180618 01:41:59< celticminstrel> a,b="str,str" means a contains "str,str" and b contains nil. 20180618 01:42:07< celticminstrel> So you were half right. 20180618 01:42:30< celticminstrel> Also this shouldn't work inside a table definition. 20180618 01:46:55<+discordbot2> but it appearently does work 20180618 01:46:58<+discordbot2> if not wesnoth.eval_conditional { { "have_unit", lp8.copyTable(usable_by, { x,y = "$x1,$y1" }) } } then that is 20180618 01:47:00<+discordbot2> šŸ¤” 20180618 01:47:24< celticminstrel> Uhhhh. 20180618 01:47:29<+discordbot2> at least, I haven't noticed it not 20180618 01:47:38< celticminstrel> Does x exist as a variable? 20180618 01:47:50<+discordbot2> no 20180618 01:48:04<+discordbot2> I was going for the same paradigm as wml 20180618 01:48:39< celticminstrel> If I understand Lua table syntax correctly, then {x,y="$x1,$y1"} would be equivalent to {[1] = x, y = "$x1,$y1"} 20180618 01:48:55< celticminstrel> ie, the x would be a value, not a key. 20180618 01:49:02-!- Appleman1234 [~quassel@124x38x163x22.ap124.ftth.ucom.ne.jp] has joined #wesnoth-dev 20180618 01:49:15< celticminstrel> But if you're using ilua's strict mode, that would give an error if there's no x variable in scope... 20180618 01:49:33<+discordbot2> [have_unit] .. contents of usable_by .. x= "$x1" y = "$y1" [/have_unit] 20180618 01:49:38< celticminstrel> (And if you're in 1.14.x you're probably using ilua's strict mode.) 20180618 01:50:07<+discordbot2> i just had my campaign open in 1.14 and it seemed to work.. 20180618 01:50:41<+discordbot2> is x,y = "$x1", "$y1" the correct form? 20180618 01:53:38< celticminstrel> > x = 5 20180618 01:53:40< celticminstrel> > t = {x,y="a,b"} 20180618 01:53:41< celticminstrel> > t.x 20180618 01:53:43< celticminstrel> nil 20180618 01:53:44< celticminstrel> > t.y 20180618 01:53:46< celticminstrel> a,b 20180618 01:53:47< celticminstrel> > t[1] 20180618 01:53:47< celticminstrel> 5 20180618 01:54:07< celticminstrel> That confirms that my understanding is correct. I can't imagine any way it would produce the correct result... 20180618 01:54:49<+discordbot2> then is what I just posted correct 20180618 01:55:14< celticminstrel> > t={x,y=1,2} 20180618 01:55:16< celticminstrel> > t.x 20180618 01:55:17< celticminstrel> nil 20180618 01:55:19< celticminstrel> > t.y 20180618 01:55:20< celticminstrel> 1 20180618 01:55:22< celticminstrel> > t[1] 20180618 01:55:23< celticminstrel> 5 20180618 01:55:24< celticminstrel> > t[2] 20180618 01:55:25< celticminstrel> 2 20180618 01:55:26< celticminstrel> IOW: no 20180618 01:55:45<+discordbot2> then what is the correct form 20180618 01:55:49< celticminstrel> The only correct way would be {x="$x1",y="$y1"} 20180618 01:55:56<+discordbot2> I see 20180618 01:56:41< celticminstrel> I suppose in future it might be possible to support ["x,y"] = "$x1,$y1" but I personally don't really see the point. 20180618 02:00:03<+discordbot2> so how the hell did this work 20180618 02:00:20< celticminstrel> That's what I've been wondering... 20180618 02:00:40<+discordbot2> didn't you remove no_write in [object], btw? 20180618 02:00:44<+discordbot2> even though I needed it? 20180618 02:01:55<+discordbot2> I seem to remember I agreed to that but I have no idea what to replace it with now 20180618 02:02:54<+discordbot2> maybe it was not to use objects 20180618 02:06:50< celticminstrel> Use [modify_unit][effect] 20180618 02:07:39< celticminstrel> (Not [modify_unit][object], that'll install an [object] directly into the unit and write it to [modifications] as normal.) 20180618 02:24:05-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20180618 02:24:11-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth-dev 20180618 02:35:03-!- fabi_ [~fabi@200116b82b353e00cd4146d868dc90b1.dip.versatel-1u1.de] has joined #wesnoth-dev 20180618 02:35:12-!- fabi [~fabi@wesnoth/developer/fendrin] has quit [Ping timeout: 265 seconds] 20180618 02:47:39-!- irker067 [~irker@uruz.ai0867.net] has joined #wesnoth-dev 20180618 02:47:39< irker067> wesnoth: Iris Morelle wesmere:master de4f71bf4b22 / static/docroot/index.php: home: Drop version requirement from the macOS download icon https://github.com/wesnoth/wesmere/commit/de4f71bf4b225f912a2a594913d2007b918e63dc 20180618 02:52:36<+discordbot2> celmin: what about add_modification 20180618 02:54:52-!- fabi_ [~fabi@200116b82b353e00cd4146d868dc90b1.dip.versatel-1u1.de] has quit [Ping timeout: 260 seconds] 20180618 03:09:03-!- Appleman1234_ [~quassel@124x38x163x22.ap124.ftth.ucom.ne.jp] has joined #wesnoth-dev 20180618 03:09:15-!- Appleman1234_ [~quassel@124x38x163x22.ap124.ftth.ucom.ne.jp] has quit [Read error: Connection reset by peer] 20180618 03:33:47< irker067> wesnoth/wesnoth:1.14 gfgtdf 99ddf3bce8 disallow attacking with disabled attacks AppVeyor: All builds passed 20180618 04:34:04< celticminstrel> @Vultraz - If you're doing it from Lua, probably best to just call the effect function directly? Though add_modification might still support an inverse of no_write, I can't remember; you could try changing true to false and see if that works. 20180618 04:34:56-!- celticminstrel [~celmin@unaffiliated/celticminstrel] has quit [Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.] 20180618 04:42:38< irker067> wesnoth: Iris Morelle wesnoth:1.14 dff1a3275ced / src/server/server.cpp: wesnothd: Only disclose the number of online admins to admins using adminmsg https://github.com/wesnoth/wesnoth/commit/dff1a3275ced6d2b57c789e906267363e3b2b8d8 20180618 04:42:48< irker067> wesnoth: Iris Morelle wesnoth:master be41a692fb44 / src/server/server.cpp: wesnothd: Only disclose the number of online admins to admins using adminmsg https://github.com/wesnoth/wesnoth/commit/be41a692fb44cba62b720a462f5bebe7efec303c 20180618 04:47:02-!- gallaecio [~quassel@188.79.96.255] has joined #wesnoth-dev 20180618 05:25:07-!- travis-ci [~travis-ci@ec2-54-234-253-92.compute-1.amazonaws.com] has joined #wesnoth-dev 20180618 05:25:08< travis-ci> wesnoth/wesnoth#18623 (master - be41a69 : Iris Morelle): The build was broken. 20180618 05:25:09< travis-ci> Build details : https://travis-ci.org/wesnoth/wesnoth/builds/393480946 20180618 05:25:09-!- travis-ci [~travis-ci@ec2-54-234-253-92.compute-1.amazonaws.com] has left #wesnoth-dev [] 20180618 05:34:57<+discordbot2> celmin: what effect function? 20180618 06:20:21-!- gallaecio [~quassel@188.79.96.255] has quit [Ping timeout: 240 seconds] 20180618 06:59:51-!- behalebabo [~behalebab@unaffiliated/behalebabo] has quit [Ping timeout: 240 seconds] 20180618 07:04:42-!- behalebabo [~behalebab@unaffiliated/behalebabo] has joined #wesnoth-dev 20180618 07:35:12-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20180618 07:37:12<+discordbot2> @Pentarctagon btw, awhile back LordBob gave permission to relicense all portraits and story art by him under CC-SA 20180618 07:37:45<+discordbot2> Relicensing is indeed allowed by the author, as I understand it? I seem to recall we had a discussion at some point to the contrary... 20180618 07:38:13<+discordbot2> Or was that that you can never revoke the GPL, only add an additional license 20180618 07:38:46<+discordbot2> Latter. 20180618 07:39:07<+discordbot2> You can't undo the GNU GPL unless you have a time machine because the copies of the GNU GPL'd content are already out there. 20180618 07:41:04<+discordbot2> Alright, well, then I suppose I was a bit mistaken when I said ā€œrelicenseā€ when I talked to him 20180618 07:41:26<+discordbot2> Still, it still stands that he’d like his portraits and story art under SA 20180618 07:41:53<+discordbot2> He said nevermind the misc stuff he’s contributed like dialog images 20180618 08:13:26-!- vladimirslavik [vslavik@nat/redhat/x-tljgieiafnxbuacn] has joined #wesnoth-dev 20180618 08:50:30< irker067> wesnoth: Iris Morelle wesnoth:1.14 ce2aba2aa0b7 / changelog.md src/server/server.cpp: wesnothd: Fix lobby messages and whispers not being truncated as they should https://github.com/wesnoth/wesnoth/commit/ce2aba2aa0b7cb5e8627cac9fcf17dfc16233d33 20180618 08:50:33< irker067> wesnoth: Iris Morelle wesnoth:1.14 6e81ae330f60 / changelog.md: U is not between C and G in the English alphabet https://github.com/wesnoth/wesnoth/commit/6e81ae330f602d006f5b229d441e6156d2cb8739 20180618 08:50:40< irker067> wesnoth: Iris Morelle wesnoth:master cdc8da25aea2 / changelog.md src/server/server.cpp: wesnothd: Fix lobby messages and whispers not being truncated as they should https://github.com/wesnoth/wesnoth/commit/cdc8da25aea2cbc055dc12879d2c4333fecfc3e1 20180618 08:50:43< irker067> wesnoth: Iris Morelle wesnoth:master 6b2ca3202613 / changelog.md: U does not precede G in the English alphabet https://github.com/wesnoth/wesnoth/commit/6b2ca320261326d7862d3fe52f395e83913f9c6d 20180618 09:02:26-!- fabi_ [~fabi@mue-88-130-62-148.dsl.tropolys.de] has joined #wesnoth-dev 20180618 09:09:04< galegosimpatico> I was completely believing in a visibility order descending from outer to inner. 20180618 09:27:48< irker067> wesnoth: Charles Dang wesnoth:1.14 c41e5480a62d / data/gui/widget/chatbox.cfg: GUI2/Chatbox: limit input to 256 characters (fixes #3267) https://github.com/wesnoth/wesnoth/commit/c41e5480a62dd32d35be3a01d5824715f1a2a68d 20180618 09:28:22<+discordbot2> lol that was quick. 20180618 09:29:25< irker067> wesnoth: Charles Dang wesnoth:master c5d6f695dd71 / data/gui/widget/chatbox.cfg: GUI2/Chatbox: limit input to 256 characters (fixes #3267) https://github.com/wesnoth/wesnoth/commit/c5d6f695dd712c9a33fd3a5c12f98e19e2b393fd 20180618 09:29:37<+discordbot2> the fix is simple 20180618 09:30:23<+discordbot2> and yes I know technically max_input_length doesn't use the proper truncate method but for the vast majority of cases that won't matter. 20180618 09:30:30<+discordbot2> but still should be addressed at some point 20180618 09:30:32<+discordbot2> separately 20180618 09:30:39<+discordbot2> why does this limit exist anyway? 20180618 09:30:51<+discordbot2> Did you just 20180618 09:31:54<+discordbot2> ĀÆ_(惄)_/ĀÆ 20180618 09:34:50<+discordbot2> Anyway it's common logic that you don't want chat messages to be able to reach critical spam levels. 20180618 09:35:20<+discordbot2> Discord pushes the envelope quite a lot but there is a limit of 1,000 characters per message or so. 20180618 09:35:36<+discordbot2> ah, yeah, I've hit it 20180618 09:35:54<+discordbot2> (And honestly I feel that should be configurable on a chat/role basis.) 20180618 09:37:44<+discordbot2> inb4 you'd give someone with a role and a 10-character message limit 20180618 09:39:36< irker067> wesnoth/wesnoth:master newfrenchy83 b2b041166d Update reports.cpp AppVeyor: vs2017/Release Failed 20180618 09:39:37< irker067> Details: https://ci.appveyor.com/project/wesnoth/wesnoth-605wt/build/Wesnoth-VS2017-master-3627 20180618 09:49:45< irker067> wesnoth: loonycyborg wesnoth:master f5974941576f / packaging/flatpak/org.wesnoth.Wesnoth.json: flatpak: pass hardening options when building static boost https://github.com/wesnoth/wesnoth/commit/f5974941576fb541ebddb0d3e690cc469b8f5e75 20180618 10:32:29-!- Rhonda [~rhonda@wesnoth/developer/rhonda] has quit [Remote host closed the connection] 20180618 10:36:08-!- Rhonda [~rhonda@anguilla.debian.or.at] has joined #wesnoth-dev 20180618 10:47:15< zookeeper> umm. is there some kind of new problem with unit image_mods? the image_modded loyalists in UtBS perform terribly. 20180618 10:47:26< zookeeper> (1.14.3) 20180618 10:50:29< zookeeper> or is it just CHAN being really slow? looks like it might just be the caching that's really slow. but it wasn't this slow when i wrote it. 20180618 10:58:01<+discordbot2> I really have no idea 20180618 11:00:27-!- vladimirslavik [vslavik@nat/redhat/x-tljgieiafnxbuacn] has quit [Quit: Leaving] 20180618 11:26:10< irker067> wesnoth/wesnoth:1.14 Iris Morelle dff1a3275c wesnothd: Only disclose the number of on AppVeyor: All builds passed 20180618 12:20:16-!- DeFender [~DeFender1@89-138-149-20.bb.netvision.net.il] has joined #wesnoth-dev 20180618 12:22:31-!- DeFender1031 [~DeFender1@89-138-13-24.bb.netvision.net.il] has quit [Ping timeout: 244 seconds] 20180618 12:26:41<+discordbot2> hmmmm 20180618 12:27:29<+discordbot2> What's the convention? 20180618 12:31:44< Soliton> the way it works on addons.wesnoth.org for example. 20180618 12:36:19<+discordbot2> Ok, so pointing up indeed corresponds with ascending 20180618 12:38:57<+discordbot2> @Vultraz So LordBob's portrait+story art is both GPL and CC now, and anything else he's contributed remains only GPL? 20180618 12:39:05<+discordbot2> yes 20180618 12:39:10<+discordbot2> alright, thanks 20180618 13:05:04< Ravana_> crash after connection fail dialog was closed https://vgy.me/K9JqxT.png 20180618 13:06:18<+discordbot2> https://github.com/wesnoth/wesnoth/blob/1.14/src/sdl/utils.cpp#L2126 20180618 13:06:30<+discordbot2> Attempt to blit a nonexistent surface. 20180618 13:27:13< irker067> wesnoth: Severin Glƶckner wesnoth:1.14 57c6c9be465b / po/ (wesnoth-units/de.po wesnoth/de.po): German Translation: minor caanges https://github.com/wesnoth/wesnoth/commit/57c6c9be465bbbfae847f0d1640568dc2d697326 20180618 13:32:10< irker067> wesnoth/wesnoth:master Iris Morelle be41a692fb wesnothd: Only disclose the number of on AppVeyor: All builds passed 20180618 13:49:51<+discordbot2> is table.insert(t, {}) the same as t.insert {} in Lua? 20180618 13:53:13<+discordbot2> No. It should be t:insert {} (colon instead of period). 20180618 13:53:55<+discordbot2> ah, thanks 20180618 14:19:26-!- fabi_ [~fabi@mue-88-130-62-148.dsl.tropolys.de] has quit [Quit: Konversation terminated!] 20180618 14:38:26<+discordbot2> celmin: what does "only toplevel named fields are proxied" mean in terms of 'unit.variables'? 20180618 14:39:37< irker067> wesnoth/wesnoth:master newfrenchy83 b2b041166d Update reports.cpp AppVeyor: 2/4 builds failed 20180618 14:39:38< irker067> Details vs2017/Release: https://ci.appveyor.com/project/wesnoth/wesnoth-605wt/build/Wesnoth-VS2017-master-3627 20180618 14:39:39< irker067> Details vs2015/Release: https://ci.appveyor.com/project/wesnoth/wesnoth-7lnpw/build/Wesnoth-VS2015-master-3913 20180618 14:57:43-!- gfgtdf [~chatzilla@x4e3637ef.dyn.telefonica.de] has joined #wesnoth-dev 20180618 14:58:10< gfgtdf> that you cannot use unit.variables.container.atribute you have to use unit.variables["container.atribute"] 20180618 15:08:03-!- Appleman1234_ [~quassel@124x38x163x22.ap124.ftth.ucom.ne.jp] has joined #wesnoth-dev 20180618 15:10:06<+discordbot2> What about unit.variables.container = {} ? 20180618 15:10:28< gfgtdf> that's valid. 20180618 15:10:48<+discordbot2> Ok ty 20180618 15:11:45-!- Appleman1234 [~quassel@124x38x163x22.ap124.ftth.ucom.ne.jp] has quit [Ping timeout: 260 seconds] 20180618 15:11:56-!- pydsigner [~pydsigner@unaffiliated/pydsigner] has quit [Ping timeout: 256 seconds] 20180618 15:14:42-!- pydsigner [~pydsigner@unaffiliated/pydsigner] has joined #wesnoth-dev 20180618 15:16:57-!- fabi [~fabi@wesnoth/developer/fendrin] has joined #wesnoth-dev 20180618 16:31:44-!- gfgtdf [~chatzilla@x4e3637ef.dyn.telefonica.de] has quit [Remote host closed the connection] 20180618 16:32:10< irker067> wesnoth/wesnoth:1.14 Charles Dang c41e5480a6 GUI2/Chatbox: limit input to 256 charact AppVeyor: All builds passed 20180618 16:45:05-!- Appleman1234_ [~quassel@124x38x163x22.ap124.ftth.ucom.ne.jp] has quit [Ping timeout: 260 seconds] 20180618 16:48:23-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20180618 17:17:57-!- fabi [~fabi@wesnoth/developer/fendrin] has quit [Quit: Konversation terminated!] 20180618 17:20:41-!- fabi [~fabi@wesnoth/developer/fendrin] has joined #wesnoth-dev 20180618 17:25:01<+discordbot2> Here goes the PR I've rebased the essential touch changes to the bottom of the history. Let's start with these. Everything else is iOS specific or unnecessary. 20180618 17:30:40-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20180618 17:30:46-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth-dev 20180618 18:03:12-!- ToBeFree [uid51591@wikimedia/ToBeFree] has joined #wesnoth-dev 20180618 18:10:23< irker067> wesnoth: Severin Glƶckner wesnoth:1.14 7e169d3a564d / data/campaigns/Secrets_of_the_Ancients/units/Necro_Ancient_Lich.cfg: SotA: reuse mainline string for ancient lich https://github.com/wesnoth/wesnoth/commit/7e169d3a564d2d4147a077a915ea287ab841c8ac 20180618 18:10:25< irker067> wesnoth: Severin Glƶckner wesnoth:1.14 e8f318f3aa3d / po/wesnoth-sota/de.po: German Translation: minor Sota changes https://github.com/wesnoth/wesnoth/commit/e8f318f3aa3d1c4a78a551a8b5e9571708122222 20180618 18:11:30< irker067> wesnoth: Severin Glƶckner wesnoth:master 9d95aa776c9e / data/campaigns/Secrets_of_the_Ancients/units/Necro_Ancient_Lich.cfg: SotA: reuse mainline string for ancient lich https://github.com/wesnoth/wesnoth/commit/9d95aa776c9e0b3a6e968317a87bda1a5c48b3ee 20180618 18:13:26< irker067> wesnoth/wesnoth:master loonycyborg f597494157 flatpak: pass hardening options when bui AppVeyor: All builds passed 20180618 18:37:01-!- DeFender [~DeFender1@89-138-149-20.bb.netvision.net.il] has quit [Remote host closed the connection] 20180618 18:37:20-!- DeFender [~DeFender1@89-138-149-20.bb.netvision.net.il] has joined #wesnoth-dev 20180618 19:40:29-!- gallaecio [~quassel@188.79.96.255] has joined #wesnoth-dev 20180618 19:49:14-!- oldlaptop [~quassel@45.63.78.126] has quit [Remote host closed the connection] 20180618 19:49:33-!- oldlaptop [~quassel@45.63.78.126] has joined #wesnoth-dev 20180618 19:57:29<+discordbot2> @Vultraz I'm told this generates an error response from the server in-game but in the lobby the game apparently doesn't use it: https://cdn.discordapp.com/attachments/454393676098043928/458347223332421653/unknown.png 20180618 19:58:43<+discordbot2> The server should be responding with something to the effect of "Can't find ''". 20180618 20:23:19-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20180618 20:23:25-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth-dev 20180618 20:23:56<+discordbot2> @sinda You've not done any work on issue #1924, right? 20180618 20:24:18<+discordbot2> I may have a brute-force-stlye fix in my hands right now. 20180618 20:32:48< irker067> wesnoth/wesnoth:1.14 josteph 2b1bd3a81e Unit List: Sort by XP as second criterio AppVeyor: All builds passed 20180618 20:47:43<+discordbot2> @shadowm nope, wasn't able to figure it out 8( And it's intermittent on iOS now too, maybe because of plugin updates. 20180618 20:48:47< Ravana_> client does show that error message 20180618 20:48:52< Ravana_> only, it does so in the lobby tab 20180618 20:49:00< Ravana_> I think there is issue for that 20180618 20:50:44<+discordbot2> It didn't show it in the lobby tab for me. 20180618 20:51:12<+discordbot2> And still doesn't, tested again. 20180618 20:52:17<+discordbot2> not for me either. 20180618 20:53:53<+discordbot2> So I have the fix for the WESNOTH_VERSION error in particular but I'm trying to figure out why there are negative WML cache entries when the code seems to indicate this is an impossibility since preproc_error is thrown before the cache is written to. 20180618 20:54:08< Ravana_> doesn't show indeed, game crashing after I send that message 20180618 20:54:36< Ravana_> Caught general 'N4gui236layout_exception_width_resize_failedE' exception: std::exception 20180618 20:59:39<+discordbot2> That sounds like a plain old issue with the UI failing to figure out how to resize itself to fit text. 20180618 20:59:40< Ravana_> https://github.com/wesnoth/wesnoth/issues/2775 20180618 20:59:44<+discordbot2> (i.e. unrelated.) 20180618 21:00:01< Ravana_> seems that removed the fail message then, since it recently was displayed 20180618 21:00:33<+discordbot2> Well, it seems unintentional because the wording of the commit indicates that it's supposed to go into the active tab. 20180618 21:19:03<+discordbot2> Guh. 20180618 21:19:14<+discordbot2> The botched cache file magically comes into existence on the next session. 20180618 21:20:35<+discordbot2> Why on earth does read_configs() succeed... 20180618 21:20:56<+discordbot2> Do you have a binary file of that cache? It was hard to get out of iOS, so I didn’t examine it physically. 20180618 21:21:21<+discordbot2> I do have it. 20180618 21:22:09<+discordbot2> It's not going to be of much help to you, though. It's valid WML. 20180618 21:22:21<+discordbot2> It just shouldn't exist in the first place. 20180618 21:22:56<+discordbot2> Also, I do have the WESNOTH_VERSION bug fixed, what I am trying to do is to make it so Wesnoth doesn't cache add-ons that failed to load. 20180618 21:23:31<+discordbot2> It actually doesn't cache them (an exception unwinds the stack out of the cache manager before it can write anything), yet their cache comes into existence in a subsequent session anyway. 20180618 21:31:11-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Read error: Connection reset by peer] 20180618 21:31:25-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20180618 21:31:28<+discordbot2> For example: https://gist.github.com/shikadiqueen/d16164fa819d996a7aab27873b4e59a1 20180618 21:31:42<+discordbot2> At this point the cache does not exist, even after returning to the title screen. 20180618 21:31:51-!- boucman [~rosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20180618 21:32:07<+discordbot2> If I restart Wesnoth entirely and try to launch the campaign again (since the campaign's menu entry disappears as a side-effect of the loading process failing)... 20180618 21:33:18<+discordbot2> This happens instead: 20180618 21:33:18<+discordbot2> https://gist.github.com/shikadiqueen/b47de893fbded1bfd4d531b911c898f1 20180618 21:33:32<+discordbot2> So, the cache's written, then read with an error, and deleted? 20180618 21:33:49<+discordbot2> No, the cache is not written in the first place then it magically appears instead. 20180618 21:34:20<+discordbot2> And since it's valid WML, the campaign loads... except that the cache entry only contains the campaign's base tree for the main menu. 20180618 21:35:55<+discordbot2> It appears during the campaign's load sequence on the second session even though Wesnoth has taken the path where the cache does not exist (???????) and should be en route towards the preprocessor error again. 20180618 21:37:34<+discordbot2> In both cases preprocess_file() is run on the same path. 20180618 21:37:51<+discordbot2> Meaning that in both cases the cache is not used. 20180618 21:38:14<+discordbot2> But the cache appears in the second session... 20180618 21:39:26<+discordbot2> Is that a new cache file that appears In the second session? 20180618 21:40:18<+discordbot2> Well yes because it didn't exist at the end of the first one. Or at the start of the second one for that matter. 20180618 21:40:32<+discordbot2> I am purging the cache and observing from the shell every time to keep track of that stupid cache. 20180618 21:40:56<+discordbot2> I'm starting to think the issue is not that that cache exists, it's that the second run mysteriously succeeds. 20180618 21:41:18<+discordbot2> Probably it's a state saved somewhere else... Does a top-level cache exist? Could it have some state influencing the campaign cache? 20180618 21:41:21<+discordbot2> But only succeeds insofar you get the campaign's main menu data. 20180618 21:41:54<+discordbot2> 20180618 17:36:49 info cache: found valid cache at '/home/shadowm/.wesnoth-1.14/cache/cache-v1.14.3+dev (6e81ae330f-Modified)-3cd58bdc6279a2f255e05eb5266640c447bf55d.gz' with defines_map /home/shadowm/src/wesnoth-1.14/data/cores.cfg CAMPAIGN_INVASION_FROM_THE_UNKNOWN CAMPAIGN_INVASION_FROM_THE_UNKNOWN_EPISODE_I ENABLE_DWARVISH_ARCANISTER ENABLE_DWARVISH_RUNESMITH ENABLE_NIGHTBLADE NORMAL WESNOTH_VERSION 20180618 21:42:01<+discordbot2> 20180618 17:36:49 info cache: found valid cache at '/home/shadowm/.wesnoth-1.14/cache/cache-v1.14.3+dev (6e81ae330f-Modified)-f14c14f4a3ca6423684121c70e367928d225b.gz' with defines_map /home/shadowm/src/wesnoth-1.14/data/ CAMPAIGN_INVASION_FROM_THE_UNKNOWN CAMPAIGN_INVASION_FROM_THE_UNKNOWN_EPISODE_I ENABLE_DWARVISH_ARCANISTER ENABLE_DWARVISH_RUNESMITH ENABLE_NIGHTBLADE NORMAL WESNOTH_VERSION 20180618 21:42:08<+discordbot2> There are the closest thing I can think of. 20180618 21:42:17<+discordbot2> The rest is all add-ons. 20180618 21:43:20<+discordbot2> But it doesn't make sense because read_configs() works with a clean slate. 20180618 21:43:31<+discordbot2> Preprocessor-wise. 20180618 21:44:34-!- fabi [~fabi@wesnoth/developer/fendrin] has quit [Ping timeout: 265 seconds] 20180618 21:47:31<+discordbot2> Unless... 20180618 21:52:03<+discordbot2> https://gist.github.com/shikadiqueen/9a203e2bed1168d9d82da76209b742c7 20180618 21:52:10<+discordbot2> It's the stupid transactions code at it again. 20180618 21:52:16<+discordbot2> Just like with the WESNOTH_VERSION bug. 20180618 21:52:45<+discordbot2> (Excuse the grammar in there I wrote the probe in a hurry.) 20180618 21:55:38<+discordbot2> "Used to share macros between cache objects" -- but why do we want to do that? 20180618 22:19:55-!- gallaecio [~quassel@188.79.96.255] has quit [Quit: http://quassel-irc.org - Converse confortabelmente. En calquera parte.] 20180618 22:23:36<+discordbot2> I cannot have the code at work, so I don't understand this, but I get that you figured it out? 20180618 22:23:52-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has quit [Ping timeout: 256 seconds] 20180618 22:24:59<+discordbot2> I only have a high suspicion that the cache transactions code can poison the runtime state with a preprocessors symbols table that is not the one required for the task at hand. 20180618 22:25:53<+discordbot2> But the code is dense enough that it'll take me a while to actually figure out why this crap even exists in the first place. Last time I spent days and didn't really come to a conclusion beyond deciding that the whole cache manager needed to be rewritten from the ground up. 20180618 22:26:24<+discordbot2> As far as legacy code in Wesnoth goes this is the absolute worst. 20180618 22:27:08<+discordbot2> Because not only is the person who wrote it long gone, but also he had a track record of not knowing what he was doing, and even back then there was no-one around who knew how the code he was rewriting was supposed to work. 20180618 22:27:35<+discordbot2> Uh-oh. May I please ask to summarize your insights in the Github issue? 20180618 22:27:36<+discordbot2> I honestly have no idea what the WML cache's intended behaviour in all possible cases is and in practice it's all clearly wrong. 20180618 22:28:39-!- boucman [~rosen@wesnoth/developer/boucman] has quit [Remote host closed the connection] 20180618 22:34:32< irker067> wesnoth: Iris Morelle wesnoth:1.14 d37bd7a5f87f / changelog.md src/config_cache.cpp: config/cache: Ensure built-in symbols like WESNOTH_VERSION are always defined https://github.com/wesnoth/wesnoth/commit/d37bd7a5f87fc63933e685ff63b25781ff9fba7f 20180618 22:34:42< irker067> wesnoth: Iris Morelle wesnoth:master 0c2298d8c205 / changelog.md src/config_cache.cpp: config/cache: Ensure built-in symbols like WESNOTH_VERSION are always defined https://github.com/wesnoth/wesnoth/commit/0c2298d8c2057344b9c94c9fe7ce848838b363e6 20180618 22:35:23<+discordbot2> Thanks! 20180618 22:35:57<+discordbot2> Not done yet. 20180618 22:36:48<+discordbot2> I wonder if it might prove more worthwhile to sit down and outline the mechanics of a new cache manager and implement that instead. 20180618 22:37:10<+discordbot2> This isn't a thing where we need to worry about backwards compatibility after all. 20180618 22:37:23< irker067> wesnoth: Severin Glƶckner wesnoth:1.14 5ea257e61677 / changelog.md: updated Changelog https://github.com/wesnoth/wesnoth/commit/5ea257e6167786ef345f748ea4bbe17d07f35f93 20180618 22:37:26<+discordbot2> @Pentarctagon ^ feel free to reword the mention of the hardening options 20180618 22:39:15<+discordbot2> Actually step 1 is outlining the current cache manager modulo bugs. 20180618 22:40:35<+discordbot2> The class' contract doesn't look too complex, shouldn't be too hard to rewrite. 20180618 22:44:18<+discordbot2> Each cache entry is identified by game version, and a SHA1 digest of a space-separated list of loader defines ([campaign] defines= + extra_defines= + + ). 20180618 22:44:35<+discordbot2> And... different entries are loaded for different add-ons on the same run. 20180618 22:44:55<+discordbot2> But why, the add-on root document path is not part of the identification... 20180618 22:45:04<+discordbot2> OH it is. 20180618 22:45:07<+discordbot2> At the very start. 20180618 22:45:29-!- valdar [~atarocch@93.56.164.28] has quit [Remote host closed the connection] 20180618 22:45:37<+discordbot2> So, game version + SHA1 of the root path and loader defines list. 20180618 22:46:52<+discordbot2> In addition to that there's a "checksum" companion file. The main cache file has the fully-parsed WML tree, and the checksum file only contains three WML attributes, modified, nfiles, and size. 20180618 22:47:06< irker067> wesnoth/wesnoth:1.14 josteph 8d9edaf7a7 GUI: Fix the direction of the arrow on a AppVeyor: All builds passed 20180618 22:48:06<+discordbot2> The data for that is provided by filesystem::data_tree_checksum(). 20180618 22:49:30<+discordbot2> Which actually uses filesystem::get_files_in_dir() to do its job (yay for oblique APIs). 20180618 22:51:32<+discordbot2> Ohhh. 20180618 22:51:56<+discordbot2> Okay, the "checksum" is calculated from both the game data and user data dirs. 20180618 22:55:07<+discordbot2> The modified field is the latest mtime of all regular files, recursive, the size field is the cumulative size of all regular files, and the nfiles field is the total regular file count. 20180618 22:55:15<+discordbot2> Emphasis on "regular file". 20180618 22:56:55<+discordbot2> Every single time Wesnoth loads a root WML document (including individual add-ons), it tries to look for the cache file for it and its accompanying checksum, and it calculates the current checksum of the combined game and user data dir. 20180618 22:57:01<+discordbot2> Now that's an expensive operation. 20180618 22:57:29<+discordbot2> Because it has to do that once for data/cores.cfg, once for data/_main.cfg, and once for each add-on. 20180618 22:57:42<+discordbot2> I did have a feeling that a cache is not so caching. 20180618 22:57:58<+discordbot2> And every time it has to call stat() for entries everywhere. 20180618 22:58:02<+discordbot2> Made me wonder how it ran on a low-end computers. 20180618 22:58:04<+discordbot2> (Well Boost.filesystem does for it.) 20180618 22:59:03<+discordbot2> After the initial run most of the burden goes into whatever mechanism the OS has to expedite the process, e.g. Linux's dentry cache. 20180618 22:59:29<+discordbot2> But it's still a massive waste of CPU time and it's not guaranteed to always go swiftly. 20180618 23:00:57<+discordbot2> So if the checksums don't match, Wesnoth invokes the preprocessor to get a preprocessor stream on the WML document and feeds that to the parser as normal. 20180618 23:02:18<+discordbot2> Then it writes the resultant fully-parsed WML tree to the cache file and alongside it the checksum file (really should be called manifest or sth else but whatever). 20180618 23:03:07<+discordbot2> If the checksums do match it instead reads the cache file into memory. 20180618 23:03:24<+discordbot2> And that sounds simple but there's additional book-keeping going on. 20180618 23:04:08<+discordbot2> I omitted the accompanying .define file in the steps above. 20180618 23:04:40<+discordbot2> Alongside the cache object and checksum there is a .define file that is supposed to contain the full (???????) set of WML preprocessor symbols for that run. 20180618 23:05:06<+discordbot2> I think I can see where the vague comment about sharing preprocessor symbols comes into play. 20180618 23:05:33<+discordbot2> Because if you have add-ons A, B, and C, it is possible for A to define symbols that B uses, the same goes for B defining symbols that C uses. 20180618 23:05:50<+discordbot2> Given the preprocessor's performance has improved over the years, is the cache's overhead still lower than straight up loading everything each time? 20180618 23:05:57<+discordbot2> Shhhh. 20180618 23:06:08<+discordbot2> The only problem is that I only have two .define files. 20180618 23:06:13<+discordbot2> I have many more add-ons than that. 20180618 23:07:10<+discordbot2> That might mean the other files are empty, right? I think write_file() does nothing if the result would be an empty file. 20180618 23:07:45<+discordbot2> Oh yeah it deletes the file and otherwise does nothing is the defines table is empty. 20180618 23:08:40<+discordbot2> So naturally those add-ons that do not contribute to the preprocessor state (which is global unlike the parser trees) for that run do not get .define files. 20180618 23:09:51< Ravana_> seems that _main.cfg is also required to upload addon 20180618 23:10:02<+discordbot2> If the .define file exists weird things happen and this is where I lose track of stuff because god this code. 20180618 23:11:22<+discordbot2> read_defines_queue() does some magic crap or something. 20180618 23:11:36<+discordbot2> This is the point where things start to go wrong for failed add-ons. 20180618 23:12:23<+discordbot2> read_defines_queue() is only called every time there's a cache miss. 20180618 23:13:08<+discordbot2> It reads the preprocessor symbols from all .define files found so far, from oldest to latest in the loading sequence, into memory. 20180618 23:13:43<+discordbot2> That in theory clobbers duplicate symbols with new ones. 20180618 23:16:28<+discordbot2> is celmin around 20180618 23:17:21<+discordbot2> Then the part where things go wrong with WESNOTH_VERSION takes place, and it is that the cache manager keeps the preprocessor symbols in an aggregate for a different class, it makes a copy of that table, loads the missed WML document, and appears to try to add whatever symbols from the copy (modified whilst loading the WML document) are not already in the original table to it. 20180618 23:18:30<+discordbot2> And this is the part where things get really muddy because the owner of the preprocessor symbols table is a singleton that has "states". 20180618 23:18:48<+discordbot2> FREE, NEW, ACTIVE, and LOCKED. 20180618 23:19:24<+discordbot2> There's no explanation as to why that's a thing or what each state ments. 20180618 23:19:33-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Ping timeout: 264 seconds] 20180618 23:19:46< irker067> wesnoth: Pentarctagon wesnoth:1.14 2b0d01838ba6 / changelog.md: Clarify changelog entry. https://github.com/wesnoth/wesnoth/commit/2b0d01838ba60195b0930a266d2d76171ab44d38 20180618 23:19:48<+discordbot2> There's a lock() function that doesn't even appear to be called. 20180618 23:20:27<+discordbot2> Except by the config cache unit test. 20180618 23:21:21<+discordbot2> @Vultraz Feel free to benchmark cache vs. no cache runs. 20180618 23:21:33<+discordbot2> I have an SSD so isn't that less helpful 20180618 23:21:40<+discordbot2> Yes. 20180618 23:21:50<+discordbot2> And I have a high-end disk drive. 20180618 23:22:18<+discordbot2> Benchmarking this is actually more difficult than you think. 20180618 23:22:40<+discordbot2> The primary issue is that once the OS' cache gets involved, the numbers are no longer I/O-bound. 20180618 23:23:02<+discordbot2> ...running with niceness -19 ? 20180618 23:23:05<+discordbot2> It becomes more of a matter of RAM and CPU work on accessing the filesystem caches. 20180618 23:23:14<+discordbot2> Niceness is irrelevant in this case. 20180618 23:23:50<+discordbot2> I've tried running with --nocache to see if it feels any faster from a player perspective and it doesnt seem to matter at all. 20180618 23:23:56<+discordbot2> I'm pretty sure there's a way to instruct Linux to skip the cache though. 20180618 23:24:08< Ravana_> no cache being same as preprocessing addon every time? 20180618 23:24:16<+discordbot2> *skip the filesystem cache 20180618 23:25:19<+discordbot2> Actually there's a big hole in your theory. 20180618 23:26:14<+discordbot2> I'm going to use a near-worst-case scenario here. Consider an add-on with 9,000 files, which amounts to 500,000 lines of code. 20180618 23:26:39<+discordbot2> But it turns out that most of those lines are preprocessor conditionals. 20180618 23:26:48<+discordbot2> And after resolving them all you wind up with 1 line of code. 20180618 23:27:24<+discordbot2> Your final parser tree serializes as 1 line of code, compared to an input of 500,000 lines. 20180618 23:27:45<+discordbot2> Which is faster, reading the 1 line of code from a (gzipped) cache object, or doing the whole preprocessor run? 20180618 23:29:10-!- sigurdfd [sigurdfd@dynamic-acs-72-23-110-196.zoominternet.net] has joined #wesnoth-dev 20180618 23:30:25<+discordbot2> Such an addon can be created, though will this or similar case ever exist? 20180618 23:31:21<+discordbot2> I'd highly welcome people using a RAM drive to benchmark loading parsed IftU from cache vs. loading raw IftU 20180618 23:32:03<+discordbot2> I think a RAM drive would be the best way to estimate the net impact of the cache mechanism. 20180618 23:32:29<+discordbot2> Because if we start talking loading several files scattered across vs. loading a single file, from a rotational disk drive, then it gets more complicated. 20180618 23:33:01<+discordbot2> Should be easy for anyone with Linux: https://unix.stackexchange.com/questions/66329/creating-a-ram-disk-on-linux 20180618 23:33:13<+discordbot2> @Pentarctagon I was under the impression that it was not linux only 20180618 23:33:15<+discordbot2> e.g. "how many fragments does the file have? are the dentries cached already? is the filesystem in use good at enumerating large directories?" 20180618 23:33:37<+discordbot2> (The first question applies to both the cache file and the individual components that contribute to it.) 20180618 23:35:32<+discordbot2> ah, right. I suppose it'd be windows as well. I don't think the macos builds are from scons/cmake though. 20180618 23:36:36<+discordbot2> For the time being I think it's time I start writing this into code documentation and stripping the transaction class out of all the crap that is only used by the unit test until its functionality becomes more apparent. 20180618 23:37:02<+discordbot2> Peel it like an onion basically. 20180618 23:38:05<+discordbot2> And hopefully then the underlying bug will become evident and the transaction class superfluous so it can be merged back into the config manager class. 20180618 23:46:00< irker067> wesnoth: Pentarctagon wesnoth:1.14 ba010c109889 / changelog.md: Windows also has hardening enabled. https://github.com/wesnoth/wesnoth/commit/ba010c1098890b55ebc8cf6b580098947c03ca96 20180618 23:50:24<+discordbot2> so I can't do for attack in unit.attacks 20180618 23:50:42<+discordbot2> šŸ¤” 20180618 23:51:22<+discordbot2> I guess it's not actually a table 20180618 23:54:23<+discordbot2> ah, for i, attack in ipairs(unit.attacks) do works 20180618 23:55:12<+discordbot2> but turns out I actually need to use the table version since I use copyTable 20180618 23:57:53<+discordbot2> @loonycyborg not sure if it matter for boost, but -pie should probably be added to the linker options as well. regarding: https://github.com/wesnoth/wesnoth/commit/f5974941576fb541ebddb0d3e690cc469b8f5e75 20180618 23:58:46<+discordbot2> that manifest file makes a static build of boost 20180618 23:58:51<+discordbot2> no linking step is involved 20180618 23:58:59<+discordbot2> just making an ar file 20180618 23:59:06<+discordbot2> ah, ok 20180618 23:59:12-!- celticminstrel [~celmin@unaffiliated/celticminstrel] has joined #wesnoth-dev --- Log closed Tue Jun 19 00:00:02 2018