--- Log opened Tue Oct 18 00:00:57 2016 20161018 00:09:00-!- tad_carlucci [~lundberg@173.217.65.103] has joined #wesnoth-dev 20161018 00:09:37-!- travis-ci [~travis-ci@ec2-54-224-61-16.compute-1.amazonaws.com] has joined #wesnoth-dev 20161018 00:09:38< travis-ci> wesnoth/wesnoth#11641 (master - 30b8a2c : Chris Beck): The build was broken. 20161018 00:09:39< travis-ci> Build details : https://travis-ci.org/wesnoth/wesnoth/builds/168471595 20161018 00:09:39-!- travis-ci [~travis-ci@ec2-54-224-61-16.compute-1.amazonaws.com] has left #wesnoth-dev [] 20161018 00:14:22< gfgtdf> iceiceice: looks goot me but i cannot test it and i also don't think that i know more about that code than you. 20161018 00:16:12-!- mattsc [~mattsc@wesnoth/developer/mattsc] has joined #wesnoth-dev 20161018 00:22:55-!- gfgtdf [~chatzilla@x50ab6cdf.dyn.telefonica.de] has quit [Quit: ChatZilla 0.9.92 [Firefox 49.0.1/20160922113459]] 20161018 00:37:53-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 250 seconds] 20161018 00:42:01-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20161018 00:43:03-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 00:43:52-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20161018 00:44:17-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Client Quit] 20161018 00:47:09-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 244 seconds] 20161018 00:53:30-!- chris_ [~chris@nat-tvwna-outside-visitornet2-a-184.princeton.org] has joined #wesnoth-dev 20161018 00:59:13< irker444> wesnoth: mattsc wesnoth:master ba6973f54345 / data/ai/scenarios/scenario-high_xp_attack.cfg: High XP Attack CA test scenario: use new syntax for [option] https://github.com/wesnoth/wesnoth/commit/ba6973f5434512c3ac8f8029325e8349128765fb 20161018 00:59:15< irker444> wesnoth: mattsc wesnoth:master d99ee0fc888c / data/ai/micro_ais/scenarios/lurkers.cfg: Lurkers MAI test scenario: keep side leaders hidden after reload https://github.com/wesnoth/wesnoth/commit/d99ee0fc888cdda7cd3e7c3031794cc69040981b 20161018 00:59:17< irker444> wesnoth: mattsc wesnoth:master 12b03397a9bb / data/campaigns/The_Rise_Of_Wesnoth/ai/ca_aggressive_attack_no_suicide.lua: TRoW S15: make custom AI robust against ambushes https://github.com/wesnoth/wesnoth/commit/12b03397a9bb9c6077027c803f5e047badba3322 20161018 00:59:19< irker444> wesnoth: mattsc wesnoth:master a333b9a5b7af / data/ai/lua/ca_high_xp_attack.lua: High XP Attack CA: correctly deal with hidden and petrified units https://github.com/wesnoth/wesnoth/commit/a333b9a5b7af8b5bd148805472e7da08b20dbaa9 20161018 00:59:21< irker444> wesnoth: mattsc wesnoth:master 1bed30c8c3ca / data/ai/lua/ca_high_xp_attack.lua: High XP Attack CA: respect the attacks aspect https://github.com/wesnoth/wesnoth/commit/1bed30c8c3cae174fbd2ba3617b7feabb2009d50 20161018 00:59:55< mattsc> celticminstrel: ^ the new attacks aspect works beautifully 20161018 01:04:36< celticminstrel> \o/ 20161018 01:10:19-!- chris_ [~chris@nat-tvwna-outside-visitornet2-a-184.princeton.org] has quit [Quit: Ex-Chat] 20161018 01:10:35-!- chris_ [~chris@nat-tvwna-outside-visitornet2-a-184.princeton.org] has joined #wesnoth-dev 20161018 01:13:19-!- chris__ [~chris@nat-tvwna-outside-visitornet2-a-184.princeton.org] has joined #wesnoth-dev 20161018 01:13:34-!- chris_ [~chris@nat-tvwna-outside-visitornet2-a-184.princeton.org] has quit [Read error: Connection reset by peer] 20161018 01:28:51-!- chris__ [~chris@nat-tvwna-outside-visitornet2-a-184.princeton.org] has quit [Ping timeout: 265 seconds] 20161018 01:32:39-!- wedge010 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has joined #wesnoth-dev 20161018 01:36:13-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Ping timeout: 260 seconds] 20161018 01:36:13-!- wedge010 is now known as wedge009 20161018 01:39:23-!- travis-ci [~travis-ci@ec2-54-198-238-38.compute-1.amazonaws.com] has joined #wesnoth-dev 20161018 01:39:24< travis-ci> wesnoth/wesnoth#11642 (master - 1bed30c : mattsc): The build is still failing. 20161018 01:39:24< travis-ci> Build details : https://travis-ci.org/wesnoth/wesnoth/builds/168490012 20161018 01:39:24-!- travis-ci [~travis-ci@ec2-54-198-238-38.compute-1.amazonaws.com] has left #wesnoth-dev [] 20161018 01:41:45-!- vultraz [~chatzilla@124.109.10.167] has joined #wesnoth-dev 20161018 01:41:45-!- vultraz [~chatzilla@124.109.10.167] has quit [Changing host] 20161018 01:41:45-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has joined #wesnoth-dev 20161018 01:52:36< shadowm> iceiceice: I use the GIMP as well. Not happy with it at all, but I've been using it for 12 years so it'd be really hard for me to switch to anything else. Same as Linux, really. 20161018 01:52:59< vultraz> celticminstrel: do you want to wait for a change to the lua pr about that load vs formula thing or can it be merged now? 20161018 01:54:07< tad_carlucci> I would prefer that change be a separate issue. The only place it touches on the Lua PR is that the function name changed. 20161018 01:54:25< vultraz> ok, so it's all good to merge? 20161018 01:54:43< celticminstrel> Oh right, I did say I'd merge it soon didn't I. 20161018 01:54:49< celticminstrel> Then I competely forgot about it. 20161018 01:54:53 * tad_carlucci grins. 20161018 01:55:14< celticminstrel> vultraz: The load vs formula thing is irrelevant to the PR. 20161018 01:55:32< celticminstrel> It's just being discussed there because the PR brought it to my attention. 20161018 01:55:46< tad_carlucci> That happens a lot. 20161018 01:56:16< vultraz> Alright, I'm going to merge it, then. 20161018 01:56:17-!- tad_carlucci [~lundberg@173.217.65.103] has quit [Quit: Switching to Unix to get some real work done.] 20161018 01:56:29-!- tad_carlucci [~lundberg@173.217.65.103] has joined #wesnoth-dev 20161018 01:57:43 * celticminstrel also hates the GIMP. 20161018 01:57:52< celticminstrel> Just saying. 20161018 01:57:55< vultraz> As do I 20161018 01:58:03< tad_carlucci> So look at Krita 20161018 01:58:06< celticminstrel> It's a really great program in terms of capabilities. 20161018 01:58:14< celticminstrel> But their UI design is atrocious in some ways. 20161018 01:58:17< irker444> wesnoth: GregoryLundberg wesnoth:master 160a4611d6ad / / (7 files in 3 dirs): Use strcmp instead of strcoll https://github.com/wesnoth/wesnoth/commit/160a4611d6ad5f2853e1a7590a6241eceb0cdfbd 20161018 01:58:19< irker444> wesnoth: Gregory A Lundberg wesnoth:master f88c3b22b866 / src/ (lua/ldo.cpp wesnoth_lua_config.h): Refactor lua_jailbreak_exception https://github.com/wesnoth/wesnoth/commit/f88c3b22b86647c0ac472db9c3dd6fd46857f9a4 20161018 01:58:21< irker444> wesnoth: Gregory A Lundberg wesnoth:master b8244b0694fc / src/ (5 files in 2 dirs): Correct the calls instead https://github.com/wesnoth/wesnoth/commit/b8244b0694fc2d64c0a3c6e6dc6f63dacfa18a72 20161018 01:58:23< irker444> wesnoth: Gregory A Lundberg wesnoth:master f00357d7db18 / src/lua/lapi.cpp: Revert change https://github.com/wesnoth/wesnoth/commit/f00357d7db184dcb4c699349ede0989104224215 20161018 01:58:24< celticminstrel> Like having a separate menuitem for "export". 20161018 01:58:25< irker444> wesnoth: Gregory A Lundberg wesnoth:master 8e7b28cde241 / src/ (4 files in 3 dirs): Move local changes to proper place https://github.com/wesnoth/wesnoth/commit/8e7b28cde24190a514fbcdb84ed73175b0c7fbc7 20161018 01:58:27< irker444> wesnoth: Gregory A Lundberg wesnoth:master 841d17af3100 / src/lua/ (60 files): Replace Lua 5.2.3 with Lua 5.3.3 https://github.com/wesnoth/wesnoth/commit/841d17af31008a03c7ce68b4aa9df303920967c4 20161018 01:58:29< irker444> wesnoth: Gregory A Lundberg wesnoth:master 475c31b10e3f / src/wesnoth_lua_config.h: Enable Lua 5.1 and 5.2 compatability https://github.com/wesnoth/wesnoth/commit/475c31b10e3fa97273058db22e21c4514efeab38 20161018 01:58:31< irker444> wesnoth: Gregory A Lundberg wesnoth:master 90d48e372571 / src/lua/ (lobject.cpp lstrlib.cpp): -Wpermissive reports two errors https://github.com/wesnoth/wesnoth/commit/90d48e3725717a0823d4ed1fa6b6499bdaf3c016 20161018 01:58:33< irker444> wesnoth: Gregory A Lundberg wesnoth:master 63be2a0d2eac / src/lua/lparser.cpp: Apply Lua.org patch https://github.com/wesnoth/wesnoth/commit/63be2a0d2eac5406e0310b60b0a382ebc1f0f756 20161018 01:58:35< irker444> wesnoth: Gregory A Lundberg wesnoth:master ca883fe7bfae / src/lua/loslib.cpp: Apply Lua.org patch https://github.com/wesnoth/wesnoth/commit/ca883fe7bfae2ef10798672d5bf9398a4032c036 20161018 01:58:37< irker444> wesnoth: Gregory A Lundberg wesnoth:master 82661505d12e / src/lua/lcode.cpp: Apply Lua.org patch https://github.com/wesnoth/wesnoth/commit/82661505d12e592e5bfb5f5168ea9320772bb665 20161018 01:58:39< irker444> wesnoth: Gregory A Lundberg wesnoth:master 0c13f7ea2016 / / (4 files in 3 dirs): Update project files https://github.com/wesnoth/wesnoth/commit/0c13f7ea20169318aa844a13f6ec36d0f65e551e 20161018 01:58:41< irker444> wesnoth: Gregory A Lundberg wesnoth:master fb82f6a2596c / src/scripting/lua_kernel_base.cpp: Add Lua utf8 library https://github.com/wesnoth/wesnoth/commit/fb82f6a2596c5256967dcd95e989c2021ad654f3 20161018 01:58:43< irker444> wesnoth: Gregory A Lundberg wesnoth:master 3f22ff8adf26 / changelog: changelog https://github.com/wesnoth/wesnoth/commit/3f22ff8adf260a47707628adea434d753e0c9220 20161018 01:58:45< irker444> wesnoth: Gregory A Lundberg wesnoth:master 757ffc9e448f / src/lua/README: README is ancient https://github.com/wesnoth/wesnoth/commit/757ffc9e448fd63d3dd5e8f50cdc329d9b6d867b 20161018 01:58:47< irker444> wesnoth: Gregory A Lundberg wesnoth:master f97436b96e87 / src/lua/COPYRIGHT: Update COPYRIGHT https://github.com/wesnoth/wesnoth/commit/f97436b96e8765ca080726b0151c4f79292032ff 20161018 01:58:49< irker444> wesnoth: GregoryLundberg wesnoth:master ecdfb81d78b5 / src/ai/lua/lua_object.hpp: Use static cast https://github.com/wesnoth/wesnoth/commit/ecdfb81d78b55d1d447691106531c164a896de26 20161018 01:58:51< irker444> wesnoth: GregoryLundberg wesnoth:master 8839a5ee8e12 / src/scripting/lua_kernel_base.cpp: Only on gcc https://github.com/wesnoth/wesnoth/commit/8839a5ee8e12572fa4adceb5aa5e54150f61a818 20161018 01:58:53< irker444> wesnoth: Gregory A Lundberg wesnoth:master a90ef4a1cb89 / src/ (CMakeLists.txt SConscript tests/test_lua.cpp): Fix Travis https://github.com/wesnoth/wesnoth/commit/a90ef4a1cb896ab2695934dfdaadd52b0c5700bc 20161018 01:58:55< irker444> wesnoth: Gregory A Lundberg wesnoth:master fc6774289e78 / data/ (3 files in 3 dirs): Upgrade deprecated Lua https://github.com/wesnoth/wesnoth/commit/fc6774289e783c43d8189a21a0d197d2da47b982 20161018 01:58:57< irker444> wesnoth: Gregory A Lundberg wesnoth:master ccc7d730f7d0 / src/wesnoth_lua_config.md: Wrote Markdown instructions https://github.com/wesnoth/wesnoth/commit/ccc7d730f7d0f4ba8fcfceab9e0e0ca7600f5b18 20161018 01:58:59< irker444> wesnoth: Charles Dang wesnoth:master e8a499fcec07 / / (80 files in 10 dirs): Merge pull request #822 from GregoryLundberg/GL_Upgrade_Lua https://github.com/wesnoth/wesnoth/commit/e8a499fcec0701687426cfb6bfca7a33536e968f 20161018 01:59:02< vultraz> celticminstrel: would rather use photoshop but i don't have it 20161018 01:59:51< celticminstrel> Photoshop is pretty decent, though I seem to recall hearing it no longer exists as a normal desktop app. 20161018 02:00:58< shadowm> Welcome to the 2010s, where you are no longer allowed to own your purchases for life. 20161018 02:01:40< celticminstrel> For that reason, if I waa looking for a non-free art program, I'd probably gravitate towards Corel instead of Adobe. 20161018 02:01:48< celticminstrel> Unless they move in the same direction. 20161018 02:01:57< celticminstrel> ^was 20161018 02:02:06< tad_carlucci> That is correct. PS is now a monthly subscription. 20161018 02:02:16< vultraz> interesting 20161018 02:02:18< vultraz> how much? 20161018 02:02:36< celticminstrel> Corel Photopaint is fairly good, as I recall, though it's been at least ten years since I used it. 20161018 02:02:42< celticminstrel> I'm not sure about Corel Painter. 20161018 02:02:55< celticminstrel> No idea if they both still exist, but I assume at least one still does. 20161018 02:03:20< celticminstrel> Can I merge PR 785? 20161018 02:03:43< vultraz> still would rather not 20161018 02:03:51< vultraz> hm and now im getting compile errors 20161018 02:04:00< vultraz> must not have updated muh projectfle right 20161018 02:04:02< vultraz> file* 20161018 02:04:07< celticminstrel> Oh yeah, I need to update the XCode project don't I. 20161018 02:04:18 * tad_carlucci nods. 20161018 02:04:35< tad_carlucci> Another -include, a few new files, some gone 20161018 02:04:36< vultraz> C:\Users\Charles\Documents\wesnoth-git\src\lua\liolib.cpp|64|error: '_pclose' was not declared in this scope| 20161018 02:04:41< celticminstrel> I pull between my two machines a lot. 20161018 02:04:46< vultraz> now where would this be.. 20161018 02:05:12< vultraz> 20161018 02:05:22< celticminstrel> Weird. 20161018 02:05:38< vultraz> but that's already in the file :| 20161018 02:06:02< tad_carlucci> What platform? 20161018 02:06:19< vultraz> win10 20161018 02:06:27< tad_carlucci> msys? 20161018 02:06:37< tad_carlucci> I get a clean build on Visual Studion 2015 20161018 02:06:45< vultraz> im on codeblocks 20161018 02:07:44< tad_carlucci> USing gcc or msvc? 20161018 02:08:01< celticminstrel> s/msvc/cl.exe/ 20161018 02:08:12< vultraz> tdm gcc 20161018 02:08:18< celticminstrel> (Though I have no idea if CodeBlocks supports cl.exe.) 20161018 02:09:14< vultraz> it also can't find _popen and _I64_MIN and _I64_MAX 20161018 02:10:09< tad_carlucci> #define LUA_USE_POSIX 20161018 02:10:21< tad_carlucci> -DLUA_USE_POSIX=1 20161018 02:10:47< celticminstrel> Add that to the project configuration ^ 20161018 02:10:50< vultraz> but im on windows :| 20161018 02:11:00< celticminstrel> Preferably only in lualib though. 20161018 02:11:15< tad_carlucci> But you're compiling using a Posix toolset. 20161018 02:11:15< celticminstrel> You're using MinGW, aren't you? Pretty sure that's POSIX. 20161018 02:11:40< celticminstrel> Actually wait, I guess you'd want the define everywhere, not just in lualib. 20161018 02:11:51< vultraz> uh... 20161018 02:12:06< tad_carlucci> All lua sources should do it. 20161018 02:12:22< vultraz> no, that's not going to work 20161018 02:12:34< vultraz> C:\Users\Charles\Documents\wesnoth-git\src\lua\lauxlib.cpp|257|fatal error: sys/wait.h: No such file or directory| 20161018 02:12:35< celticminstrel> Why not?3 20161018 02:12:39< celticminstrel> Oh. 20161018 02:13:26< vultraz> perhaps shadowm knows what to do? 20161018 02:13:35< vultraz> he has a cb build on a windows vm 20161018 02:13:59< tad_carlucci> Undefine LUA_USE_POSIX and LUA_USE_WINDOWS both and it should disable the threaded popen 20161018 02:14:38< vultraz> (also I hope it's not this :| http://stackoverflow.com/questions/22166633/mingw-function-not-found-when-compiled-with-std-c11 ) 20161018 02:15:53< tad_carlucci> Actuall, OK. That makes sense ^ 20161018 02:16:06< shadowm> vultraz: crosscompiling crosscompiled crosscompile crosscompiler 20161018 02:16:39< shadowm> I've not touched CodeBlocks for a year or so because I'd rather use a single development environment for both platforms. 20161018 02:20:01< vultraz> ok, I can get it build by passing -U__STRICT_ANSI__ 20161018 02:20:08< vultraz> but I do get 4 warnings 20161018 02:20:35< vultraz> C:\Users\Charles\Documents\wesnoth-git\src\lua\liolib.cpp|621|warning: unknown conversion type character 'l' in format [-Wformat=]| 20161018 02:20:42< vultraz> C:\Users\Charles\Documents\wesnoth-git\src\lua\liolib.cpp|621|warning: too many arguments for format [-Wformat-extra-args]| 20161018 02:20:46< vultraz> and two more of the same 20161018 02:21:51< vultraz> (for the record, does wesnoth_lua_config.h need to be in the project) 20161018 02:22:26< celticminstrel> Technically not. I included it in the lua/ group. 20161018 02:22:41< celticminstrel> I think it's a good idea for it to be in the project. 20161018 02:22:46< vultraz> well, I have a liblua subproject 20161018 02:22:51< vultraz> i meant does it need to be there 20161018 02:23:04< celticminstrel> Yeah, putting it in the liblua subproject seems like a good idea to me. 20161018 02:23:18< vultraz> anyway, what to do about those warnings 20161018 02:24:30< vultraz> huh, why is it looking at a codepath behind #if !defined(LUA_USE_C89) #else ... 20161018 02:24:50< celticminstrel> There's a ! there? 20161018 02:25:33< vultraz> it's using the else block 20161018 02:25:41< celticminstrel> I think I'd recommend just disabling those 4 warnings with -Wno-??? flags, or pragmas in wesnoth_lua_config.h 20161018 02:25:43< vultraz> im wondering why LUA_USE_C89 is defined and if that's important 20161018 02:25:58< celticminstrel> LUA_USE_C89 is presumably not defined. 20161018 02:26:21< celticminstrel> Or I wouldn't expect it to be. 20161018 02:26:36< celticminstrel> Since that's something like two C standards behind current. 20161018 02:26:56< celticminstrel> I'd expect C99 to be used. 20161018 02:27:07< celticminstrel> But, it really doesn't matter which C standard is used. 20161018 02:27:27< vultraz> well one of these warnings is pointing to a line in an #else block of a #if !defined(LUA_USE_C89) block 20161018 02:27:30< celticminstrel> Using C89 does have the advantage that it's far less likely to accidentally use something that a C++ compiler may not support. 20161018 02:27:58< celticminstrel> (Which really only applies to MSVC, mind you, since GCC/clang generally accept C99 constructs in C++ as an extension.) 20161018 02:28:43< shadowm> Hm. cc1plus: fatal error: src/wesnoth_lua_config.h: No such file or directory 20161018 02:29:01< shadowm> Let's try the good old --config=force technique... 20161018 02:29:04< celticminstrel> Presumably the cwd is wrong. 20161018 02:29:25< shadowm> Could be, since I'm running SCons from a different directory using -y. 20161018 02:29:27< shadowm> -Y even. 20161018 02:30:38< shadowm> Oh boy it got worse with --config=force. 20161018 02:31:04< shadowm> Oh, right, because it's now trying to run 8 jobs simultaneously, not 4. Double the errors. 20161018 02:34:04< tad_carlucci> Well, the src/ part probably should be some macro to say "that this from the source directory". I didn't know you could run scons from another directory. There's probably somethign to support it, but I have no idea. 20161018 02:34:31< tad_carlucci> s/that this/take this/ 20161018 02:36:54-!- travis-ci [~travis-ci@ec2-54-224-61-16.compute-1.amazonaws.com] has joined #wesnoth-dev 20161018 02:36:55< travis-ci> wesnoth/wesnoth#11643 (master - e8a499f : Charles Dang): The build is still failing. 20161018 02:36:55< travis-ci> Build details : https://travis-ci.org/wesnoth/wesnoth/builds/168497049 20161018 02:36:55-!- travis-ci [~travis-ci@ec2-54-224-61-16.compute-1.amazonaws.com] has left #wesnoth-dev [] 20161018 02:37:33< shadowm> I guess if I can't figure it out myself I can always complain to the resident SCons lunatic. 20161018 02:38:37-!- benladin [d2564fc3@gateway/web/freenode/ip.210.86.79.195] has joined #wesnoth-dev 20161018 02:50:55< vultraz> so should i just ignore these warnings? 20161018 02:52:01< tad_carlucci> I think they're saying you're doing a 64-bit compile on a 32-target 20161018 02:52:36< vultraz> how is that :/ 20161018 02:53:41< tad_carlucci> The preprocessor tested and found it could do 64 bits so it chose those options. But the compiler is targeting 32-bits and knows "l" or "ll" have no meaning. 20161018 02:56:15< vultraz> I hope that's not a problem 20161018 02:56:47< tad_carlucci> io library? we use a bit of it. file i/o we don't use. 20161018 02:57:17< vultraz> ok, I'm going to commit this then 20161018 02:59:00< tad_carlucci> I s'pose I should have installed msys and codeblock. **sigh** 20161018 02:59:33< vultraz> for the record passing -m32 does nothing for the warnings 20161018 03:00:47< irker444> wesnoth: Charles Dang wesnoth:master 2640caa16a78 / projectfiles/CodeBlocks/liblua.cbp: Updated CB projectfile for Lua upgrade https://github.com/wesnoth/wesnoth/commit/2640caa16a78230b50a6c054a613e657f84c813e 20161018 03:05:40-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 03:09:06< vultraz> tad_carlucci: seriously, though, thanks for doing the upgrade :) 20161018 03:09:21< vultraz> especially doing it in a manner to make future upgrade essentially drop-in 20161018 03:09:38< tad_carlucci> I'm a bit worried that you couldn't get to no-errors no-warnings 20161018 03:10:33-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 256 seconds] 20161018 03:10:41< tad_carlucci> Thank you. I'm glad the work is appreciated. 20161018 03:11:56< vultraz> can't believe it's been a year since I tried to upgrade to 5.3 myself :P 20161018 03:12:33< tad_carlucci> Well, the work is done. Now we wait for the yelling. 20161018 03:12:38< vultraz> anyway, seeing no serious lua issues here. 20161018 03:12:50< vultraz> (that 'cannot show dialog, no video object' bug is still around 20161018 03:12:55< vultraz> @ celticminstrel) 20161018 03:16:15< tad_carlucci> Travis/CI failed the merge at the same point it failed before. 20161018 03:20:19< celticminstrel> What bug? 20161018 03:20:36< celticminstrel> So the failure is from before the merge? 20161018 03:21:08< vultraz> celticminstrel: the one that popped up after gfgtdf moved some lua init code earlier and now dialogs pre-preshow don't display because they have no video object 20161018 03:21:38< shadowm> I give up. 20161018 03:21:45< celticminstrel> vultraz: Oh, that. 20161018 03:22:24< celticminstrel> I jsut thought of a weird way of dealing with it... 20161018 03:22:25< shadowm> scons: *** [build/release/actions/advancement.o] AttributeError : 'NoneType' object has no attribute 'get_contents' 20161018 03:22:27< celticminstrel> ^just 20161018 03:22:28< shadowm> Oh for the love of 20161018 03:22:41< shadowm> This is a SCons error. 20161018 03:22:47< pydsigner> Yeah 20161018 03:22:54< pydsigner> Python exception 20161018 03:23:07< shadowm> I have no idea what to do with it??? 20161018 03:23:54< irker444> wesnoth: Celtic Minstrel wesnoth:master 00e412f3af70 / projectfiles/Xcode/Wesnoth.xcodeproj/project.pbxproj src/wesnoth_lua_config.h: Update XCode project (and minor comment fixups) https://github.com/wesnoth/wesnoth/commit/00e412f3af70c8ba40f0c43d740ce0f7ed5b433c 20161018 03:23:55< shadowm> loonycyborg: Can you look into why `mkdir test; cd test; scons -Y .. wesnoth` breaks in various ways after the Lua PR merge? Thanks in advance. 20161018 03:24:08< pydsigner> shadowm: http://osdir.com/ml/programming.tools.scons.user/2005-09/msg00016.html 20161018 03:24:11< celticminstrel> It's the python equivalent of dereferencing a null pointer. 20161018 03:24:23< shadowm> pydsigner: Nope. Not going to bother. 20161018 03:24:27< benladin> is wesnoth encrypted? 20161018 03:24:35< shadowm> benladin: No. 20161018 03:24:45< celticminstrel> What? Why would wesnoth be encrypted? 20161018 03:24:47< pydsigner> shadowm: It's literally 2 paragraphs of shortness 20161018 03:25:02< shadowm> pydsigner: Yes, but this isn't my problem to handle either way. 20161018 03:25:22< benladin> idk much about encryption wasnt sure if it was normal to for games or not 20161018 03:25:25< pydsigner> Fair enough 20161018 03:25:34< celticminstrel> Why would any game be encrypted? 20161018 03:25:41< vultraz> celticminstrel: DRM 20161018 03:25:42< shadowm> It barfed on the unmodified mainline SCons recipe, I have no idea why, it's not my problem, I just want things to work without having to deal with the most overhyped build system ever. 20161018 03:26:10< celticminstrel> Can DRM involve encryption? I'd think not. 20161018 03:26:10< shadowm> Yeah, we don't use any kind of content protection. 20161018 03:26:15< vultraz> I think benladin might be asking if we use any DRM. We do not. 20161018 03:26:19< celticminstrel> But I don't know much abotu DRM. 20161018 03:26:21< celticminstrel> ^about 20161018 03:26:22< benladin> i was using microsoft message analyzer to see what it sends and it seems encrypted/gibberish so i wasnt sure 20161018 03:26:37< celticminstrel> You mean network traffic? 20161018 03:26:46< benladin> yeah 20161018 03:26:48< shadowm> benladin: Oh, so you want to know if the MP client/server protocol uses encryption. 20161018 03:26:49< celticminstrel> That's compressed with gzip IIRC. 20161018 03:26:52< benladin> i wasnt asking about drm 20161018 03:26:58< vultraz> ah 20161018 03:27:03< shadowm> Yes, gzipped WML. 20161018 03:27:12< shadowm> If you uncompress it it's all plain text. 20161018 03:27:14< celticminstrel> Using encryption would be a bit silly for a game, I think. Except for authentication purposes. 20161018 03:27:45< shadowm> Not silly, just not particularly advantageous. 20161018 03:28:09< celticminstrel> Well, I mean, it basically amounts to doing pointless work. 20161018 03:28:12< shadowm> I wouldn't say using encryption in any context is silly in this age. 20161018 03:29:01< benladin> this was a nice section of some packet "?M?,~@=`&??#:???Xp&??P?\*6 Fap?@"g??O|??;?????Z?~+???? |??}_?[k~%????\?g???????????"\ 20161018 03:29:22< celticminstrel> ... 20161018 03:29:26< shadowm> What's special about it? 20161018 03:29:27< pydsigner> benladin: It's binary because it's compressed, rather than because it's encrypted 20161018 03:29:32< celticminstrel> Please don't paste binary data into IRC... 20161018 03:30:20< benladin> why not? 20161018 03:30:33< celticminstrel> ... 20161018 03:30:34< tad_carlucci> benladin, Because it's not text. 20161018 03:30:55< benladin> tad_carlucci: i dont understand why this is bad 20161018 03:31:11< celticminstrel> Because certain browsers ignore the MIME type when a file looks like binary. 20161018 03:31:33< shadowm> celticminstrel: As if you needed a gratuitous paste for that to happen. 20161018 03:31:42< celticminstrel> Well, true. 20161018 03:31:42< benladin> idk what that means but ok 20161018 03:31:46< tad_carlucci> benladin, Which file did you take that from? Did it end with ".gz" that means it gipped. 20161018 03:31:47< shadowm> Just have me rant while on a slow ssh connection. 20161018 03:32:07< shadowm> I.e. all the time. 20161018 03:32:08< benladin> i took it straight from microsoft message analyzer 20161018 03:32:14< celticminstrel> tad_carlucci: He's watching MP network traffic. 20161018 03:32:21< celticminstrel> So there won't be a file extension. 20161018 03:32:22< tad_carlucci> Ah. 20161018 03:32:27< benladin> not even sure where the packets are stored 20161018 03:32:32< benladin> or if they are 20161018 03:32:32< shadowm> Nowhere. 20161018 03:32:37< celticminstrel> But, it is gzip, so if you captured it you could pass it through gunzip and see what it says. 20161018 03:32:39< benladin> i have no idea what im doing really 20161018 03:32:50< pydsigner> What are you *trying* to do 20161018 03:32:57< shadowm> We know what gzipped data looks like, by the way, hence I was asking if there was something special about the packet you wanted to ask about? 20161018 03:33:33< benladin> im just mucking about 20161018 03:38:43-!- travis-ci [~travis-ci@ec2-54-227-97-6.compute-1.amazonaws.com] has joined #wesnoth-dev 20161018 03:38:44< travis-ci> wesnoth/wesnoth#11645 (master - 2640caa : Charles Dang): The build is still failing. 20161018 03:38:44< travis-ci> Build details : https://travis-ci.org/wesnoth/wesnoth/builds/168503626 20161018 03:38:44-!- travis-ci [~travis-ci@ec2-54-227-97-6.compute-1.amazonaws.com] has left #wesnoth-dev [] 20161018 03:39:40< tad_carlucci> Clean build, failing at forloop tests again. We should look into why. 20161018 03:40:07< celticminstrel> Could be related to Lua upgrade? 20161018 03:40:30< tad_carlucci> I noted the same errors before the merge. And I got a clean PR build and test hours ago. 20161018 03:41:17< celticminstrel> Error (strict mode, strict_level = 1): wesnoth reported on channel error font 20161018 03:41:18< celticminstrel> 20161018 03:31:24 error font: could not create floating label's text 20161018 03:41:22< tad_carlucci> First failure attempt to fix #25192 20161018 03:41:27< celticminstrel> So, not related to the upgrade. 20161018 03:41:42< celticminstrel> Something to do with floating labels. 20161018 03:41:50< celticminstrel> Not sure why that affects the for-loop tests though... 20161018 03:41:58 * tad_carlucci shrugs. 20161018 03:42:06< irker444> wesnoth: Charles Dang wesnoth:master 0a3769a7de4a / projectfiles/CodeBlocks/wesnothd.cbp: Updated CB wesnothd projectfile https://github.com/wesnoth/wesnoth/commit/0a3769a7de4a908eedc5f584f55afc68eed1fe2a 20161018 03:42:26< celticminstrel> (I got that message from Travis BTW - at the bottom there's an expandable section.) 20161018 03:44:11< tad_carlucci> Odd. 20161018 03:51:27< tad_carlucci> I wish I could figure out why I can't run those tests locally. 20161018 03:51:38< tad_carlucci> I get 28 or 158 passing. 20161018 03:51:42< tad_carlucci> of 20161018 03:52:16< celticminstrel> Might have to increase the timeout. I know I do. 20161018 03:53:11-!- mattsc [~mattsc@wesnoth/developer/mattsc] has quit [Quit: So long and thanks for all the fish.] 20161018 03:53:32< tad_carlucci> -t 300 no effect. 20161018 03:53:50< tad_carlucci> Runs fast 28 pass, 130 fail. 20161018 03:54:40< tad_carlucci> Ah well. The change in the first build to fail is "if the size of the surface buffer is 0, then set the surface to null" 20161018 03:54:43< tad_carlucci> That's it. 20161018 03:57:17< tad_carlucci> benladin, The message, if you unzip it, should be described here: https://wiki.wesnoth.org/MultiplayerServerWML 20161018 03:58:42< tad_carlucci> Can anyone locally reproduce the test failure? 20161018 04:03:37-!- JyrkiVesterinen [~JyrkiVest@87-100-221-220.bb.dnainternet.fi] has joined #wesnoth-dev 20161018 04:13:07-!- travis-ci [~travis-ci@ec2-54-198-238-38.compute-1.amazonaws.com] has joined #wesnoth-dev 20161018 04:13:08< travis-ci> wesnoth/wesnoth#11646 (master - 00e412f : Celtic Minstrel): The build is still failing. 20161018 04:13:08< travis-ci> Build details : https://travis-ci.org/wesnoth/wesnoth/builds/168506212 20161018 04:13:09-!- travis-ci [~travis-ci@ec2-54-198-238-38.compute-1.amazonaws.com] has left #wesnoth-dev [] 20161018 04:20:11< tad_carlucci> I figured out how to run each test by hand. Here is what I get for forloop_once_positive: 20161017 23:19:49 error font: could not create floating label's text 20161018 04:20:11< tad_carlucci> 20161017 23:19:49 error font: could not create floating label's text 20161018 04:20:11< tad_carlucci> PASS TEST : forloop_once_negative 20161018 04:20:33< tad_carlucci> er *_negative 20161018 04:21:18< tad_carlucci> I get a pass with no messages about font for forloop_step_zero ... 20161018 04:30:46< vultraz> the text isn't renderinh 20161018 04:30:47< vultraz> hm 20161018 04:30:49< vultraz> rendering* 20161018 04:31:36< tad_carlucci> Which text? I'm running cmake to get a debug build. 20161018 04:31:58< vultraz> the floating label text in the test 20161018 04:32:25< vultraz> iceiceice added this line 20161018 04:32:26< vultraz> if (!surface_buffer_.size()) { surface_.assign(nullptr); return; } 20161018 04:32:29< vultraz> in the problem commit 20161018 04:32:30< tad_carlucci> yes 20161018 04:32:34< vultraz> so the surface is a nullptr 20161018 04:32:48< tad_carlucci> I reverted it and didn't see any change. 20161018 04:32:51< vultraz> hmmm 20161018 04:32:56< vultraz> no idea then 20161018 04:33:55< tad_carlucci> I am going to put up a PR with that revered to see what Travis does with it. 20161018 04:34:26< tad_carlucci> Because I can't get the FAIL here. I do get two copies of the font error message, though. 20161018 04:35:59< JyrkiVesterinen> Travis runs the tests with --log-strict=warning. AFAIK, it causes the test to fail if the game tries to print any log message with warning or error severity. 20161018 04:36:30< tad_carlucci> yes it does run with that. 20161018 04:38:01< tad_carlucci> Ah. That got it to fail. OK, no test PR. It's locally reproducable. 20161018 04:38:24-!- travis-ci [~travis-ci@ec2-54-224-61-16.compute-1.amazonaws.com] has joined #wesnoth-dev 20161018 04:38:25< travis-ci> wesnoth/wesnoth#11647 (master - 0a3769a : Charles Dang): The build is still failing. 20161018 04:38:26< travis-ci> Build details : https://travis-ci.org/wesnoth/wesnoth/builds/168507846 20161018 04:38:26-!- travis-ci [~travis-ci@ec2-54-224-61-16.compute-1.amazonaws.com] has left #wesnoth-dev [] 20161018 04:39:43-!- mattsc [~mattsc@wesnoth/developer/mattsc] has joined #wesnoth-dev 20161018 04:40:19< mattsc> Hmm. I am getting a segfault at the end of Turn one of the high-xp-attack test scenario now. 20161018 04:41:34< mattsc> I’m relatively sure that that’s very recent (as in, within the last 12 hours), but don’t have time to stay around right now. 20161018 04:42:14< mattsc> If anybody wants to check it, just start with -thigh_xp_attack CL option, end turn and wait (and hit return a couple times along the way). 20161018 04:42:25< mattsc> Otherwise I’ll have a look at it tomorrow. 20161018 04:50:37-!- Kwandulin [~Miranda@p5DDD2B8F.dip0.t-ipconnect.de] has joined #wesnoth-dev 20161018 04:56:38-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 05:00:57< tad_carlucci> When I run with -u I get the same messages as Travis. When I run with -t I get the message on-screen (not on console): Repeated [endleve] execution, ignoring. 20161018 05:01:05-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 260 seconds] 20161018 05:02:08-!- JyrkiVesterinen [~JyrkiVest@87-100-221-220.bb.dnainternet.fi] has quit [Quit: .] 20161018 05:05:18< tad_carlucci> Ah. That's IT 20161018 05:06:22< tad_carlucci> If I remove the start event (add id to do it) the test passes. The issue is the duplicated [endlevel] caused by both PASS and FAIL events firing. 20161018 05:08:32< vultraz> there shoudln't be two [endlevel] blocks 20161018 05:08:34< tad_carlucci> vultraz, So, why id the duplicate [endlevel] .. (1) triggering the font error .. (2) causing the test to report the wrong result .. and (3) suddenly doing all this 20161018 05:08:38< vultraz> shouldn't 20161018 05:09:57< tad_carlucci> Every way I whack it, it's pointing to the duplicated [endlevel]. 20161018 05:10:53< tad_carlucci> {PASS} and {FAIL} seem to both do [endlevel]. 20161018 05:10:56< vultraz> remove the duplicate endlevel 20161018 05:11:09< vultraz> there should not be a duplicate endlevel 20161018 05:11:46< tad_carlucci> Well that means removing the event or changing {PASS} and {FAIL} to set a variable so first one wins instead of last one, and suppress the [endlevel]. 20161018 05:12:17< tad_carlucci> But WHY NOW? Why not weeks or months ago when [endlevel] was changed? And WHY is that causing the font error message? 20161018 05:12:50< vultraz> I have no idea 20161018 05:12:54< vultraz> Code works in mysterious ways 20161018 05:13:37< tad_carlucci> The easiest way to get the tests working is to add id=start and adding [remove_event]id=start to each test which uses {RETURN} .. it's those which are failing. 20161018 05:13:57< vultraz> that's not a good method 20161018 05:14:51< tad_carlucci> Well, what would be a better method? 20161018 05:14:58< vultraz> find the root of the problem 20161018 05:15:39< vultraz> then again, I barely touch the tests 20161018 05:15:52< vultraz> so perhaps you should just do what's best 20161018 05:17:10< tad_carlucci> I'll look at the {RETURN} {PASS} and {FAIL} macros to see if I can find another less-intrusive fix. One way or the other, I'll put up a PR for it in a while. 20161018 05:17:37< tad_carlucci> Fixing the macros, if possible, will solve the issue if it appears in other tests. 20161018 05:37:20< tad_carlucci> vultraz, PR 831 .. wait for the PR to pass before merging 20161018 05:57:22< vultraz> tad_carlucci: so, what do you intend to tackle next? back to campaigns? 20161018 05:59:13< tad_carlucci> Probably. But until 1.13.6 tags, maybe a bit after, I'm keeping my desk clear for Lua issues doing some light, recreational personal programming. 20161018 05:59:46< tad_carlucci> I'll try to keep IRC open as much as possible for that. 20161018 06:01:03< tad_carlucci> At this point I have only 3 branches: master, the DM PR for 1.13.6 (if zookeeper approves it), and an in-process DiD branch. 20161018 06:11:30-!- JyrkiVesterinen [~JyrkiVest@nblzone-242-23.nblnetworks.fi] has joined #wesnoth-dev 20161018 06:16:49< tad_carlucci> vultraz, Some failures on 831 .. checking 20161018 06:18:37< tad_carlucci> 157 of 158 passed. check_interrupts_continue_global failed. 20161018 06:23:05< tad_carlucci> Invalid WML found: [continue] found outside a loop scope! 20161018 06:26:31< tad_carlucci> Ah, that's what is being tested. 20161018 06:31:51< tad_carlucci> PR 831 broke it. Need to make an adjustment. 20161018 06:39:05-!- Bonobo [~Bonobo@2001:44b8:254:3200:3563:1cf3:f278:ebc6] has quit [Ping timeout: 260 seconds] 20161018 06:39:53-!- Bonobo [~Bonobo@2001:44b8:254:3200:42:82be:1c2c:ef5c] has joined #wesnoth-dev 20161018 06:42:42-!- irker444 [~irker@uruz.ai0867.net] has quit [Quit: transmission timeout] 20161018 06:43:54< tad_carlucci> vultraz, The issue is Lua's pcall is not getting the error. I'm thinking it means the WML error is not being caught during pcall. This could be a problem with how I installed the exception handler. 20161018 06:44:53-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 06:45:02< tad_carlucci> vultraz, The issue I have is time: it's 0145 here and the wife is getting upset that I'm not in bed. I'll give it a few minutes but it may have to wait until the morning. 20161018 06:46:18-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has quit [Ping timeout: 245 seconds] 20161018 06:46:54< JyrkiVesterinen> Hey, don't worry. It's not that urgent. 20161018 06:49:18-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 252 seconds] 20161018 06:51:57< tad_carlucci> JyrkiVesterinen, Well, it's a bug in the Lua upgrade. I probably missed something in the exception handling, since I'm assuming the WML error was thrown and caught. 20161018 06:52:23< JyrkiVesterinen> I mean that we can live with Travis builds being broken for a day. 20161018 06:53:15< tad_carlucci> OK. I'll get on it tomorrow. PR 831 fixes the issue with the tests themselves. This Lua pcall function problem is serious but I'll bet this test is about the only place it's used. 20161018 06:53:45< tad_carlucci> So, I'll get on it in the AM. 'nite. 20161018 06:53:49-!- tad_carlucci [~lundberg@173.217.65.103] has quit [Quit: Off to resolve a merge conflict between the wife and husband branches of my real life.] 20161018 06:54:41< JyrkiVesterinen> vultraz, do you want to merge PR831? While it doesn't get Travis builds to pass, it improves the situation. 20161018 06:59:32-!- irker605 [~irker@uruz.ai0867.net] has joined #wesnoth-dev 20161018 06:59:32< irker605> wesnoth: Gregory A Lundberg wesnoth:master f80549460373 / data/test/macros/wml_unit_test_macros.cfg: Ensure [endlevel] only happens once. https://github.com/wesnoth/wesnoth/commit/f805494603738dbdc81655044d163ab9336b5018 20161018 06:59:32< irker605> wesnoth: Charles Dang wesnoth:master 857be8497ed2 / data/test/macros/wml_unit_test_macros.cfg: Merge pull request #831 from GregoryLundberg/GL_Fix_WML_unit_tests https://github.com/wesnoth/wesnoth/commit/857be8497ed264b0aa09328d99297fcc8f2cb3e4 20161018 07:02:07-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has joined #wesnoth-dev 20161018 07:12:27-!- Kwandulin [~Miranda@p5DDD2B8F.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20161018 07:15:07-!- boucman_work [~boucman@fw-alt.idf.smile.fr] has joined #wesnoth-dev 20161018 07:17:57-!- esr [~esr@wesnoth/developer/esr] has quit [Ping timeout: 248 seconds] 20161018 07:18:14-!- esr [~esr@static-71-162-243-5.phlapa.fios.verizon.net] has joined #wesnoth-dev 20161018 07:18:15-!- esr [~esr@static-71-162-243-5.phlapa.fios.verizon.net] has quit [Changing host] 20161018 07:18:15-!- esr [~esr@wesnoth/developer/esr] has joined #wesnoth-dev 20161018 07:18:17-!- Polsaker [~Polsaker@donger/wielder/Polsaker] has quit [Ping timeout: 250 seconds] 20161018 07:19:50-!- Polsaker [~Polsaker@donger/wielder/Polsaker] has joined #wesnoth-dev 20161018 07:36:18-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20161018 07:38:45-!- travis-ci [~travis-ci@ec2-54-198-238-38.compute-1.amazonaws.com] has joined #wesnoth-dev 20161018 07:38:46< travis-ci> wesnoth/wesnoth#11649 (master - 857be84 : Charles Dang): The build is still failing. 20161018 07:38:46< travis-ci> Build details : https://travis-ci.org/wesnoth/wesnoth/builds/168530678 20161018 07:38:46-!- travis-ci [~travis-ci@ec2-54-198-238-38.compute-1.amazonaws.com] has left #wesnoth-dev [] 20161018 07:56:50-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has quit [Ping timeout: 250 seconds] 20161018 08:02:26-!- vultraz [~chatzilla@wesnoth/developer/vultraz] has joined #wesnoth-dev 20161018 08:06:35-!- celticminstrel [~celmin@unaffiliated/celticminstrel] has quit [Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] 20161018 08:06:51< vultraz> weelll fuck 20161018 08:07:04< vultraz> wesnoth is crashing :( 20161018 08:08:22< vultraz> hmmm 20161018 08:11:26< vultraz> yeah, it's the "attempt to fix #25192" again 20161018 08:33:10-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 08:37:31-!- JyrkiVesterinen [~JyrkiVest@nblzone-242-23.nblnetworks.fi] has quit [Quit: .] 20161018 08:37:34-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 265 seconds] 20161018 09:23:39-!- JyrkiVesterinen [~JyrkiVest@nblzone-242-23.nblnetworks.fi] has joined #wesnoth-dev 20161018 09:24:06< loonycyborg> shadowm: scons -Y sometimes causes errors like that which are fixed by deleting original builddir 20161018 09:29:29< loonycyborg> I think it's because it somehow manages to find and use original sconsign file, even though it's relocated into out-of-tree dir too 20161018 09:31:23-!- Nobun [~nobun@5.170.112.57] has joined #wesnoth-dev 20161018 09:48:09-!- horrowind [~Icedove@2a02:810a:8380:10a8:21b:fcff:fee3:c3ff] has joined #wesnoth-dev 20161018 09:50:42-!- wedge010 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has joined #wesnoth-dev 20161018 09:52:33-!- wedge009 [~Thunderbi@60-241-236-92.static.tpgi.com.au] has quit [Ping timeout: 245 seconds] 20161018 09:52:34-!- wedge010 is now known as wedge009 20161018 10:01:24< vultraz> hmmmmmmmmmmm 20161018 10:01:32< vultraz> this is a case of "it works but I don't know why"... 20161018 10:01:56< vultraz> I actually have no idea why the chatrooms sync up when multiple clients join a game 20161018 10:02:22< vultraz> I'm trying to add a Lobby tab to created games so people can still chat in the lobby as they wait for their game 20161018 10:02:33< vultraz> but I can't get anything from the lobby to appear there :/ 20161018 10:02:49< vultraz> even though it's the same wesnothd_connection member, and as far as I can tell, the same lobby_info.. 20161018 10:03:33< vultraz> and it doesn't matter what the name of the two games are... 20161018 10:03:35< vultraz> er 20161018 10:03:39< vultraz> game chat rooms are 20161018 10:03:56< vultraz> I can call them both "lobby" and they still sync with each other but not the main lobby chat 20161018 10:04:11< vultraz> I wonder if perhaps this has to do with where the players are.. 20161018 10:04:33< vultraz> since the lobby splits players into groups 20161018 10:04:51< vultraz> lobby/other rooms/other games/selected game 20161018 10:05:13< vultraz> it's *possible* the chat thing is being synced only within the player context.. 20161018 10:09:38-!- irker605 [~irker@uruz.ai0867.net] has quit [Quit: transmission timeout] 20161018 10:11:45-!- Bonobo [~Bonobo@2001:44b8:254:3200:42:82be:1c2c:ef5c] has quit [Quit: Leaving] 20161018 10:13:33< DeFender1031> vultraz, isn't the lobby using IRC while in-game chat uses an in-game connection? 20161018 10:13:42< vultraz> wha? 20161018 10:13:44< vultraz> no? 20161018 10:14:29< DeFender1031> I assumed that lobby used IRC given that lobby is one of the channels whose logs are on irclogs.wesnoth.org 20161018 10:15:31< DeFender1031> though now that i look, the logs all appear to be completely empty 20161018 10:16:47< vultraz> i think that's an irc channel.. 20161018 10:17:36< vultraz> dunno 20161018 10:20:20< zookeeper> there's a separate irc bot thingy which does the logs and stuff. not that i know how exactly it interfaces with the lobby. 20161018 10:21:27-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 10:26:00-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 260 seconds] 20161018 10:27:23< Ravana_> I managed connect my irc bot to lobby last spring, I made it with python socket 20161018 10:28:20< Ravana_> https://forums.wesnoth.org/viewtopic.php?f=10&t=43965 20161018 10:28:21< vultraz> none of that is really relevant to what I'm trying to do here 20161018 10:28:41< vultraz> i just wish i understood why it functions as it does.. 20161018 10:31:22< vultraz> maybe i should be looking in the server code 20161018 10:32:07< vultraz> I guess I'll need to talk to loonycyborg 20161018 10:32:25< loonycyborg> what about? 20161018 10:32:55< vultraz> how does the server know where to send a message? 20161018 10:33:26< vultraz> ie, I don't do anything special when setting up the staging and join dialog, but somehow the server knows to sync any messages between all clients connected to that game 20161018 10:33:54< vultraz> but i cannot get chat to sync between a lobby tab in a game you created and the lobby itself. 20161018 10:34:12< vultraz> obviously you're not IN the lobby...but why cannot you see messages from there? 20161018 10:34:22< vultraz> leads me to think messages are filtered server-side 20161018 10:34:38< loonycyborg> while player is in game server won't forward lobby messages to them 20161018 10:34:47< vultraz> I see 20161018 10:34:59< vultraz> can/should this be changed? 20161018 10:35:11< loonycyborg> and it's client's responsibility to keep track of all messages that were received 20161018 10:35:33< loonycyborg> currently there is no wml request to get chat log 20161018 10:35:45< loonycyborg> and server doesn't even keep track of logs by itself 20161018 10:36:02< loonycyborg> it only maintains a mapping between sockets and player names 20161018 10:36:10< loonycyborg> and forwards messages between them 20161018 10:37:00< vultraz> ok, uh.. well, first... 20161018 10:37:05< loonycyborg> I guess we could make it forward lobby messages to all clients 20161018 10:37:10< vultraz> what ever happened to our room support 20161018 10:37:37< loonycyborg> and make it client's responsibility to hide log messages in game 20161018 10:38:07< vultraz> see, the way I'm looking at it (from a UI perspective, at least), is the "lobby" is one room, and when you join a new game you'd join that game's chat room 20161018 10:38:31< vultraz> something tells me this is not how it's implemented internally 20161018 10:38:38< loonycyborg> no it isn't 20161018 10:38:42< loonycyborg> it wasn't that is 20161018 10:38:50< loonycyborg> I removed room support 20161018 10:38:54< loonycyborg> but before that 20161018 10:39:02< loonycyborg> games weren't treated as separate rooms 20161018 10:39:12< vultraz> wasn't it more like you just didn't include it in the port 20161018 10:39:15< loonycyborg> that's one of reasons I removed it 20161018 10:39:33< vultraz> is it possible to implement it in that way? 20161018 10:39:52< vultraz> lobby one room that's synced to all clients, and each game has its own room 20161018 10:40:16< loonycyborg> It's kinda like how it works already 20161018 10:40:22< loonycyborg> they're just not called rooms 20161018 10:40:44< vultraz> so what is src/server/room.*pp 20161018 10:41:25< loonycyborg> part of old implementation 20161018 10:41:27< loonycyborg> that isn't used 20161018 10:41:29< vultraz> I see 20161018 10:41:41< vultraz> I remember at the time i wasn't sure if room support was needed 20161018 10:41:56< vultraz> now im wondering if perhaps it would be useful. 20161018 10:42:04< vultraz> for example, it would allow PMs with more than 2 people 20161018 10:42:46< loonycyborg> maybe, but at some point we'll just end up implementing our own instant messaging platform 20161018 10:43:25< vultraz> heh 20161018 10:43:39< vultraz> well, secondary concern: logs 20161018 10:43:44< vultraz> you say the server does not store logs? 20161018 10:43:51< JyrkiVesterinen> For the record, src/server/room.cpp isn't even compiled. 20161018 10:43:52< JyrkiVesterinen> https://github.com/wesnoth/wesnoth/blob/master/src/CMakeLists.txt#L1152-L1165 20161018 10:44:45< loonycyborg> hmm I'm kinda not sure about that, need to double check 20161018 10:45:07< vultraz> ie, so if im in the lobby and create a game, and say we make the lobby send to all clients, when i open the new 'lobby' tab, any chatter while i was on the Create screen won't show? 20161018 10:45:18< loonycyborg> I remember it was storing some sort of logs, but not sure if it's chat log 20161018 10:46:25< loonycyborg> it's in code part that I ported without many changes to core behavior 20161018 10:46:46< vultraz> (for the record, i agree it would be the client's job to leave the lobby "room" before entering game) 20161018 10:47:32< vultraz> (then again, that might also not be accurate, implementation wise) 20161018 10:47:58-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has quit [Ping timeout: 245 seconds] 20161018 10:48:39< loonycyborg> hmm there's nothing magical about Create screen from server's point of view 20161018 10:49:56-!- benladin [d2564fc3@gateway/web/freenode/ip.210.86.79.195] has quit [Ping timeout: 260 seconds] 20161018 10:50:12< loonycyborg> server responds to join_game wml command and marks the player in its db that it's in game 20161018 10:50:20< vultraz> well, client-side, you've left the lobby *dialog*, but I assume you're still in the lobby *room*, to the server. 20161018 10:50:25< loonycyborg> and all players that are known to be in game don't get lobby msgs 20161018 10:50:47< vultraz> oh, i see.. 20161018 10:51:01< vultraz> well in that case, you leave the lobby room as soon as you create a game? 20161018 10:51:12< loonycyborg> so while you in Create game screen you're still in lobby from server's pov 20161018 10:51:32< vultraz> oh, ok 20161018 10:51:36< vultraz> but the problem is this: 20161018 10:52:01< vultraz> the client doesn't have any parsing of the lobby chat anymore until one gets to the game lobby/staging screen 20161018 10:52:05< vultraz> so there will be a gap in the log 20161018 10:52:32< loonycyborg> actually there's also stage 20161018 10:52:36< loonycyborg> when you created game 20161018 10:52:44< loonycyborg> and waiting for more players to join 20161018 10:53:03< vultraz> wait, that's separate from in-lobby and in-game? 20161018 10:53:09< vultraz> ie, there are 3 states? 20161018 10:55:12< loonycyborg> nope 20161018 10:55:22< loonycyborg> it moves creating player immediately in game 20161018 10:55:34< loonycyborg> in response to successful [create_game] 20161018 10:56:07< vultraz> ugh 20161018 10:56:08< loonycyborg> this is a database constraint, if a game exists there always must be at least 1 player in it 20161018 10:56:21< vultraz> right, ok... 20161018 10:56:56< vultraz> is there any client-side command to leave a room? 20161018 10:57:18< vultraz> ie, is there some way i can say "ok, game is starting now, leave lobby" 20161018 10:57:28< vultraz> (assuming you made lobby chat forward to all clients) 20161018 10:57:58< vultraz> or does it respond to a [leave_room] tag or something? 20161018 10:58:05< vultraz> or did that not make the port. 20161018 10:58:25< loonycyborg> [join_game] moves client into a game 20161018 10:58:50< loonycyborg> from server's pov 20161018 10:59:09< vultraz> right 20161018 10:59:28< vultraz> ugh, I shouldn't have advised you to drop rooms support >_> 20161018 11:00:19< vultraz> the thing is, in GUI1 this was quite simple. you had one chat area, and if you were in lobby you got lobby chat, if you were in-game you got game chat. 20161018 11:00:30< vultraz> but now in GUI2 we can have multiple tabs open at once 20161018 11:00:40< vultraz> chat tabs* 20161018 11:01:33< vultraz> so the lobby/game separation becomes moot 20161018 11:02:14< vultraz> is there a chance things could be reimplemented so the server thinks in terms of rooms rather than lobby OR game? 20161018 11:02:34< vultraz> and just sends data from rooms a client is in? 20161018 11:02:47< vultraz> so instead of: 20161018 11:02:59< vultraz> player has joined game, he doesn't get lobby chat 20161018 11:03:00-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20161018 11:03:05< vultraz> it could be made: 20161018 11:03:27< vultraz> ok, player is in BOTH game foo room and lobby room, but not Some Other Room, send him the chat for the first two 20161018 11:03:54< vultraz> tl'dr im asking if you could add rooms back :P 20161018 11:04:30< vultraz> or at least somehow make them non-exclusive. 20161018 11:04:47< loonycyborg> I could do something along those lines, but I need to better understand new gui use-cases 20161018 11:06:02< loonycyborg> there are also bandwidth concerns 20161018 11:06:21< loonycyborg> would we want to always send lobby messages even to clients in games? 20161018 11:06:46< loonycyborg> maybe adding some intermediate state 20161018 11:06:50< loonycyborg> could be possible 20161018 11:06:59< loonycyborg> when a client gets both messages from lobby and game 20161018 11:07:28< vultraz> Essentially I want the chat widget to keep 1 tab per room. So, if you create a game and are waiting for players, you'd have a "this game" room open alongside the "lobby" room. You can switch between them to talk to people in your game or in the lobby. Then when the game is full, the client would say "ok, leave the lobby room now". 20161018 11:10:03< vultraz> In GUI1, the current system made sense since we had no chat tabs. Now we have chat tabs, so it's possible from a UI standpoint to talk to both game and lobby. 20161018 11:10:29< vultraz> But the server still thinks you can only be in game OR lobby. 20161018 11:10:44< loonycyborg> yes, it's even in db constraint 20161018 11:11:08< loonycyborg> I'll need to think how to change that multi-index container to support such intermediate state 20161018 11:12:44< vultraz> I suggested reimplementing rooms as a way to generalize the system since then it could also be used for other purposes. But since I don't know the code I'll leave it to you to decide. 20161018 11:13:01< vultraz> Dunno how useful stuff like multi-person PMs would be. 20161018 11:13:32-!- iceiceice [~chris@pool-173-61-153-221.cmdnnj.fios.verizon.net] has joined #wesnoth-dev 20161018 11:13:47-!- iceiceice [~chris@pool-173-61-153-221.cmdnnj.fios.verizon.net] has quit [Changing host] 20161018 11:13:47-!- iceiceice [~chris@unaffiliated/iceiceice] has joined #wesnoth-dev 20161018 11:13:56< vultraz> considering we don't have thousands of players 20161018 11:15:00< vultraz> in something like dota 2 you have chatrooms for your party and stuff. 20161018 11:15:20< loonycyborg> I'm not convinced that mult-room would help in this particular case, but I definitely could reimplement it 20161018 11:15:42< vultraz> (which now that i think of it might actually be a cool future feature. parties. create a game and everyone in the room joins the game automatically, up to max number of playable sides) 20161018 11:15:47< loonycyborg> and handling game chat as a room too 20161018 11:16:01< loonycyborg> and not treating it like separate thing like old implementation did 20161018 11:16:05< vultraz> yeah 20161018 11:16:41< vultraz> I'll shelve my work here locally until you figure something out. 20161018 11:17:04< vultraz> thanks for looking into it :) 20161018 11:17:18< vultraz> iceiceice: have you come to ponder the font issue? 20161018 11:17:53< iceiceice> vultraz, i think i've gotten confused about something basic, 20161018 11:18:00< iceiceice> if I had an SDL surface, 20161018 11:18:06< iceiceice> and I assign(nullptr) on it 20161018 11:18:14< iceiceice> is it in a "valid, empty state" 20161018 11:18:21< iceiceice> wherein like, blitting will do nothing? 20161018 11:18:31< iceiceice> or is it in an evil, "you will segfault" state 20161018 11:19:00< iceiceice> i mean the font code was already doing assign(nullptr) in several places 20161018 11:19:08< iceiceice> so i assumed that was a sane thing to do 20161018 11:19:30< vultraz> yeah, I'm not sure what the issue is 20161018 11:19:43< vultraz> perhaps the old code didn't actually assign a nullptr' 20161018 11:19:58< iceiceice> it did 20161018 11:20:08< vultraz> hm 20161018 11:20:10< vultraz> then im not sure 20161018 11:20:24< iceiceice> vultraz, you could try reverting that commit and this commit: 20161018 11:20:24< iceiceice> https://github.com/wesnoth/wesnoth/commit/42898b79f973ee6cad4aa9beaf9840e0385ed166 20161018 11:20:26< vultraz> maybe font rendering code should always check that the surface isn't a nullptr before rendering 20161018 11:20:31< iceiceice> and that should be back to as it always was 20161018 11:20:52< vultraz> i did revert the commit i commented on locally and stuff worked fine again. 20161018 11:20:59< vultraz> ie, no more crash in lobby 20161018 11:21:48< vultraz> iceiceice: something to keep in mind is that 'surface' is actually a wrapper class https://github.com/wesnoth/wesnoth/blob/master/src/sdl/utils.hpp#L50 20161018 11:22:05< vultraz> in order to make use of SDL_Surface's refcounting. 20161018 11:22:53< iceiceice> hmmmm 20161018 11:23:02< iceiceice> ok thx 20161018 11:23:04< vultraz> it's essentially a hand-rolled shared_ptr. 20161018 11:23:08< vultraz> of sorts 20161018 11:23:22< vultraz> but very specialized 20161018 11:24:58< iceiceice> it looks pretty hackish :p 20161018 11:25:12< iceiceice> is this supported by SDL ? 20161018 11:25:21< iceiceice> to manually manipulate the ref counts? 20161018 11:26:15< vultraz> yes 20161018 11:26:39< iceiceice> hmm ok 20161018 11:27:04< vultraz> it used to use a custom shared_ptr impl 20161018 11:27:15< vultraz> but since i dropped that i just rolled the functionality into the surface class 20161018 11:27:15< iceiceice> vultraz, also ftr, i think `!vec.size()` is better than `vec.empty()` 20161018 11:27:26< vultraz> since i couldn't get it to work with a shared_ptr 20161018 11:27:32< vultraz> iceiceice: i disagree 20161018 11:27:46< vultraz> iceiceice: .empty is more clearer when reading 20161018 11:27:53< vultraz> clear* 20161018 11:28:02< iceiceice> i guess i find !vec.size() more clear when reading 20161018 11:28:07< iceiceice> since i never use .empty() 20161018 11:28:15< JyrkiVesterinen> I prefer .empty() too. It's faster with some other containers such as std::list. 20161018 11:28:39< iceiceice> yah but in real code you almost never use a std::list 20161018 11:28:59-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has joined #wesnoth-dev 20161018 11:29:01< vultraz> i always use .empty 20161018 11:29:13< vultraz> if i use .size for something it's always to check against a number 20161018 11:29:42< vultraz> i think that's good convention but *shrug* 20161018 11:30:19< iceiceice> alright, i'll change this one to .empty() :p 20161018 11:30:23< vultraz> (I assume !size works because an empty vec would have a size of 0?) 20161018 11:30:29< iceiceice> yes 20161018 11:31:12< iceiceice> vultraz, i guess when i have an unsigned integer x, i often just do `if(x)` or `if(!x)` 20161018 11:31:43< vultraz> interesting 20161018 11:31:58< JyrkiVesterinen> I prefer explicit comparison to numbers, for the purpose of self-documenting code. 20161018 11:32:10< JyrkiVesterinen> "if x is not zero" instead of "if x". 20161018 11:32:45< iceiceice> i don't think there is a documentation benefit to that 20161018 11:32:57< JyrkiVesterinen> No, there isn't documentation benefit. 20161018 11:33:07< JyrkiVesterinen> I simply mean how I read the code in my mind. 20161018 11:33:38< vultraz> i mostly agree with JyrkiVesterinen 20161018 11:33:45< iceiceice> i guess i'm just very used to the int -> bool conversions 20161018 11:33:48< vultraz> except when it comes to checking against a nullptr :P 20161018 11:34:01< JyrkiVesterinen> I do it even when I check against nullptr. 20161018 11:34:02< vultraz> I always use if(ptr) instead of if(ptr != nullptr) 20161018 11:34:03< iceiceice> if you are not then i can see why you wouldn't like it 20161018 11:34:53< JyrkiVesterinen> I know how the conversions work, but I find the flow of code is easier to follow when one doesn't rely on them. 20161018 11:34:57< iceiceice> "contextual conversion to bool" is a pretty important thing in C++ 20161018 11:35:18< iceiceice> do you also prefer to do like `if (x.empty())` when x is a boost::optional or something? 20161018 11:35:26< iceiceice> or do you just write `if (x)` ? 20161018 11:35:41< JyrkiVesterinen> With boost::optional I do if (x). 20161018 11:36:02< iceiceice> i guess i am happy to do `if (x)` with primitive types also 20161018 11:36:32< vultraz> JyrkiVesterinen: if(ptr) is also very useful if you do assignment in the conditional 20161018 11:37:15< vultraz> JyrkiVesterinen: since i think if(ptr = func() != nullptr) isn't valid, at least until c++17 where I *think* you can do if(ptr = func(); ptr != nullptr) 20161018 11:37:53< JyrkiVesterinen> I avoid assignment in the conditional. Probably in order to avoid if(ptr). 20161018 11:38:00< vultraz> heh :P 20161018 11:38:12< vultraz> i like assignment in the conditional since it reduces lines of code 20161018 11:38:22< vultraz> and it's a rather clean was of defining scope 20161018 11:38:32< vultraz> not that it's really necessary 95% of the time 20161018 11:38:47< vultraz> you almost never need to scope stuff 20161018 11:38:54< iceiceice> yah i kind of like assignment in the conditional 20161018 11:39:10< vultraz> at least in my experience 20161018 11:39:25< vultraz> and i rather dislike scoping with {} 20161018 11:39:34< iceiceice> vultraz, i dont really have time today to test the text stuff 20161018 11:39:43< iceiceice> i could try to make another patch commit 20161018 11:39:48< iceiceice> it might be better to revert those two commits for now 20161018 11:40:06< vultraz> iceiceice: well, it seems only the second was causing issues 20161018 11:40:12< vultraz> do we need to revert the first? 20161018 11:40:22< iceiceice> gfgtdf suggested that the first caused an issue 20161018 11:40:30< vultraz> iceiceice: also it's possible we should do checks for validity before rendering 20161018 11:40:36< iceiceice> i guess i will try to make a third commit, and if more problems are reported we'll revert all three 20161018 11:41:01< vultraz> iceiceice: idk which is better coding pratice 20161018 11:41:04< vultraz> practice 20161018 11:41:32< iceiceice> the best practice is to have good documentation in our class surface that explains what the preconditions are 20161018 11:41:45< iceiceice> ideally with references to SDL docu also 20161018 11:41:57< vultraz> true 20161018 11:42:19< vultraz> iceiceice: btw i was wondering if you could take a look at that 'light font not showing' thing if you have some time in the next few days 20161018 11:42:30< vultraz> iceiceice: idk if you saw i committed some code for the light font variation 20161018 11:42:34< vultraz> and the weight is set corrctly 20161018 11:42:38< vultraz> i verified 20161018 11:42:45< vultraz> but it looks the same on-screen 20161018 11:42:57< iceiceice> maybe try using pango "thin" or "ultra-thin" or something? 20161018 11:43:04< iceiceice> and see if that makes a difference? 20161018 11:43:05< vultraz> tried it 20161018 11:43:15< vultraz> doesn't 20161018 11:43:26< vultraz> in fact nothing makes a difference really 20161018 11:43:38< vultraz> i did try the 1000 (highest) weight and that did change the font slightly 20161018 11:43:45< vultraz> which makes me think he font isn't loaded 20161018 11:43:49< vultraz> an dit's just doing it programically 20161018 11:44:38-!- midzer_ [~quassel@p57B45F9C.dip0.t-ipconnect.de] has joined #wesnoth-dev 20161018 11:44:39< iceiceice> does pango load special fonts for bold and italic? 20161018 11:44:45< iceiceice> or does it do it programmatically? 20161018 11:45:14< vultraz> you made it load different fonts 20161018 11:45:15< vultraz> remember 20161018 11:45:24< vultraz> 2 years ago or so? 20161018 11:45:42< iceiceice> yah but that was SDL_TTF i think 20161018 11:45:47< vultraz> no pango 20161018 11:45:51< iceiceice> hmmm 20161018 11:46:12< vultraz> or at least you did something to make pango use it 20161018 11:46:32-!- midzer [~quassel@p5B2968AF.dip0.t-ipconnect.de] has quit [Ping timeout: 268 seconds] 20161018 11:46:38< vultraz> bc the stuff like the right edges of fonts being cut off got fixed 20161018 11:46:39< iceiceice> vultraz, all the code i added two years ago, now ended up in sdl_ttf.cpp 20161018 11:46:41< vultraz> italic fonts* 20161018 11:46:49< iceiceice> the "open_font" function, 20161018 11:46:50< vultraz> ...oh? 20161018 11:46:51< vultraz> odd.. 20161018 11:46:54< iceiceice> and the cache that it is using 20161018 11:47:09< iceiceice> the logic you are talking about is this function basically 20161018 11:47:09< iceiceice> https://github.com/wesnoth/wesnoth/blob/master/src/font/sdl_ttf.cpp#L228 20161018 11:47:29< vultraz> but that's ttf not pango :| 20161018 11:48:00< iceiceice> yeah i dont think i did anything for pango 20161018 11:48:14< iceiceice> i think pango font selection is controlled by font_config or whatever 20161018 11:50:26< vultraz> but that uses the [font] tags 20161018 11:50:36< vultraz> which pango/gui2 isn't supposed to use 20161018 11:50:41< vultraz> or so i thought 20161018 11:50:56< iceiceice> yah i mean 20161018 11:51:08< iceiceice> the main reason i added that stuff is because the crappy sdl_ttf italics bothered me in the help pages 20161018 11:51:36< iceiceice> even though its gui1 and supposedly on the way out, it was not too hard to improve it a bit 20161018 11:52:47< vultraz> but how did you fix the bad pango italics 20161018 11:55:11< iceiceice> if i did, i have no idea how that was 20161018 11:55:23< iceiceice> maybe font_config just picked up on the italic fonts in the directory? 20161018 11:58:14< iceiceice> vultraz, i think font_config is actually rather evil 20161018 11:58:47< iceiceice> its sort of like, we actually want to have low-level control over what fonts are selected 20161018 11:59:06< iceiceice> or at least, know what is going to be selected 20161018 11:59:31< iceiceice> but instead font_config is like some voodoo and we don't really understand it 20161018 11:59:41< iceiceice> and it does surprising things on various platforms 20161018 12:00:12< iceiceice> i think like, it makes sense for GTK, you know, typical GNU desktop programs 20161018 12:00:41< iceiceice> because they want to have something thats going to work reliably and always pick something if possible for a general purpose gui program 20161018 12:01:16< iceiceice> but for wesnoth it's probably better if we can say "only pick the stuff in this fonts folder ok?!" 20161018 12:02:00< iceiceice> but i dont know if we can easily make cairo-pango work without font_config 20161018 12:02:12< JyrkiVesterinen> Yes, I agree. Games usually need full control of which fonts they use. 20161018 12:02:13< vultraz> there should be a way 20161018 12:02:24< vultraz> how does anura do it? 20161018 12:02:28< vultraz> i mean, you have a point 20161018 12:02:31< iceiceice> they dont use cairo-pango 20161018 12:02:39< iceiceice> they use cairo for certain graphics 20161018 12:02:49< iceiceice> and they use freetype directly to get glyphs i think 20161018 12:02:51< vultraz> since like, you can use font-family=serif in pango markup and get a system-default serif font 20161018 12:03:31< iceiceice> vultraz, i guess the benefit of pango is that 20161018 12:03:38< iceiceice> it does actual text layout 20161018 12:03:42< iceiceice> and kerning and so on 20161018 12:03:52< iceiceice> freetype only does one letter at a time 20161018 12:04:06< iceiceice> and in anura, ithink they just like, stick the blocks next to eachother 20161018 12:04:12< iceiceice> so they don't get like, nicely shaped text 20161018 12:04:17< iceiceice> at least to my knowledge 20161018 12:05:15< vultraz> it looks pretty nice to me 20161018 12:05:16< iceiceice> also the pango markup is a good thing i think 20161018 12:06:36< iceiceice> vultraz, i only know a small amount about the whole cairo-pango text stack, 20161018 12:06:53< iceiceice> but basically freetype is 95% of the work, thats what takes a unicode character and gives you a glyph (bitmap) 20161018 12:07:29< iceiceice> pango is a layout engine, it takes whole blocks of text and figures out exactly how far the characters should be spaced etc. 20161018 12:07:33< iceiceice> and also applies the markups 20161018 12:07:46< iceiceice> harfbuzz is like, some intermediate component that i dont fully underestand 20161018 12:08:03< iceiceice> that computes certain kinds of hints or something to assist in layout 20161018 12:09:07< iceiceice> the reason to use cairo pango is because you want to get all the kerning and layout exactly right 20161018 12:09:17< iceiceice> and make the text look as good as it does in a web browser 20161018 12:09:24-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20161018 12:09:26-!- Nobun [~nobun@5.170.112.57] has quit [Quit: Salve a tutti] 20161018 12:09:46-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 12:09:46< iceiceice> if you don't care about that then the simplest thing is to do what anura does 20161018 12:09:54< iceiceice> (what i dimly remembe rthat anura does) 20161018 12:09:59< iceiceice> where you only use freetype 20161018 12:11:11< iceiceice> but i tend to think that, wesnoth actually wants the text to look amazingly good 20161018 12:11:40< iceiceice> idk thats been my impression 20161018 12:11:44-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20161018 12:12:04< iceiceice> and i think it generally does work pretty well 20161018 12:12:16< iceiceice> there are some snafus in gui2::ttext still 20161018 12:12:25< vultraz> it does 20161018 12:12:30< iceiceice> i think there is like a fundamental arithmetic error actually 20161018 12:12:32< vultraz> but aa is still rather iffy on windows 20161018 12:12:33< vultraz> slightly 20161018 12:12:43< vultraz> and we need the custom blit stuff 20161018 12:12:54< vultraz> and now i can't get the interface to load the thin font :( 20161018 12:13:19-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Remote host closed the connection] 20161018 12:14:15-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Ping timeout: 250 seconds] 20161018 12:14:41-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20161018 12:15:39-!- midzer_ is now known as midzer 20161018 12:16:38< iceiceice> vultraz, oh yah i forgot about the custom blit stuff 20161018 12:17:27< iceiceice> vultraz, are we sure that the problem is not that SDL_BlitSurface is not that well-designed? 20161018 12:17:58< iceiceice> i remember lipkab also had complaints about this kind of thing 20161018 12:18:25< vultraz> shrug 20161018 12:18:26< iceiceice> it might be better to switch allt he SDL_blitsurface to use a single custom blit function 20161018 12:18:33< vultraz> noooo :P 20161018 12:18:36< iceiceice> if the goal is to reduce the number of different blits 20161018 12:18:48< vultraz> sdl blit works in 99% of the cases 20161018 12:18:52< vultraz> it's just text and gui2 images 20161018 12:19:00< vultraz> which for some reason come out with slightly different alpha 20161018 12:19:05< iceiceice> i thought it was, except partially transparent images 20161018 12:19:22< iceiceice> i mean its probably because they are using some lame hack or something 20161018 12:19:37< vultraz> er, right, partially transparent, 20161018 12:20:07< iceiceice> if theres one thing i learned from working on wesnoth, its that SDL is bad :p 20161018 12:21:00< vultraz> sdl2 is much better than sdl 1.2 20161018 12:22:39< vultraz> iceiceice: so this is the problem with images and blit surface (https://drive.google.com/file/d/0B-mR9s8FduLLTTF5Tklna1lfNnc/view?usp=sharing) vs sdl blit (https://drive.google.com/file/d/0B-mR9s8FduLLSFBwX1Q1R21zNmM/view?usp=sharing) 20161018 12:22:54< vultraz> iceiceice: preferably we wouldn't be blitting anything and using textures but shrug 20161018 12:27:14-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Ping timeout: 250 seconds] 20161018 12:27:23-!- stikonas_ [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20161018 12:28:07-!- stikonas_ [~gentoo@wesnoth/translator/stikonas] has quit [Remote host closed the connection] 20161018 12:28:15-!- louis94 [~~louis94@91.178.241.63] has joined #wesnoth-dev 20161018 12:34:38< loonycyborg> hmm that new lua code is using -include to feed headers directly to complier. I assume there are really good reasons for that? 20161018 12:35:38< vultraz> as far as i know, yes 20161018 12:39:00-!- louis94 [~~louis94@91.178.241.63] has quit [Ping timeout: 260 seconds] 20161018 12:40:20-!- irker865 [~irker@uruz.ai0867.net] has joined #wesnoth-dev 20161018 12:40:20< irker865> wesnoth: loonycyborg wesnoth:master 9d9cc79cf6ca / src/lua/SConscript: Fix scons -Y build by making wesnoth_lua_config.h path repository-aware https://github.com/wesnoth/wesnoth/commit/9d9cc79cf6cad0f9c21ff4ee05dd3836c74f3792 20161018 12:41:01< loonycyborg> shadowm: I got scons -Y to work again 20161018 12:50:50-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20161018 12:57:37-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has quit [Ping timeout: 256 seconds] 20161018 13:00:00-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has joined #wesnoth-dev 20161018 13:07:53-!- mattsc [~mattsc@wesnoth/developer/mattsc] has quit [Quit: mattsc] 20161018 13:11:05-!- Appleman1234 [~Appleman1@KD106154019035.au-net.ne.jp] has quit [Ping timeout: 260 seconds] 20161018 13:12:21-!- louis94 [~~louis94@91.178.241.63] has joined #wesnoth-dev 20161018 13:18:53-!- mattsc [~mattsc@wesnoth/developer/mattsc] has joined #wesnoth-dev 20161018 13:19:48-!- iceiceice [~chris@unaffiliated/iceiceice] has quit [Ping timeout: 252 seconds] 20161018 13:35:45-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has quit [Ping timeout: 252 seconds] 20161018 13:37:21-!- tad_carlucci [~lundberg@173.217.65.103] has joined #wesnoth-dev 20161018 13:44:57< tad_carlucci> loonycyborg, The use of -include to inject headers was the only cross-toolset method I could find which did not involve changing every *.cpp in src. 20161018 13:50:37-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has joined #wesnoth-dev 20161018 13:59:03-!- horrowind [~Icedove@2a02:810a:8380:10a8:21b:fcff:fee3:c3ff] has quit [Remote host closed the connection] 20161018 14:01:42-!- Appleman1234 [~Appleman1@KD106154001160.au-net.ne.jp] has joined #wesnoth-dev 20161018 14:02:46< irker865> wesnoth: Charles Dang wesnoth:master 4675b4a8db11 / src/gui/dialogs/preferences_dialog.cpp: Preferences: fixed 'no friends on list' label not being correctly initially visi https://github.com/wesnoth/wesnoth/commit/4675b4a8db1174fe134ef35fcab4cd14d7b46b63 20161018 14:03:41-!- JyrkiVesterinen [~JyrkiVest@nblzone-242-23.nblnetworks.fi] has quit [Quit: .] 20161018 14:06:52< matthiakrgr> anyone else having build problems? :/ 20161018 14:07:09< tad_carlucci> matthiakrgr, Which build problems? 20161018 14:08:13< matthiakrgr> http://pastebin.com/8SQTEwty 20161018 14:09:13< matthiakrgr> ( make wesnothd wesnoth ) 20161018 14:10:43< tad_carlucci> do you have the file it says it can't make? 20161018 14:10:59< tad_carlucci> Are you building out-of-tree 20161018 14:11:14< matthiakrgr> yes, building out of tree 20161018 14:11:34< matthiakrgr> it's in ./src/wesnoth_lua_config.h 20161018 14:11:42< matthiakrgr> but not in the build dir 20161018 14:12:06< matthiakrgr> cwd being repo root 20161018 14:12:37< matthiakrgr> git status says everything is ok 20161018 14:12:52-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has quit [Ping timeout: 256 seconds] 20161018 14:13:54< tad_carlucci> loonycyborg fixed it for out-of-tree builds for scons. I will see what I can learn to do the same for CMake. 20161018 14:14:02< matthiakrgr> meh, I'll try a clean rebuild when I'm home, it's only take another hour of compiling doing it from scratch 20161018 14:14:05< matthiakrgr> oh 20161018 14:15:00< matthiakrgr> bbiab 20161018 14:25:18< tad_carlucci> Nah. It needs fixin' .. i'll get to it once Travis is happy 20161018 14:26:17< matthiakrgr> ok 20161018 14:40:10-!- Kwandulin [~Miranda@p5DDD2B8F.dip0.t-ipconnect.de] has joined #wesnoth-dev 20161018 14:43:40-!- travis-ci [~travis-ci@ec2-54-158-59-243.compute-1.amazonaws.com] has joined #wesnoth-dev 20161018 14:43:41< travis-ci> wesnoth/wesnoth#11651 (master - 4675b4a : Charles Dang): The build has errored. 20161018 14:43:42< travis-ci> Build details : https://travis-ci.org/wesnoth/wesnoth/builds/168623477 20161018 14:43:42-!- travis-ci [~travis-ci@ec2-54-158-59-243.compute-1.amazonaws.com] has left #wesnoth-dev [] 20161018 14:44:45< matthiakrgr> ;_; 20161018 14:51:41-!- mattsc [~mattsc@wesnoth/developer/mattsc] has quit [Quit: mattsc] 20161018 14:54:10< tad_carlucci> Give me a few more minutes. The PR is about to greenlight on Travis. Once it does, I'll need it merged. 20161018 14:59:25-!- iceiceice [~chris@pool-173-61-153-221.cmdnnj.fios.verizon.net] has joined #wesnoth-dev 20161018 15:03:44-!- louis94 [~~louis94@91.178.241.63] has quit [Quit: Konversation terminated!] 20161018 15:06:29-!- horrowind [~Icedove@2a02:810a:8380:10a8:21b:fcff:fee3:c3ff] has joined #wesnoth-dev 20161018 15:16:13-!- mattsc [~mattsc@wesnoth/developer/mattsc] has joined #wesnoth-dev 20161018 15:16:55< tad_carlucci> YEAH! Someone with merge access, let's merge PR 832 and get Travis back. 20161018 15:18:37< tad_carlucci> Now, to fix CMake for matthiakrgr 20161018 15:22:06< irker865> wesnoth: Gregory A Lundberg wesnoth:master f4e2cc6681d0 / data/test/scenarios/interrupts.cfg: Fix a unit test https://github.com/wesnoth/wesnoth/commit/f4e2cc6681d02f9ba50d206848217b10bb85da1e 20161018 15:22:08< irker865> wesnoth: Chris Beck wesnoth:master a0b77b14ed45 / data/test/scenarios/interrupts.cfg: Merge pull request #832 from GregoryLundberg/GL_Fix_unit_test https://github.com/wesnoth/wesnoth/commit/a0b77b14ed4549458d4d5abe9c969d8ad739f2e0 20161018 15:22:45-!- bumbadadabum [~bumbadada@wesnoth/developer/bumbadadabum] has joined #wesnoth-dev 20161018 15:23:05< iceiceice> tad_carlucci, ^ 20161018 15:27:04< tad_carlucci> ty 20161018 15:27:11< mattsc> iceiceice: hi — just to add to the comment I posted on github, that wasn’t a guess that it was due to that commit, I actually did a bisect to track it down. 20161018 15:27:32< iceiceice> hmm ok 20161018 15:29:58< iceiceice> mattsc: thx 20161018 15:38:41< mattsc> Ooo, Wesnoth just panicked at me. In big capital letters. And all because I had a missing parenthesis in a Lua file. 20161018 15:40:36< tad_carlucci> I need to take a look at installing a panic function to handle that more gracefully. 20161018 15:58:13-!- celticminstrel [~celmin@unaffiliated/celticminstrel] has joined #wesnoth-dev 20161018 16:00:49< tad_carlucci> matthiakrgr, You up to testing this change for CMake? See if it gets your build running? 20161018 16:02:11< iceiceice> mattsc: that means something was not being run in a protected context 20161018 16:02:29< iceiceice> i guess someone used call instead of pcall or something? 20161018 16:02:52< iceiceice> was it like one of the "setup" lua files, or a scenario script 20161018 16:04:13-!- gfgtdf [~chatzilla@x4e3697cd.dyn.telefonica.de] has joined #wesnoth-dev 20161018 16:04:18< mattsc> iceiceice: it was the “generic recruit engine” Lua AI. 20161018 16:04:27< iceiceice> hmm 20161018 16:04:47< iceiceice> sounds like problem in the c++ -> lua binding code 20161018 16:06:01< mattsc> iceiceice: okay — and I don’t know if that makes a difference, but the file uses no wesnoth.dofile(), it’s all wesnoth.require() 20161018 16:07:21-!- DeFender1031 [~DeFender1@46-116-17-86.bb.netvision.net.il] has quit [Quit: I'm not back now.] 20161018 16:08:31-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 16:08:40-!- boucman_work [~boucman@fw-alt.idf.smile.fr] has quit [Ping timeout: 250 seconds] 20161018 16:09:14< celticminstrel> iceiceice: AI routines are called with luaW_pcall. 20161018 16:09:32< celticminstrel> src/ai/lua/core.cpp:1152 20161018 16:09:59< iceiceice> celticminstrel, well u have to look in the stack trace to see how it panicked 20161018 16:10:58< tad_carlucci> matthiakrgr, PR 833 should (I hope) get your build running 20161018 16:12:23< mattsc> celticminstrel: if you want to reproduce, just go into ai/lua/generic_recruit_engine.lua and remove any closing ) 20161018 16:12:42< mattsc> The start a local MP and chose the ExpAI for side 1. It will panic as soon as the game starts. 20161018 16:12:58< celticminstrel> Okay so... 20161018 16:13:14< mattsc> ugh; and ignore all the typos in my writing :P 20161018 16:13:39 * mattsc is trying to multitask. He’s never been good at that. 20161018 16:17:24-!- DeFender1031 [~DeFender1@46-116-17-86.bb.netvision.net.il] has joined #wesnoth-dev 20161018 16:19:24-!- JyrkiVesterinen [~JyrkiVest@87-100-226-122.bb.dnainternet.fi] has joined #wesnoth-dev 20161018 16:22:42< gfgtdf> mattsc: in the this related to the lua 5.3 upgrade or does it also happen before? 20161018 16:23:01< tad_carlucci> gfgtdf, I was about to look into that. 20161018 16:23:04< mattsc> gfgtdf: I don’t know. And I don’t have time to check right now. 20161018 16:23:46< gfgtdf> ok 20161018 16:24:23< mattsc> It’s easy enough to check and I am happy to do so, but probably won’t have time for it (for anything Wesnoth other than a few quick messages here) until tonight. 20161018 16:25:22< mattsc> Tonight in GMT-7, or whatever this time zone is. 20161018 16:26:03< tad_carlucci> PR 832 is working around something having to do with pcall (within Lua) not returning. The panic has to do with an error not being caught. We didn't have a panic function before, so that's not it. But that's 2 exception-y problems today so I'm looking. 20161018 16:29:48< iceiceice> tad_carlucci, panic is sort of like, assertion failure 20161018 16:30:08< iceiceice> you're not really supposed to recover from panic, the only thing a panic handler might do is like, some logging or something 20161018 16:30:14< tad_carlucci> iceiceice, panic is Lua's catch-all for all else failed so time to abort() 20161018 16:30:25< iceiceice> yes 20161018 16:30:49< gfgtdf> maybe you just forgot his porjectifles in the wesnoth_lua_config.ggo change? 20161018 16:31:13< gfgtdf> mattsc: which pojjectfiles do you use to buidl wesnoth ? 20161018 16:32:06< celticminstrel> gfgtdf: No, I updated the XCode project. 20161018 16:32:20< tad_carlucci> gfgtdf, matthiakrgr reports problems with out-of-tree builds. PR 833 should fix that, but I cannot test. 20161018 16:32:46< tad_carlucci> "Works for me." 20161018 16:32:55< celticminstrel> tad_carlucci: I thought loonycyborg already fixed that? Or is 833 for CMake or something? 20161018 16:33:07< tad_carlucci> celticminstrel, yes, CMake side 20161018 16:33:19< mattsc> gfgtdf: as celticminstrel says 20161018 16:35:12< tad_carlucci> celticminstrel, master is showing passed (dunno where irker is about it). I am building debug and when it finishes I'm going to revisit PR 832 and look at mattsc's crash report. 20161018 16:36:41< celticminstrel> Just for the record, irker is the bot that reports commits, not test results. 20161018 16:37:32-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20161018 16:38:50-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 16:44:34-!- horrowind [~Icedove@2a02:810a:8380:10a8:21b:fcff:fee3:c3ff] has quit [Quit: horrowind] 20161018 16:48:29< tad_carlucci> I went into HttT where I know the Lua and removed the first ) and do NOT get a panic. Instead, on-screen but not on console I see " [string "..."]:10: ')' expected (to close '(' at line 9) near 'if'" 20161018 16:49:21< irker865> wesnoth: Celtic Minstrel wesnoth:master 09d35947f4a0 / src/ (11 files in 3 dirs): Fix Lua-invoked dialogs not showing before prestart https://github.com/wesnoth/wesnoth/commit/09d35947f4a05082ec34be292b73a4efc631e1d8 20161018 16:49:45< celticminstrel> tad_carlucci: I would guess that it needs to be an AI routine. 20161018 16:50:04< tad_carlucci> you're right. travis-ci .. and master is passing but travis-ci hasn't told us that yet. 20161018 16:50:38< tad_carlucci> celticminstrel, which points to a different in how its loaded and called. 20161018 16:50:53< celticminstrel> Possibly. 20161018 16:51:10< celticminstrel> src/ai/lua/engine_lua.cpp contains the code for loading it. 20161018 16:51:19< celticminstrel> I mentioned the call site earlier. 20161018 16:51:32< tad_carlucci> celticminstrel, OK. I'll head there and look. 20161018 16:51:37< mattsc> tad_carlucci: it’s not even all AIs, I tried that. But doing the thing with generic_recruit_engine.lua and starting an MP game should be easy enough. 20161018 16:51:41< celticminstrel> There are four or five loading sites in that file. 20161018 16:52:09< mattsc> I’m sorry I can’t help more with this right now, but for some reason my boss actually expects me to do some work … 9.9 20161018 16:52:27< celticminstrel> I guess there's also a call site for the actual engine code maybe... 20161018 16:52:36< celticminstrel> Heh... 20161018 16:52:40< tad_carlucci> I tried the 'remove any )' and it didn't fail at all. probably need to trigger the generic_recuit thing 20161018 16:53:03< mattsc> Umm, yes, you need to start an MP game that uses it. 20161018 16:53:25< tad_carlucci> mattsc Which MP game? Any? 20161018 16:53:28< celticminstrel> ie choose ExpAI from the dropdown menu at the MP staging screen. 20161018 16:53:55< mattsc> Probably any, yes. I used the Freelands map and chose the ExpAI for side one. 20161018 16:54:01< mattsc> Default settings for everything else. 20161018 16:54:02< tad_carlucci> ok 20161018 16:55:26< celticminstrel> Note: If you choose it for side 2 instead, you'd get the failure only after you end turn, I think. 20161018 16:55:36< tad_carlucci> I can reproduce it. Let me look. 20161018 16:55:58-!- boucman [~rosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20161018 16:55:59-!- boucman [~rosen@wesnoth/developer/boucman] has quit [Remote host closed the connection] 20161018 17:02:08-!- mattsc [~mattsc@wesnoth/developer/mattsc] has quit [Quit: So long and thanks for all the fish.] 20161018 17:04:58< tad_carlucci> Well, it's all pointing toward the pcall function inside Lua. 20161018 17:12:08-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20161018 17:13:56-!- ChipmunkV [~vova@static-89-94-113-91.axione.abo.bbox.fr] has joined #wesnoth-dev 20161018 17:19:51< vultraz> I'm glad we didn't rush this in right before a release. 20161018 17:23:27< celticminstrel> One nice thing about OSX over Windows is that the executable can be overwritten while it's running. :/ 20161018 17:24:37< JyrkiVesterinen> Indeed. Unix-like operating systems keep a copy of the executable in memory in that situation. 20161018 17:24:54< JyrkiVesterinen> Meanwhile Windows uses file locking, which is clearly an inferior solution. 20161018 17:24:59< celticminstrel> Makes it easy to compare before and after. 20161018 17:25:08< vultraz> inferior? 20161018 17:25:25< JyrkiVesterinen> Consider the case of program self-updating, for example. 20161018 17:25:48< JyrkiVesterinen> A Windows program needs a separate updater .exe to replace the program itself. 20161018 17:25:53< celticminstrel> Seems to be hanging at "Getting game data..."... 20161018 17:26:49< vultraz> celticminstrel: what are you doing? 20161018 17:27:00< vultraz> celticminstrel: are you trying to join a game? 20161018 17:27:11< gfgtdf> celticminstrel: you can rename an executtable while is running, and then move a new creat a new file with the orignals name 20161018 17:27:12< celticminstrel> Yes 20161018 17:27:26< vultraz> celticminstrel: that's the "flg dialog not showing" bug 20161018 17:27:42< vultraz> which ive been asking you/anyone to look into :| 20161018 17:27:46< celticminstrel> Well, it seems like the dialog thinks it's showing. 20161018 17:27:52< celticminstrel> But it isn't being drawn. 20161018 17:28:20< celticminstrel> Or responding to events (eg enter). 20161018 17:28:23< celticminstrel> So basically... 20161018 17:29:14< celticminstrel> Somehow it's like events aren't being processed? 20161018 17:29:16< celticminstrel> I dunno. 20161018 17:30:35< celticminstrel> It's a little suspicious to be calling it from post_build, though I have no idea why that would fail. 20161018 17:30:56< vultraz> tried it from preshow too 20161018 17:31:00< vultraz> didn't seem to make a difference 20161018 17:31:14< vultraz> could try again, i suppose 20161018 17:31:34< celticminstrel> I get why it's a blocker now, though. The way you were saying it most of the time, it seemed like it was just skipping the dialog. 20161018 17:33:28-!- Netsplit *.net <-> *.split quits: new_one, minzbonbon 20161018 17:33:44-!- minbonbon [~min@meta23.net] has joined #wesnoth-dev 20161018 17:34:05-!- Netsplit over, joins: new_one 20161018 17:41:52-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20161018 17:44:19< celticminstrel> Oh, you removed the ability to set your faction in the wait dialog. 20161018 17:51:02< celticminstrel> I don't know why it won't show, but did you consider showing it before showing the wait dialog rather than as part of showing the wait dialog? 20161018 18:22:50< tad_carlucci> The panic from mattsc is not from Lua 5.3.3. I rolled back to just before I swapped it in and the panic still occurs. Rolling back before any of the upgrade changes now. 20161018 18:25:19< tad_carlucci> That panic is old and completely not related to any of my Lua work. Should I track it down further? 20161018 18:25:52< celticminstrel> Up to you, I guess. 20161018 18:26:59< tad_carlucci> I'll give it the afternoon. At least now I know to look in the C++ instead of Lua or the exception handling. 20161018 18:28:52< tad_carlucci> We really should be catching the error. Not that we can do anything better with it than crash, unless simply ignoring the AI step and praying the game survives. 20161018 18:30:13< celticminstrel> Ignoring the AI step seems like the right action to me. 20161018 18:30:30< celticminstrel> So you basically end up with a no-op AI action. 20161018 18:37:14< tad_carlucci> OK. I think I see the issue. It will mean refactoring the string built to call the implicit function from 'evaluate' to 'pcall("evaluate")' .. checking now but it helps to use a debug build so it'll be a bit 20161018 18:37:45< celticminstrel> So basically using the Lua-side pcall()? 20161018 18:38:08< tad_carlucci> that's my thinking. Instead of an implicit call() 20161018 18:38:13< celticminstrel> Though I think it'd make sense to be using the C++ pcall to invoke that in the first place. 20161018 18:38:22< celticminstrel> Unless that's impossible because it's a load, or something. 20161018 18:38:38< tad_carlucci> Can't do that without rewriting the entire AU Lua codebase 20161018 18:38:45< celticminstrel> I see. 20161018 18:38:56< celticminstrel> Well, it could do with a rewrite anyway, but that's a separate issue. 20161018 18:40:01< tad_carlucci> In Lua when you load a "chunk" like we do, it's implicitly a function and we're calling the sub-function inside it. It _may_ be possible to use luaW_pcall but first I need to see what the Lua script we're actually running looks like. 20161018 18:40:11< tad_carlucci> It's built on the fly in the C++ 20161018 18:40:25< celticminstrel> Yeah. 20161018 18:41:14< tad_carlucci> If I can refactor to call directly into "evaluate" with luaW_pcall() we'll pick up some (probably unmeasurable) performance improvement, too. 20161018 18:41:33< tad_carlucci> But it's AI .. it may be called a lot so it might add up to be noticable. 20161018 18:41:36< tad_carlucci> We'll see. 20161018 18:43:43-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20161018 18:45:14-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 18:48:27-!- stikonas [~gentoo@wesnoth/translator/stikonas] has quit [Quit: Konversation terminated!] 20161018 18:49:00-!- iceiceice [~chris@pool-173-61-153-221.cmdnnj.fios.verizon.net] has quit [Quit: Ex-Chat] 20161018 18:49:59-!- stikonas [~gentoo@wesnoth/translator/stikonas] has joined #wesnoth-dev 20161018 18:51:18< gfgtdf> celticminstrel: that 'show dialog befpre prestart' looks highyl usafe to me, note that the lua initlisation happens whiel teh loadoingscreen is up in a seperate thread. 20161018 18:51:57< celticminstrel> Well, I tested it and it worked. 20161018 18:52:02< celticminstrel> How is it unsafe? 20161018 18:52:48< gfgtdf> celticminstrel: well you show a dialog in a worker thread while the main thread shows the loadingscreen dialog, the gui code was just not designed ot handle somethign liek this 20161018 18:53:27< celticminstrel> Seemed to work though. 20161018 18:53:40< celticminstrel> But maybe we should get lots of people to test it. 20161018 18:54:21< tad_carlucci> return wesnoth.require("ai/lua/ca_high_xp_attack.lua").execution(self, params, data) is what causes the panic when there is a syntax error in the lua. This IS an unprotected call. Now, to see if I can fix it. Quick: more complex lua using pcall() or Hard: do the work in C++ .. I'm going for Quick 20161018 18:54:34-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20161018 18:54:51< celticminstrel> The test is to add something like wesnoth.show_popup_dialog("Title", "Message") after line 11 of data/core/_main.cfg 20161018 18:55:09< celticminstrel> tad_carlucci: As long as we see the error message somewhere, preferably in the chat area. 20161018 18:57:49< tad_carlucci> celticminstrel, First problem is just using pcall. Most likely that will do it: throw to our exception which will do what it does and display the message. 20161018 19:08:47-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 19:09:22< gfgtdf> celticminstrel: it then shows on top of the loadingscreen ? 20161018 19:09:27< gfgtdf> showed* 20161018 19:09:58< celticminstrel> Yes 20161018 19:22:46-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20161018 19:37:32-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has quit [Remote host closed the connection] 20161018 19:37:38-!- janebot [~Gambot@unaffiliated/gambit/bot/gambot] has joined #wesnoth-dev 20161018 19:47:34< tad_carlucci> Can we do away with the tooltop floaters when selecting a multiplayer server? They're huge, always in the way, and annoying. 20161018 19:47:42< matthiakrgr> gfgtdf: the game crashes now when hovering a unit :/ 20161018 19:47:56-!- matthiakrgr is now known as matthiaskrgr 20161018 19:49:40-!- irker865 [~irker@uruz.ai0867.net] has quit [Quit: transmission timeout] 20161018 19:53:44< gfgtdf> iceiceice: ^ 20161018 19:55:41-!- iceiceice [~chris@pool-173-61-153-221.cmdnnj.fios.verizon.net] has joined #wesnoth-dev 20161018 19:55:42-!- iceiceice [~chris@pool-173-61-153-221.cmdnnj.fios.verizon.net] has quit [Changing host] 20161018 19:55:42-!- iceiceice [~chris@unaffiliated/iceiceice] has joined #wesnoth-dev 20161018 19:55:58< iceiceice> gfgtdf: i'm going to revert the buffer change 20161018 19:56:10< matthiaskrgr> stacktrace: http://pastebin.com/H4ad3SAj 20161018 19:56:12< iceiceice> can try again later 20161018 19:58:00< gfgtdf> iceiceice: i left a comment in teh github thread, my problme is thught that i dont know what teh first parmaeter to SDL_CreateRGBSurface does, the SDL wik saiy its ignores but actually in the other places wher we use it we pass all find of stuff there 20161018 19:58:34< gfgtdf> says it is ignored* 20161018 19:58:39< gfgtdf> kind* 20161018 20:00:17< JyrkiVesterinen> Maybe it was used in SDL 1.x, and it remains from those days? 20161018 20:02:25< iceiceice> gfgtdf: i think we have to use SDL_CreateRGBSurfaceFrom 20161018 20:02:38< iceiceice> because the point is that cairo renders the surface and then we give it to SDL 20161018 20:02:57< iceiceice> if we use SDL_CreateRGBSurface then i think we get a blank / constant surface 20161018 20:03:01< iceiceice> we could then copy it manually but 20161018 20:03:08< iceiceice> if the old code worked without a copy then that's better 20161018 20:03:11< gfgtdf> iceiceice: in the surface_buffer_.empty/( pathe i menat, to rpelace surface_.assign(nullptr) 20161018 20:03:18< iceiceice> oh 20161018 20:03:59< iceiceice> gfgtdf: what do you think was the behavior before my commit though? 20161018 20:04:10< iceiceice> wouldn't it still have been surface_.assign(nullptr) basically? 20161018 20:04:26< iceiceice> oh hmm 20161018 20:04:27-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 20:04:37< iceiceice> maybe it would have been like SDL_CreateSurfaceFrom(nullptr, 0, 0, 0, 0 ,0 ...) 20161018 20:04:54< iceiceice> ok i see now why you want to use SDL_CreateRGBSurface 20161018 20:07:07-!- Greg-Bog_ [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 20:07:38-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Read error: Connection reset by peer] 20161018 20:08:22< iceiceice> gfgtdf: i think we could also just use wesnoth `create_neutral_surface(0, 0);` 20161018 20:08:49< gfgtdf> iceiceice: hmm don't know what t dpoes exactly 20161018 20:09:37< iceiceice> we tend to use it when we need a "blank" surface 20161018 20:09:55< iceiceice> also: someone should implement move semantics for class surface 20161018 20:10:47< iceiceice> but maybe not until wesnoth stops segfaulting 20161018 20:11:12< gfgtdf> iceiceice: i thought surface is just somethign liek an instruve ptr. 20161018 20:11:48< iceiceice> yah but smart pointers have a nontrivial optimization for move semantics 20161018 20:11:55-!- mjs-de [~mjs-de@x4e3108d8.dyn.telefonica.de] has joined #wesnoth-dev 20161018 20:12:02< iceiceice> you can avoid dereferencing them and even looking at the reference count 20161018 20:12:36< iceiceice> thats why `std::vector` is fast, but in C++03, `std::vector` was extremely slow 20161018 20:15:12< gfgtdf> iceiceice: i'd actualyl be quite surpised if something o commonly used like boost::shared ptr wouldn'T have implemented a move ctor. 20161018 20:15:31< iceiceice> i mean like, if you used it before we have move semantics 20161018 20:15:54< iceiceice> in C++03 if you had `std::vector` and you call push_back, 20161018 20:16:09< iceiceice> if it causes a vector resize then it will have to dereference every shared ptr 20161018 20:16:15< iceiceice> go to control structure 20161018 20:16:22< iceiceice> twiddle the reference count to 2 20161018 20:16:29< iceiceice> then go to all of them again and decrement the reference counts 20161018 20:16:37< iceiceice> because it needs to move all the shared_ptr to a new buffer 20161018 20:16:56< iceiceice> if you have move semantics, then the optimizer can basically turn into memcpy iirc 20161018 20:17:19< iceiceice> well maybe not memcpy 20161018 20:17:28< iceiceice> but like, a single for loop with good locality 20161018 20:17:32< iceiceice> and not dereferencing any of the pointers 20161018 20:18:00< gfgtdf> iceiceice: hmm ok, your first comment made it sound like it'd matter whether its boost::shared_ptr or std::hared_ptr in the c++11 code. 20161018 20:18:17< iceiceice> yah i didnt explain it that well 20161018 20:20:38-!- irker634 [~irker@uruz.ai0867.net] has joined #wesnoth-dev 20161018 20:20:39< irker634> wesnoth: Chris Beck wesnoth:master 4b9ec1bce1b1 / src/font/text.cpp: attempt to fix gui2::ttext when there is no text https://github.com/wesnoth/wesnoth/commit/4b9ec1bce1b13f08d58a20394a3d10b954e59d0e 20161018 20:20:55< iceiceice> ok, i didn't get any segfaults after that commit 20161018 20:20:56< gfgtdf> matthiaskrgr: ^ 20161018 20:20:59< iceiceice> please let me know 20161018 20:23:52< gfgtdf> vultraz: are you currently on windows? 20161018 20:36:25< shadowm> I don't think he's been on anything but Windows for the past 3 years. 20161018 20:38:27-!- mjs-de [~mjs-de@x4e3108d8.dyn.telefonica.de] has quit [Remote host closed the connection] 20161018 20:45:16-!- Greg-Bog_ [~greg_bogg@173.240.241.83] has quit [Ping timeout: 252 seconds] 20161018 20:49:16< gfgtdf> shadowm: ok good to know 20161018 20:49:50< gfgtdf> vultraz: could you polease celmins latest commit on windows? 20161018 20:49:55< gfgtdf> please test* 20161018 20:59:20-!- horrowind [~Icedove@2a02:810a:8380:10a8:21b:fcff:fee3:c3ff] has joined #wesnoth-dev 20161018 21:01:39-!- JyrkiVesterinen [~JyrkiVest@87-100-226-122.bb.dnainternet.fi] has quit [Quit: .] 20161018 21:12:18-!- mattsc [~mattsc@wesnoth/developer/mattsc] has joined #wesnoth-dev 20161018 21:12:20< iceiceice> celticminstrel, i think this line should be fixed up: 20161018 21:12:32< iceiceice> plugins_manager plugins_man(new application_lua_kernel); 20161018 21:12:41< iceiceice> you almost never want to do `new T` with no initializer 20161018 21:13:11< iceiceice> i think in this case it probably will actually call the default constructor, but usually doing new without an initializer is a code smell 20161018 21:14:34-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 21:16:51-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20161018 21:17:00-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 21:18:00-!- matthiaskrgr [matthiaskr@gateway/shell/panicbnc/x-dwkrzmqijmetuoqq] has quit [Ping timeout: 256 seconds] 20161018 21:21:08-!- matthiaskrgr [matthiaskr@gateway/shell/panicbnc/x-rfdkonskvcclgsqp] has joined #wesnoth-dev 20161018 21:21:32-!- matthiaskrgr is now known as Guest68193 20161018 21:22:01-!- Guest68193 [matthiaskr@gateway/shell/panicbnc/x-rfdkonskvcclgsqp] has quit [Changing host] 20161018 21:22:01-!- Guest68193 [matthiaskr@unaffiliated/matthiaskrgr] has joined #wesnoth-dev 20161018 21:22:01-!- Guest68193 [matthiaskr@unaffiliated/matthiaskrgr] has quit [Changing host] 20161018 21:22:01-!- Guest68193 [matthiaskr@gateway/shell/panicbnc/x-rfdkonskvcclgsqp] has joined #wesnoth-dev 20161018 21:22:15-!- Guest68193 is now known as matthiaskrgr_ 20161018 21:25:39-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20161018 21:25:50-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 21:39:31-!- Kwandulin [~Miranda@p5DDD2B8F.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20161018 21:54:28-!- horrowind [~Icedove@2a02:810a:8380:10a8:21b:fcff:fee3:c3ff] has quit [Quit: horrowind] 20161018 21:56:15-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has quit [Ping timeout: 252 seconds] 20161018 21:59:17< celticminstrel> [Oct 18@3:47:34pm] tad_carlucci: Can we do away with the tooltop floaters when selecting a multiplayer server? They're huge, always in the way, and annoying. 20161018 21:59:18< celticminstrel> You mean the dialog where you select a type of MP game? 20161018 21:59:26< celticminstrel> gfgtdf: Actually, I tested that commit on Windows, not Mac. 20161018 21:59:35< celticminstrel> I should test on Mac too, though... 20161018 22:00:10< tad_carlucci> celticminstrel, Yes .. the huge floater gets in the way of the mouse and is .. well .. huge 20161018 22:00:37< celticminstrel> tad_carlucci: By floater you mean the tooltip, right? 20161018 22:00:43< tad_carlucci> celticminstrel, yes 20161018 22:01:23< tad_carlucci> celticminstrel, If it's going to be so large, at least have it take the click to mean what it's saying instead of whatever is below it under the mouse pointer. 20161018 22:02:00< celticminstrel> tad_carlucci: Try this. In data/gui/window/mp_method_select.cfg, in the [tooltip] tag, change definition to tooltip_large 20161018 22:03:30-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20161018 22:04:02< tad_carlucci> celticminstrel, all there is id="tooltip" 20161018 22:04:11< celticminstrel> Oh, then change that. 20161018 22:04:17< celticminstrel> I thought it was definition, not id... 20161018 22:04:31< celticminstrel> GUI WML only takes effect after restarting Wesnoth. 20161018 22:05:29< tad_carlucci> celticminstrel, Nice. No tooltip at all. TY 20161018 22:05:31-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 22:05:51< celticminstrel> tad_carlucci: Huh? It should appear at the bottom of the screen. 20161018 22:06:07< tad_carlucci> Let me check that .. didn't look 20161018 22:06:37< tad_carlucci> celticminstrel, sure enough. never pay attention to that. 20161018 22:07:49< tad_carlucci> celticminstrel, Oh, and mattsc's PANICs? Lua errors. Cascading. And I'm trying to track them down. 20161018 22:08:06< celticminstrel> Fun... 20161018 22:08:40< tad_carlucci> Yep. You can NOT do this: require("something").somefun() 20161018 22:08:47< celticminstrel> Eh? 20161018 22:08:51< tad_carlucci> That causes the panic. 20161018 22:09:00< celticminstrel> What about that causes the panic? 20161018 22:09:16< tad_carlucci> The .somefun() part 20161018 22:09:25< tad_carlucci> Actually, the period 20161018 22:09:29< celticminstrel> So require() returned nil? 20161018 22:09:42< tad_carlucci> No, it returned a function. 20161018 22:09:57< celticminstrel> Wait, is that what we were doing already? 20161018 22:10:03< celticminstrel> Wait, hold on. 20161018 22:10:12< tad_carlucci> Let me pastebin a diff 20161018 22:10:19< celticminstrel> Doesn't require() return the output of the loaded code and not the code as a function? 20161018 22:10:34< celticminstrel> I'll look at your diff after dinner. 20161018 22:11:51< tad_carlucci> pastebin.com/yRLyUX4Q 20161018 22:12:25< mattsc> tad_carlucci: just FYI, that whole wesnoth.require(“xxx”).init(ai) has been around since before me. I (and others) just copied it. 20161018 22:12:42< mattsc> Which isn’t meant to mean that it’s right, just saying 20161018 22:12:44< tad_carlucci> Well it's the source of your panic. 20161018 22:13:07< tad_carlucci> If I fix that one it cascades to another. 20161018 22:13:53< tad_carlucci> The C++ builds it wrong, too, but I can't get to a point where I can test my corrections there because of all the noise coming from lua. 20161018 22:14:10 * tad_carlucci is a bloodhound on the hunt, though. 20161018 22:15:24< tad_carlucci> mattsc, Unless you want to just accept the panic and fix the lua source? 20161018 22:15:56< mattsc> tad_carlucci: that last suggestion is fine by me 20161018 22:16:36< mattsc> it’s not that that happens all that often 20161018 22:16:50< tad_carlucci> OK, good. Because there's a lot of wesnoth.require and most of it a panic is probably the best choice. Like: what to do if lua.helper.lua errors? 20161018 22:17:20< mattsc> Also, with the new syntax, we could just move all those occurences to use external CAs and get rid of them entirely. 20161018 22:17:41< mattsc> sorry, what? 20161018 22:17:59< mattsc> We would have to fix all the wesnoth.requires, or only those that have a .something() added? 20161018 22:18:26< mattsc> There are not many of the latter left, at least not in the AI code 20161018 22:18:36< tad_carlucci> Well, hmm .. ok, I'll only consider the .something() things. 20161018 22:19:05< tad_carlucci> If lua/helper.lua errors it's a massive failure anyway. No sense checking for that. 20161018 22:19:30< mattsc> okay 20161018 22:19:59< mattsc> In the AI code, once we switch the remaining few AIs that still use engine over to external CAs, these instances will all be gone 20161018 22:21:22< tad_carlucci> local H = wesnoth.require "lua/helper.lua" // H.something() // will panic if H was not loaded. 20161018 22:21:22< mattsc> Which is something that should happen eventually anyway, it’s just not been anywhere close to the top of my list so far. 20161018 22:22:04< mattsc> tad_carlucci: that seems strange … because I have done that plenty of times and never seen the panic before 20161018 22:22:36< mattsc> As in, essentially ever on of the AIs uses ai_helper and AH.something() and I have made plenty of mistakes in ai_helper while developing things. 20161018 22:22:45< mattsc> s/ever on/every one 20161018 22:23:22< tad_carlucci> Well, we did just upgrade. I could look to see if something changed. 20161018 22:23:46< mattsc> tad_carlucci: quite honestly, I don’t think it is worth it unless you enjoy doing so 20161018 22:24:00< mattsc> Let me don one really quick test though 20161018 22:24:09< tad_carlucci> ok 20161018 22:25:21< mattsc> Yeah, I just removed a closing ) from ai_helper and called and AI that use it. This is what I get: 20161018 22:25:23< mattsc> [string "..."]:5: in main chunk20161018 15:24:43 error scripting/lua: When executing, Lua runtime error: ai/lua/ai_helper.lua:1079: ')' expected (to close '(' at line 1078) near 'if' 20161018 22:25:33< mattsc> But no crash, the AI just doesn’t work. 20161018 22:26:13< mattsc> The difference might be that Wesnoth calls the AI that then calls ai_helper … 20161018 22:26:51< tad_carlucci> OK. Well, that diff fixed one place and it moved somethere else. I s'pose I'll just have to dig for it. It's related to ai/lua/ca_high_xp_attack.lua but I don't know how 20161018 22:27:39< tad_carlucci> Also, when I fix the ')' I get a different error. Some field missing or nil .. been a while, so I don't remember it exactly. 20161018 22:27:46< mattsc> Are you sure it’s high_xp_attack? Because that has nothing to do with the MP example I mentioned previously. 20161018 22:28:19< tad_carlucci> No. It's jsut the last one loaded. 20161018 22:28:37< mattsc> Okay. 20161018 22:29:55< mattsc> In any case, it does not appear to be happening every time you use an X = wesnoth.require() and the X.whatever(). 20161018 22:30:11< mattsc> In fact, most of the time this will not be happening, or I would have encountered it many times before. 20161018 22:30:19 * tad_carlucci nods. 20161018 22:30:36< tad_carlucci> I've seen panics before jsut never tracked any down. 20161018 22:30:41< mattsc> So, as far as I personally am concerned, this could stay the way it is. 20161018 22:31:06< mattsc> … and I will get rid of those last occurences of wesnoth.require().init(ai) sometime soon(ish) 20161018 22:31:18< tad_carlucci> OK. And probably too much work for the effect. Once the program is debugged you should not see any panics anyway. 20161018 22:31:31< mattsc> exactly 20161018 22:31:55< tad_carlucci> But, I'm fairly sure, at least, that none of this is related to the Lua upgrade. 20161018 22:33:04< tad_carlucci> And that's the reason I've been tracking it down so deeply. I'll drop the branch and leave it. 20161018 22:34:18-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20161018 22:34:26< mattsc> Sounds good, and I didn’t mean to blame you for it. :) 20161018 22:38:08< celticminstrel> So basically, the underlying issue will remain? 20161018 22:38:30< tad_carlucci> mattsc, Not taking it as blame. But for the next few weeks any odd/unexplained lua issues I'm gonna be all over to be sure it's not the upgrade. 20161018 22:39:19< tad_carlucci> celticminstrel, It's a programmer error. Yes, its an underlying bug but if the programmer fixes the lua it goes away. To much work to fix for no effect on a running module. 20161018 22:39:57< tad_carlucci> We fix the panic, the only thing is the game doesn't crash. It's still not working. 20161018 22:40:30< celticminstrel> I think making the game not crash is a very good idea though. 20161018 22:40:43< celticminstrel> Even if it still doesn't work otherwise. 20161018 22:41:07< mattsc> tad_carlucci: yeah, I understand and I would do (in fact, have done) the same 20161018 22:41:50< celticminstrel> How would the panic be fixed? 20161018 22:41:53< tad_carlucci> celticminstrel, No word from travis-ci here for hours and the last three merges to master all passed. Nothing since the failure 20161018 22:42:21< tad_carlucci> celticminstrel, By adding a lot of error checking code for all sorts of extremely unlikely errors. 20161018 22:43:07< celticminstrel> :/ 20161018 22:43:08< tad_carlucci> All of which happen only when someone is working on the lua like mattsc was and makes a syntax error 20161018 22:43:52< tad_carlucci> Basically, anyplace you require() in Lua you run the risk of the panic if you don't check for errors and the module failed to load. 20161018 22:44:10-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 22:44:28< celticminstrel> But that should never crash the game. 20161018 22:44:35< celticminstrel> If it crashes the game I think we need to fix it. 20161018 22:44:35< tad_carlucci> Might just be the require().funct() form, though. 20161018 22:45:17< celticminstrel> mattsc: So, what tag was this Lua code loaded in? [engine]? 20161018 22:45:36< tad_carlucci> celticminstrel, [ai] 20161018 22:45:50< celticminstrel> Needs a subtag under [ai] 20161018 22:45:54< tad_carlucci> For? 20161018 22:46:05< celticminstrel> You can't put Lua code straight in [ai]. 20161018 22:46:17-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20161018 22:46:25-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 22:46:52< tad_carlucci> Well, it's not in the ai. It's the ai itself. *.lua in src/data/ai/* 20161018 22:47:07< celticminstrel> But which tag? 20161018 22:47:21< celticminstrel> Each of those instances corresponds to a particular subtag of [ai]. 20161018 22:47:30< celticminstrel> Which class, if that's easier to answer? 20161018 22:47:33< tad_carlucci> Ah. "All or any" 20161018 22:48:09< celticminstrel> Okay, so it could occur in any of the instances in engine_lua.cpp? 20161018 22:48:32< celticminstrel> Can it occur in the case in core.cpp which calls an already-loaded AI function, though? 20161018 22:48:37< tad_carlucci> Well, the cpp does it wrong, just like the lua. 20161018 22:49:07< tad_carlucci> I tried fixing the cpp and didn't fix mattsc's panic because that one was in the lua not the cpp 20161018 22:49:23-!- ChipmunkV [~vova@static-89-94-113-91.axione.abo.bbox.fr] has quit [Quit: ChipmunkV] 20161018 22:49:49< tad_carlucci> The cpp builds a lua module on the fly. So it could cause a panic. I just can't show it does so I can't test the fix. 20161018 22:50:06< celticminstrel> So... 20161018 22:50:22< celticminstrel> Which was the specific case where he originally noticed it, again? 20161018 22:50:57< tad_carlucci> pastebin.com/yRLyUX4Q 20161018 22:51:09< celticminstrel> Is that the same pastebin from earlier? 20161018 22:51:14< tad_carlucci> yeo 20161018 22:51:45< tad_carlucci> The missing ')' is in generic recruit engine. the panic was here. 20161018 22:51:51< mattsc> celticminstrel: this specific one is in the [candidate_action] tag 20161018 22:52:44< tad_carlucci> And if I fix it I get another panic. Don't know where from, somewhere inder the high XP ai is all I know. 20161018 22:52:46< mattsc> Specifically, this line: https://github.com/wesnoth/wesnoth/blob/master/data/core/macros/ai.cfg#L567 20161018 22:54:56< tad_carlucci> I suppose what I could do is change each AI lua module to have a syntax error and see where it panics. A lot of work and I'm not sure how I'd be sure to trigger each one to be sure. 20161018 22:56:02-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20161018 22:57:07< tad_carlucci> As to leaving a know crash in: well, this is not the first I know of. Fixing the crashes when the engine is starting is going to be real hard, too. So while it's starting, just don't click the "X" to close it until the titlescreen is up. 20161018 22:57:09< celticminstrel> I think some of the cases aren't even used by mainline AI routines. 20161018 22:57:23< celticminstrel> I don't think there's any Lua [goal] tags in mainline AI, for example. 20161018 22:58:35< tad_carlucci> celticminstrel, Where you're headed is an automated test script, you know. To ensure each AI module loads, and call each function to test it works. 20161018 22:59:07< celticminstrel> Well, right now I just want to be able to ensure that it'll never crash... 20161018 22:59:21< celticminstrel> Which just means making sure that any errors are handled and recovered from in some sense. 20161018 23:00:47< tad_carlucci> So what is the error recovery is someone puts a syntax error into data/lua/helper.lua? It's in a require just about everywhere and all of them need code to check and handle the helper not loading. 20161018 23:01:21< celticminstrel> The error recovery would be to ignore the bad code. Preferably also show a syntax error to chat. 20161018 23:01:39< celticminstrel> There should be no need to change the Lua code. 20161018 23:02:05< tad_carlucci> Can't fix it in the C/C++ code. 20161018 23:02:20< celticminstrel> Of course, if you put a syntax error in helper.lua you'll have everything broken, so the only thing you'll really be able to do is exit to titlescreen. 20161018 23:02:25< celticminstrel> It's still better than crashing, though. 20161018 23:02:34< tad_carlucci> It's two errors: the failure in Lua to check, and a syntax in another lua being require'd 20161018 23:03:06-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 23:03:07< celticminstrel> But even when there's a Lua error that can't be fully recovered from, the game should not crash. 20161018 23:03:36< celticminstrel> There should not be any way for Lua code to ever cause the game to crash. 20161018 23:04:03< tad_carlucci> celticminstrel, Then don't publish lua code with syntax errors. 20161018 23:04:07 * tad_carlucci grins. 20161018 23:04:47< celticminstrel> We have no control over the Lua code that's loaded. 20161018 23:05:35< tad_carlucci> It's a design flaw. The same as C's ability to derefence a null pointer. 20161018 23:06:37< tad_carlucci> Which, in concept is exactly what's happening when it panics saying it can't index a function. 20161018 23:07:11< celticminstrel> ...somehow it looks like lua_absindex returned -1... o.o 20161018 23:07:17< celticminstrel> It's not supposed to do that, right? 20161018 23:07:45< tad_carlucci> No, that's correct. It means it's the reference table for the API, IIRC. 20161018 23:07:56< celticminstrel> Huh? 20161018 23:08:30< celticminstrel> Isn't lua_absindex always supposed to return a positive index? 20161018 23:08:45< celticminstrel> Or if it's negative then it would at least be a pseudo-index. 20161018 23:09:29< celticminstrel> Could we set a panic function that throws an exception? 20161018 23:12:11< tad_carlucci> Sure. And I've been thinking about doing that. But what do you want DONE with the exception? You have a script running. It needs to be killed off so it can't run again. Which means invalidating a pointer held in the C++, maybe a number of them. And so all those call sites need to check. 20161018 23:12:41< tad_carlucci> Comsider: what happens in C++ if you have a unique_ptr<> and I release the thing it points to? 20161018 23:13:09< celticminstrel> Well, if the panic function is specifically for the Lua AI action handler, then I guess all it would really need to do is mark the handler as invalid so that any further calls are a no-op. 20161018 23:13:36< celticminstrel> Though maybe it wouldn't hurt to make it just trigger the panic function each time. 20161018 23:13:53< tad_carlucci> What handler? We can't load the module so we can't get the function names to mock up the no-ops. 20161018 23:14:21< celticminstrel> Well, right now the crashes I'm getting are in lua_ai_action_handler::handle. 20161018 23:15:22< celticminstrel> In lua_getfield. 20161018 23:16:12< celticminstrel> So a panic function there would set a bool in the class marking it as invalid (or just trigger it every time). 20161018 23:16:29< tad_carlucci> The crashes we're talking about don't come from there. They're inside Lua and never go to the C++. We could install a panic function but what should it do? Who should catch the exception? The main game event loop? The titlescreen? 20161018 23:16:44< celticminstrel> One of those. 20161018 23:17:42< celticminstrel> The crash I'm getting by removing a parenthesis from the generic recruit engine is a lua_getfield call in the aforementioned function. 20161018 23:17:43< tad_carlucci> OK. I'll put in a panic handler which throws an exception. But I have a feeling it's going to snowball. 20161018 23:18:43< celticminstrel> Well, I suppose try/catch might need to be added in a few places, sure. 20161018 23:18:50< celticminstrel> But I don't think that's necessarily a bad thing. 20161018 23:19:28< celticminstrel> BTW, the behaviour of the default panic function is also desirable, so maybe the custom one should call the default one and then throw an exception. 20161018 23:19:54< tad_carlucci> celticminstrel, We're talking about a LOT of places. I can cause this panic in a WML tag. 20161018 23:20:25< celticminstrel> I think the try/catch is probably already in place for some of them. 20161018 23:20:47< celticminstrel> You can cause it from ActionWML? 20161018 23:21:21< tad_carlucci> Does it call into Lua? If so, sure I can cause the Lua to panic. What that does to the engine, I don't know. 20161018 23:21:40< celticminstrel> ActionWML is basically Lua under the hood (with a few exceptions). 20161018 23:21:56< celticminstrel> (Though I think even the exceptions pass through Lua briefly.) 20161018 23:22:26< tad_carlucci> So find a statement of the form require().func() and put a syntax error in the lua being loaded by the required. isntapanic 20161018 23:22:53< celticminstrel> I guess a syntax error in lua/wml-tags.lua would do it. 20161018 23:23:00< celticminstrel> Well, that would panic even earlier though. 20161018 23:25:26< tad_carlucci> celticminstrel, Purist-hat time .. where this is headed is that the Lua subsystem needs to be refactored so NONE of the C++ calls Lua directly. It ALL goes through a tight RAII set of classes, probably using pimpl. 20161018 23:25:54-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20161018 23:28:02-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 23:29:28< tad_carlucci> Say you need a string from a lua module. No problem, you have the lua_state* someplace, call a lua API and get the string. But that string might have a metatable. And that might be in lua. And the lua for that might require() a module. And if that module has an error .. poof .. you needto try/catch your original call site asking for the sting,. 20161018 23:31:23< tad_carlucci> Anyway. I'll see about having the base engines which call lua to get a lua_state add a panic function and have it throw. 20161018 23:32:00< tad_carlucci> I've been wanting to do that, anyway, just because I don't like the default panic function in the lua source code doing abort(). 20161018 23:32:15-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] 20161018 23:32:21-!- Greg-Boggs [~greg_bogg@173.240.241.83] has joined #wesnoth-dev 20161018 23:32:23< celticminstrel> Technically the default panic function doesn't do abort(). 20161018 23:32:30< celticminstrel> Lua does abort() if the panic function returns. 20161018 23:32:37< celticminstrel> If I understand correctly. 20161018 23:32:50< celticminstrel> The default panic function just prints the error message to stdout or something. 20161018 23:33:44< tad_carlucci> And the reason it hit abort() is because the default function printed its message and returned because we don't have one installed. 20161018 23:34:13< celticminstrel> But printing the message to stdout is good. Just saying. 20161018 23:34:19< celticminstrel> We don't want to lose that part. 20161018 23:35:05< tad_carlucci> Well, if it's going to be an exception, then it won't print until someone catches it and decides to print the payload in the exception. 20161018 23:36:34< celticminstrel> That could work, or it could print and then throw. 20161018 23:36:43< celticminstrel> Either is probably fine, I guess. 20161018 23:37:37< tad_carlucci> I'll see what I can do. At some point, it's probably going to end up bring uncaught, though. We can decide if it should be caught and handled once we see what happens if it's not caught. 20161018 23:39:07< tad_carlucci> The panic function won't take long. Let me do that and we can then try various places to cause a panic and decide what to do. 20161018 23:47:59< tad_carlucci> matthiaskrgr_, I have a PR up which, I think, will fix the issue with building CMake outside the source tree. 20161018 23:49:50< tad_carlucci> src/generators/lua_map_generator.hpp:44:15: error: 'lua_map_generator::user_config' hides overloaded virtual function [-Werror,-Woverloaded-virtual] 20161018 23:50:58< celticminstrel> I didn't know that was a virtual function... 20161018 23:51:09< celticminstrel> I removed the parameter from it. 20161018 23:51:40< tad_carlucci> oppsie 20161018 23:51:55< celticminstrel> Pretty much 20161018 23:52:24< tad_carlucci> Well, I'll clear it locally so I can get to that panic function. 20161018 23:55:41-!- Greg-Boggs [~greg_bogg@173.240.241.83] has quit [Remote host closed the connection] --- Log closed Wed Oct 19 00:00:41 2016