--- Log opened Sat Apr 01 00:00:33 2017 --- Day changed Sat Apr 01 2017 20170401 00:00:33< vultraz_iOS> ugh.. looks like I'm going to have a hard time making the variants take vector/map references... 20170401 00:00:35-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20170401 00:02:49< vultraz_iOS> due to constness... 20170401 00:03:34< vultraz_iOS> looks like some places got to ignore constness by constructing a new vector copy on the heap (stack?) (ie, new vector(data)) 20170401 00:05:49< vultraz_iOS> ok, I guess I can make the value classes take by value 20170401 00:06:14< vultraz_iOS> or should the variant ctors take a copy? 20170401 00:06:40< vultraz_iOS> guess it makes sense for the value classes to do so 20170401 00:06:45< vultraz_iOS> since they own the copies 20170401 00:06:53-!- RatArmy_ [~ratarmy@om126204196098.6.openmobile.ne.jp] has joined #wesnoth-dev 20170401 00:08:44< celticminstrel> The variant (and variant value) constructors should take by reference, then copy from that reference into their actual internal storage. 20170401 00:09:38< vultraz_iOS> the value ctors should not take a copy? 20170401 00:10:02< celticminstrel> If they take a copy, you'd be copying twice (assuming no optimization). 20170401 00:10:36< vultraz_iOS> oh 20170401 00:10:38< vultraz_iOS> alright 20170401 00:10:42< vultraz_iOS> i didn't know that 20170401 00:10:45< vultraz_iOS> I'll take a constref then 20170401 00:10:59< vultraz_iOS> basically, const ref everywhere 20170401 00:11:05< celticminstrel> That's why you nearly always pass class types as const ref. 20170401 00:11:27< celticminstrel> Obviously the declaration of the vector inside the class shouldn't be a reference though. 20170401 00:11:38< vultraz_iOS> right 20170401 00:11:44< celticminstrel> Which will mean that the data is copied exactly once when the class is constructed. 20170401 00:12:03< vultraz_iOS> ok 20170401 00:12:09< vultraz_iOS> hmm 20170401 00:12:51-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20170401 00:12:58< vultraz_iOS> I seem to have given both variant_container and its derived classes ownership of their containers 20170401 00:13:26< vultraz_iOS> celticminstrel: should only variant_container own the vector/map? 20170401 00:13:39< celticminstrel> Uh. What? 20170401 00:13:44< vultraz_iOS> or should variant_list/variant_map own it, and variant_container a constref 20170401 00:13:50< celticminstrel> Uh. What? 20170401 00:14:10< vultraz_iOS> variant_container is a class template 20170401 00:14:25< vultraz_iOS> variant_list and variant_map inherit from it 20170401 00:14:54< vultraz_iOS> both the derived and base classes in this case own a copy of the container 20170401 00:15:14< vultraz_iOS> which should own it? 20170401 00:15:27< celticminstrel> o.o 20170401 00:15:33< celticminstrel> I didn't even notice that before. 20170401 00:15:40< celticminstrel> You're storing two copies of the data. 20170401 00:15:44< vultraz_iOS> yes 20170401 00:15:49< vultraz_iOS> i just noticed too 20170401 00:15:55< celticminstrel> I'd say, just remove the declaration from variant_list/variant_map. 20170401 00:16:00< vultraz_iOS> I'm thinking the base class should own it? 20170401 00:16:11< celticminstrel> And make it protected in variant_container. 20170401 00:16:12< celticminstrel> Yes. 20170401 00:16:22< vultraz_iOS> protected, you say 20170401 00:20:18< vultraz_iOS> wait, no 20170401 00:20:25< vultraz_iOS> why protected 20170401 00:20:37< vultraz_iOS> there's already a public data getter 20170401 00:21:07< celticminstrel> Well sure, I suppose you could use that then. 20170401 00:21:09 * celticminstrel shrugs. 20170401 00:21:33-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20170401 00:39:25-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20170401 00:48:33-!- Appleman1234 [~Appleman1@pl34098.ag1212.nttpc.ne.jp] has joined #wesnoth-dev 20170401 00:48:52< vultraz_iOS> celticminstrel: updated the PR 20170401 00:49:58< vultraz_iOS> ah, now i have to deal with the callable thing... 20170401 00:53:54< vultraz_iOS> and it's still crashing 20170401 01:09:49-!- RatArmy_ [~ratarmy@om126204196098.6.openmobile.ne.jp] has quit [Read error: Connection reset by peer] 20170401 01:13:03-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20170401 01:22:05-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:acd8:f538:1222:af4] has joined #wesnoth-dev 20170401 01:26:19-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:acd8:f538:1222:af4] has quit [Ping timeout: 246 seconds] 20170401 01:33:25-!- louis94 [~~louis94@163.50-65-87.adsl-dyn.isp.belgacom.be] has quit [Quit: Konversation terminated!] 20170401 01:35:06< celticminstrel> What kind of crash? 20170401 01:35:29< vultraz_iOS> celticminstrel: intermittent before showing the titlescreen 20170401 01:35:34< vultraz_iOS> something wrong with a number somewhere 20170401 01:35:51< celticminstrel> ??? 20170401 01:35:55< vultraz_iOS> sometimes i get a canvas error about a non-fitting image 20170401 01:36:07< vultraz_iOS> other times the game just hangs 20170401 01:36:09< celticminstrel> Well, if you're lucky maybe I'll spot something when I review it. 20170401 01:36:42< celticminstrel> Looks like some of your emplace_back got into the first commit. 20170401 01:36:58< celticminstrel> Probably because it was on the same line as removed & 20170401 01:39:53-!- mattsc [~mattsc@wesnoth/developer/mattsc] has joined #wesnoth-dev 20170401 01:40:29< mattsc> celticminstrel: hi — I have a probably dumb question … 20170401 01:41:11< mattsc> I am trying to get one of my add-ons to work in both 1.12 and 1.13. It uses AIs with external CAs, for which the arguments have changed. 20170401 01:41:46< mattsc> So, for example, I need something:evaluation(ai) in 1.12 and something.evaluation() in 1.13. 20170401 01:42:01-!- Greg-Bog_ [~greg_bogg@c-76-115-139-154.hsd1.or.comcast.net] has joined #wesnoth-dev 20170401 01:43:14< mattsc> I can come up with several ways of doing that, but all of them involve duplicating large chunks of code just to get the arguments to be different. 20170401 01:43:33< mattsc> Is there are simple way of accomplishing this? 20170401 01:43:53< celticminstrel> ISTR there was a compatibility layer for that solely for external CAs... 20170401 01:44:07< celticminstrel> You're using the default Lua engine, right? (ie, no explicit [engine[ tag?) 20170401 01:44:24< mattsc> I thought that was for the args= parameter, not for the arguments of the functions 20170401 01:44:53< mattsc> (the former being only one of those arguments, cfg) 20170401 01:44:59< celticminstrel> The [args] tag replaces the exec_parms and eval_parms keys, but if you do that it won't work in 1.12. 20170401 01:45:14< mattsc> Right, that is not what I am talking about. 20170401 01:45:35< celticminstrel> So your function in 1.12 is...? 20170401 01:45:42< celticminstrel> Just the header line. 20170401 01:45:47< mattsc> eval/exec functions in Lua used to take (ai, cfg, self), now they take (cfg, self, data) 20170401 01:46:22< mattsc> function ca_villagers:execution(ai) 20170401 01:46:35< celticminstrel> Okay. 20170401 01:46:52< celticminstrel> So it's defined with a colon in 1.13? 20170401 01:46:55< mattsc> That’s how it is in 1.12. Needs to be for 1.13: 20170401 01:46:59< mattsc> function ca_villagers:execution() 20170401 01:47:01< celticminstrel> ^1.12 20170401 01:47:26< mattsc> Note the missing ‘ai’ 20170401 01:47:36< celticminstrel> Right, because "ai" is in the global scope. 20170401 01:47:42< mattsc> yes 20170401 01:48:10< celticminstrel> So if you included it you would actually be unable to access the AI functions... because "ai" would actually hold "cfg"... 20170401 01:48:24< mattsc> Exactly 20170401 01:48:51< celticminstrel> But there's a wesnoth.compare_versions function, right? 20170401 01:48:59< mattsc> Right 20170401 01:49:15< mattsc> But if I use that, I need to put the entire function into it and duplicate it. 20170401 01:49:33< mattsc> Or I could use it on the WML level, and have two files, one for 1.12 and one for 1.13. 20170401 01:49:55< mattsc> That’s what I mean, I have several ways of doing it, but they include lots of duplication. 20170401 01:50:27< celticminstrel> Couldn't you do it with just a line or two at the top of each function? 20170401 01:50:35< celticminstrel> Declare the function like this: 20170401 01:50:45< celticminstrel> function ca_villagers:execution(stuff) 20170401 01:50:50< celticminstrel> (Whatever varname you want) 20170401 01:50:56< mattsc> Yeah ... 20170401 01:51:04< celticminstrel> And if on 1.12, assign stuff to ai, else ignore it. 20170401 01:51:14< mattsc> I was thinking about that too. 20170401 01:51:20< celticminstrel> A bit more involved if you need cfg, but should still work I think. 20170401 01:52:02< celticminstrel> That could even be factored out into a small utility function that does all the work for you. 20170401 01:52:03< mattsc> So you need: local ai = ai 20170401 01:52:06< mattsc> before that, right? 20170401 01:52:20< celticminstrel> Maybe? 20170401 01:52:20-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has joined #wesnoth-dev 20170401 01:52:52-!- RatArmy_ [~ratarmy@om126204196098.6.openmobile.ne.jp] has joined #wesnoth-dev 20170401 01:52:56< mattsc> Well, I cannot assign it inside the “ if compare_version”, and I cannot reassign it in 1.3. 20170401 01:53:00< mattsc> *1.13 20170401 01:53:06< mattsc> But i think that would work. 20170401 01:53:38< celticminstrel> I think "local ai = ai" would work, yes, and if <= 1.12, assign ai = stuff instead. 20170401 01:54:02< celticminstrel> vultraz_iOS: Is const_formula_callable_vec used solely for the "seen" array in the debug string implementation? 20170401 01:54:03< mattsc> Yeah … 20170401 01:54:13< mattsc> Okay, so I guess there isn’t something more CS-y that I don’t know about that you always use in cases like this … 20170401 01:54:30< vultraz_iOS> Pretty sure yes 20170401 01:54:35-!- Greg-Bog_ [~greg_bogg@c-76-115-139-154.hsd1.or.comcast.net] has quit [Ping timeout: 240 seconds] 20170401 01:54:46< mattsc> celticminstrel: Thanks, and sorry for the bother. 20170401 01:54:51< celticminstrel> vultraz_iOS: So why does it need to be public? 20170401 01:54:59< celticminstrel> mattsc: No problem. 20170401 01:55:26< vultraz_iOS> Might use it to declare said vectors 20170401 01:55:42< celticminstrel> I think it'd be nice if it could be demoted to a mere implementation detail, though... 20170401 01:56:03< celticminstrel> So that the caller doesn't need to care about it. 20170401 01:57:59< celticminstrel> Sooooooo many removed &'s... o.o 20170401 02:08:05-!- celticminstrel [~celmin@unaffiliated/celticminstrel] has quit [Ping timeout: 240 seconds] 20170401 02:10:13-!- celticminstrel [~celmin@unaffiliated/celticminstrel] has joined #wesnoth-dev 20170401 02:13:46< celticminstrel> vultraz_iOS: I thought you said you changed the variant constructor to take formula_callable by reference? 20170401 02:14:18< vultraz_iOS> No, the map and list ctors 20170401 02:14:25< vultraz_iOS> You told me to leave callable as a pointer 20170401 02:15:46-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20170401 02:27:23< celticminstrel> I did? 20170401 02:27:34< celticminstrel> Well, whatever... 20170401 02:31:23< celticminstrel> There might be good reasons for the variant not to own the callable... not sure. 20170401 02:32:18< celticminstrel> I guess if you refactor variant_iterator it'll be as a separate commit. 20170401 02:34:43< vultraz_iOS> probably 20170401 02:35:22< vultraz_iOS> hmmm 20170401 02:35:32< celticminstrel> I feel like you missed some of my comments. 20170401 02:35:33 * vultraz_iOS ponders 20170401 02:35:40< vultraz_iOS> celticminstrel: i fif? 20170401 02:35:42< vultraz_iOS> did 20170401 02:35:43< vultraz_iOS> ? 20170401 02:35:54< vultraz_iOS> oh yeah, the stuff about .get 20170401 02:35:57< vultraz_iOS> haven't gotten to that yet 20170401 02:36:36< celticminstrel> Okay, time to see if you're null-safe. 20170401 02:36:40< celticminstrel> operator[] seems fine. 20170401 02:36:47< celticminstrel> (Currently looking through variant.) 20170401 02:37:02< celticminstrel> I assume both the is_callable() and must_be checks would fail if it was null. 20170401 02:38:25< celticminstrel> I won't list all the ones that look fine though, I'll just comment if I see one that isn't. 20170401 02:40:32< celticminstrel> Sorry, I seem to also notice unrelated things and can't help commenting on them... >_> 20170401 02:41:58-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20170401 02:46:35< celticminstrel> You're not null-safe BTW. 20170401 02:46:40< vultraz_iOS> oh? 20170401 02:46:43< vultraz_iOS> tell me more 20170401 02:47:04< celticminstrel> You have tons of places where you're accessing value_ without checking if it's null. 20170401 02:47:14< celticminstrel> I'm noting each one down in my review #2. 20170401 02:47:38< vultraz_iOS> maybe that's the crash 20170401 02:47:40< mattsc> celticminstrel: just FYI, it’s as simple as this: https://pastebin.com/6yBpqKWK 20170401 02:47:59< celticminstrel> Fun! 20170401 02:48:10< mattsc> I have 14 instances of this, so I decided to write a util function, just as you said (but I don’t need the third argument) 20170401 02:56:01< celticminstrel> Still not happy with the virtual operator== and operator<= 20170401 02:56:38-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has quit [Remote host closed the connection] 20170401 02:57:22-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has joined #wesnoth-dev 20170401 02:57:23-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has quit [Remote host closed the connection] 20170401 02:57:36-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has joined #wesnoth-dev 20170401 02:58:00-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has quit [Remote host closed the connection] 20170401 03:06:04< celticminstrel> vultraz_iOS: Review #2 submitted. 20170401 03:06:21< celticminstrel> I noted the exact locations of all the places where I saw potential null pointer accesses. 20170401 03:07:00< celticminstrel> If you're lucky, it might be safe since IIRC they're all functions that don't access "this", but it's still undefined behaviour or something. 20170401 03:07:43< celticminstrel> And consider going over the non-outdated comments from the previous review again, too. 20170401 03:11:09< vultraz_iOS> celticminstrel: I really don't understand how it's nullptr access 20170401 03:11:19< vultraz_iOS> the shared_ptr points to an object :/ 20170401 03:11:23< vultraz_iOS> which just happens to be the base 20170401 03:11:48-!- JyrkiVesterinen [~JyrkiVest@87-100-130-215.bb.dnainternet.fi] has joined #wesnoth-dev 20170401 03:11:52< celticminstrel> No it doesn't. 20170401 03:12:34< celticminstrel> The default variant constructor doesn't populate value_. 20170401 03:13:23< vultraz_iOS> ...oh 20170401 03:13:51< celticminstrel> That's why I suggested adding a static member of variant_value_base to represent null and populating it with that. 20170401 03:16:32< JyrkiVesterinen> 20170401 00:08:44< celticminstrel> The variant (and variant value) constructors should take by reference, then copy from that reference into their actual internal storage. 20170401 03:16:38< JyrkiVesterinen> 20170401 00:10:02< celticminstrel> If they take a copy, you'd be copying twice (assuming no optimization). 20170401 03:16:42< JyrkiVesterinen> That's wrong. 20170401 03:16:45< JyrkiVesterinen> https://joseluisestebanaparicio.blogspot.com/2010/06/want-speed-pass-by-value.html 20170401 03:16:53< JyrkiVesterinen> "Guideline: Don’t copy your function arguments. Instead, pass them by value and let the compiler do the copying." 20170401 03:17:21< vultraz_iOS> celticminstrel: are you saying implement a static member in the value base class? 20170401 03:17:35< celticminstrel> JyrkiVesterinen: ??? 20170401 03:17:59< JyrkiVesterinen> The blog post I referenced explains it. 20170401 03:18:00< celticminstrel> My point there was for the constructor argument to be a reference because it's being copied into the class... 20170401 03:18:26< JyrkiVesterinen> Compilers can elide implicit copying when function parameters are passed by value. 20170401 03:18:37< celticminstrel> They can, but IIRC it's not required. 20170401 03:18:49< JyrkiVesterinen> They can't elide explicit copying where a parameter is passed by reference and then copied. 20170401 03:18:59< celticminstrel> Passing in a reference instead of returning a value (as the blog post shows) isn't great though. 20170401 03:19:43< celticminstrel> What I was recommending to vultraz was roughly "variant_container(const T& v) : container(v) {}" 20170401 03:20:29< celticminstrel> A copy is required at some point regardless. 20170401 03:20:30< JyrkiVesterinen> AFAIK, even in constructors passing by value has potential to be faster. 20170401 03:20:54< celticminstrel> But also has potential to be slower, right? 20170401 03:21:13< JyrkiVesterinen> Yes, it's also possible. 20170401 03:21:41< JyrkiVesterinen> I'd expect slowdown to only occur in debug builds, and performance of debug builds doesn't matter much anyway. 20170401 03:21:50< celticminstrel> Fair enough. 20170401 03:22:21< celticminstrel> Though if debug builds perform signficantly worse than release builds it could make testing harder. :P 20170401 03:24:14< celticminstrel> Something is wrong with the code snippets on that blog post, they're showing without line breaks. 20170401 03:24:40< JyrkiVesterinen> It's because the post is a mirror. The original is no longer online. 20170401 03:25:24< celticminstrel> It's true that if you intend to copy the argument anyway and the change it, then passing by value makes more sense. 20170401 03:25:35< celticminstrel> It's also one less line of code. 20170401 03:25:55< celticminstrel> I'm not sure it makes sense in this case though. 20170401 03:27:19< celticminstrel> FTR, the specific case here is this: https://github.com/wesnoth/wesnoth/pull/967/files/3c93371627f03e3b77a2f2da460c55ad56e67d31#diff-69f97f8bedc78f92d484f151d3b9271aR359 20170401 03:27:36< celticminstrel> Also, BTW, I guess you have nothing to say on the topic of PR966? 20170401 03:27:46< celticminstrel> Even just about whether the new execute functions make sense. 20170401 03:28:48< JyrkiVesterinen> I gave a bit of feedback on Discord. In particular, the general idea of using a template to implement the value storage is good. 20170401 03:32:18< celticminstrel> Ah, sorry, I meant my PR, not Vultraz's (which is 967). 20170401 03:37:30< JyrkiVesterinen> Oh. My fault. I assumed you were talking about vultraz's PR. 20170401 03:38:21< JyrkiVesterinen> The biggest change in your PR is that you now use polymorphism for dispatch. It's a good thing, since formula_ai::execute_variant() is simply too long. 20170401 03:38:41< JyrkiVesterinen> I haven't looked any more closely. I'm not really an expert on AI code. 20170401 04:07:43-!- mattsc [~mattsc@wesnoth/developer/mattsc] has quit [Quit: So long and thanks for all the fish.] 20170401 04:37:19< celticminstrel> vultraz_iOS: PR968? 20170401 04:37:53-!- irker447 [~irker@uruz.ai0867.net] has joined #wesnoth-dev 20170401 04:37:53< irker447> wesnoth: sigurdfdragon wesnoth:master dde1854ba012 / data/gui/window/mp_create_game.cfg: MP: Use title case for all use_map_settings options https://github.com/wesnoth/wesnoth/commit/dde1854ba012829db400ac6d93134ac58eddb036 20170401 04:38:15< celticminstrel> Okay so just to clarify... Linaera is only ever a leader? 20170401 04:38:45< vultraz_iOS> can't remember 20170401 04:39:51< irker447> wesnoth: Jeffrey 'Sigurd' Westcoat wesnoth:master 14239c6911cb / data/campaigns/An_Orcish_Incursion/utils/characters.cfg: AOI: Remove unnecessary trait (#969) https://github.com/wesnoth/wesnoth/commit/14239c6911cb4212336b4992ca3b8f7154b772ba 20170401 04:39:53< celticminstrel> Yup. 20170401 04:41:19< celticminstrel> So how's that variant work going? If you take too long I might just merge PR966 first. :P 20170401 04:41:33< vultraz_iOS> working 20170401 05:03:36-!- celticminstrel is now known as celmin|sleep 20170401 05:16:16-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20170401 05:16:22-!- janebot_ [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth-dev 20170401 05:16:22-!- janebot_ is now known as janebot 20170401 05:41:47-!- Kwandulin [~Kwandulin@p200300760F3E7D2F9969717DFE69DB72.dip0.t-ipconnect.de] has joined #wesnoth-dev 20170401 05:50:30-!- boucman [~rosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20170401 07:12:08-!- atarocch [~atarocch@37.177.44.93] has joined #wesnoth-dev 20170401 07:15:34-!- atarocch [~atarocch@37.177.44.93] has quit [Remote host closed the connection] 20170401 07:16:59< Kwandulin> Ui, the bugged healing animation thing is uglier than I imagined 20170401 07:22:11-!- RatArmy_ [~ratarmy@om126204196098.6.openmobile.ne.jp] has quit [Read error: Connection reset by peer] 20170401 07:31:08-!- RatArmy_ [~ratarmy@om126204196098.6.openmobile.ne.jp] has joined #wesnoth-dev 20170401 07:31:50-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20170401 07:36:39-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Client Quit] 20170401 07:40:30-!- irker447 [~irker@uruz.ai0867.net] has quit [Quit: transmission timeout] 20170401 07:47:45-!- vultraz_iOS [uid24821@wesnoth/developer/vultraz] has quit [Quit: Connection closed for inactivity] 20170401 07:50:38-!- ChipmunkV [~vova@static-89-94-113-91.axione.abo.bbox.fr] has joined #wesnoth-dev 20170401 08:01:38-!- Kwandulin [~Kwandulin@p200300760F3E7D2F9969717DFE69DB72.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20170401 08:03:57-!- RatArmy_ [~ratarmy@om126204196098.6.openmobile.ne.jp] has quit [Read error: Connection reset by peer] 20170401 08:36:33-!- Kwandulin [~Kwandulin@p200300760F3E7D2FC58A2937E170D09B.dip0.t-ipconnect.de] has joined #wesnoth-dev 20170401 08:38:42-!- RatArmy_ [~ratarmy@om126204196098.6.openmobile.ne.jp] has joined #wesnoth-dev 20170401 08:44:33-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20170401 08:45:01-!- Appleman1234 [~Appleman1@pl34098.ag1212.nttpc.ne.jp] has quit [Ping timeout: 260 seconds] 20170401 08:48:56< zookeeper> celmin|sleep, maybe then don't merge stuff like that if you yourself know that you don't know whether it's okay? 20170401 08:49:48< zookeeper> she's in the next scenario so the trait needs to be added for her there. 20170401 08:50:33-!- mjs-de [~mjs-de@x4e30e8a0.dyn.telefonica.de] has joined #wesnoth-dev 20170401 08:50:56< zookeeper> but indeed leaders shouldn't have loyal, so at least it's halfway there now :p 20170401 08:51:16-!- vultraz_iOS [uid24821@wesnoth/developer/vultraz] has joined #wesnoth-dev 20170401 08:57:23-!- RatArmy_ [~ratarmy@om126204196098.6.openmobile.ne.jp] has quit [Read error: Connection reset by peer] 20170401 09:28:04-!- RatArmy_ [~ratarmy@om126204196098.6.openmobile.ne.jp] has joined #wesnoth-dev 20170401 09:44:06< Kwandulin> zookeeper: made some more adjustments regarding the buttons and the face. kaleh's face looked a bit like a snout 20170401 09:46:23< zookeeper> a single pixel can do a lot :P 20170401 09:51:35-!- mjs-de [~mjs-de@x4e30e8a0.dyn.telefonica.de] has quit [Remote host closed the connection] 20170401 09:52:22< Kwandulin> yeah :> 20170401 09:54:49-!- mjs-de [~mjs-de@x4e30e8a0.dyn.telefonica.de] has joined #wesnoth-dev 20170401 09:56:53-!- mjs-de [~mjs-de@x4e30e8a0.dyn.telefonica.de] has quit [Remote host closed the connection] 20170401 09:58:09< Kwandulin> Something left to do regarding those 2? 20170401 10:00:04< zookeeper> well, the baldric i guess? 20170401 10:00:50< zookeeper> other than that, i guess not for now at least? i might tweak a pixel here and there before putting them in, but probably nothing major 20170401 10:01:12< Kwandulin> not sure if that*d make too much sense, as the hand would be in front of it anyway 20170401 10:01:57-!- Appleman1234 [~Appleman1@pl19584.ag1212.nttpc.ne.jp] has joined #wesnoth-dev 20170401 10:01:58< Kwandulin> oh and the lower side of kaleh's bow should show, just like nym's? 20170401 10:03:23< zookeeper> yeah, looks like it should 20170401 10:21:16-!- atarocch [~atarocch@151.41.104.21] has joined #wesnoth-dev 20170401 10:25:45-!- atarocch [~atarocch@151.41.104.21] has quit [Remote host closed the connection] 20170401 10:33:07-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20170401 10:33:13-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth-dev 20170401 10:46:23-!- JyrkiVesterinen [~JyrkiVest@87-100-130-215.bb.dnainternet.fi] has quit [Quit: .] 20170401 11:07:32-!- ChipmunkV [~vova@static-89-94-113-91.axione.abo.bbox.fr] has quit [Ping timeout: 240 seconds] 20170401 11:08:07< Kwandulin> Alright, added the missing bow part and updated the post. My job seems to be done with those 2 then, unless there's still some bigger changes you'd like to have (at a later point), e.g. a colour change for Nym's hair 20170401 11:10:55< zookeeper> great, thanks! 20170401 11:20:53-!- ChipmunkV [~vova@static-89-94-113-91.axione.abo.bbox.fr] has joined #wesnoth-dev 20170401 11:21:54-!- prkc [~prkc@46.166.188.210] has quit [Quit: Leaving] 20170401 11:31:06-!- Duthlet [~Duthlet@dslb-188-106-146-119.188.106.pools.vodafone-ip.de] has joined #wesnoth-dev 20170401 11:47:30< Kwandulin> zookeeper: the first one looks like a perfect quenoth shaman https://forums.wesnoth.org/viewtopic.php?p=514431#p514431 20170401 11:48:04< Kwandulin> some further changes to the skin tone might be needed, though 20170401 11:56:41< zookeeper> sure, it's pretty good 20170401 12:16:04< vultraz_iOS> those are ancient 20170401 12:16:11< vultraz_iOS> would not recommend use 20170401 12:16:43< zookeeper> why would you not? 20170401 12:17:02< zookeeper> usually recommendations to not use something come with some kind of reasoning :p 20170401 12:26:33< Kwandulin> https://www.dropbox.com/s/w3bi0cnt4i9r9o4/shaman.png?dl=0 20170401 12:26:42< Kwandulin> staff needs to be slimmer, imo 20170401 12:31:33< vultraz_iOS> it's not very good 20170401 12:31:43< vultraz_iOS> it's only accaptable 20170401 12:31:45< vultraz_iOS> acceptable 20170401 12:34:52-!- JyrkiVesterinen [~JyrkiVest@87-100-130-215.bb.dnainternet.fi] has joined #wesnoth-dev 20170401 12:42:47< zookeeper> i think the main problem i've always had with that sprite is that the lower body looks undersized 20170401 12:42:57< zookeeper> compared to the head and upper body 20170401 12:43:20< zookeeper> and that also makes the hand seem massive 20170401 12:43:58< Kwandulin> noted 20170401 12:46:43-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20170401 12:52:42-!- Kwandulin [~Kwandulin@p200300760F3E7D2FC58A2937E170D09B.dip0.t-ipconnect.de] has quit [Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org] 20170401 12:56:48-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has quit [Read error: Connection reset by peer] 20170401 12:56:54-!- bumba [~bumbadada@wesnoth/developer/bumbadadabum] has joined #wesnoth-dev 20170401 13:46:55-!- Kwandulin [~Kwandulin@p200300760F3E7D2FF03B0933BAA8C675.dip0.t-ipconnect.de] has joined #wesnoth-dev 20170401 13:52:26-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20170401 13:56:44-!- Duthlet [~Duthlet@dslb-188-106-146-119.188.106.pools.vodafone-ip.de] has quit [Ping timeout: 260 seconds] 20170401 14:00:09< loonycyborg> vultraz_iOS: from gui point of view would it be possible to allow player chat on the lobby(and potentially in rooms) while being in game? 20170401 14:00:36< vultraz_iOS> not presently, no 20170401 14:00:53< vultraz_iOS> unless they used whispers 20170401 14:01:39< loonycyborg> I mean 20170401 14:01:51< loonycyborg> would allowing it in the future be a good idea? 20170401 14:02:30< vultraz_iOS> possibly, yes 20170401 14:02:30< loonycyborg> I know that currently it automatically boots you from lobby and rooms 20170401 14:02:55< vultraz_iOS> that's how dota does it too, I think, except for your party's room, and we don't have parties. 20170401 14:03:12< vultraz_iOS> then again, a huge game like dota doesn't have a lobby 20170401 14:03:42< vultraz_iOS> it has region-based rooms and I.. actually don't know if you get booted from yours once you enter the game. 20170401 14:03:58< vultraz_iOS> probably not, actually, since you can peak at the main menu while in-game... 20170401 14:04:11< vultraz_iOS> for our purposes, I would imagine being kicked from the lobby at least once a game begins 20170401 14:04:43< loonycyborg> we could allow user to open a lobby window in game 20170401 14:04:48< loonycyborg> optionally 20170401 14:24:48-!- RatArmy_ [~ratarmy@om126204196098.6.openmobile.ne.jp] has quit [Read error: Connection reset by peer] 20170401 14:31:34-!- mattsc [~mattsc@wesnoth/developer/mattsc] has joined #wesnoth-dev 20170401 14:34:26< mattsc> zookeeper: hi — do you have an opinion on https://forums.wesnoth.org/viewtopic.php?f=38&t=16994&p=610006#p610006 20170401 14:54:50< zookeeper> mattsc, without playtesting it myself, no idea 20170401 14:55:55< mattsc> yeah, same here; and me play testing it on nightmare is not going to happen 20170401 14:56:19< mattsc> I find it very difficult to judge what somebody saying “this expert level campaign is too hard on nightmare” means. 20170401 14:56:56< mattsc> But … he did finish, so I’d say we’re good. 20170401 14:58:03< zookeeper> but i don't really even understand all he's talking about. he's talking about some invisible elvish forces even though there's no elves in either scenario. 20170401 14:58:15< mattsc> Just for reference, I did play some scenarios on nightmare back then, but not all of them. I did the balancing on medium difficulty. There were two other people who did the nightmare testing. 20170401 14:58:17-!- Greg-Boggs [~greg_bogg@c-76-115-139-154.hsd1.or.comcast.net] has joined #wesnoth-dev 20170401 14:59:03< mattsc> That comment is about Silent Forest. With lots of “invisble” (under fog) elves. 20170401 14:59:51< zookeeper> right 20170401 15:00:34< zookeeper> in that case this isn't related to that comment after all: the only thing i can say is that i think even on nightmare, winning shouldn't require one to abuse AI shortcomings or inside knowledge of where hidden units are, and so forth. 20170401 15:02:16< mattsc> I agree with that 20170401 15:02:30< zookeeper> of course it's hard to define where the threshold is, but i mainly just mean that even on hardest difficulties it shouldn't be a matter of requiring the player to cheese their way through with trial-and-error chess moves which only make sense because empirically against the current AI they happen to work 20170401 15:03:17< mattsc> Right. And we certainly tried to avoid that back then. 20170401 15:04:03< mattsc> As a related side note, I go as far as not using units 1 XP from leveling at the front line when playing. 20170401 15:04:17< mattsc> Before 1.13, that is. 20170401 15:05:27< zookeeper> i wish people posted their beginning-of-scenario saves when talking about a scenario being too hard 20170401 15:05:36< mattsc> But, for example, is keeping you unit 1 hex away from where the enemy can reach you, so that the AI does not come for that unit, cheating or good strategy? 20170401 15:06:07< mattsc> There’s obviously not a hard line when it comes to that, and people’s opinions will vary. 20170401 15:06:18< zookeeper> it's like, how am i going to test that myself? i can't play through the campaign to accrue what i think is a reasonable recall list, nor can i know exactly what kind of unit set and gold i might reasonably be expected to have if i haven't played the campaign in a while 20170401 15:06:52< mattsc> right 20170401 15:06:59< zookeeper> on the easier difficulties i can just try things with no recalls and default gold 20170401 15:07:09< zookeeper> because they should be beatable then 20170401 15:07:33< zookeeper> but SotBE:16 on nightmare? i'm not sure if i could even get that far myself without cheating... :p 20170401 15:08:14< mattsc> yeah … 20170401 15:08:30< mattsc> I’d be very hesitant to say that just because I cannot do it, it’s impossible 20170401 15:08:51< mattsc> and the scenarios I tried, I actually could beat on nightmare 20170401 15:09:05< mattsc> thus, the conclusion must be that nightmare’s still too easy :P 20170401 15:10:51< mattsc> jokes aside though and realistically speaking, I’m in no position to do much about this 20170401 15:11:55< zookeeper> a dedicated campaign balancer would be a good position for someone to fill :p 20170401 15:13:14< mattsc> yeah 20170401 15:28:42< Kwandulin> https://www.dropbox.com/s/js5t3dqzcyr29vz/shaman.png?dl=0 increased leg length by 1px and reduced hand size 20170401 15:30:40< celmin|sleep> zookeeper: I did check before merging the AoI PR after vultraz said he didn't know, but I guess not thoroughly enough. 20170401 15:31:27-!- celmin|sleep is now known as celticminstrel 20170401 15:44:59-!- Greg-Boggs [~greg_bogg@c-76-115-139-154.hsd1.or.comcast.net] has quit [Remote host closed the connection] 20170401 15:51:20< vultraz_iOS> not sure what to do about the failing tests 20170401 15:59:57< celticminstrel> I made another couple of comments. 20170401 16:00:58< celticminstrel> error: no matching conversion for functional-style casat from 'const mck_char' to 'variant'. 20170401 16:00:59< celticminstrel> What. 20170401 16:01:02< vultraz_iOS> why should I not store a container iterator in variant_container? 20170401 16:01:11< celticminstrel> ^mock_char 20170401 16:01:14< celticminstrel> Ohhh right. 20170401 16:01:25< celticminstrel> mock_char is a formula_callable IIRC. 20170401 16:01:41< celticminstrel> vultraz_iOS: Because it can't be expected to remain valid indefinitely. 20170401 16:01:52< vultraz_iOS> ok 20170401 16:02:14< celticminstrel> src/tests/test_formula_core.cpp:52:11: error: no matching conversion for functional-style cast from 'const mock_char' to 'variant' 20170401 16:02:15< celticminstrel> src/formula/variant.hpp:57:11: note: candidate constructor not viable: no known conversion from 'const mock_char' to 'const game_logic::formula_callable *' for 1st argument; take the address of the argument with & 20170401 16:02:24< celticminstrel> ^ That might answer your question regarding the tests. 20170401 16:03:30< celticminstrel> Did the old variant take formula_callables by reference or something? 20170401 16:03:38< vultraz_iOS> no 20170401 16:03:58< vultraz_iOS> i might have screwed something up in a blanketremoval of & 20170401 16:04:07< celticminstrel> Ahh, maybe. 20170401 16:04:15< celticminstrel> That would do it. 20170401 16:07:58< vultraz_iOS> i did notice & is necessary in one place 20170401 16:08:06< vultraz_iOS> so ill have to review my changes in the tests 20170401 16:14:45< celticminstrel> Well, it's necessary there because that's not a list or map. 20170401 16:16:22-!- mattsc [~mattsc@wesnoth/developer/mattsc] has quit [Quit: So long and thanks for all the fish.] 20170401 16:28:18-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has joined #wesnoth-dev 20170401 16:29:00-!- bumba [~bumbadada@wesnoth/developer/bumbadadabum] has quit [Ping timeout: 256 seconds] 20170401 16:32:54-!- mjs-de [~mjs-de@x4e30e8a0.dyn.telefonica.de] has joined #wesnoth-dev 20170401 16:34:18-!- gfgtdf [~chatzilla@x4e369ba0.dyn.telefonica.de] has joined #wesnoth-dev 20170401 16:46:02< vultraz_iOS> celticminstrel: I'm going to make the whole seen_stack thing local to formula_callable::get_debug_string 20170401 16:46:31< vultraz_iOS> all function calls of varian::to_debug_string pass nullptr for that argument, meaning the stack is only local to said function 20170401 16:46:36< vultraz_iOS> and only callable uses it 20170401 16:46:46< celticminstrel> Um. 20170401 16:47:17< celticminstrel> The stack is certainly not local to the function. 20170401 16:47:32 * celticminstrel ponders. 20170401 16:47:49< vultraz_iOS> the stack is local 20170401 16:47:57< vultraz_iOS> the *seen* stack 20170401 16:48:00< vultraz_iOS> not the call stack 20170401 16:48:25< vultraz_iOS> I can certainly leave it within the context of to_debug_string 20170401 16:48:27< celticminstrel> So you're saying that everytime to_debug_string is called, it passes null? 20170401 16:48:54< vultraz_iOS> yes, anytime it's called with that argument it gets nullptr 20170401 16:48:56-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has quit [Remote host closed the connection] 20170401 16:49:10< vultraz_iOS> so I'm removing it 20170401 16:49:15< celticminstrel> Pretty sure you're missing something. 20170401 16:49:30< vultraz_iOS> nope 20170401 16:49:33-!- Greg-Boggs [~greg_bogg@c-76-115-139-154.hsd1.or.comcast.net] has joined #wesnoth-dev 20170401 16:49:33< celticminstrel> (It would make more sense to reverse the order of the two arguments, though.) 20170401 16:49:52< vultraz_iOS> keep in mind the stack is created locally in to_debug_string if the stack arg is nullptr 20170401 16:50:17< vultraz_iOS> so there always *is* a stack, but it's never passed in 20170401 16:50:21< celticminstrel> In the original code there are three instances where a (potentially) non-null seen stack is passed to to_debug_string. 20170401 16:50:38-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Remote host closed the connection] 20170401 16:50:41< vultraz_iOS> where? 20170401 16:50:55-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has joined #wesnoth-dev 20170401 16:50:55< celticminstrel> I'm only looking at a grep here, but most likely all three calls are from within to_debug_string. 20170401 16:51:01< vultraz_iOS> where 20170401 16:51:20< vultraz_iOS> probably, since to_debug_string had circular arguments for list 20170401 16:51:33< vultraz_iOS> a/arguments/calls 20170401 16:51:50< vultraz_iOS> hmmm 20170401 16:52:02< celticminstrel> Oh, four calls actually. 20170401 16:52:03< vultraz_iOS> actually, that might be the reason for the argument.. so the stack persists over iterations 20170401 16:52:14< celticminstrel> One for lists, one for callables, and two for maps. 20170401 16:52:21< celticminstrel> And yes, all from within to_debug_string. 20170401 16:52:28< vultraz_iOS> for callable? 20170401 16:52:38< vultraz_iOS> ah yes 20170401 16:53:03< celticminstrel> That is indeed the reason for the argument. 20170401 16:53:05< vultraz_iOS> ok 20170401 16:53:44< vultraz_iOS> though 20170401 16:53:47< vultraz_iOS> actually 20170401 16:53:50< vultraz_iOS> with my new impl.. 20170401 16:54:16< vultraz_iOS> shouldn't each type's debug string getter call itself recursively? 20170401 16:54:25< vultraz_iOS> not variant::to_debug_string? 20170401 16:54:29< celticminstrel> Uh, no? 20170401 16:54:46< celticminstrel> Because the contents are variants, not recursively the same type. 20170401 16:54:47< vultraz_iOS> oh right, it's variant storage 20170401 16:54:48< vultraz_iOS> ok 20170401 16:55:02< vultraz_iOS> i'll switch the arguments, at least 20170401 16:55:04< celticminstrel> But they certainly need to have the seen stack so they can pass it along to to_debug_string. 20170401 16:55:37< celticminstrel> There are like, three places where the second argument is passed as true, so you'll just need to remove nullptr in those cases. 20170401 16:55:48< vultraz_iOS> yes 20170401 17:10:25-!- DeFender1031 [~DeFender1@217.132.17.168] has joined #wesnoth-dev 20170401 17:11:31-!- Greg-Boggs [~greg_bogg@c-76-115-139-154.hsd1.or.comcast.net] has quit [Remote host closed the connection] 20170401 17:12:41-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has joined #wesnoth-dev 20170401 17:15:24< vultraz_iOS> celticminstrel: actually, what if I make the stack static in variant and use a bool argument in the same method instead 20170401 17:16:25< celticminstrel> I think that would work, but only if to_debug_string never throws an exception in any circumstance. 20170401 17:16:54< celticminstrel> And it'll still need to pass in a reference to the stack to the variant value, right? 20170401 17:17:20< vultraz_iOS> But why 20170401 17:17:24< vultraz_iOS> If it's static 20170401 17:17:36< celticminstrel> I assumed you meant private static. 20170401 17:17:51< vultraz_iOS> Ah, no, public static 20170401 17:18:17< celticminstrel> Public static isn't great since it implies anyone can mess with the seen stack, but it would certainly work at least. 20170401 17:18:45< celticminstrel> There's also the possibility of private static with friend declarations. 20170401 17:24:15-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has quit [Remote host closed the connection] 20170401 17:38:36< vultraz_iOS> actually, since it's only for callable, it should be static in variant_callable, I think 20170401 17:42:15< celticminstrel> It's not only for callable? 20170401 17:42:30< celticminstrel> It's at least relevant with lists and maps. 20170401 17:42:35< vultraz_iOS> it's a vector of callable 20170401 17:42:48< celticminstrel> Yes it only contains callables, but it's relevant with lists and maps. 20170401 17:43:19< vultraz_iOS> but it's not used there. it's only passed back to to_debug_string. 20170401 17:43:56< celticminstrel> Which is why it's relevant. 20170401 17:44:13< celticminstrel> Pasing it back to to_debug_string also counts as using it. 20170401 17:44:23< celticminstrel> ^Passing 20170401 17:44:31< vultraz_iOS> no, not if I change the second argument of to_debug_string to a bool 20170401 17:44:34< vultraz_iOS> clear_stack 20170401 17:44:36< vultraz_iOS> def true 20170401 17:44:48< vultraz_iOS> any value impl that loops back can call it with false 20170401 17:44:59< vultraz_iOS> keeping a singular entry point 20170401 17:45:03< celticminstrel> No it can't. 20170401 17:45:40< vultraz_iOS> it can't what? 20170401 17:45:56< celticminstrel> For example, if you call to_debug_string() on the output of the formula "[p, p, p] where p = pair('abc', 5)", it should display as something like "[{key -> 'abc', value -> 5}, ..., ...]" IIUC because that single pair is used three times in the list. 20170401 17:46:21< vultraz_iOS> and....? 20170401 17:46:47< celticminstrel> Ah sorry, it'd be {...} not just ... 20170401 17:46:59< celticminstrel> So the list and map implementation can't simply call with false? 20170401 17:47:14< vultraz_iOS> ...what? 20170401 17:47:52< vultraz_iOS> the debug output function for the container class does not touch the contents of the stack 20170401 17:48:01< celticminstrel> The ENTIRE POINT of the seen stack is so that, if a formula callable object is referenced multiple times, it only gets shown once. 20170401 17:48:10< vultraz_iOS> yes 20170401 17:48:13< celticminstrel> All further instances of it are then collapsed into {...} 20170401 17:48:24< vultraz_iOS> and? 20170401 17:48:40< celticminstrel> Passing verbose=true prevents the seen stack from being populated at all. 20170401 17:48:52< vultraz_iOS> yes 20170401 17:49:08< celticminstrel> So if the original caller passed verbose=true, that needs to be passed all the way through. 20170401 17:49:20< vultraz_iOS> of course 20170401 17:49:31< vultraz_iOS> verbose will be propagated 20170401 17:49:37< celticminstrel> So the container implementation of to_debug_string can't simply pass false. 20170401 17:49:57< vultraz_iOS> false to a *second bool argument* 20170401 17:49:59< celticminstrel> Oh wait, you're talking about something slightly different. Hold on while I ponder. 20170401 17:55:32-!- lobby [~wesnoth@wesnoth/bot/lobby] has joined #wesnoth-dev 20170401 17:55:32-!- Topic for #wesnoth-dev: Wesnoth Developers Channel | >>> Want to help? Go here: http://r.wesnoth.org/t42911 (and thanks!) <<< | Discord Server: https://discord.gg/tSmJS2E | Logs: http://irclogs.wesnoth.org | Bug tracker: http://bugs.wesnoth.org 20170401 17:55:32-!- Topic set by vultraz_iOS [uid24821@wesnoth/developer/vultraz] [Wed Mar 22 08:25:35 2017] 20170401 17:55:32[Users #wesnoth-dev] 20170401 17:55:32[ abruanese ] [ clavi ] [ gfgtdf ] [ kidneb ] [ noy ] [ timotei_ ] 20170401 17:55:32[ aeth ] [ crimson_penguin] [ heirecka ] [ knotwork__ ] [ nurupo ] [ tomreyn ] 20170401 17:55:32[ Aginor ] [ DDR ] [ higgins ] [ Kwandulin ] [ oldlaptop] [ vincent_c ] 20170401 17:55:32[ AI0867_ ] [ DeFender1031 ] [ Ieuan ] [ lobby ] [ Polsaker ] [ vultraz_iOS] 20170401 17:55:32[ aidanhs ] [ elias ] [ Ivanovic ] [ matthiaskrgr] [ pydsigner] [ wedge009 ] 20170401 17:55:32[ APic ] [ EliDupree ] [ iwaim__ ] [ midzer ] [ Ravana_ ] [ zookeeper ] 20170401 17:55:32[ Appleman1234 ] [ Elsi_ ] [ janebot ] [ minzbonbon ] [ Rhonda ] 20170401 17:55:32[ boucman ] [ Elvish_Hunter ] [ Jetrel ] [ mjs-de ] [ TC01 ] 20170401 17:55:32[ celticminstrel] [ esr ] [ Jetrel_bot ] [ new_one ] [ TC02 ] 20170401 17:55:32[ ChipmunkV ] [ Gambit ] [ JyrkiVesterinen] [ nore ] [ TheJJ ] 20170401 17:55:32-!- Irssi: #wesnoth-dev: Total of 56 nicks [0 ops, 0 halfops, 0 voices, 56 normal] 20170401 17:55:34< celticminstrel> Passing it around can be clearner than using global state. 20170401 17:55:35-!- Channel #wesnoth-dev created Tue Jan 27 05:28:41 2009 20170401 17:55:40< celticminstrel> ^cleaner 20170401 17:56:14< celticminstrel> But I suppose it doesn't make a huge difference in this case. 20170401 17:56:25-!- Irssi: Join to #wesnoth-dev was synced in 61 secs 20170401 17:56:54-!- Soliton [~Soliton@wesnoth/developer/soliton] has joined #wesnoth-dev 20170401 17:58:01-!- loonycyborg [~loonycybo@wesnoth/developer/loonycyborg] has joined #wesnoth-dev 20170401 17:59:12< gfgtdf> global variables often also mean that the function cannot be used form multiple threads anymore. 20170401 17:59:47< gfgtdf> (same applies to function-local-static variables) 20170401 18:00:08< celticminstrel> Ah, true, though I doubt WFL is thread-safe even before his refactoring. 20170401 18:00:52< celticminstrel> Though it mostly consists of immutable things, so I suppose it actually could be... 20170401 18:01:45-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has joined #wesnoth-dev 20170401 18:01:49< gfgtdf> hmm this oculd be a problme since in the loadingscreen the gui2 daring code ight be formulas and the worker function might also call foumlas specially if is executes setup wml code 20170401 18:02:12 * vultraz_iOS curses 20170401 18:02:31< JyrkiVesterinen> I can't access the add-on server. 20170401 18:02:45< celticminstrel> If thread safety is the only concern, there is the thread_local keyword, though I dunno if MSVC2013 supports it. 20170401 18:03:06< celticminstrel> I also don't know if it can be used on a static class variable. 20170401 18:06:12< gfgtdf> at lest msvc 2015 suipports it afaik 20170401 18:06:24< gfgtdf> not sure about 2013 version 20170401 18:10:23< celticminstrel> The loading screen wouldn't be using to_debug_string, mind you. 20170401 18:10:59< celticminstrel> Unless it logs formula outputs maybe. 20170401 18:11:10< JyrkiVesterinen> Add-on server works again. 20170401 18:11:28< gfgtdf> ye i didnt read the doicussion form the beginning 20170401 18:11:41< vultraz_iOS> oh, fun 20170401 18:11:44< vultraz_iOS> ..\..\src\formula\variant_private.hpp|308|error: in-class initialization of static data member 'std::vector game_logic::variant_callable::seen_stack' of incomplete type| 20170401 18:11:56< vultraz_iOS> and including callable doesn't help 20170401 18:12:05< celticminstrel> Is included? 20170401 18:12:23< vultraz_iOS> yes 20170401 18:12:40< celticminstrel> Well, try out-of-class initialization then. 20170401 18:13:36-!- irker874 [~irker@uruz.ai0867.net] has joined #wesnoth-dev 20170401 18:13:36< irker874> wesnoth: Jyrki Vesterinen wesnoth:master d8c670654a3d / src/gui/widgets/ (6 files): Use REQUEST_PLACEMENT event to trigger partial relayout https://github.com/wesnoth/wesnoth/commit/d8c670654a3de0a29bcc597ce8bdbf273a2193ca 20170401 18:13:38< vultraz_iOS> with extern? 20170401 18:13:47< vultraz_iOS> oh wait, extern can't be used for class members 20170401 18:13:49< celticminstrel> What? Why extern? 20170401 18:13:56< vultraz_iOS> nevermind 20170401 18:13:59< vultraz_iOS> it's 5am 20170401 18:22:34< vultraz_iOS> ...why is it saying this is private even though i declared variant as friend :| 20170401 18:23:22-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has joined #wesnoth-dev 20170401 18:25:38< celticminstrel> More detail please? 20170401 18:25:49-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has quit [Remote host closed the connection] 20170401 18:26:53< vultraz_iOS> error about variant::to_debug_string accessing variant_callable::seen_stack even though variant_callable specifies `friend class variant` 20170401 18:27:41< celticminstrel> That does sound like it should work. 20170401 18:30:36-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has joined #wesnoth-dev 20170401 18:31:53< vultraz_iOS> ah, I needed ::variant 20170401 18:32:30< celticminstrel> Huh? That's weird, unless variant_callable has a nested variant class... 20170401 18:32:47< vultraz_iOS> hmm 20170401 18:32:57< celticminstrel> But I guess, if it works, great. 20170401 18:33:19< vultraz_iOS> but now i get errors for the external initialization 20170401 18:35:19< vultraz_iOS> ah, fixed 20170401 18:42:12-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has quit [Remote host closed the connection] 20170401 18:43:16-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has joined #wesnoth-dev 20170401 18:44:55-!- Shiki [~Shiki@p548546F5.dip0.t-ipconnect.de] has joined #wesnoth-dev 20170401 18:45:17-!- markus_ [~mjs-de@x4e305112.dyn.telefonica.de] has joined #wesnoth-dev 20170401 18:45:40< vultraz_iOS> celticminstrel: where was that "expected map or list" message supposed to be again? 20170401 18:46:11< celticminstrel> Was it in operator[]? 20170401 18:46:33< celticminstrel> Oh yeah, forgot to mention this in the comment, but I still dislike your virtual operator==. 20170401 18:46:54< vultraz_iOS> well, the message is still in operator[].. 20170401 18:47:13< celticminstrel> Maybe it was in num_elements? 20170401 18:47:16< vultraz_iOS> ah yes 20170401 18:47:48< celticminstrel> as_decimal apparently also had an "expected integer or decimal" error... I didn't notice whether you kept that... 20170401 18:48:07< celticminstrel> Or maybe the map or list error was in contains? 20170401 18:48:29< celticminstrel> That seems to be the three places where "expected map or list" make sense. 20170401 18:48:37-!- mjs-de [~mjs-de@x4e30e8a0.dyn.telefonica.de] has quit [Ping timeout: 246 seconds] 20170401 18:53:49-!- JyrkiVesterinen [~JyrkiVest@87-100-130-215.bb.dnainternet.fi] has quit [Quit: .] 20170401 18:59:50-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has quit [Remote host closed the connection] 20170401 19:13:35-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20170401 19:13:41-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth-dev 20170401 19:16:39< vultraz_iOS> celticminstrel: ok pushed a bunch of stuff 20170401 19:17:06< vultraz_iOS> if it looks alright to you I'll merge 20170401 19:17:14< vultraz_iOS> or, well, rebase locally and push 20170401 19:17:50-!- markus_ [~mjs-de@x4e305112.dyn.telefonica.de] has quit [Remote host closed the connection] 20170401 19:18:34< vultraz_iOS> then you can merge yours 20170401 19:27:45-!- Shiki [~Shiki@p548546F5.dip0.t-ipconnect.de] has quit [Remote host closed the connection] 20170401 19:46:03-!- trewe [~trewe@2001:8a0:d10f:4301:ab9d:b22c:9847:c6f0] has joined #wesnoth-dev 20170401 20:21:58< vultraz_iOS> *pokes celticminstrel * 20170401 20:26:41< vultraz_iOS> Hmm tests still failing 20170401 20:26:54< vultraz_iOS> celticminstrel: ok looks like the white space between 20170401 20:27:10< vultraz_iOS> Callable values that I removed is now causing problems 20170401 20:27:49< vultraz_iOS> Says [1,2,3] is not [1, 2, 3] 20170401 20:27:56< vultraz_iOS> Which is absurd 20170401 20:33:29< vultraz_iOS> oh, hm 20170401 20:33:33< vultraz_iOS> i didn't remove the space? 20170401 20:33:56< vultraz_iOS> or, no, the space is there for callable 20170401 20:33:59< vultraz_iOS> not in list 20170401 20:35:39< vultraz_iOS> celticminstrel: so, should there be a space between list and callable values? 20170401 20:53:23-!- Kwandulin [~Kwandulin@p200300760F3E7D2FF03B0933BAA8C675.dip0.t-ipconnect.de] has quit [Quit: Miranda IM! Smaller, Faster, Easier. http://miranda-im.org] 20170401 20:59:31< celticminstrel> Can't merge mine yet, not tested. No idea what you're asking about spaces. 20170401 20:59:59< celticminstrel> Did you push only new commits, or rebase stuff? 20170401 21:00:21-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has joined #wesnoth-dev 20170401 21:05:03-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has quit [Remote host closed the connection] 20170401 21:05:22-!- Greg-Boggs [~greg_bogg@c-76-115-139-154.hsd1.or.comcast.net] has joined #wesnoth-dev 20170401 21:07:10< celticminstrel> Make sure to check that MSVC 2013 actually supports thread_local. 20170401 21:08:31-!- clavi [~clavi@v22017034422546657.goodsrv.de] has quit [Quit: ZNC - http://znc.in] 20170401 21:13:32-!- irker874 [~irker@uruz.ai0867.net] has quit [Quit: transmission timeout] 20170401 21:13:36-!- Greg-Boggs [~greg_bogg@c-76-115-139-154.hsd1.or.comcast.net] has quit [Remote host closed the connection] 20170401 21:16:55-!- clavi [~clavi@v22017034422546657.goodsrv.de] has joined #wesnoth-dev 20170401 21:20:26< gfgtdf> even if msvc2013 doesn't support thread local it's possible that there is a msvc speocifc keyword to achieve the same, so i't need an #if for msvc2013 then 20170401 21:27:58< celticminstrel> My point is that this should be dealt with before merging, not after. 20170401 21:28:06< celticminstrel> I dunno, maybe it does support thread_local. 20170401 21:30:42< zookeeper> urgh... wtf? https://github.com/wesnoth/wesnoth/commit/70974d Elvish_Hunter, your patch in 2011 made linaera be a leader. 20170401 21:30:54< zookeeper> looks like after that people just assumed it was intentional 20170401 21:35:33< celticminstrel> So I guess that modify_unit needs to be restored and add canrecruit=no? 20170401 21:39:31< zookeeper> yeah, if we want the originally intended behavior back 20170401 21:41:49< zookeeper> one could argue she should be a secondary leader, but... it's the most beginnerish campaign for beginners we have, so having something weird like a secondary leader for 2 scenarios sounds a bit fishy. there's hardly any point because you can't actually _do_ anything meaningful with two leaders AFAICT. 20170401 21:42:45< zookeeper> i wonder what percentage of players have even noticed that you can recruit mages with her 20170401 21:43:35< celticminstrel> Can't you also recruit mages with the main leader? 20170401 21:44:15< zookeeper> doesn't look like it 20170401 21:55:08< celticminstrel> Are you supposed to be able to recruit mages? 20170401 21:57:27< zookeeper> originally no. i don't know why tad_carlucci added it in a8391248391 20170401 21:58:48-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has quit [Ping timeout: 256 seconds] 20170401 22:11:36< gfgtdf> zookeeper: did 20170401 22:11:48< gfgtdf> 'nt coud merge tads pr yourself? 20170401 22:11:56< gfgtdf> s/could/you 20170401 22:12:08< zookeeper> probably 20170401 22:13:07< zookeeper> but as i complained at the time, it's not like i could thoughtfully verify the assumptions behind every commit when there's dozens of them in a pile :p i probably assumed she was supposed to be a leader just like everyone else 20170401 22:13:33-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has joined #wesnoth-dev 20170401 22:13:54-!- boucman [~rosen@wesnoth/developer/boucman] has quit [Remote host closed the connection] 20170401 22:14:23-!- ChipmunkV [~vova@static-89-94-113-91.axione.abo.bbox.fr] has quit [Quit: ChipmunkV] 20170401 22:14:42< gfgtdf> zookeeper: from the pr discuassution the main reason for allowinf that seems to be 'it allows the player to recover from losing all their Mages in S06 and S07. Mages really help in S07.' 20170401 22:15:11< zookeeper> what was the PR number? 20170401 22:15:16< gfgtdf> https://github.com/wesnoth/wesnoth/pull/690 20170401 22:16:29< zookeeper> yeah but that discussion doesn't tell whether he knew she was supposed to be recruiting anything at all. it of course didn't make sense that she was recruiting elves and not mages 20170401 22:17:26< zookeeper> but sure, in a beginner campaign it's not nice if you get a couple of units which die easily but are going to be really useful later 20170401 22:17:53< zookeeper> conceivably, erlornas could perhaps just recruit mages in the following scenarios 20170401 22:18:15-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has joined #wesnoth-dev 20170401 22:18:19-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has quit [Ping timeout: 260 seconds] 20170401 22:26:06-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has quit [Remote host closed the connection] 20170401 22:31:06-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20170401 22:31:40-!- RatArmy_ [~ratarmy@om126161120064.8.openmobile.ne.jp] has joined #wesnoth-dev 20170401 22:32:47-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has joined #wesnoth-dev 20170401 22:36:32-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has quit [Remote host closed the connection] 20170401 22:36:51-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20170401 22:37:09-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has joined #wesnoth-dev 20170401 22:41:43-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has quit [Ping timeout: 246 seconds] 20170401 22:44:48-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has joined #wesnoth-dev 20170401 22:51:08-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has joined #wesnoth-dev 20170401 22:51:55-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has quit [Remote host closed the connection] 20170401 22:59:34-!- noy [~Noy@wesnoth/developer/noy] has joined #wesnoth-dev 20170401 23:04:04-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has joined #wesnoth-dev 20170401 23:04:05-!- RatArmy_ [~ratarmy@om126161120064.8.openmobile.ne.jp] has quit [Read error: Connection reset by peer] 20170401 23:12:17-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has quit [Remote host closed the connection] 20170401 23:14:38-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has joined #wesnoth-dev 20170401 23:17:00-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has quit [Ping timeout: 268 seconds] 20170401 23:22:49-!- RatArmy_ [~ratarmy@om126161120064.8.openmobile.ne.jp] has joined #wesnoth-dev 20170401 23:24:22-!- noy [~Noy@wesnoth/developer/noy] has quit [Quit: noy] 20170401 23:27:45-!- vultraz_iOS [uid24821@wesnoth/developer/vultraz] has quit [Quit: Connection closed for inactivity] 20170401 23:29:52-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Remote host closed the connection] 20170401 23:30:24-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20170401 23:36:41-!- gfgtdf [~chatzilla@x4e369ba0.dyn.telefonica.de] has quit [Quit: ChatZilla 0.9.93 [Firefox 52.0.2/20170323105023]] 20170401 23:41:18-!- Greg-Boggs [~greg_bogg@2601:1c2:f00:9780:68a6:da81:bf55:d6d7] has quit [Remote host closed the connection] 20170401 23:42:34-!- Greg-Boggs [~greg_bogg@c-76-115-139-154.hsd1.or.comcast.net] has joined #wesnoth-dev --- Log closed Sun Apr 02 00:00:07 2017