--- Log opened Mon Apr 13 00:00:28 2009 --- Day changed Mon Apr 13 2009 20090413 00:00:28< Ivanovic> mordante: just move stuff to the moderators forum 20090413 00:00:47< Ivanovic> will ban soon, normally the bots only leave one or two posts anyway... 20090413 00:01:30< Ivanovic> sorry, am basically on my way off to bed 20090413 00:01:41-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 104 (Connection reset by peer)] 20090413 00:01:57-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 00:02:12-!- JW1 [n=X@c-71-57-85-168.hsd1.il.comcast.net] has quit [] 20090413 00:02:55-!- silene [n=plouf@wesnoth/developer/silene] has quit ["Leaving."] 20090413 00:04:32-!- silene [n=plouf@ASte-Genev-Bois-152-1-31-188.w83-114.abo.wanadoo.fr] has joined #wesnoth-dev 20090413 00:04:52-!- zookeeper [n=l@wesnoth/developer/zookeeper] has quit [] 20090413 00:04:54-!- silene [n=plouf@ASte-Genev-Bois-152-1-31-188.w83-114.abo.wanadoo.fr] has quit [Client Quit] 20090413 00:05:17< mordante> I will 20090413 00:06:44< mordante> seems JW already did the move 20090413 00:09:12-!- wesbot changed the topic of #wesnoth-dev to: released 1.6.1, announcing "soon" | Summer of Code info: http://www.wesnoth.org/wiki/SummerOfCodeIdeas | 52 bugs, 233 feature requests, 10 patches | logs: http://irclogs.wesnoth.org/ | Don't paste on IRC! Use a pastebin: http://wesnoth.pastebin.com | http://imagebin.org 20090413 00:14:47< Ivanovic> grml, so summoning corn ain't working? 20090413 00:15:49< Ivanovic> esr: btw those bugs that are fixed in 1.6.1 can be closed (the trunk only bugs should of course stay open ;) ) 20090413 00:16:21< esr> Urgh. Not sure how to tell which are which. 20090413 00:16:41< Ivanovic> ah, there it gets challenging, right? 20090413 00:16:42< Ivanovic> ;) 20090413 00:17:39< Ivanovic> that is: i already closed three patches that i for sure know are fixed/applied in 1.6.1 20090413 00:18:17< Ivanovic> beside explicit knowledge there is probably no way to tell what is included in 1.6.1 and what not from those reports marked fixed 20090413 00:18:27< Ivanovic> so better leave them open and close them post 1.7.0 20090413 00:18:32< Ivanovic> okay, off to bed now, n8 20090413 00:18:36< mordante> I'm off night 20090413 00:18:40< mordante> night Ivanovic 20090413 00:18:51-!- mordante [n=mordante@wesnoth/developer/mordante] has quit ["Leaving"] 20090413 00:18:57< Dragonking> night Ivanovic 20090413 00:20:37-!- ais523 [n=ais523@92-236-187-64.cable.ubr08.king.blueyonder.co.uk] has quit [Remote closed the connection] 20090413 00:21:28-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 104 (Connection reset by peer)] 20090413 00:21:43-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 00:28:35< Dragonking> boucman: I just did first test.. poison scenario seems to work :) 20090413 00:28:43< boucman> :) 20090413 00:29:00< Crab_> Dragonking: good ) 20090413 00:29:20< Dragonking> Let's try to hunt for bugs.. 20090413 00:29:48< Crab_> Dragonking: ai/formula/poisoner_eval.fai ? 20090413 00:30:23< Dragonking> Crab_: candidate move system rewrite 20090413 00:30:45< Crab_> Dragonking: even better ) when do you intend to commit it ? 20090413 00:30:56< boucman> after testing, I guess :) 20090413 00:31:08< Dragonking> Diff has almost 800 lines now.. most is removing of the code... it is not huge but it is not small either, need to test it well 20090413 00:31:38< Crab_> Dragonking: can I have a sneak-peek at the patch ? to see what pieces of code it affects 20090413 00:32:42< Dragonking> Crab_: only formula_ai.[ch]pp 20090413 00:32:48< Crab_> ok 20090413 00:34:57-!- stikonas [n=stikonas@wesnoth/translator/stikonas] has quit [Read error: 110 (Connection timed out)] 20090413 00:37:16-!- GNUtoo [n=gnutoo@host216-163-dynamic.51-79-r.retail.telecomitalia.it] has quit ["Leaving"] 20090413 00:37:41< Crab_> Dragonking, boucman: one of the bad things I've noticed, is that code for *human attacks/movement* and *ai attacks/movement* contains lots of duplicated (but slightly different) stuff ... 20090413 00:38:09< boucman> yeah, known problem 20090413 00:38:36< boucman> Crab_: don't dig too deep, though, you have to stop somewhere or you'll never get anything done 20090413 00:39:10< boucman> so just stop at the border of AI code and get this interface clean, cleaning further will only have you chew bigger than you can swallow 20090413 00:40:51< Crab_> boucman: I know. but I see lots of small bugs in current AI base attacks/movement/recruit code. so, I'll have to rewrite 'at least something' to fix it. I'll touch only AI code, but I'll code it in a way that will make it possible to clean that 'ai actions/human actions' mess someday later. 20090413 00:41:01-!- ABCD [n=ABCD@wikipedia/ABCD] has joined #wesnoth-dev 20090413 00:41:31< boucman> do as you feel, but try to commit, you have been refactoring for a very long time now, and not comitting regularly is not a good thing 20090413 00:41:43< boucman> especially when other people are working on the same are 20090413 00:41:45< boucman> area 20090413 00:42:20-!- Turuk_ [n=Turuk@FUSE-WS1-208-102-202-188.fuse.net] has joined #wesnoth-dev 20090413 00:42:39< Crab_> boucman: yes, I know. That's why I've been committing my recent progress as regularly as I can, and I asked DK to 'commit early' too. 20090413 00:42:54< boucman> just making sure 20090413 00:43:06< Crab_> boucman: thanks ) 20090413 00:44:03< Dragonking> boucman: Ok... at first glance [filter] me=... [/] works too. 20090413 00:46:40< Dragonking> Let's test for another filters and then how it handles incorrect data... 20090413 00:47:46-!- busfahrer [n=busfahre@unixboard/user/busfahrer] has quit ["leaving"] 20090413 00:50:11-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 110 (Connection timed out)] 20090413 00:53:58< Crab_> boucman, Dragonking: another thing that I want to do (as some suitable moment at the future), is to move all ai-related files into a /src/ai (except basic formula parsing which is not ai-related, and is also used by gui code). 20090413 00:54:09< Crab_> What do you think about it, and what's a suitable way of doing that ? "a couple of 'svn move's plus header fixes plus buildfile fixes" ? 20090413 00:54:24< boucman> Crab_: sounds good 20090413 00:54:34< boucman> actually it will probably be nescessary very soon 20090413 00:54:51< boucman> and yes, a single commit for all that would be good, I think svn can handle it properly 20090413 00:55:39< Dragonking> Crab_: Yes, good idea 20090413 00:55:57< Crab_> Dragonking: is there any time when you'll be 'away and with no local changes' for a couple of hours ? For me to do that move without inconveniences to you. 20090413 00:56:14< Dragonking> Crab_: Plenty of time soon 20090413 00:56:25< Dragonking> Just after I commit this RCM stuff 20090413 00:56:32< Crab_> Dragonking: ok, then just warn me when that time comes ) 20090413 00:56:45< Dragonking> Crab_: Around tomorrow 20090413 01:01:14-!- Elvish_Pillage2 [n=eli@66-189-40-122.dhcp.oxfr.ma.charter.com] has quit ["Hi! I'm a quit message virus vaccine. If you see a quit message virus, don't replace your quit message with it!"] 20090413 01:01:43< Crab_> Dragonking: what files are to be moved ? is src/ai*.cpp src/ai*.hpp src/formula*.cpp src/formula*.hpp ok ? 20090413 01:02:22< Dragonking> Crab_: Modified when? 20090413 01:02:35< Dragonking> Sorry, I do not understand question. :) 20090413 01:03:14< Crab_> Dragonking: what files should I MOVE to /src/ai ? Is src/ai*.cpp src/ai*.hpp src/formula*.cpp src/formula*.hpp a full list of them ? 20090413 01:04:18< Dragonking> Crab_: Hmm.. I wonder about formula* 20090413 01:04:47< Dragonking> Crab_: It is mainly a language for AI purposes, but mordante uses it for gui too 20090413 01:05:16< Crab_> Dragonking: yes, I wonder too. 20090413 01:05:35< Dragonking> Crab_: So maybe let's ask boucman and maybe Sirp... but he's not around 20090413 01:05:38< Crab_> Dragonking: see http://wesnoth.pastebin.com/m581ce03b 20090413 01:06:23< Crab_> Dragonking: i think we can figure this out. we can always leave those formula_ where they are now, and think about them later. 20090413 01:07:41< Crab_> Dragonking: so, formula_string_utils should remain where it is. 20090413 01:07:46< boucman> Crab_: yes, leave them out for now 20090413 01:07:52< Dragonking> I'd say ai* and formula_ai* plus my formula_candidates that I add soon could og under AI 20090413 01:08:02< Crab_> Dragonking: it depends on formula.hpp 20090413 01:08:17< boucman> formulas can now be added anywhere in WML, so it's more of a second general purpose language for wesnoth that AI specific 20090413 01:08:40< Crab_> formula.cpp depends on formula_callable.hpp and formula_function.hpp 20090413 01:08:46< boucman> ok, I have to go to bed now, see you all tomorow 20090413 01:08:54< Crab_> boucman: night 20090413 01:09:08-!- boucman [n=rosen@wesnoth/developer/boucman] has quit [Remote closed the connection] 20090413 01:09:11-!- loonycyborg [n=sergey@wesnoth/developer/loonycyborg] has quit ["Zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"] 20090413 01:09:47< Crab_> Dragonking: so, if we take out dependencies, we see that we can only move formula_ai.hpp and formula_ai.cpp 20090413 01:10:37< Dragonking> Apparently 20090413 01:14:57< Crab_> Dragonking: and note that there's a small 'glitch' in formula_function.cpp - it logs to "#define LOG_AI LOG_STREAM(info, formula_ai)", and it should not do this, if it is 'second general purpose language for wesnoth' 20090413 01:16:36< Dragonking> It's "formula AI" language not "formula" language ;p 20090413 01:16:48< Dragonking> I don\t know if it's really an issue :) 20090413 01:17:08< Crab_> Dragonking: well, just stumbled upon when checking for dependencies ) 20090413 01:17:26< Dragonking> But I'm not too tired to take reasonable decisions ;p 20090413 01:17:51< Crab_> Dragonking: it is not an big issue, but imo, it should be fixed (because it can be used by gui code). And, if you call the language 'formula ai', then you'd have to call your ai 'formula ai ai' ? 20090413 01:18:23< Crab_> Dragonking: so, i'll fix it If i remember about it tomorrow ) 20090413 01:18:29< Dragonking> ;) 20090413 01:19:04< Dragonking> ok... I can't find any "obvious" bugs in my code 20090413 01:19:16< Dragonking> Or I am too tired to notice them. ;) 20090413 01:19:27< Dragonking> I'll just commit and go to sleep then.. 20090413 01:19:31< Crab_> he-he ) 20090413 01:20:05< Dragonking> Still will need to add this "support" candidate move (minior tweak) and this three-step CM 20090413 01:21:19< Polarina> Would a implementation of SHA-256 (same interface as md5.hpp) do you any good? I can contribute it. 20090413 01:22:20< Dragonking> Polarina: Maybe ask when 95% of core developers are not sleeping/away. :) 20090413 01:22:28< Polarina> Dragonking: Oh... :( 20090413 01:24:12< dfranke> Anyone have an objection to this change to the semantics of sorting by XP going into 1.6? https://gna.org/bugs/index.php?13360 20090413 01:24:16< Polarina> I'll prepare the interface meanwhile. 20090413 01:27:21< esr> dfranke: Go for it! 20090413 01:28:09< Crab_> Polarina: changing the hash function would require some changes in hardcoded numbers, since hash length is different. So, there's at least 'some potential for bugs'. What benefits would sha256 bring over md5 ? 20090413 01:28:37< Polarina> Crab_: No known cryptographic weaknesses. 20090413 01:29:07< Crab_> Polarina: is there a specific weakness in md5 than can impact wesnoth players using current code ? 20090413 01:29:28< Polarina> Crab_: I haven't even got a clue on where it's used... 20090413 01:30:12< Crab_> for example, it forms a part of a hash which is used in checking passwords in mp games 20090413 01:31:06< Polarina> All I'm asking if it would help anything... 20090413 01:31:23< Crab_> Polarina: find a dev who is interested in bringing it in ) 20090413 01:31:37< Polarina> Crab_: Where would I find such a developer? 20090413 01:32:45< Crab_> Polarina: more interesting question is 'when' ) 20090413 01:33:53< Polarina> :( 20090413 01:34:22< Polarina> If you are not interested, fine. I'm just trying to help, that's all. 20090413 01:35:17< Crab_> Polarina: that's *very* good that you're trying to help. Sorry if I've been misunderstood ) 20090413 01:43:30< CIA-30> dfranke * r34833 / (branches/1.6/src/menu_events.cpp trunk/src/menu_events.cpp): Fix the sorting of the XP and traits columns in the unit list dialog. Fixes the bug part of half-FR half- bug #13360. 20090413 01:48:47< CIA-30> shadowmaster * r34834 /trunk/src/gui/dialogs/addon_connect.cpp: 20090413 01:48:47< CIA-30> You Fail at Copy-Paste, part 1. 20090413 01:48:47< CIA-30> e.g. Use proper capitalization in license notices, otherwise the "no 20090413 01:48:47< CIA-30> warranty" part pretty much loses its required emphasis. 20090413 01:49:06< CIA-30> shadowmaster * r34835 /trunk/src/gui/dialogs/ (32 files): You Fail at Copy-Paste, part 2. 20090413 01:49:25< CIA-30> shadowmaster * r34836 /trunk/src/gui/widgets/ (56 files): You Fail at Copy-Paste, part 3 (the Prequel!). 20090413 01:49:36< Polarina> Who fails? 20090413 02:02:32< shikadibot> you 20090413 02:03:38< CIA-30> dragonking * r34837 /trunk/src/ (6 files): Refractoring of RCM 20090413 02:04:45< CIA-30> dragonking * r34838 /trunk/data/ai/formula/ (level_up_attack_eval.fai level_up_attack_move.fai): Small fix for level_up candidate move 20090413 02:04:53< Dragonking> Crab_: commited 20090413 02:04:57< Crab_> Dragonking: good ) 20090413 02:05:18< Dragonking> Crab_: If you spot any bugs or something... maybe query me here, I'm going to sleep now 20090413 02:05:29< Dragonking> Night everyone 20090413 02:05:34< Crab_> ok. good night Dragonking 20090413 02:11:54-!- molgrum [n=molgrum@c83-249-53-163.bredband.comhem.se] has quit ["Lämnar"] 20090413 02:27:18< esr> Ivanovic: When you're back, we should talk about documenting and upgrading the translation machinery. 20090413 02:32:40-!- turin [n=turin@cpe-24-27-112-22.tx.res.rr.com] has joined #wesnoth-dev 20090413 02:39:56-!- JW1 [n=X@c-71-57-85-168.hsd1.il.comcast.net] has joined #wesnoth-dev 20090413 02:43:23-!- Espreon [n=espreon@wesnoth/developer/espreon] has joined #wesnoth-dev 20090413 03:10:08-!- Appleman1234 [n=Appleman@131.181.47.1] has joined #wesnoth-dev 20090413 03:11:29-!- PK [n=pk@r74-192-44-206.vctrcmta01.vctatx.tl.dh.suddenlink.net] has joined #wesnoth-dev 20090413 03:16:01-!- Gnutoo [n=gnutoo@host216-163-dynamic.51-79-r.retail.telecomitalia.it] has joined #wesnoth-dev 20090413 03:28:44< CIA-30> crab * r34839 /trunk/ (8 files in 2 dirs): AI Refactoring: new stub AI actions code. 20090413 03:35:10< CIA-30> crab * r34840 /trunk/src/ (7 files): Property changes on new AI files to 'svn:eol-style=native;svn:keywords='Author Date Id Revision' 20090413 03:38:15-!- Crab_ [n=Crab_@wesnoth/developer/crab] has left #wesnoth-dev [] 20090413 03:44:31-!- Ambushsabre [n=ambushsa@c-75-67-216-121.hsd1.nh.comcast.net] has joined #wesnoth-dev 20090413 03:46:20-!- Ambushsabre [n=ambushsa@c-75-67-216-121.hsd1.nh.comcast.net] has quit [Client Quit] 20090413 03:56:04-!- turin [n=turin@cpe-24-27-112-22.tx.res.rr.com] has quit [Read error: 110 (Connection timed out)] 20090413 04:01:49-!- Chusslove [n=caslav@brsg-d9bef4e8.pool.mediaWays.net] has quit [Read error: 110 (Connection timed out)] 20090413 04:04:49-!- Sirp [n=me@wesnoth/developer/dave] has joined #wesnoth-dev 20090413 04:10:54-!- res|laptop [n=res@pdpc/supporter/student/res2k] has quit [Nick collision from services.] 20090413 04:10:54-!- res2k3 [n=res@erft-4d07da5a.pool.mediaWays.net] has joined #wesnoth-dev 20090413 04:11:13-!- res2k3 is now known as res|laptop 20090413 04:14:29-!- [Relic] [n=[Relic]@adsl-76-229-202-137.dsl.milwwi.sbcglobal.net] has joined #wesnoth-dev 20090413 04:14:42-!- heinz [n=heinz@p54B318F5.dip0.t-ipconnect.de] has quit [Remote closed the connection] 20090413 04:15:25< [Relic]> Hello :) 20090413 04:15:32-!- Espreon [n=espreon@wesnoth/developer/espreon] has quit [Remote closed the connection] 20090413 04:30:10-!- Chusslove [n=caslav@brsg-d9befe75.pool.mediaWays.net] has joined #wesnoth-dev 20090413 04:45:52-!- Ivanovic_ [n=ivanovic@dtmd-4db2a001.pool.einsundeins.de] has joined #wesnoth-dev 20090413 04:56:31< esr> fabi, or any other WML wizard: Is there a way to write WML that will take all tiles of a given terrain type and hack them into another, specified type? 20090413 05:00:36-!- oak__ [n=oakus@252.108.broadband12.iol.cz] has joined #wesnoth-dev 20090413 05:02:25-!- Ivanovic [n=ivanovic@wesnoth/developer/ivanovic] has quit [Read error: 113 (No route to host)] 20090413 05:03:50-!- Ivanovic_ is now known as Ivanovic 20090413 05:06:26-!- Appleman1234_ [n=Appleman@131.181.47.4] has joined #wesnoth-dev 20090413 05:10:38-!- oak_ [n=oakus@252.108.broadband12.iol.cz] has quit [Read error: 110 (Connection timed out)] 20090413 05:12:59-!- BenUrban [n=benurban@c-68-49-10-243.hsd1.md.comcast.net] has joined #wesnoth-dev 20090413 05:17:28-!- Appleman1234 [n=Appleman@131.181.47.1] has quit [Read error: 110 (Connection timed out)] 20090413 05:25:52-!- crimson_penguin [n=ben@wesnoth/developer/crimsonpenguin] has quit [Read error: 110 (Connection timed out)] 20090413 05:26:27< CIA-30> esr * r34841 /trunk/data/campaigns/Delfadors_Memoirs/ (TODO WALKTHROUGH scenarios/19_the_portal_of_doom.cfg): Improvced portal-close event for DM::19, and a walkthrough section. 20090413 05:28:03-!- Espreon [n=espreon@wesnoth/developer/espreon] has joined #wesnoth-dev 20090413 05:28:39< esr> AFK for a bit... 20090413 05:28:44-!- esr [n=chatzill@wesnoth/developer/esr] has quit ["ChatZilla 0.9.84 [Firefox 3.0.7/2009030423]"] 20090413 05:30:29-!- esr [n=chatzill@static-71-162-243-5.phlapa.fios.verizon.net] has joined #wesnoth-dev 20090413 05:49:49-!- Sapient [n=sapien-x@c-71-204-10-166.hsd1.ga.comcast.net] has joined #wesnoth-dev 20090413 05:50:16< Sapient> esr: for changing terrains you have two options, [terrain] and [terrain_mask] 20090413 05:50:57< Sapient> currently, [terrain] only takes x,y= specification, so you would need to [store_locations] then apply it on each hex 20090413 05:51:25< Sapient> there's more than one way to do it, but that's probably the most straightforward 20090413 05:57:59-!- Appleman1234_ is now known as Appleman1234 20090413 06:00:43-!- PK [n=pk@r74-192-44-206.vctrcmta01.vctatx.tl.dh.suddenlink.net] has quit ["Java user signed off"] 20090413 06:05:35-!- turin [n=turin@cpe-24-27-112-22.tx.res.rr.com] has joined #wesnoth-dev 20090413 06:09:12-!- wesbot changed the topic of #wesnoth-dev to: released 1.6.1, announcing "soon" | Summer of Code info: http://www.wesnoth.org/wiki/SummerOfCodeIdeas | 53 bugs, 234 feature requests, 10 patches | logs: http://irclogs.wesnoth.org/ | Don't paste on IRC! Use a pastebin: http://wesnoth.pastebin.com | http://imagebin.org 20090413 06:09:52< esr> Sapient: Could [terrain] be upgraded to take a standard terrain filter without too much difficulty? 20090413 06:10:04< Sapient> yeah 20090413 06:10:28< Sapient> but the filtering mechanism would need to be moved to a subtag 20090413 06:10:44< Sapient> otherwise it would clash with the terrain= placement instruction 20090413 06:11:23< Sapient> alternatively, terrain= could be renamed to value= or new_terrain= for the placement instruction 20090413 06:11:42< Sapient> so we would need to think that through 20090413 06:11:58< esr> Sapient: There's another similar case I've tripped over. Is it just me, or is it silly that [primary_unit] dooesn't take a SUF? 20090413 06:12:24< Sapient> I agree, I already asked Shadow_Master to upgrade it 20090413 06:12:37< Sapient> He may have already done so and forgot to document it... 20090413 06:13:34< Sapient> the terrain_filter class encapsulates all the functionality of the SLF, so it's very easy to use in different places 20090413 06:14:02< Sapient> SUF is handled by unit::matches_filter() 20090413 06:14:04< esr> When considering those alternatives, bear in mind that I'm opposed to changes where the new feature isn't syntactically distinguishable from the old - that sort of thing causes problems for wmllint. 20090413 06:14:47< Sapient> yeah, I know your dislike for specifying version information to wmllint 20090413 06:14:59< esr> I never want to have to reinstate the --version switch - I removed it in order to burn that particular bridge behind us :-) 20090413 06:15:16< Sapient> it could be distinguished by the missing value= tag 20090413 06:15:36< Sapient> esr: you may have dodged that bullet for now, but I think it's probably inevitable 20090413 06:15:41< esr> Good point, and saves that alternative from a crash landing. 20090413 06:16:23< esr> It's not just that I "dislike" that switch, it's that it implies maintainance nightmares. 20090413 06:16:34< Sapient> some sacrifices have already been made to keep wmllint version ignorant 20090413 06:17:15< esr> ...or, to put it more constructively, to keep WML version-unambiguous. 20090413 06:17:58< Sapient> call it what you like, but if I were in charge of it, it'd still be uplifting 1.2 maps 20090413 06:18:40< Sapient> nonetheless, I'm grateful for it, so sorry if I sound critical 20090413 06:19:10< esr> If you want 1.4 wmllint, you know where to find it. In truth, if I didn't know 1.4 wmllint would still be available aftterwards, I would have swallowed hard and not removed --version. 20090413 06:21:27< esr> BTW, I'm pretty sure [primary_unit] doesn't take a SUF. I tried coding an event with primary_unit specified by ID yesterday and it didn't work. And I don't *think* I fat-fingered the code. 20090413 06:24:18< Sapient> the whole [primary_unit] thing is a bit of a misnomer anyways 20090413 06:24:31< esr> Oh? How? 20090413 06:24:40< Sapient> since events are fired with a pair of *locations* 20090413 06:24:49< Sapient> which may or may not correspond to units 20090413 06:24:56< esr> Ahhh. I see. 20090413 06:25:44< Sapient> since Shadow_Master wrote that feature I'll let him consider how he wants to deal with that 20090413 06:27:07< Sapient> if the tag remains named [primary_unit] then it should certainly correspond to SUF 20090413 06:27:20< esr> Agreed. 20090413 06:27:41< Sapient> however, if the SUF matches no unit but specifies x,y... then it should most likely pass that x,y location to the event regardless 20090413 06:29:11< Sapient> an alternatively, you could offer [primary_location] to take SLF 20090413 06:29:35< Sapient> well, technically game_events are fired with an entity_location 20090413 06:30:00< Sapient> so you are allowed to specify a unit ID which must be present at the location or the event fails to fire 20090413 06:30:38< Sapient> this prevents some weird situations like a unit getting placed where another one died and the "die" event would continue to fire on a live unit 20090413 06:31:11< esr> Something else I've been tripping over ids that when you indirect through fire_event you lose magic context variables like unit and secondary_unit. This is irritating and damages the usefulness of fire_event a lot, but I haven't invented a non-messy semantics to fix it. Yet. 20090413 06:31:53-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 104 (Connection reset by peer)] 20090413 06:32:03< Sapient> unit is available in fired event... IF you specify [primary_unit] 20090413 06:32:08-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 06:32:14< esr> Ah. 20090413 06:32:26< Sapient> perhaps primary unit should continue to $unit by default? 20090413 06:32:48< esr> That would ber handy. 20090413 06:33:32< Sapient> maybe I'll assign an FR 20090413 06:34:54< esr> You know, I'm actually a litytle tempted to learn how to extend the C++ core WML myself so I can do stuff like this - but I can't wander off into those weeds until the Delfador's Memoirs adaptation is finished. 20090413 06:35:19< Sapient> game_events are a pretty easy area to get started in 20090413 06:35:53< Sapient> well, most of the time it's easy 20090413 06:36:09< esr> Yeah, that matches my sketchy knowledge of that area of the code. I have done a few small mods to it in the past. 20090413 06:37:57-!- Gnutoo [n=gnutoo@host216-163-dynamic.51-79-r.retail.telecomitalia.it] has quit [Read error: 113 (No route to host)] 20090413 06:47:31< Sapient> FR has been posted 20090413 06:48:07< Sapient> it's a bit late but I'll look into that [terrain] issue later 20090413 06:48:11< Sapient> cya later, have fun. 20090413 06:48:11-!- Sapient [n=sapien-x@wesnoth/developer/sapient] has left #wesnoth-dev [] 20090413 06:50:22-!- [Relic] [n=[Relic]@adsl-76-229-202-137.dsl.milwwi.sbcglobal.net] has quit ["Leaving"] 20090413 06:57:39-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 104 (Connection reset by peer)] 20090413 06:57:55-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 07:00:48-!- Sirp [n=me@wesnoth/developer/dave] has quit ["leaving"] 20090413 07:08:04-!- ryochan7 [n=ryochan7@173.9.238.161] has joined #wesnoth-dev 20090413 07:17:07-!- turin [n=turin@cpe-24-27-112-22.tx.res.rr.com] has quit [Read error: 110 (Connection timed out)] 20090413 07:36:25-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 60 (Operation timed out)] 20090413 07:42:31-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 07:46:43-!- ABCD [n=ABCD@wikipedia/ABCD] has quit ["No Ping reply in 30 seconds."] 20090413 07:47:11-!- ABCD [n=ABCD@wikipedia/ABCD] has joined #wesnoth-dev 20090413 07:49:10-!- mordante [n=mordante@wesnoth/developer/mordante] has joined #wesnoth-dev 20090413 07:49:25< mordante> hi 20090413 07:52:42< mordante> crab_, Dragonking IMO formula is not a part of the AI per se, we also use it in WML 20090413 07:53:09< mordante> so IMO if you move it it should go to formula/ 20090413 07:53:27< mordante> and I like to see to move the ai code to ai/ 20090413 07:54:27< mordante> btw I meant the generic part of the formulas, the ai specific parts can move 20090413 07:57:01< mordante> dfranke, esr regarding porting https://gna.org/bugs/index.php?13360 I prefer not to port it, it's clearly a feature and not a bug fix 20090413 07:57:44< esr> mordante: No argument from me. 20090413 07:58:16< mordante> ok 20090413 08:04:29< mordante> esr, regarding wmllint, wouldn't it be easy to keep wmllint1.4 in trunk and call if from wmllint 20090413 08:04:44< mordante> that way you can keep the old versions without the maintenance nightmare 20090413 08:06:21< esr> mordante: No, that would just bring back needding to pass the version switch into the suboridinate wmllint - avoiding that was most of the point of dropping out the old conversions. 20090413 08:07:08-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 08:07:26< mordante> ok 20090413 08:08:45< CIA-30> mordante * r34842 /trunk/src/ai_actions.cpp: Fix some compiler warnings. 20090413 08:10:59 * mordante thinks Shadow_Master watched a bit too much of star wars 20090413 08:11:11< mordante> but thanks for the cleanup 20090413 08:14:54< mordante> crab_ regarding the class ai_actions is there a reason it's a class and not a namespace? 20090413 08:15:15-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Connection timed out] 20090413 08:17:51-!- gabm [n=gabriel@72.0.215.2] has quit ["Leaving."] 20090413 08:19:38-!- silene [n=plouf@wesnoth/developer/silene] has joined #wesnoth-dev 20090413 08:19:46< silene> hi 20090413 08:20:25< mordante> hi silene 20090413 08:21:10< mordante> crab_ and I've some questions why you return auto_ptr's in all those functions (more what the purpose of the return value is) 20090413 08:21:29< mordante> crab_ but I like that you added quite some comment 20090413 08:23:18< silene> as a general comment, auto_ptr is bad (as a matter of fact, we have deprecated it for c++0x); i haven't looked at the code, so i don't how relevant this is to the discussion 20090413 08:24:28< mordante> that's also one of my concerns, but I also wonder why there's a need to return auto_ptr's 20090413 08:24:44< cjhopman_> i think there should be an auto_ptr like thing that has an implicit conversion to a base pointer and that conversion is like auto_ptr::release() 20090413 08:25:23< silene> cjhopman_: that would be bad, you would leak memory like hell 20090413 08:27:35< cjhopman_> for return values, it would be better than returning an auto_ptr and better than returning a bare pointer 20090413 08:28:58< cjhopman_> actually i dont really want one 20090413 08:29:23< silene> what i'm criticizing is not the use case, it's the "implicit conversion" 20090413 08:29:36< mordante> cjhopman_, you don't want what? 20090413 08:30:18< cjhopman_> the type of pointer i was describing 20090413 08:30:35< mordante> ah ok 20090413 08:30:36< cjhopman_> basically i want a way to specify that a returned pointer should be deleted if it isn't assigned to something 20090413 08:31:19< cjhopman_> and i want callers to be able to treat the function as though it returns a bare pointer when they do want the return value 20090413 08:32:40-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 104 (Connection reset by peer)] 20090413 08:32:55-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 08:33:02< silene> cjhopman_: then the best way is probably to simply put an attribute saying that the function returns an important value, so the compiler will warn about it 20090413 08:34:10-!- Blueblaze [n=nick@c-98-199-143-139.hsd1.tx.comcast.net] has quit [Remote closed the connection] 20090413 08:34:36< cjhopman_> I think the only time I would actually use it is when I had to stick to a certain interface 20090413 08:36:12< cjhopman_> silene: that would work 20090413 08:37:53< esr> Man, this saved-moveto bug is reAlly gripng my ass. It's hosed three different DM scenarios so far. 20090413 08:43:01 * esr wonders why all Germans seem to think the incorrect "quite some" should be used for ythe correct "quite a few" or "many". Is there some misleading parallel in German? 20090413 08:44:09 * esr apologizes to Mordante and notes that the Dutch make the same error... 20090413 08:44:29< mordante> no idea, what I often see with Germans that they use the plural of information... 20090413 08:45:22< mordante> esr, well maybe it's a Germanic issue ;-) 20090413 08:45:35< esr> mordante: I think it must be. 20090413 08:47:23< esr> In English, rather than saying "I like that you added quite some comment", which is incorrect, you should say "I like that you added many comments", or more idiomatically "I like the fact that you added quite a few comments". But "quite some" is never correct there. 20090413 08:47:52< esr> This has been your Enfglish-language pedantry for the evening. 20090413 08:48:19< esr> Ivanovic does that one too. 20090413 08:48:38< mordante> I know, you try to hammer it out of him for ages ;-) 20090413 08:49:19< esr> His English has been impriving, really. Bot that it was ever bad, just noticeably German-accented. 20090413 08:49:25< mordante> and to be honest when I see both sentences I also think I'd pick the first ;-) 20090413 08:49:27< esr> s/Bot/Not/ 20090413 08:50:35< esr> There is a subtle difference between "many and quite a few"; the second phrasing implies that the quantity was not expected or surprising. 20090413 08:51:05< esr> sorry: between "many" and :quite a few", punctuation was mistyped. 20090413 08:51:10< esr> Aaargh. 20090413 08:53:56< mordante> ah thanks 20090413 08:57:46< CIA-30> silene * r34843 /trunk/src/Makefile.am: Added missing file. 20090413 08:57:46< esr> English is full of subtleties like that that the dictionaries don't capture. Good thing for native speakers, it makes our language more expressive, but unfortunate for foreigners. 20090413 08:58:48< mordante> I think most languages have that 20090413 08:59:04< mordante> also which synonym to use where 20090413 08:59:34-!- ryochan7 [n=ryochan7@173.9.238.161] has quit [Remote closed the connection] 20090413 09:01:44< esr> English more than most, though, because we have more etymological doublets than most other language. Consequence of outr mixed-up history - one complete vocabuklary from Anglo-Saxon, a partial one from Norse, and thenn a third from Old French. So we ended up with a lot of doublets like "ox" (A.S.) and "cow" (O.F.) which then diverged to have slightly different connotations. 20090413 09:22:26-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 104 (Connection reset by peer)] 20090413 09:22:42-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 09:35:46-!- Appleman1234 [n=Appleman@131.181.47.4] has quit [Read error: 110 (Connection timed out)] 20090413 09:37:40-!- Appleman1234 [n=Appleman@131.181.47.2] has joined #wesnoth-dev 20090413 09:47:13-!- YogiHH [n=chatzill@d029056.adsl.hansenet.de] has joined #wesnoth-dev 20090413 09:47:18-!- Turuk_ [n=Turuk@FUSE-WS1-208-102-202-188.fuse.net] has joined #wesnoth-dev 20090413 09:49:27< fabi> esr: still around? 20090413 09:50:05< mordante> ping corn 20090413 09:50:15< fabi> hi mordante 20090413 09:50:19< mordante> hi fabi 20090413 09:50:20-!- boucman [n=rosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20090413 09:50:27< esr> Yes, what's up? I think I improveed the portal-closing effect, but the saved-moveto bug is hampering my testing. 20090413 09:50:28< mordante> hi boucman 20090413 09:50:57< boucman> morning all 20090413 09:51:09< fabi> I have read the irc history about wml and wanted to say my 2 cents about it. 20090413 09:51:50< fabi> You can change terrain with very few code ({FOREACH }) but this is very slow. 20090413 09:52:45< fabi> If you want to change it fast you need to filter the terrain to be changed into an array, extract all x and y from that array in 2 lists and work with them. 20090413 09:53:25< esr> I ended up hand-coding the cpoordinate lists instead. 20090413 09:53:46< fabi> I did that for a weather manipulation system in 2004 with wesnoth 1.0, it was a pain in the ass. 20090413 09:54:26< fabi> It should be much easier today, but it's still a lot of code. 20090413 09:54:51-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Connection timed out] 20090413 09:55:08< fabi> Having not all tags attributes work on every location and not behaving the same is the biggest annoyness that wml has to offer. 20090413 09:55:14< silene> as always, if the issue is "a lot of code", then lua may be the solution 20090413 09:56:36< fabi> the primary_unit and socondary_unit tags in fire_event are also incomplete. They are no full SUF but only take x and y coordinates for filtering. 20090413 09:57:35< fabi> silene: right, maybe some of this stuff can be coded in LUA. But that is not my point. My point is that developing in wml is much harder than in every other language I know (even assembler). 20090413 09:58:12< boucman> fabi: yeah, we are all programers, we know that... 20090413 09:58:33< boucman> however doing it in a backward compatible way is triky (to say the least) 20090413 09:58:42< silene> fabi: this is precisely my point, the reason why i added lua support is because wml was a pain 20090413 09:58:48< fabi> I have no compiler/interpreter/validater/whatever. And there is no language specification I can count on. 20090413 09:58:55< boucman> now is the good time to break stuff, though, and this might even enter the EasyCoding category :) 20090413 10:00:11< fabi> silene: Add support for defining wml tags in LUA. That way we can recode all the c++ wml in lua during the development of 1.7. I would volunteer for that. 20090413 10:00:53< fabi> And I want a language specification that earns the name. 20090413 10:01:59< esr> I think replacing C++ with lua is generally a good idea and will support that. Ther big win is natural handling of variable-extent structures. 20090413 10:02:21-!- loonybot [n=loonybot@79.139.246.210] has joined #wesnoth-dev 20090413 10:02:24< Dragonking> Morning everyone 20090413 10:02:31< fabi> And lua can be checked be already existing tools. 20090413 10:02:32< esr> Morning. 20090413 10:02:43< Dragonking> boucman: I commited CM before going to sleep 20090413 10:02:54-!- loonycyborg [n=sergey@79.139.246.210] has joined #wesnoth-dev 20090413 10:03:13< silene> fabi: i'm not sure i see the point of recoding the existing tags from c++ to lua; why not leave the existing as it is and work purely above it? 20090413 10:04:22< mordante> hi Dragonking 20090413 10:04:44< boucman> Dragonking: yes, I saw, thx, I will review today 20090413 10:05:25< fabi> silene: Imagine a scenario.cfg with both mixed, very confusing. Coding everything in lua will be very unreadable as well. 20090413 10:06:08< mordante> fabi, why would lua be unreadable? 20090413 10:06:09< silene> fabi: unreadable? have you taken a look at the lua version of the tutorial? 20090413 10:06:24< fabi> But defining new tags with the extra lua power I need in that place would give a easy to read scenario.cfg, the tag that needs lua is defined elsewhere. 20090413 10:06:32-!- zookeeper [n=l@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20090413 10:06:53< fabi> silene: I know that lua is very easy. I have coded an World of Warcraft interface addon with it. 20090413 10:07:55< silene> fabi: your answer confuses me, so just to clarify, i'm talking of wesnoth tutorial 20090413 10:09:43 * fabi is reading the tutorial code. 20090413 10:11:07-!- nerwa [n=nerwa@59.78.26.75] has joined #wesnoth-dev 20090413 10:12:06< fabi> silene: Where is lua code in the tuturial? 20090413 10:12:39< silene> fabi: https://gna.org/patch/download.php?file_id=5483 20090413 10:14:14< fabi> That's terrible. My editor does know lua and it does no wml but it doesn't know both in the same file. 20090413 10:14:30< silene> i didn't commitit, because, in the meantime, there had been changes to some dialogs of the tutorial and things like that; it wasn't really worth tracking them 20090413 10:14:36< fabi> It's the same pain like embedding perl in html(active server page) 20090413 10:16:12< loonycyborg> I bet an ability to use external lua files will be added soon(unless it was already) :P 20090413 10:16:34< silene> loonycyborg: already there ;-) 20090413 10:16:51< fabi> The question was: Why would I like to recode wml in lua and not leave wml as it is and use lua to extend it. 20090413 10:18:03< fabi> And my answer is: I don't want a broken language (and wml is broken because I can't count on language expressions working the same despite of the context) 20090413 10:18:12< fabi> mixed with lua. 20090413 10:18:43< silene> fabi: what would be the solution? 20090413 10:19:17< fabi> first: Developers brainstorm and define a language specification for wml. 20090413 10:19:29< fabi> second: wml tags can be defined in lua. 20090413 10:19:43< fabi> third: wml is recoded in lua during 1.7. 20090413 10:20:01< AnMaster> That's terrible. My editor does know lua and it does no wml but it doesn't know both in the same file. <-- hm, a lot of editors have some way to set up dual language mode for stuff like php and so on, maybe you could use some setting like that in your editor? Just an idea. 20090413 10:20:43< fabi> I use emacs 20090413 10:21:08< AnMaster> iirc emacs support it, don't remember how though. 20090413 10:22:22< Ivanovic> moin 20090413 10:22:40< boucman> moin moin 20090413 10:22:53< silene> fabi: the second point is easy, it's a few lines patch; also; the third point could be done, but i don't see the point of converting a code that already works; as for the first point, i think using a markup description language as a programming language is fundamentally flawed 20090413 10:23:32< fabi> But we already do that. 20090413 10:24:30< silene> just because we already do that doesn't make any non-flawed; it's like saying xsl is a great programming language because some people use it as a programming language 20090413 10:24:42< mordante> hi Ivanovic 20090413 10:24:57-!- busfahrer [n=busfahre@unixboard/user/busfahrer] has joined #wesnoth-dev 20090413 10:25:20< AnMaster> silene, since you mentioned it, have you seen http://www.unidex.com/turing/utm.htm (Universal Turing Machine in xslt) 20090413 10:25:22< mordante> fabi, I hope you're aware WML wasn't really developed but it evolved 20090413 10:25:26< AnMaster> ;P 20090413 10:25:31 * Ivanovic tries again to summon corn 20090413 10:25:53< silene> AnMaster: no, i didn't know this one; but i already knew xsl is turing-complete 20090413 10:25:58< AnMaster> heh ok :) 20090413 10:27:12< fabi> Damn, even that stupid turing machine is turing complete. I have to code for it for my curse that semester. 20090413 10:27:25< fabi> s/curse/course 20090413 10:27:33< esr> "my curse" = entertaining typo 20090413 10:27:36< AnMaster> hah 20090413 10:27:56< fabi> :-) 20090413 10:28:58< fabi> My thoughts are: A c++ backend that allows manipulating the game and get information about the game state. 20090413 10:29:06< fabi> That should already be there. 20090413 10:29:27-!- JW1 [n=X@c-71-57-85-168.hsd1.il.comcast.net] has quit [Read error: 110 (Connection timed out)] 20090413 10:29:45< fabi> Lua to call that backend and provide the well known wml syntax just without the biggest problems. 20090413 10:29:46< AnMaster> btw, why lua? Why not guile or such. 20090413 10:30:11< YogiHH> AnMaster: because nobody implemented it ;-) 20090413 10:30:15< AnMaster> heh 20090413 10:30:17< silene> fabi: in fact, it isn't there, because it wasn't needed; the lua engine just feeds on the game_events code 20090413 10:30:23< Dragonking> boucman: I'm going to add support type candidate move, you will see from diff what is needed now to add new CM type. 20090413 10:30:41< fabi> AnMaster: Lua is save to embed because it is designed for that purpose. It's easy to learn and well known under mod contributors of other games. 20090413 10:31:36< fabi> And for hard tasks the wml coder can code his own tags or little expressions with lua directly. 20090413 10:31:40< AnMaster> fabi, iirc guile was made to be embeddable too. But I agree that scheme is less well known than lua. 20090413 10:31:52< YogiHH> AnMaster: We basically have the policy "It's good if it works". But we don't have the resources to implement any idea someone puts on the table to see if it works. So in most cases, the one with the idea will have to try himself. Which is the point where many ideas are taken from the table again ;-) 20090413 10:32:00-!- nerwa [n=nerwa@59.78.26.75] has quit [Read error: 110 (Connection timed out)] 20090413 10:32:27< AnMaster> YogiHH, I'm not saying lua is bad, I was just wondering "why lua of all the embedded languages that could have been used" 20090413 10:32:28< AnMaster> :) 20090413 10:32:33< silene> AnMaster: i don't know much about guile; is it safe? that is, if you execute a guile program taken from the internet, will it break things? 20090413 10:32:53< boucman> Dragonking: ok, I plan to add a "startegic" cormula type, which is called only once with no parameters... I have at least one case where it would be usefull 20090413 10:32:58< fabi> silene: Can you implement the defining tags with lua feature please? I would like to experiment with it. 20090413 10:33:24< boucman> (basically to store in a variable a list of loc that would guide other formulas to the position of "groups of ennemies" 20090413 10:33:48< AnMaster> silene, hm good point, I don't remember if it supports sandbox like features or not. Let me check. brb 20090413 10:33:49< silene> fabi: i can, i'm busy right now; but in two hours (let's say three just to be on the safe side), it should be committed 20090413 10:34:23< fabi> silene: It's not that urgend. I have an exam this weekend, I won't invent a space rocket until this. 20090413 10:34:38-!- YogiHH [n=chatzill@d029056.adsl.hansenet.de] has left #wesnoth-dev [] 20090413 10:35:32< Dragonking> boucman: Once per turn? 20090413 10:35:49< boucman> once per evaluation I mean 20090413 10:36:21< boucman> Dragonking: in candidate_move_manager::load_config, you might want to report a typoe when type is unknown 20090413 10:36:47-!- nerwa [n=nerwa@59.78.26.75] has joined #wesnoth-dev 20090413 10:37:08< Dragonking> boucman: Yes, true 20090413 10:37:50< Dragonking> boucman: I find it out myself yesterday when I had "broken" *move* type CM ;) 20090413 10:37:54< Dragonking> But just had no more strenght to commit. 20090413 10:38:02< boucman> ok, faire enough 20090413 10:38:06< boucman> go to sleep now :) 20090413 10:38:29< Dragonking> I just woke up ;p 20090413 10:38:53< boucman> oh, I thought you were about to go to bed 20090413 10:39:12< esr> fabi: still here? 20090413 10:39:33< Dragonking> boucman: No, I don't plan in nearest future ;) 20090413 10:40:36< Dragonking> boucman: So instead of continue in "else", add ERR_AI msg? 20090413 10:40:46< Dragonking> s/instead/beside/ 20090413 10:40:49< boucman> something like that, yes 20090413 10:40:57< Dragonking> Will do 20090413 10:41:23< Dragonking> boucman: I'll wait for some more comments before commiting it, maybe you find something else 20090413 10:41:35< boucman> ok, make sense 20090413 10:42:24< Dragonking> boucman: And I'm interested in how you like this CM/CM_manager :) 20090413 10:43:02< boucman> looks good so far :) 20090413 10:43:08< Dragonking> :) 20090413 10:47:16< Dragonking> boucman: I have one question about filters - should result of filter formula be treaded like a bool (like it is now?) and does unit need to be filtered out when filter formula evaluated for it gives 0 or 1? 20090413 10:48:21< boucman> Dragonking: tbh I didn't think of filters that way at all (your approch is perfectly valid, that's why I didn't mention it yet) 20090413 10:49:08< Dragonking> It is question of: if we want to evaluated only leaders, then we write me="if( me.leader, 0, 1)" 20090413 10:49:26< Dragonking> boucman: And I have bug with filters, needs to be fixed but it's minor thing ;) 20090413 10:49:38< boucman> I thought that filter_me would be call with a "input" parameter that would be a list of all units on our side (or whatever list of values the param would have by default) and that the formula would mainly use "filter" to remove undesired elements 20090413 10:50:15< boucman> so I would write filter(input,'me',me.leader) 20090413 10:50:21< boucman> to get only the leader 20090413 10:51:08< boucman> probably makes the code more readable on the C++ side too 20090413 10:51:53-!- ABCD [n=ABCD@wikipedia/ABCD] has quit ["No Ping reply in 30 seconds."] 20090413 10:52:11-!- ABCD [n=ABCD@wikipedia/ABCD] has joined #wesnoth-dev 20090413 10:53:00< boucman> Dragonking: I have a slight problem with your current approch though 20090413 10:53:07-!- zookeeper [n=l@wesnoth/developer/zookeeper] has quit [] 20090413 10:53:19< boucman> in your code, you set a variable which is "the unit to filter" 20090413 10:53:42< boucman> in the attack code, it's called "me" when filtering on me and "target" when filtering on target 20090413 10:54:01< boucman> this means that we can't easily write reusable filters 20090413 10:54:17< boucman> since we would need different code for a filter on leaders depending on the name of the variable 20090413 10:54:27< Dragonking> ok 20090413 10:54:34< Dragonking> Good point. 20090413 10:56:04-!- Appleman1234 [n=Appleman@131.181.47.2] has quit ["Leaving"] 20090413 10:56:10< boucman> even if you keep your approch, it would be nice to have a generic way to call filters (a template method in candidate_move_with_filter) to not duplicate the filtering logic in all users, it sort of miss the point of having a candidate_move_with_filter method 20090413 10:56:34< boucman> in the sons you should just build the list and say "filter it for me with that parameter" 20090413 10:56:52< Dragonking> boucman: So you think filter should have "input" as a parameter? 20090413 10:57:08< boucman> input was the first name that came to me 20090413 10:57:25< Dragonking> And in case of me and ally it will be variant full of unit_callables that are on my side 20090413 10:57:26< boucman> but yes, the name should be common, and probably pushed in candidate_move_with_filter 20090413 10:57:45< boucman> either my way (with a list) or your way (formula called on every instance) 20090413 10:57:58< boucman> but the parameter logic should be in candidate_move_with filter 20090413 10:58:29< Dragonking> It is probably more intuitive to have 'input' and your approach. 20090413 10:59:39< boucman> yeah, it's more a "filter" logic 20090413 11:01:20-!- nerwa [n=nerwa@59.78.26.75] has quit [Connection timed out] 20090413 11:01:49< boucman> Dragonking: jumping to another bit of code... 20090413 11:02:02< Dragonking> boucman: Hmm, I tihnk there is no need for a template, if only we make generic method that takes input as variant parameter... variant can wrap anything we want 20090413 11:02:09< boucman> in formual_ai.cpp, line 1750 (ther candidate_move logic) 20090413 11:02:24-!- noy [n=Noy@wesnoth/developer/noy] has quit [] 20090413 11:02:25< boucman> Dragonking: ok, makes sense 20090413 11:02:48< boucman> I was thinking of passing unit lists, but you are right, passing directly variants is a better design 20090413 11:03:09< CIA-30> loonycyborg * r34844 /trunk/src/ (formula_candidates.cpp savegame.cpp): Fixed compile warnings. 20090413 11:03:11< boucman> back to my review :) 20090413 11:03:20< Dragonking> Yes? :) 20090413 11:03:29< boucman> so, line 1750, I don't really understand how you handle move_maps_valid_ 20090413 11:03:50< boucman> (I'm not sure what this variable is supposed to mean, but I'm sure the way you handle it is wrong :) 20090413 11:04:02-!- Gnutoo [n=gnutoo@host216-163-dynamic.51-79-r.retail.telecomitalia.it] has joined #wesnoth-dev 20090413 11:04:08< Dragonking> Line 1762 is useless, I'll remove it BTW 20090413 11:04:18< Dragonking> boucman: No, it is ok 20090413 11:04:34< boucman> ok, once line 1762 is removed, it makes more sense 20090413 11:04:46< fabi> esr: yes 20090413 11:05:21< Dragonking> boucman: generally, this variable is set to false before each move in make_move 20090413 11:05:33< esr> fabi: Did you like the dilog I wrote for Costly Revenge? 20090413 11:05:54< Dragonking> but in case of candidate moves, we need to eval first, and eval does not set it to false 20090413 11:06:00< boucman> Dragonking: one last remark, the whole while() loop in formula_ai.cpp would probably be better encapsulated within candidate_move_manager 20090413 11:06:12< fabi> esr: yes, it's great. But I changed the scenario that much that more speech is needed. 20090413 11:06:12< Dragonking> move_maps between evals do not change 20090413 11:06:36< boucman> since it's the candidate_move logic, users of candidate moves should not know about it (if possible) 20090413 11:06:41< Dragonking> boucman: Then I would nee to expose make_move as public. 20090413 11:06:42< esr> fabi: Oh? How? What else do I need to write? 20090413 11:07:14< fabi> The story indicates that Kalenz and Landar are going to wipe out all the saurian empire. 20090413 11:07:33< esr> fabi: ...And? 20090413 11:07:34< fabi> I changed the scenario objectives from killing both leaders to kill every saurian on the map 20090413 11:07:49< boucman> Dragonking: ok, no big deal 20090413 11:07:58< Dragonking> (back to make_move) but before we evaluate, we do need to set move_map to false, because temporary data is invalid after last move call from unit_formulas 20090413 11:08:03< boucman> since that's the only place RCM will ever be used we don't need to refine that much 20090413 11:08:14< fabi> and the player must destroy every village by capturing it. (That makes the fact that the healers are missing even worse for the player) 20090413 11:09:22< boucman> why isn't move_maps_valid_ set to false within make_move, btw ? 20090413 11:09:36< Dragonking> It is set at the beginning, not at the end. 20090413 11:09:49< fabi> The scenario has no speak about that genozid. There is only one Saurian leader "Arrrg I die" and Kalenz says "we made it" afterwards. That is a little to few for my taste considering what is happening there. 20090413 11:10:21< esr> I see what you mean. 20090413 11:10:46< esr> I'll look into it. 20090413 11:10:56< fabi> esr: cool, thanks. 20090413 11:11:02-!- stikonas [n=stikonas@ctv-79-132-187-171.vinita.lt] has joined #wesnoth-dev 20090413 11:11:51< Dragonking> boucman: Hmm... so actually we need this 1762 probably... 20090413 11:11:56< esr> While I'm doing that, would you please fix bug #13234 (Wrong borders on the "Ka'lian under attack" map, campaign: Legend of Wesmere) so I can close it when we ship 12.7.1? 20090413 11:12:37< boucman> Dragonking: I'll leave you to look into all that, I want to proofread crab's stuff now, but i'm still around if you have any question 20090413 11:12:55< Dragonking> ok 20090413 11:13:33< esr> fabi: Note, I might alter the objective from "make saurians extinct" to "serious punitive expedition that razes their capital". Same gameplay but a somewhat more realistic objective. 20090413 11:13:40-!- Reisiger [n=Reisiger@adsl-84-226-54-253.adslplus.ch] has joined #wesnoth-dev 20090413 11:14:02< fabi> esr: I can't fix that without another not implemented wml feature. https://gna.org/bugs/?13236 20090413 11:14:10< Reisiger> Morning everyone. 20090413 11:14:15< mordante> hi Reisiger 20090413 11:14:22< Dragonking> boucman: I tihnk we would like to move this make_move_valid thing to be set *after* the move, not before. 20090413 11:14:38< fabi> esr: Right, extincting all saurians should be something that kalenz wouldn't agree to. 20090413 11:14:59< esr> fabi: Huh? Why do you need that? Isn't it a matter of editing a map? 20090413 11:15:02< mordante> Reisiger, I committed the changes to cmake since it doesn't break g++, but would still be nice if you manage to get it working with MSVC 20090413 11:15:18 * Reisiger browses through the wesnoth-commits 20090413 11:15:19< boucman> Dragonking: I think we should do it "during" the move 20090413 11:15:37< boucman> i.e it is make_move which is in the best postition to set it, not its callers 20090413 11:15:46< fabi> esr: Scenario 3 uses the same map as scenario 7 but only a smaller part of it. I just convert the not needed parts to void. 20090413 11:15:53< esr> Oh. 20090413 11:15:53< Reisiger> mordante: Ok. But first I'm taking a look at missing resources for MSVC. The linker fails, thus some cpp/hpp files are not listed. 20090413 11:15:57< Dragonking> boucman: Not only make move, formula commandline too. 20090413 11:16:08< boucman> yeah, true 20090413 11:16:20< esr> Well, at least add a comment stating what FR it depends on, and why. For the record. 20090413 11:16:22< boucman> but not the paly_turn where it is currently called 20090413 11:16:27< mordante> Reisiger, ok might be feel free to post a patch, then I'll commit it 20090413 11:16:40< Dragonking> boucman: Well it... depends 20090413 11:16:46< Reisiger> mordante: Will do :) 20090413 11:17:09< Dragonking> boucman: we need to assume that at the beginning of a turn we have invalid move maps. 20090413 11:18:13< Dragonking> boucman: either that, or set it to false... on a fallback, if move formula is not specified, on end turn.. and maybe something else.. 20090413 11:18:19< fabi> esr: done 20090413 11:19:10< boucman> Dragonking: ok, just see if any cleanup is needed 20090413 11:19:22< Dragonking> I tihnk there is room for improvement. 20090413 11:20:03< boucman> Dragonking: on a small note, we decided something with crab, not sure you were around... 20090413 11:20:12< boucman> to clarify vocabulary a bit 20090413 11:20:36< Dragonking> So I probably was not around, yes? 20090413 11:20:53< boucman> a "move" is the action of actually moving a unit, the generic idea of the AI doing something on the gamestate is an "action" 20090413 11:20:59< boucman> just to avoid confustion 20090413 11:21:38< boucman> which means that internally (and maybe externally too) we should rename *_candidate_moves to *_candidate_actions 20090413 11:21:56< Dragonking> Sure 20090413 11:22:08< Dragonking> Thne same goes for make_move -> make_action ? 20090413 11:22:51< boucman> yes 20090413 11:23:07< Dragonking> Noted. 20090413 11:27:54< Reisiger> mordante: #include got added to user_handler.cpp instead of hpp. I also added the missing files to the MSVC project file. I'm going to make and post the patch 20090413 11:28:47< mordante> Reisiger, doesn't it work when added to the .cpp file? 20090413 11:29:05< Reisiger> No... guess MSVC is too lazy to look in the happ o_O 20090413 11:29:33< Reisiger> Ah, it's because of sample_user_handler 20090413 11:29:49< Reisiger> the hpp loads the user_handler.hpp, and there ctime is missing 20090413 11:30:35< mordante> ah that makes sense since I looked whether the header had some time features 20090413 11:30:41< Reisiger> mordante: need a few minutes, testing my changes vs the latest revision 20090413 11:30:46< mordante> no problem 20090413 11:31:03< mordante> and I prefer to add ctime to sample_user_handler.cpp 20090413 11:31:33< Reisiger> ok, I'll move ctime into the two cpp's 20090413 11:32:58< mordante> IIRC I already added it to user_handle.cpp 20090413 11:33:28< Reisiger> ^^ I moved that one to the hpp 20090413 11:33:37< mordante> ah ok 20090413 11:33:56< mordante> I assumed you already reverted that part 20090413 11:35:04< Reisiger> Hm... throws more fits 20090413 11:35:53< Reisiger> sample_user_handler.hpp needs the ctime in there 20090413 11:36:07< Reisiger> 1>e:\projects_ext\wesnoth\trunk\src\server\sample_user_handler.hpp(54) : error C3861: 'time': identifier not found 20090413 11:37:21< loonycyborg> Because time() is called in a class definition in an initializer. 20090413 11:37:23< Reisiger> Confirmed. sample_user_handler.hpp needs to contain #include 20090413 11:38:00< Reisiger> I'll make the patch-file now 20090413 11:39:14< boucman> Dragonking: are you working on the move=>action change, or should I ? 20090413 11:42:37-!- oak__ [n=oakus@252.108.broadband12.iol.cz] has quit ["( www.nnscript.de :: NoNameScript 4.02 :: www.XLhost.de )"] 20090413 11:43:08-!- nerwa [n=nerwa@59.78.26.75] has joined #wesnoth-dev 20090413 11:43:25< silene> Reisiger: don't bother doing a patch; is it just adding this #include? 20090413 11:43:49< Reisiger> silene: it adds missing files to wesnothd.vcproj 20090413 11:44:05< silene> Reisiger: okay then 20090413 11:44:20< Dragonking> boucman: Working on that 20090413 11:44:32< boucman> ok 20090413 11:44:32< mordante> silene, that's why I asked a patch 20090413 11:45:52< Dragonking> boucman: Tho I commit it and then do some uni stuff, I'll re-implement this filter thing later 20090413 11:46:41< Reisiger> mordante: Here's the post: http://www.wesnoth.org/forum/viewtopic.php?p=351775#p351775 20090413 11:46:47< Dragonking> boucman: And about make_action - should i make it public and keep candidate actions loop inside CA manager like we discussed? 20090413 11:46:59< Reisiger> Seems MSVC likes to rearange files in it's projects alphabetically :) 20090413 11:47:16< boucman> Dragonking: no, not for the moment 20090413 11:47:25< boucman> it's a good idea, but I'm not sure it's worth it atm 20090413 11:47:30< mordante> Reisiger, thanks, I'll apply it 20090413 11:47:39< Dragonking> boucman: I feel the same actually :) 20090413 11:47:44< boucman> :) 20090413 11:48:01< silene> mordante: oh! that was a long time ago! i didn't go that far back in the logs :-) 20090413 11:48:09< mordante> :-) 20090413 11:55:30< mordante> Reisiger, patch is unhappy with the windows eol's can you send me the entire project file? 20090413 11:55:58< loonycyborg> mordante: dos2unix :P 20090413 11:57:02< Reisiger> mordante: Bugger, and there I tought TortoiseSVN actually manages to adhere to some standarts o_O I'll upload wesnothd.vcproj to the post... but that'll also have windows eol's, won't it? 20090413 11:57:24< Reisiger> *thought 20090413 11:57:32< mordante> loonycyborg, I can do that but I don't want to convert the project file ;-) 20090413 11:57:40< loonycyborg> Reisiger: It probably has svn:eol-style native set. 20090413 11:58:14 * mordante wonders how MSVC handles unix line ends in a project file ;-) 20090413 11:58:38< loonycyborg> If you set that svn property on a file, svn will automatically convert line endings to native form. 20090413 12:00:15< Reisiger> mordante: wesnothd is uploaded as zip (.vcproj gets rejected by the forum) 20090413 12:00:50 * Reisiger thinks TortoiseSVN might actually convert eol's to native default... 20090413 12:01:27< loonycyborg> Hm.. wesnoth.vcproj doesn't have eol-style set. 20090413 12:02:02< Reisiger> Then it's just TortoiseSVN's behaviour for patch files? o_O 20090413 12:02:08< loonycyborg> Probably patch just refuses to work with windows line endings. 20090413 12:02:26< loonycyborg> And line endings in patch and project match. 20090413 12:02:29< mordante> Reisiger, did you patch wesnothd or wesnoth project file? 20090413 12:02:41< Reisiger> wesnothd 20090413 12:03:01< Reisiger> bugger.. 20090413 12:03:06< Reisiger> I'm stupid :( 20090413 12:03:09< CIA-30> dragonking * r34845 /trunk/src/ (4 files): Renamed formula_ai::make_move to make_action, and candidate_move to candidate_action 20090413 12:03:10< Dragonking> boucman: ^ 20090413 12:03:20< boucman> great, thx 20090413 12:03:24< Reisiger> it was vesnoth.vcproj ... 20090413 12:03:34< Reisiger> and the ctime was in a file in wesnothd 20090413 12:04:33< Reisiger> mordante: wesnoth.vcproj is up now. Sorry about that. 20090413 12:05:35< CIA-30> ivanovic * r34846 /trunk/po/wesnoth-dm/ (55 files): 20090413 12:05:35< CIA-30> add CMakeLists for new textdomain 20090413 12:05:35< CIA-30> set svn:eol-style to native 20090413 12:05:51< mordante> Reisiger, no problem 20090413 12:07:22< CIA-30> ivanovic * r34847 /trunk/po/ (4 files in 4 dirs): updated Russian translation 20090413 12:07:57< CIA-30> ivanovic * r34848 /branches/1.6/ (5 files in 4 dirs): updated Russian translation 20090413 12:08:14-!- Crab_ [n=Crab_@wesnoth/developer/crab] has joined #wesnoth-dev 20090413 12:08:17< Crab_> hi 20090413 12:08:25-!- nerwa [n=nerwa@59.78.26.75] has quit [Read error: 110 (Connection timed out)] 20090413 12:08:40< CIA-30> mordante * r34849 /trunk/ (2 files in 2 dirs): 20090413 12:08:40< CIA-30> Compilation fixes for MSVC. 20090413 12:08:40< CIA-30> Add a missing include and missing files in the project. Patch provided by 20090413 12:08:40< CIA-30> Reisiger. 20090413 12:08:59< mordante> hi Crab_ 20090413 12:09:08< mordante> Crab_, do you read the logs? 20090413 12:09:12-!- wesbot changed the topic of #wesnoth-dev to: released 1.6.1, announcing "soon" | Summer of Code info: http://www.wesnoth.org/wiki/SummerOfCodeIdeas | 53 bugs, 235 feature requests, 9 patches | logs: http://irclogs.wesnoth.org/ | Don't paste on IRC! Use a pastebin: http://wesnoth.pastebin.com | http://imagebin.org 20090413 12:09:17< Crab_> yes, I've read them already 20090413 12:09:22< boucman> morning Crab_ 20090413 12:09:25< mordante> ah ok 20090413 12:09:29< boucman> i like your new interface :) 20090413 12:09:41< Reisiger> morning Crab_ :) 20090413 12:11:27< Crab_> boucman: it will grow a bit in the future, when I'll try to use it, there's no doubt that I'll see the need some more functions (AI sometimes does adhoc stuff with modified units, for example) 20090413 12:11:41 * Reisiger disapears hunting for food... "Be vewy vewy quiet..." 20090413 12:11:46< boucman> yes, but it's a sane base to work with 20090413 12:12:25-!- nerwa [n=nerwa@59.78.26.75] has joined #wesnoth-dev 20090413 12:13:05< Crab_> yes 20090413 12:17:55< mordante> Crab_, did you read my question regarding class vs. namespace and the return values? 20090413 12:18:02< mordante> questions* 20090413 12:18:06< Crab_> mordante: yes, writing answer atm 20090413 12:18:18< mordante> ok then I'll waut 20090413 12:18:20< mordante> wait* 20090413 12:18:56< Ivanovic> okay, updated the credits in about 20090413 12:19:14< Ivanovic> s/credits in about/contents of the credits on the website 20090413 12:19:45-!- YogiHH [n=chatzill@d082183.adsl.hansenet.de] has joined #wesnoth-dev 20090413 12:20:07< AnMaster> hrrm... what log option should I use to debug segfault that happens after Alt-r and before the recall dialog shows up? (no debugging symbols argh... will recompile with -g soonish) 20090413 12:21:49< mordante> AnMaster, --log-debug=all 20090413 12:22:06< AnMaster> ok got a backtrace with symbols only under gdb at least hm 20090413 12:22:09< AnMaster> crashes in memcpy 20090413 12:22:14< mordante> it will give a lot of info, but probably only the end is interesting 20090413 12:22:29< mordante> can you paste the backtrace? 20090413 12:22:32< AnMaster> a sec 20090413 12:22:50< AnMaster> I have issues starting browser, seems whatever happened causes wesnoth to eat huge amount of ram 20090413 12:23:31< AnMaster> mordante, also I was playing a non-mainlined scenario, (Invasion from the Unknown) 20090413 12:23:33< AnMaster> http://rafb.net/p/Yv1w4C96.html 20090413 12:23:45< loonycyborg> Which browser you're using? Firefox? Try lynx instead :P 20090413 12:23:51< AnMaster> loonybot, konq 20090413 12:23:53< loonybot> error: expected constructor, destructor, or type conversion at end of input 20090413 12:23:58< AnMaster> err 20090413 12:24:01< AnMaster> loonycyborg I meant 20090413 12:24:27< AnMaster> I'm not insane enough to start firefox if I notice opening the KDE menu takes several seconds of heavy disk activity... 20090413 12:24:31< mordante> this is no backtrace with symbols :-( 20090413 12:25:05< AnMaster> mordante, as I said it was a build without -g, I'll rebuild with -g in a moment 20090413 12:25:10< AnMaster> that will take a while though 20090413 12:25:12< loonycyborg> Why there are symbols, but no line numbers? 20090413 12:25:28-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 110 (Connection timed out)] 20090413 12:25:34< AnMaster> loonybot, missing -g as I said. 20090413 12:25:34< loonybot> error: expected constructor, destructor, or type conversion before '-' token 20090413 12:25:38< AnMaster> argh! 20090413 12:25:42 * AnMaster glares that loonybot 20090413 12:25:56< mordante> " ok got a backtrace with symbols only under gdb at least hm" that's why I expected symbols 20090413 12:25:57 * loonycyborg chortles sadistically 20090413 12:26:10< AnMaster> mordante, symbols == function names to me 20090413 12:26:19< YogiHH> wesbot: seen esr 20090413 12:26:20< wesbot> YogiHH: Queried user last spoke 1h 10m ago. esr is currently here and on the channel #wesnoth-umc-dev. 20090413 12:26:24< mordante> symbols == debug symbols to me ;-) 20090413 12:26:28< YogiHH> esr: still there? 20090413 12:26:44< loonycyborg> AnMaster: But why there are still function names? Shouldn't they be omitted too without -g? 20090413 12:26:56< AnMaster> loonybot, no. I didn't run strip 20090413 12:26:56< loonybot> error: Unexpected end of request. 20090413 12:27:02< AnMaster> grr that bot 20090413 12:27:08< esr> YogiHH: Yup, still here. 20090413 12:27:08< AnMaster> or my tab completion rather 20090413 12:27:45< AnMaster> anyway, it will take a few minutes to rebuild with debug symbols. This computer is rather old 20090413 12:28:03< Crab_> mordante, silene: regarding those std::auto_ptr's and the purpose of that return value. Basically, clients want to get a single command, use it once or twice, and check the return value of the command. The command hold state specific to its parameters, and state specific for that invocation of the command Something like this: http://wesnoth.pastebin.com/m2edd7811 20090413 12:28:16< YogiHH> esr: Checked DM, Night in the Swamp savefile. The moveto event fires alright, there is a filter not to fire for mages. If you move to it with the general for example, it works as expected. 20090413 12:28:54< esr> YogiHH: Checking... 20090413 12:29:03< boucman> Crab_: around ? 20090413 12:29:08< Crab_> boucman: yes ) 20090413 12:29:16< loonycyborg> I rarely get such backtraces since Gentoo routinely strips all binaries :P 20090413 12:29:30< boucman> I would like to write a new candidate move, how do I get it called from your test scenario ? 20090413 12:29:46< AnMaster> loonybot, FEATURES="split-debug" 20090413 12:29:47< loonybot> error: expected constructor, destructor, or type conversion before '=' token 20090413 12:29:47< AnMaster> iirc 20090413 12:29:52< AnMaster> let me check my make.conf 20090413 12:30:06< AnMaster> and )/&)(%¤# that bot and/or my tab completion 20090413 12:30:13< mordante> Crab_, what I was thinking about to use boost::optional and return a struct with the values when the function succeeds 20090413 12:30:17< Crab_> boucman: the best way is to write a ai config in data/ai/dev 20090413 12:30:47< boucman> ok, doing that 20090413 12:31:01< Crab_> boucman: see formula_ai_poisoning.cfg 20090413 12:31:07< mordante> but if you need the cause of the error that won't help much (not sure whether you do) 20090413 12:31:11< esr> YogiHH: No. Look for the comment that says "if someone capable of destroying the generator moves there", line 54. That's rthe one that isn't firing. 20090413 12:31:16< AnMaster> loonycyborg, I have FEATURES="parallel-fetch userfetch userpriv usersandbox -metadata-transfer splitdebug" it seems, some of these may be redundant nowdays, iirc userpriv and usersandbox are default since a year or so, 20090413 12:32:06< Crab_> boucman: and then, for ease of testing, insert it into scenario config itself, just as poisoning. 20090413 12:32:39< YogiHH> esr: hmm, that one is obviously not in the savefile... 20090413 12:33:11< YogiHH> esr: or am i missing something? 20090413 12:33:16< esr> YogiHH: Interesting. Then the question is why is it not being saved. 20090413 12:33:17< Crab_> boucman: btw, I plan to refactor that scenario to make it easier-and-shorter to write and add things to it, and easier to use (for when i have written it, I knew less about the true power of WML :) ) 20090413 12:33:34< Crab_> mordante: yes i need the cause of error 20090413 12:33:54< boucman> Crab_: fine by me :) but please write a wiki page somewher on how to use it at some point 20090413 12:33:56< Crab_> mordante: you see, with moves, an "error" can still move a unit. (partial move ended prematurely due to wml event or ambush) 20090413 12:34:21< Crab_> boucman: http://www.wesnoth.org/wiki/AI_Arena#Where_to_put_all_formulas_which_may_be_used_by_the_AIs ? 20090413 12:34:53< boucman> my bad :P 20090413 12:35:42< esr> YogiHH: The error pattern, gere and in the two other instances I know about, seems tto be that the event will fire if you play straight throught to it, but sometimes gets randomly dropped if you restore from a savefile. That would be consistent with the event sometimes being skuipped by save_game() 20090413 12:35:45< mordante> Crab_, ok 20090413 12:35:48-!- heinz_ [n=heinz@p54B33085.dip0.t-ipconnect.de] has joined #wesnoth-dev 20090413 12:35:51< loonycyborg> AnMaster: parallel-fetch sounds interesting 20090413 12:36:26< YogiHH> esr: since when does that happen? 20090413 12:36:28< Crab_> mordante: so, suggest alternatives. I've read http://www.aristeia.com/Papers/resourceReturnProblem.txt when I was thinking what to return from those functions. 20090413 12:36:43< AnMaster> loonycyborg, it might be default nowdays, better check. This system was first installed with 2005.1, and thus have a lot of no longer needed changes I suspect. 20090413 12:37:04< esr> Hm, I believe I started seeing it about a week ago. 20090413 12:37:05< AnMaster> loonycyborg, check man make.conf 20090413 12:37:38< loonycyborg> That's indeed default now. 20090413 12:37:48< YogiHH> esr: ok, then i have an idea. I did something with merging configs, let's see if i can find that and if it is the source of this 20090413 12:37:59< mordante> Crab_, I'm thinking about alternatives ;-) I don't know that paper and it looks interesting 20090413 12:38:02< esr> YogiHH: OK. 20090413 12:38:08 * mordante starts to read 20090413 12:38:39< Crab_> mordante: and regarding that class-vs-namespace question: Yes, ai_actions can be a namespace, since it is just a stateless facade to those little action classes. 20090413 12:39:28< mordante> it looked to me that way as well 20090413 12:39:47< Crab_> mordante: ok, I'll change this, then 20090413 12:39:54< mordante> thanks 20090413 12:40:03-!- nerwa [n=nerwa@59.78.26.75] has quit [Success] 20090413 12:40:06< boucman> Crab_: I've got a crash, most likely for you 20090413 12:40:16< Crab_> boucman: give it to me, then ) 20090413 12:40:23< boucman> start the game, open formula, type "dir" => crash 20090413 12:40:33< boucman> 0x00000000006291fa in team::ai_parameters (this=0x8275e449d7a8) 20090413 12:40:33< boucman> at src/team.cpp:640 20090413 12:40:33< boucman> 640 return ai_manager::get_active_ai_effective_parameters_for_side(info_.side); 20090413 12:40:54< boucman> I have it under gdb right now if you want me to do some quick looking 20090413 12:40:59< AnMaster> loonycyborg, -metadata-transfer speeds up syncing, skipping the entire metadata update thing at the end, you have to put a specific line in /etc/portage/modules though for it to work: "portdbapi.auxdbmodule = cache.metadata_overlay.database" (no quotes), and read the relevant bit in the man page. 20090413 12:41:12< Crab_> wait a while, while I reproduce... 20090413 12:41:15< YogiHH> esr: can you provide me with a savefile of the previous scenario? Preferably close to the end :-) 20090413 12:41:30 * AnMaster is still waiting for wesnoth to recompile with -g 20090413 12:41:32< Crab_> return null for me ) 20090413 12:41:40< Crab_> paste me a stack trace, please 20090413 12:41:41< esr> YogiHH: Yes, I can. 20090413 12:41:46< boucman> backtrace : http://wesnoth.pastebin.com/m653bf45e 20090413 12:41:47< esr> Wait... 20090413 12:42:13< boucman> i started "wesnoth -t" not sure it makes a difference 20090413 12:42:17< boucman> latest trunk 20090413 12:42:33-!- nerwa [n=nerwa@59.78.26.75] has joined #wesnoth-dev 20090413 12:42:58< esr> YogiHH: So, you want something close to thend, not of Night in the Swamp, but Swamps of Illuven (the previous)? 20090413 12:43:07< YogiHH> esr: yes, please 20090413 12:43:28< esr> OK, how would you like me to ship it to you? 20090413 12:43:32< Crab_> boucman: r34840 works fine for me. so, don't close it for now, i'll rebase to latest trunk and recompile 20090413 12:43:37< YogiHH> esr: DCC? 20090413 12:43:58< boucman> Crab_: it's 100% reproducible, so call me when you're ready 20090413 12:44:09< Crab_> boucman: ok 20090413 12:44:21< esr> YogiHH: I've heard of DCC but don't know how to use it. I'm willing to learn, if ChatZilla supports it. 20090413 12:44:38< Dragonking> I'm goiong to be back later, bye 20090413 12:44:50< boucman> Crab_: ok, all command-line formulas seem to crash 20090413 12:44:54< YogiHH> esr: right click on my name in the list, then use "Send file..." 20090413 12:45:10< esr> Trying that... 20090413 12:45:33-!- Dragonking [n=dk@wesnoth/developer/dragonking] has quit [] 20090413 12:46:31< esr> YogiHH: Last autosave from Swamps of Illuven, coming up. 20090413 12:48:02< YogiHH> esr: doesn't seem to work, then the best is to mail it to me (joerg.hinrichs@alice-dsl.de) 20090413 12:48:35< esr> YogiHH: I got a message that said this: [DCC] Sent DCC File Transfer offer to “YogiHH” from YOU (71.162.243.5:37978) of “DM-The_Swamps_of_Illuven-Auto-Save25” (242 KiB) [Cancel]. 20090413 12:48:41< loonycyborg> AnMaster: man page says that metadata-transfer is disabled by default with portage >=2.1.5 :P 20090413 12:48:45< esr> It didn't show up? 20090413 12:48:54< AnMaster> loonybot, really? heh 20090413 12:48:55< loonybot> error: expected constructor, destructor, or type conversion before '?' token 20090413 12:48:57< YogiHH> It did, but the file is 0 KB 20090413 12:48:59< AnMaster> grr 20090413 12:49:18< YogiHH> and it told me about some error without any details 20090413 12:49:27< AnMaster> loonycyborg, better check emerge --info, because it was quite recently I turned that off iirc 20090413 12:49:35< mordante> Crab_, the functions you use on the returned value are they always const functions? 20090413 12:49:36< AnMaster> as in a year or so at most 20090413 12:50:18< Crab_> mordante: no, then 100% change the state of the returned value. 20090413 12:50:47< mordante> can you rephrase that? 20090413 12:51:03< loonycyborg> emerge --info says FEATURES="distlocks parallel-fetch preserve-libs protect-owned sandbox sfperms strict unmerge-orphans userfetch" 20090413 12:51:06< Crab_> mordante: sorry. " they always change the state of the returned value." 20090413 12:51:36< esr> OK, I'll mail it. 20090413 12:51:46< mordante> :-( then a const reference is no option 20090413 12:53:58< esr> YogiHH: Sent. 20090413 12:54:19< AnMaster> hm 20090413 12:54:19< AnMaster> $ du -sh wesnoth 20090413 12:54:20< AnMaster> 79M wesnoth 20090413 12:54:22< AnMaster> insane! 20090413 12:54:29< AnMaster> that is the binary 20090413 12:54:30< AnMaster> with -g 20090413 12:55:01< loonycyborg> preserve-libs is so nice that I refused to downgrade when portage-2.2 was hardmasked :P 20090413 12:55:32< AnMaster> any idea what this means: 20090413 12:55:08 error config: Illegal character in map: (Gs^Fy) 'Gs^Fy' 20090413 12:55:45< AnMaster> only happens when loading from a savegame, not when starting from the start 20090413 12:55:57< AnMaster> and it seems to load just fine 20090413 12:56:12< AnMaster> even though it says "20090413 12:55:08 error config: map could not be loaded: Illegal character found in map. The scenario cannot be loaded." on the line after 20090413 12:57:42< mordante> that means you have a map with a terrain which is not define 20090413 12:57:45< mordante> defined* 20090413 12:58:16< Reisiger> mordante: I'm having another go at CMake. 20090413 12:58:18< AnMaster> mordante, hm happens when loading this savegame that caused the recall crash, and the map looks correct to me. 20090413 12:58:44< mordante> AnMaster, no black spot on the map? 20090413 12:59:02< AnMaster> no 20090413 12:59:05< mordante> odd 20090413 12:59:21< mordante> but it might be a map in the list of savegames 20090413 12:59:34< boucman> Crab_: I can't get the scenario to use my cfg (under data/ai/dev 20090413 12:59:36< AnMaster> mordante, could it be related to creating the cache thingy? It happened more times when there was no cache 20090413 12:59:46< mordante> anyway I'm off to get food 20090413 12:59:48< AnMaster> as in 4 times (instead of only two) 20090413 13:00:03< mordante> not entirely sure 20090413 13:00:05< boucman> I call for "my own ai" and specify "ai/dev/boucman_test.cfg" but it doesn't seem to call my files 20090413 13:00:14< AnMaster> ok I have a backtrace I think, but gdb is swap trashing trying to display it 20090413 13:00:29< Crab_> boucman: wait a while, it may be connected with that crash bug 20090413 13:00:39< boucman> ok, fair enough 20090413 13:00:51< AnMaster> grr inlining... 20090413 13:00:57< AnMaster> #3 0x000000000082163a in events::menu_handler::recall (this=0x7fff20d26c98, team_num=1, last_hex=@0x7fff20d26b98) 20090413 13:00:58< AnMaster> at /usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/include/g++-v4/bits/basic_string.h:2425 20090413 13:01:01< AnMaster> that is fairly useless 20090413 13:01:08< Reisiger> mordante: no change. Still can't find pkg-config.exe 20090413 13:02:04-!- nerwa [n=nerwa@59.78.26.75] has quit [Connection timed out] 20090413 13:03:09< AnMaster> http://rafb.net/p/igMec992.html 20090413 13:03:16< AnMaster> loonycyborg and/or mordante ^ 20090413 13:03:31-!- crimson_p [n=irchon@64.201.60.216] has joined #wesnoth-dev 20090413 13:04:52< Crab_> boucman: unable to reproduce. latest svn. http://wesnoth.pastebin.com/m7e7aa3a8 20090413 13:05:10< Crab_> boucman: will look at your backtrace now... 20090413 13:05:42< crimson_p> Ivanovic: I tested my build last night and the translations don't work, but it wasn't something stupid I did; I couldn't figure out why 20090413 13:05:46< boucman> i'm at 34843, I'll svn up and see if problem solves itself 20090413 13:06:23< Crab_> boucman: ok. 34840 and 34849 are both ok for me. 20090413 13:07:02< crimson_p> also, my Internet stopped working as I was adding it to the release on sf 20090413 13:07:28< crimson_p> and I'm going back to sleep now 20090413 13:07:47-!- crimson_p [n=irchon@64.201.60.216] has quit [Remote closed the connection] 20090413 13:08:13-!- nerwa [n=nerwa@59.78.26.75] has joined #wesnoth-dev 20090413 13:09:21< boucman> Crab_: still segfaults... 20090413 13:09:24< Crab_> boucman: I have an idea of what may be wrong. 20090413 13:09:35< boucman> i'm on x86_64, it might make a difference 20090413 13:10:10< Crab_> boucman: wait ~10 minutes. I'll try to create a fix. 20090413 13:10:46< boucman> ok 20090413 13:11:13< boucman> afk 10', then :) 20090413 13:11:18< AnMaster> boucman, um where does it segfault? Since I had a segfault on x86_64 with last trunk too. 20090413 13:11:31< AnMaster> I didn't catch what you did to cause the segfault 20090413 13:11:33< boucman> in formula AI 20090413 13:11:36< AnMaster> ah 20090413 13:11:43< AnMaster> not when pressing alt-r then? 20090413 13:11:47< AnMaster> mhm 20090413 13:11:57< boucman> nope 20090413 13:12:20< AnMaster> not same then. http://rafb.net/p/igMec992.html is what I had 20090413 13:12:41< loonycyborg> AnMaster: Does it happen on any press of alt-r or only in particular circumstances? 20090413 13:12:50< esr> YogiHH: Have you got the save? 20090413 13:12:59< loonycyborg> Does it also happen if you recall through context menu? 20090413 13:13:04< YogiHH> esr: yes, checking things now 20090413 13:13:19< AnMaster> loonycyborg, only in the second scenario of the non-mainlined Invasion from the unknown I think. Let me check with other ones and so on 20090413 13:13:38< AnMaster> and I'll check context menu too 20090413 13:14:28< AnMaster> loonycyborg, the fact that it segfaults in memcpy makes me suspect some sort of buffer overrun though. And sometimes it happens close to instantly while other times it goes swap trashing for half a minute first hm 20090413 13:15:05< AnMaster> loonycyborg, happens with context menu too 20090413 13:16:06< AnMaster> http://rafb.net/p/Iv6oxf45.html is backtrace for context menu 20090413 13:16:16< AnMaster> going to check other campaigns now 20090413 13:17:27< Crab_> boucman: ok, it looks like I've found the bug. I'll compile/check and I'll give it to you so you may check. 20090413 13:18:42< AnMaster> loonycyborg, recall in tutorial's second scenario doesn't segfault at least. 20090413 13:19:02< Crab_> boucman: I will be unable to test it fully (since segfault is in formula ai initialization, which depends on [ai] wml config.) 20090413 13:19:18< AnMaster> let me check using that win current scenario thingy after creating just one unit or so 20090413 13:19:25< Ivanovic> esr: you wanted to talk about translation mechanisms 20090413 13:22:06< Ivanovic> as in: [02:27:18] Ivanovic: When you're back, we should talk about documenting and upgrading the translation machinery. 20090413 13:23:00< boucman> Crab_: ok 20090413 13:23:18< AnMaster> loonycyborg, no crash hm. Lets see what could be the cause then... I'll try removing some units from the other save file to see what could be wrong with it. 20090413 13:24:50< Crab_> boucman: basically, it's my fault - I firstly create an ai (using a cached side number), and then set it's side. and, as formula ai may do various stuff in its constructor, it may segfault if the side number and cached side number differ (this is the situation for console ai - since it can be called by different sides of the game) 20090413 13:25:17< boucman> ok, no big deal 20090413 13:27:33< AnMaster> in savefiles, how does one find the start of the recall list? 20090413 13:28:52< AnMaster> loonycyborg or anyone else who may know ^ 20090413 13:29:44< loonycyborg> No idea. Just grep it for names of your units :P 20090413 13:30:20< AnMaster> loonycyborg, well I don't really remember them, and I can't bring up recall list to check :P 20090413 13:30:22< AnMaster> meh 20090413 13:31:05< esr> Ivanovic: Yes. 20090413 13:31:23< YogiHH> esr: the default for first_time_only is "true", so the event will only fire once, because it is not specified. Therefore you can't destroy the second stone. 20090413 13:32:22< YogiHH> esr: haven't tested to specify "first_time_only=no", though 20090413 13:32:39< esr> Ivanovic: I have a work request for you, and two reasons I hope you will be eager to do it. 20090413 13:32:58< esr> YogiHH: Back to you in a moment... 20090413 13:33:12< loonycyborg> AnMaster: They seem to be in [player] tag near the start of the savegame :P 20090413 13:34:06< AnMaster> loonycyborg, yes but so are some units that are auto placed on map (turn 1 save, managed to overwrite the pre-start one when testing with almost no units recruited...) 20090413 13:35:43< esr> Ivanovic: I ask you to write a wiki page comnpletely doumenting your translations workflow - what you do when translation come in, wehat you do when a campaign is mainlines, when and why you perform pot-updates, how trnslation stats are propagated to gettext.wesnoth,org - all written as though your audience has little clue about gettext, and describing the tools you use and how you invoke them. 20090413 13:35:52< Crab_> boucman: meanwhile, can you show me your ai/dev/boucman_test.cfg ? 20090413 13:36:07< esr> There are two good reasons for you to do this: 20090413 13:36:09< boucman> Crab_: it's a copy of the one for poisoning at this point 20090413 13:36:15< Crab_> ok 20090413 13:36:26< esr> (1) Someday, the Lord of Translations won't be you. 20090413 13:36:50< YogiHH> AnMaster: the recall list is to be found in the [player]-tag of either the [snapshot] or the [replay_start]-section (depending on what is needed) 20090413 13:36:57< AnMaster> aha 20090413 13:37:25< esr> (2) If you do this, I will probably be able to write tools that automate away things you must now do by hand. 20090413 13:37:27< AnMaster> YogiHH, which is needed if I want to remove some units from recall list to be able to see which unit cause a crash, and I have a turn 1 save... 20090413 13:37:29< AnMaster> hm 20090413 13:37:44< Ivanovic> esr: i already *have* a script doing the work 20090413 13:38:03< Ivanovic> since i have to visually inspect stuff anyway (erros at update and stuff like this) 20090413 13:38:20< YogiHH> AnMaster: The snapshot section 20090413 13:38:23< AnMaster> aha 20090413 13:38:41< esr> Ivanovic: So you need tpo write a page documenting the script and what your check procedures are. 20090413 13:38:47< YogiHH> AnMaster: unless you got a start-of-scenario save, that is 20090413 13:39:18< esr> Ivanovic: Besides, it is more than possible I could improve your script. 20090413 13:39:22< AnMaster> YogiHH, managed to overwrite that one when trying to create fewer units and :next_level to see if it was something related to the campaign in general 20090413 13:39:48-!- nerwa [n=nerwa@59.78.26.75] has quit [Connection timed out] 20090413 13:40:04< Ivanovic> esr: trust me, my little script needs no improvement, a plain and simple shellscipt doing all the make calls is perfectly fine 20090413 13:40:05< Ivanovic> ;) 20090413 13:40:14< mordante> Reisiger, and if you supply the PATH to pkg-config manually? 20090413 13:40:19< AnMaster> this [player] section is horribly long, around 8000 lines... 20090413 13:40:19< YogiHH> AnMaster: can you tell me what exactly happens to get to the crash? 20090413 13:40:51< Reisiger> I tried the path to the base folder, to bin and the filepath to the exe. Never worked :( 20090413 13:41:05< AnMaster> YogiHH, start invasion from unknown (not yet mainlined), play first scenario recruiting units, try to recall in second scenario 20090413 13:41:11< AnMaster> crash before dialog shows up 20090413 13:41:20< esr> Ivanovic: Well, will you have pity on your probable successors, then? And you necver know, I might find something...like when I added translation-note passthrough to my wnlxgettext. 20090413 13:41:24< Crab_> boucman: https://gna.org/patch/index.php?1160 20090413 13:41:33< YogiHH> AnMaster: any error messages? 20090413 13:41:52< Ivanovic> what *would* really help was an addition to pofix to *not* consider commented out strings for reforming 20090413 13:41:54< Ivanovic> ;) 20090413 13:42:12< boucman> testing 20090413 13:42:27< AnMaster> YogiHH, only something that I pasted about about not finding terrain (let me find the exact line) and there were no black tiles in the loaded scenario so it seemed to work anyway 20090413 13:42:38< AnMaster> anyway did you see the backtrace? 20090413 13:42:44< loonycyborg> esr: His successors will porbably write their own scripts :P 20090413 13:42:55< Chusslove> Ivanovic: Another nice thing would be to have a small PO with all the messages from .desktop files. 20090413 13:43:03< YogiHH> AnMaster: no, have you got a link? 20090413 13:43:06< mordante> Reisiger, odd for me manually locating pkg-config worked 20090413 13:43:07< esr> Ivanovic: Well, I can do that...but how am I going to make good deductions about helper tools without understanding your workflow? 20090413 13:43:12< Ivanovic> Chusslove: no idea how to do this, no idea at all 20090413 13:43:17< AnMaster> any idea what this means: 20090413 12:55:08 error config: Illegal character in map: (Gs^Fy) 'Gs^Fy' even though it says "20090413 12:55:08 error config: map could not be loaded: Illegal character found in map. The scenario cannot be loaded." on the line after AnMaster, no black spot on the map? no odd 20090413 13:43:19< Ivanovic> maybe ettin has an idea, though i don't think so 20090413 13:43:26< Reisiger> mordante: What OS are you working on? 20090413 13:43:26< AnMaster> YogiHH, http://rafb.net/p/Iv6oxf45.html 20090413 13:43:32< Chusslove> I mean, since esr is offering his work... :) 20090413 13:43:43< mordante> here Linux, but tested that on Windows ;-) 20090413 13:43:44 * AnMaster goes doing that binary search on the recall list removing half of the units 20090413 13:43:53< Ivanovic> Chusslove: would be better to eg use po4a like for the manpages and the manual 20090413 13:44:05< Reisiger> mordante: On Win, where did you get the pangocairo files from? 20090413 13:44:11< Ivanovic> but ettin is the one knowing about po4a, i just hope that the stuff setup does somehow work... 20090413 13:44:18< Chusslove> True. 20090413 13:44:20< mordante> the gtkmm development package 20090413 13:44:32< mordante> brb 20090413 13:44:57-!- nerwa [n=nerwa@59.78.26.75] has joined #wesnoth-dev 20090413 13:45:02< Crab_> boucman: and for ai_arena, launch wesnoth with "--log-debug=ai_manager,ai_configuration" - then you'll be sure about "was ai config loaded or not" 20090413 13:45:16< boucman> noted 20090413 13:45:47< AnMaster> YogiHH, also sometimes it goes swap trashing instead and I'm forced to kill it. Which makes it sound like a buffer overrun of some sort to me. 20090413 13:45:54< Chusslove> Ivanovic: Albeit not really in the realm of po4a; .desktop is a "unitary" format wrt. translation (all translations in one file), unlike the docbook and most others. 20090413 13:46:30< YogiHH> AnMaster: If you want you can send me the save and i'll have a look at that 20090413 13:46:43< AnMaster> YogiHH, well I prefer to help the devs as much as I can 20090413 13:46:57< AnMaster> as in reduce workload, finding out what exactly causes it 20090413 13:47:01< stikonas> Chusslove: why can't KDE's scripty be used to translate desktop files? Though it will need modifications. 20090413 13:47:03< YogiHH> AnMaster: that's very honourable of you :-) 20090413 13:47:09< esr> Ivanovic: I can't help you if I don't know what's going on in that area, and what's going ion really should be documented; otherwise the project has a maintainance vulnerability. Put some effort into it, please - I will find a way to make it worthwhile through beter tools, I promise. 20090413 13:47:21< Chusslove> stikonas: KDE's Scripty is a horrible, hundred-headed beast :) 20090413 13:47:32< AnMaster> YogiHH, since I'm a C (though not C++) open source dev myself I like users who do as much of the work as possible 20090413 13:47:36< Chusslove> With .desktop handling being it's ugliest part. 20090413 13:47:57< esr> And that is a promise that wmlscope/wmllint/wmlindent/wmlgettext shows I can keep. 20090413 13:48:02< Ivanovic> esr: i will document it, but there is no need atm to make the tools better, because they "just work" and really nicely, that is 20090413 13:48:17< Chusslove> Scripty basically eats Translation Coordinators (KDE's equivalent of Lord of Translation) away. 20090413 13:48:21< Crab_> boucman: and also note that Velory's poisoning formula was better at 'spreading poison' that current one. 20090413 13:49:11< CIA-30> silene * r34850 /trunk/src/game_events.cpp: Moved 'filter'-hack out of the action handler. 20090413 13:49:17< CIA-30> silene * r34851 /trunk/src/ (game_events.cpp game_events.hpp): Removed the command_handlers class. It was left unimplemented. 20090413 13:49:19< CIA-30> silene * r34852 /trunk/src/ (game_events.cpp game_events.hpp): Added support for dynamically added action handlers. 20090413 13:49:23< CIA-30> silene * r34853 /trunk/src/scripting/lua.cpp: Added wesnoth.register_wml_action for Lua scripts to register new WML tags. 20090413 13:49:24< silene> fabi: ^ 20090413 13:49:27< CIA-30> silene * r34854 /trunk/data/scenario-test.cfg: Added example of custom WML tag. 20090413 13:49:27< Chusslove> One tool that does handle .desktop files is Gnome's intltool, but it operates, I think, at build time. 20090413 13:49:28< boucman> Crab_: "current one" beig the one dk implemented yesterday ? 20090413 13:49:48< YogiHH> AnMaster: I see, and i appreciate that. I am not sure though, if the recall list is the source of your problems. Also that backtrace looks odd, i can't find the line number of menu_handler::recall where it crashes, so i thought maybe i get a better idea where exactly it crashes. 20090413 13:50:12< fabi> silene: thank you very much :-) 20090413 13:50:16< AnMaster> YogiHH, seems it has the line number of the inlined header to me yeah 20090413 13:50:34< Crab_> boucman: not sure. log shows two changes: "improve readability of poisoner_eval with the new if syntax by you", and "Small poisoner_eval formula improvement by DK" 20090413 13:50:43< esr> YogiHH: Back to you - I'm checking to see if all three failed events are missing tht flag - I don't think they are. 20090413 13:50:56< boucman> Crab_: crash fixed 20090413 13:50:59< Crab_> boucman: I'll checkout those old versions and test them 20090413 13:51:01< AnMaster> YogiHH, which happens to be in the << operator: 20090413 13:51:04< AnMaster> operator<<(basic_ostream<_CharT, _Traits>& __os, 20090413 13:51:04< AnMaster> const basic_string<_CharT, _Traits, _Alloc>& __str) 20090413 13:51:24< AnMaster> that is checking the header file manually 20090413 13:51:30< esr> YogiHH: And, even if they wsre, it wouldn't explain that even never making it into the savefile at all. 20090413 13:51:32< Crab_> boucman: good. I've also added an assert to make sure it is detected earlier 20090413 13:52:09< AnMaster> YogiHH, anyway if it isn't recall list I will at least have found that out 20090413 13:52:12< Chusslove> Ivanovic: So unless someone wants to test intltool (as a yet another biggish external tool), I'd think its best to write custom .desktop->POT, PO->.desktop script, and build it into the chaing like e.g. wmlxgettext. 20090413 13:52:18< YogiHH> esr: The event is inside the savefile, if you enter the scenario. I suspect it vanishes as soon as it is fired the first time. 20090413 13:53:26< YogiHH> esr: That's why i want to have a savefile of the previous scenario to check that 20090413 13:53:33< YogiHH> s/want/wanted 20090413 13:53:34< esr> YogiHH: Iven that wouldn't explain the first failure I saw, in Ur-Thorodur...but let me finish checking before I say more. 20090413 13:53:35< Ivanovic> Chusslove: in general i would love to switch over to a .desktop file that is *completely* created at build time 20090413 13:54:03< Ivanovic> Chusslove: the problem is that this would have to be different depending on the build system used and thus a real mess 20090413 13:54:50< Reisiger> mordante: I think that might be the issue. I don't have the path variables set to create/run gtkmm, only for compiling wesnoth in MSVC. 20090413 13:54:53< Chusslove> Ivanovic: I think with intltool it works as follows: there is a .desktop.in file, with fields needing translation prepended with underscore, e.g. _Name=...; the the intltool does its magic at build time; and it is made to fit into autotools, I don't think anything else. 20090413 13:55:18< Ivanovic> Chusslove: screw autotools 20090413 13:55:26< Ivanovic> i don't care about those at all and may they rot... 20090413 13:55:33< Chusslove> :) 20090413 13:55:38< Reisiger> mordante: and I got my needed files from the gtk+ download site for win32 (pieced together from different downloads) 20090413 13:55:44< Ivanovic> i am mainly concerned about scons as well as cmake 20090413 13:56:00< Chusslove> I can't speak authoritatively on intltool, though. Perhaps someone is integrating it with newer build systems. 20090413 13:56:12< Crab_> boucman: that's why i think that all formulas should be present at least *twice* - in a "stable" state and in "development" state. to make comparison easier without having to checkout old files 20090413 13:56:49< boucman> indeed 20090413 13:56:58< loonycyborg> Chusslove: AFAIK someone integrated intltool into waf. 20090413 13:57:10< Crab_> boucman: we need to think out a good filesystem structure (inside /ai) for them... 20090413 13:57:35< boucman> indeed 20090413 13:58:10< Crab_> boucman: I'll make a wiki page with my proposed structure. 20090413 13:58:29< Crab_> boucman: and then (when Dragonking will be around), we'll discuss it 20090413 13:58:50< esr> YogiHH: Your theory explains the Night in the Swamp and Portal of Doom errors -- whoever coded those events forgot first_time_only=no, and I failed to notice that. I'll commit corrections momentarily. It does not appear to explain the error in Ur-Thorodur; that event is only supposed to fitre once anyway. 20090413 13:59:23< esr> YogiHH: That was the first one I reported. 20090413 13:59:32< boucman> Crab_: sounds good 20090413 13:59:34< YogiHH> esr: ok, checking that as well 20090413 14:00:59< AnMaster> YogiHH, about line number, I rebuild that file with -O0 (by setting the verbose output setting for cmake, recompiling the file and then changing that line and manually run it, and finally link it)... lets see what happens 20090413 14:01:04< CIA-30> esr * r34855 /trunk/data/campaigns/Delfadors_Memoirs/ (scenarios/19_the_portal_of_doom.cfg utils/generators.cfg): Some events needed first_time_only=no and did not have it. 20090413 14:02:19< AnMaster> ah much more interesting backtrace 20090413 14:02:20< esr> YogiHH: Is it possible that the bit of state that says "this event has fired, don't save it" is not getting cleared when you reload a previous save? That would account for the observed problems. 20090413 14:02:57< YogiHH> esr: It is possible, i am not so familiar with the event stuff. 20090413 14:03:05< AnMaster> YogiHH, http://rafb.net/p/sguhO717.html 20090413 14:04:10< YogiHH> AnMaster: Is that the experience logging line? 20090413 14:04:16< AnMaster> << u->experience() << "/"; 20090413 14:04:17< AnMaster> yes 20090413 14:04:59< AnMaster> YogiHH, and I checked by emptying the recall list, indeed still happening. Which is very strange. 20090413 14:05:01< AnMaster> (IMO) 20090413 14:05:12< esr> YogiHH: I now have my copy of DM:19 corrected so first_time_only=no is set on the proble mevent. I will replay and see if I can reproduce the error. 20090413 14:05:27< YogiHH> AnMaster: I'd set a breakpoint there and see which unit that is 20090413 14:05:30< esr> s/proble mevent/problem event/ 20090413 14:05:34< AnMaster> good idea 20090413 14:06:22< AnMaster> YogiHH, what would I print then, I'm more used to C than C++ I admit 20090413 14:06:30< mordante> Reisiger, gtkmm has a all in one package I installed 20090413 14:06:43< esr> YogiHH: I think it is quite possible we had a two-point faire here with the WML errors masking a savegame bug in two out of three instances. 20090413 14:06:49< AnMaster> YogiHH, u or? 20090413 14:06:56< esr> s/faire/failure/ 20090413 14:07:04< mordante> so you could try that if you can spare the HDD space 20090413 14:07:16< YogiHH> AnMaster: that won't work, probably, out of my head i'd try u->id() 20090413 14:07:28< AnMaster> Couldn't find method __gnu_cxx::__normal_iterator > >::id 20090413 14:07:35< AnMaster> did "print u->id()" 20090413 14:07:51< Reisiger> mordante: I'll have a look at it. 20090413 14:07:53< Crab_> AnMaster: (*u).id() ? 20090413 14:08:06< AnMaster> (gdb) print (*u).id() 20090413 14:08:07< AnMaster> One of the arguments you tried to pass to operator* could not be converted to what the function wants. 20090413 14:08:11-!- nerwa [n=nerwa@59.78.26.75] has quit [Connection timed out] 20090413 14:08:11< AnMaster> mhm 20090413 14:08:45< YogiHH> AnMaster: better use the built-in log functions like LOG_NG or ERR_NG 20090413 14:09:37 * AnMaster looks for other use of those to see how to do this... 20090413 14:09:39< silene> AnMaster: gdb has a bit of trouble with c++ operators (not really surprising, since this information is lost), so you have to use the mangled name of operator* instead of * 20090413 14:10:32< AnMaster> LOG_NG << u.id() << endl; I guess? 20090413 14:10:40< AnMaster> oh std too 20090413 14:11:01< silene> AnMaster: you are probably missing an arrow 20090413 14:11:16< AnMaster> ah 20090413 14:11:17< AnMaster> indeed 20090413 14:11:26< AnMaster> -> not . 20090413 14:11:43< boucman> Crab_: will you commit your fix ? 20090413 14:11:55 * AnMaster wonders why every make causes src/CMakeFiles/wesnoth-core.dir/game_config.cpp.o to recompile 20090413 14:11:56< AnMaster> irritating 20090413 14:12:01< Crab_> boucman: ok 20090413 14:12:20< Reisiger> mordante: issue solved. The installer did add the necessary path variables for CMake to find pangocairo 20090413 14:12:29< loonycyborg> AnMaster: Perhaps revision.hpp regenerated? 20090413 14:12:35< AnMaster> ah yes indeed it said so 20090413 14:12:51< mordante> Reisiger, :-) 20090413 14:13:12< AnMaster> loonycyborg, still irritating on this old and slow computer :/ 20090413 14:13:22< CIA-30> crab * r34856 /trunk/src/ (ai_manager.cpp ai_manager.hpp): Fix bug with console ai being sometimes constructed with incorrect side number 20090413 14:13:24< Crab_> boucman: ^ 20090413 14:13:32< boucman> thx 20090413 14:13:39< Reisiger> mordante: I'm giving a 'build solution' attempt a go to see if it works 20090413 14:13:53 * boucman just discovered some renaming wrt RCM=>RCA that hadn't been done 20090413 14:15:42< YogiHH> esr: hmm, works for me... 20090413 14:16:10< boucman> btw, next time, Crab_, don't open a patch if you want to give me some code, use pastebin :P 20090413 14:16:20< esr> YogiHH: Sorry, which is working? 20090413 14:16:36< YogiHH> esr: moveto event is in the Ur-Thorodor savefile and triggers as expected 20090413 14:16:37< Crab_> boucman: ok ) 20090413 14:16:59< YogiHH> esr: i moved Delfador to 22,10 20090413 14:17:07< esr> YogiHH: Wacky. I will attempt to reproduce. 20090413 14:17:15< mordante> Reisiger, :-) 20090413 14:17:27< mordante> I expect it to fail at linking however ;-) 20090413 14:17:48< mordante> (maybe not since we only use the C libs) 20090413 14:18:09< AnMaster> YogiHH, hmmmm... the unit is listed under [side] not [player] , and not recalled 20090413 14:18:23< AnMaster> Elvish Archer-67 20090413 14:18:28 * AnMaster looks at said unit 20090413 14:18:47< YogiHH> AnMaster: what about its experience? 20090413 14:18:58< AnMaster> experience="10" 20090413 14:20:11< Crab_> boucman: I've tested all versions of poisoning improvement, and the problem is not with them. they all work worse than a few days ago. problem on CRA evaluator side? 20090413 14:20:27< boucman> Crab_: i'm fixing it right now :P 20090413 14:20:37< Crab_> ok ) 20090413 14:20:41< boucman> register_candidate_move has been renamed to register_candidate_action 20090413 14:20:46< YogiHH> AnMaster: It is possible that units with no position information in the side-tag are put onto the recall list. Still that doesn't explain why the program chokes on the archer... 20090413 14:21:01< AnMaster> YogiHH, let me check if same happens to the other archers too, it was the first archer listed (fighters and shamans before only from that logging statement 20090413 14:21:11< AnMaster> YogiHH, and indeed 20090413 14:21:20< AnMaster> about the no position 20090413 14:21:58< Crab_> boucman: ok ) by the way, is there a way (preprocessor directive, for example) to "add all config files in a specific directory" to a scenario config ? 20090413 14:22:01< boucman> Crab_: congratulation, your scenario caught its first regression :P 20090413 14:22:08< Crab_> boucman: hehe ) 20090413 14:22:10< AnMaster> YogiHH, ok now it segfaulted on a Elvish Ranger instead... 20090413 14:22:17< AnMaster> Elvish Ranger-665 20090413 14:22:18< AnMaster> err 20090413 14:22:20< AnMaster> -66 20090413 14:22:23< AnMaster> not 665 20090413 14:22:27< boucman> Crab_: I know there is, but I don't know the syntax, that would be zookeeper's area 20090413 14:22:37< Crab_> boucman: ok 20090413 14:22:42< boucman> check _main.cfg in the data/ directory, it probably uses that syntax 20090413 14:23:23< Crab_> boucman: I want to use something like this to separate "ai test cases" from the scenario, and make each "ai test case" a separate file 20090413 14:23:36< AnMaster> YogiHH, I think this is campaign specific because I checked early on if it worked in other saves, that is from other campaigns than Invasion from the unknown 20090413 14:23:54< boucman> Crab_: it would be cool if you could do a menu based on the content of ai/dev too 20090413 14:23:59< Crab_> boucman: and I also want to make 'selecting ai' work like "cl" command - show a list of possible ai configs 20090413 14:24:00< AnMaster> and iirc IftU modifies elves a bit 20090413 14:24:05< YogiHH> AnMaster: I think so, too 20090413 14:24:39< YogiHH> AnMaster: Yes it does. Although i thought i fixed all the issues related to that ;-P 20090413 14:24:42< AnMaster> YogiHH, recalling such units works fine in a save of LoW I had around, just checked. 20090413 14:24:50< Crab_> boucman: yes, i just haven't know about that fancy stuff when I've first written AI arena. now I know, and I'll use it. 20090413 14:24:56< Crab_> s/know/known 20090413 14:24:57< AnMaster> I mean, non-modified arches 20090413 14:25:09< AnMaster> so time to find out what IftU modifies there... 20090413 14:25:43< YogiHH> AnMaster: I know about modified elvish fighters, they get an additional upgrade path 20090413 14:26:10< AnMaster> YogiHH, the fighters didn't cause segfault though, some were listed before in the debug output 20090413 14:26:23< AnMaster> only arches, and such had those issues 20090413 14:26:38-!- nerwa [n=nerwa@59.78.26.75] has joined #wesnoth-dev 20090413 14:26:47< loonycyborg> YogiHH: SM eliminated that upgrade path recently. 20090413 14:27:13< YogiHH> loonycyborg: ah, ok 20090413 14:28:03< AnMaster> loonybot, SM being? 20090413 14:28:04< loonybot> error: 'SM' does not name a type 20090413 14:28:12< AnMaster> sigh 20090413 14:28:16< AnMaster> loonycyborg I meant 20090413 14:28:20< loonycyborg> Shadow_Master 20090413 14:28:23< AnMaster> ah 20090413 14:28:31< AnMaster> thought it was yet another campaign heh 20090413 14:28:32< AnMaster> hm 20090413 14:29:10< AnMaster> the archer is modified, but Ranger is not? 20090413 14:29:22< AnMaster> in IftU I mean... 20090413 14:29:27< AnMaster> hm 20090413 14:31:08< AnMaster> also no other archers in that file caused any crashes, but one marksman and another ranger did. 20090413 14:31:16< AnMaster> very odd 20090413 14:31:31-!- busfahrer is now known as jogfahrer 20090413 14:32:00 * AnMaster tries to recreate this in debug mode as fast as possible. 20090413 14:32:07-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 14:34:09< Reisiger> mordante: ========== Build: 0 succeeded, 4 failed, 2 up-to-date, 3 skipped ========== o_O 20090413 14:38:44< mordante> which ones failed? 20090413 14:42:32< Reisiger> wesnoth and wesnothd. 2 more shown due to all the projects related to it 20090413 14:43:59< YogiHH> afk 20090413 14:44:25< Reisiger> mordante: I'll do a rebuild of the solution and pastebin the output once it's through 20090413 14:44:29< AnMaster> YogiHH, ok simple way to recreate it with IftU is to advance at least one archer to either Avenger or Sharpshooter in first scenario, then try to recall in second scenario. This also happens for ranger and plain archer sometimes, but not nearly as often. 20090413 14:44:39 * Reisiger dissapears to do laundry 20090413 14:44:41< AnMaster> and now I got some garbage + invalid utf-8 string 20090413 14:44:44< mordante> Reisiger, just do a build an paste the output 20090413 14:44:45< AnMaster> 20090413 14:44:25 warning display: Invalid UTF-8 string: "0�������4Z�-OXS�Q0P��(;ZȖZXS�����1��������������������01" 20090413 14:44:45< AnMaster> 20090413 14:44:25 warning display: Invalid UTF-8 string: "5Q00��x�+��+XS�P1" 20090413 14:44:47< AnMaster> stuff like that 20090413 14:44:48< AnMaster> lots of it 20090413 14:44:51< AnMaster> instead of a crash 20090413 14:45:07-!- stikonas [n=stikonas@wesnoth/translator/stikonas] has quit [Read error: 104 (Connection reset by peer)] 20090413 14:45:08< AnMaster> YogiHH, I suspect memory corruption for some reason... 20090413 14:45:15 * AnMaster tries with valgrind 20090413 14:45:28< YogiHH> AnMaster: same here, and i am afraid, this is one of the worst bugs you could have picked... 20090413 14:45:53< mordante> AnMaster, or it's invalid UTF-8 in the scenario 20090413 14:45:56< AnMaster> YogiHH, oh? you managed to reproduce it? 20090413 14:45:59< mordante> /config 20090413 14:46:27< AnMaster> mordante, not millions of strings that looks like /dev/urandom and that are not in the save file 20090413 14:46:31< YogiHH> AnMaster: No, i have been chasing this kind of stuff before ;-) 20090413 14:46:55< AnMaster> also now it worked, the dialog opened 20090413 14:46:56< AnMaster> huh 20090413 14:47:10< mordante> AnMaster, ? 20090413 14:47:17< AnMaster> as in no crash or anything 20090413 14:48:37< mordante> I'm more confused with "mordante, not millions of strings that looks like /dev/urandom and that are not in the save file" 20090413 14:49:13< AnMaster> mordante, I mean it doesn't seem to come from the scenario those invalid utf-8 strings... 20090413 14:49:19< boucman> Crab_: I can't get RCA to work again, 20090413 14:49:39< boucman> adding printf everywhere, and so far nothing seems to be called 20090413 14:49:51< AnMaster> anyway it takes ages while running under valgrind 20090413 14:50:08< AnMaster> as in waiting for reading cache thing to show up even 20090413 14:50:14< mordante> AnMaster, it would be a simple explanation ;-) 20090413 14:50:47< Crab_> boucman 1) we can revert Dragonking's commit and ask him to check it when he's around. 2) we can wait for Dragonking and ask him to check. 3) we can try to fix it. what do you prefer ? 20090413 14:50:51< AnMaster> mordante, well I personally suspect memory corruption instead because it seems much more consistent with the various types of crashes that happened in that place. 20090413 14:51:22< boucman> i'm already on 3, but since I'm not 100% sure what's going on in your scenario either, it's not trivial 20090413 14:51:31< AnMaster> segfault, swap trashing, invalid utf-8 data, just worked. all of those happened so far. 20090413 14:51:48< AnMaster> and not always exactly the same unit 20090413 14:51:52< mordante> AnMaster, that is another option, but checking scenario files is much faster as valgrind on my machine ;-) 20090413 14:52:12< AnMaster> hah 20090413 14:52:13< Crab_> boucman: basically, there's nothing too evil doing in my scenario. basically - a wml event set up units and reloads the ai (just as it is loaded on game start) 20090413 14:52:38< AnMaster> grr, for some reason I get lots of valgrind issues reported in /usr/lib64/opengl/nvidia/lib/libGL.so.180.29 20090413 14:52:44< Crab_> boucman: what about -t formula ? 20090413 14:54:27< Crab_> boucman: looks like .fai is working there. i'll check what's going on (something with config parsing, i guess) 20090413 14:54:44< boucman> ok, apparently RCA load_config is called, but noting seems to be registered 20090413 14:54:49< boucman> i'm debuging from there 20090413 14:55:25< AnMaster> 20090413 14:55:05 } END: read cache (took 60889ms) <-- lovely, I wonder how bad creating cache would be under valgrind... 20090413 14:55:37< AnMaster> (no not going to test) 20090413 14:56:11-!- stikonas [n=stikonas@ctv-79-132-187-171.vinita.lt] has joined #wesnoth-dev 20090413 14:59:36< Reisiger> mordante: here's the rebuild output: http://wesnoth.pastebin.com/d6fcc5885 20090413 14:59:55< boucman> Crab_: ok, I think I see the problem 20090413 15:00:00< Crab_> boucman: tell me ) 20090413 15:00:25< boucman> when I print the WML that is passed to candidate_action_manager::load_config, I get the following 20090413 15:00:31< boucman> aggression = 20090413 15:00:31< boucman> caution = 20090413 15:00:31< boucman> number_of_possible_recruits_to_force_recruit = 20090413 15:00:31< boucman> recruitment_pattern = 20090413 15:00:51< boucman> I should have the actual [ai] block so I can register [register_candidate_move] 20090413 15:01:11< mordante> Reisiger, can you paste your wesnoth project file as well? 20090413 15:02:01< CIA-30> mordante * r34857 /trunk/src/gui/widgets/ (12 files): 20090413 15:02:01< CIA-30> Add a new layout initialization routine. 20090413 15:02:01< CIA-30> This is the start of the new layout algorithm. 20090413 15:02:09< CIA-30> mordante * r34858 /trunk/src/gui/widgets/ (window.cpp window.hpp): 20090413 15:02:09< CIA-30> Add the initial code of the new layout algorithm. 20090413 15:02:09< CIA-30> This new algorithm will be developed parallel with the current 20090413 15:02:09< CIA-30> algorithm. Once the new algorithm is finished it will be enabled and the 20090413 15:02:09< boucman> coming from formula_ai.cpp:1590 20090413 15:02:10< CIA-30> old code will be removed. Until that time it only works with 20090413 15:02:11-!- elias [n=allefant@allegro/developer/allefant] has joined #wesnoth-dev 20090413 15:02:12< CIA-30> --new-widgets. 20090413 15:02:14< CIA-30> mordante * r34859 /trunk/src/gui/widgets/window.cpp: Update doxygen comment. 20090413 15:02:16< CIA-30> mordante * r34860 /trunk/src/gui/widgets/widget.hpp: Add some deprecated comments. 20090413 15:02:21< CIA-30> mordante * r34861 /trunk/src/gui/widgets/ (6 files): 20090413 15:02:22< CIA-30> Add the basics of the new layout algorithm. 20090413 15:02:24< CIA-30> The resize functions are still a NOP. 20090413 15:02:26< CIA-30> mordante * r34862 /trunk/src/gui/widgets/window.cpp: Documentation update. 20090413 15:02:45< Reisiger> mordante: http://wesnoth.pastebin.com/d2bc13d25 20090413 15:03:11< Crab_> boucman: how can I debug-print a config object ? 20090413 15:03:35< Crab_> (from gdb) 20090413 15:03:38< boucman> config objects have a method called debug() which return them as a std::string 20090413 15:03:45< Crab_> thanks 20090413 15:03:48< boucman> I debug with printf 20090413 15:04:03< mordante> Reisiger, this compiler flag seems wrong ;-) AdditionalOptions=" /Zm1000 CreateProcessError: The system cannot find the file specified. for command: sdl-config --cflags" 20090413 15:04:13< Crab_> i'll check now.. 20090413 15:04:18< silene> there is a bot on a killing spree in the forums; can someone ban him please? 20090413 15:04:56< mordante> Ivanovic, or Turuk can ^ 20090413 15:05:06< Reisiger> mordante: that flag gets ignored 20090413 15:06:41< mordante> Reisiger, http://wesnoth.pastebin.com/d6fcc5885 starting at line 131 makes me believe otherwise 20090413 15:08:43-!- molgrum [n=molgrum@c83-249-53-163.bredband.comhem.se] has joined #wesnoth-dev 20090413 15:10:02< Reisiger> mordante: in the vcproj-file, this seems to cause it: AdditionalOptions=" /Zm1000 CreateProcessError: The system cannot find the file specified. for command: sdl-config --cflags" 20090413 15:10:29< Reisiger> but where's that comming from? CMake trying to find an exe? 20090413 15:11:23< mordante> Reisiger, it looks like it, guess this patch solves that issue for you http://paste.debian.net/33363/ 20090413 15:11:56< Reisiger> mordante: TortoiseSVN chokes on diff's ;) 20090413 15:12:28< mordante> ah yes sorry, will paste the file 20090413 15:13:41< mordante> Reisiger, http://paste.debian.net/33364/ 20090413 15:13:56< Crab_> boucman: ok, I see. I will try to hunt it down (it is related to team parameter initialization, team.cpp:131 ) 20090413 15:14:06< boucman> k 20090413 15:15:49< Reisiger> mordante: Ok. testing 20090413 15:18:01< Reisiger> mordante: looking good so far... it started compiling without the blurp of errors. 20090413 15:18:09< mordante> :-) 20090413 15:20:10< AnMaster> right, lets see 20090413 15:20:43< Crab_> boucman: recompiling a candidate fix... 20090413 15:20:45< AnMaster> YogiHH, there? 20090413 15:20:56< Reisiger> mordante: 1 error so far: Error 25 error C2015: too many characters in constant e:\Projects_Ext\Wesnoth\trunk\src\server\server.cpp 522 20090413 15:21:04< AnMaster> I had to disconnect client from bouncer to get enough ram for valgrind ... 20090413 15:21:11< AnMaster> so I don't know if I missed anything 20090413 15:21:22< AnMaster> http://rafb.net/p/NkD8GR91.html 20090413 15:21:57< YogiHH> AnMaster: just returned 20090413 15:22:03< AnMaster> anyway see that link 20090413 15:22:26< AnMaster> and yes I created a sylph with debug mode to speed up testing. 20090413 15:23:27-!- Shadow_Master [n=ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-dev 20090413 15:23:47< AnMaster> YogiHH, any idea about that? 20090413 15:24:04-!- Shadow_Master [n=ignacio@wesnoth/developer/shadowmaster] has left #wesnoth-dev [] 20090413 15:24:13< YogiHH> AnMaster: not really, looks like the backtrace you showed me before 20090413 15:25:02< mordante> Reisiger, can you see what the value macro FIFODIR is? 20090413 15:25:24< AnMaster> YogiHH, I'll try to create a save file that causes this at a high probability, seems like the more units you have (especially high level) the more often it happens 20090413 15:25:48< AnMaster> also it is more likely after you played for a while. 20090413 15:25:51< AnMaster> it seems 20090413 15:25:55< YogiHH> AnMaster: If i stumble upon such things, i mostly take them the hard way. Here it would mean: Examine the stuff to be logged until i find some crap that causes the crash. Then find out where that crap is coming from. Of course that relies on the error to be reproducable. 20090413 15:26:01< mordante> I think I know what the problem is 20090413 15:26:34< AnMaster> YogiHH, it isn't very reproducable indeed. And it crashes for slightly different units each time 20090413 15:26:42< Reisiger> mordante: Don't know how to access that. I'm still learning about MSVC's features 20090413 15:26:49-!- cjhopman_ [n=chris@wesnoth/developer/cjhopman] has quit ["Konversation terminated!"] 20090413 15:27:00< AnMaster> which make me suspect it is related to how much wesnoth allocated so far or something like that. 20090413 15:27:05 * Reisiger pouts: "like hanging itself..." 20090413 15:27:50-!- ikarius [n=ross@216.27.182.3] has quit [] 20090413 15:28:30-!- ettin_ [n=jorda@wesnoth/developer/ettin] has joined #wesnoth-dev 20090413 15:29:16< Reisiger> mordante: Had to restart building the solution. 20090413 15:29:21< YogiHH> AnMaster: have you tried to examine the value for experience before the crash? 20090413 15:29:59< AnMaster> YogiHH, well I'm attached with gdb just before now, so what do I do 20090413 15:30:08< AnMaster> u->_M_current seems to be the unit 20090413 15:30:12< AnMaster> I'm able to print that 20090413 15:30:16< AnMaster> but what field? 20090413 15:30:17-!- jogfahrer is now known as busfahrer 20090413 15:30:29< YogiHH> AnMaster: experience_ 20090413 15:30:37< AnMaster> Cannot access memory at address 0x8 20090413 15:30:41< AnMaster> hm 20090413 15:30:53< AnMaster> my fault 20090413 15:31:02< AnMaster> had a * too much 20090413 15:31:07< AnMaster> (gdb) print u->_M_current.experience_ 20090413 15:31:07< AnMaster> $6 = 8 20090413 15:31:28-!- lizard_r [n=MirandaM@Wbda9.w.pppool.de] has joined #wesnoth-dev 20090413 15:31:42< AnMaster> and this is very different from the 0x6651030 reported by valgrind (I selected to attach gdb there) 20090413 15:31:51< YogiHH> that's alright, now go a step forward 20090413 15:31:57< AnMaster> I mean the address of u->_M_current.experience_ 20090413 15:32:22-!- BenUrban [n=benurban@unaffiliated/benurban] has quit ["Power failu"] 20090413 15:32:28< YogiHH> err, that was the address or the content? 20090413 15:32:29< AnMaster> YogiHH, ah you mean like that, I meant I was attached with gdb from when valgrind detected that error, which is in a snapshot kind of still image you can't modify 20090413 15:32:38< AnMaster> YogiHH, address. 20090413 15:32:45< Reisiger> mordante: still the same error... and additional leftovers from the crashed MSVC o_O Need to reboot. 20090413 15:32:46< AnMaster> let me attach without valgrind 20090413 15:33:03< YogiHH> the address is 8? That's for sure wrong then 20090413 15:33:08-!- Reisiger [n=Reisiger@adsl-84-226-54-253.adslplus.ch] has quit ["Verlassend"] 20090413 15:33:32< AnMaster> YogiHH, no that was the value 20090413 15:33:43< YogiHH> ok 20090413 15:33:44< AnMaster> sorry, misunderstood you 20090413 15:34:02< AnMaster> anyway lets see now 20090413 15:34:07< lizard_r> Hi, I'm currently playing tHoT/Fear on Wesnoth 1.6 the Dwarvish Masked Thunderer does not have a mask, but I think he is supposed to have one. (yesterday played this on 1.4 there he had one) 20090413 15:34:43< mordante> esr, ^ 20090413 15:34:53< AnMaster> YogiHH, checking without valgrind now since you can't step when attaching gdb from valgrind 20090413 15:35:11< YogiHH> ok 20090413 15:35:44-!- nerwa [n=nerwa@59.78.26.75] has quit [Connection timed out] 20090413 15:35:46< lizard_r> the zerkers doesn't have one either, but since that wasn't there in 1.4 I guess it is just lacking Graphics. 20090413 15:36:24< AnMaster> YogiHH, actually it may not be experience, it breaks on "<< u->experience() << "/";" even when I set the breakpoint on "option << COLUMN_SEPARATOR" a few lines above 20090413 15:36:26< AnMaster> so we may be wrong 20090413 15:36:32< AnMaster> it could be name or level or such I guess 20090413 15:36:49-!- Shadow_Master [n=ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-dev 20090413 15:37:05< YogiHH> AnMaster: ok, then we need to check them all 20090413 15:37:12< Shadow_Master> mainline keeps biting my ass and stealing time that I really, really would love to dedicate to UMC/studies instead 20090413 15:37:26< Shadow_Master> I may have something to do with this bug 20090413 15:37:28< CIA-30> crab * r34863 /trunk/src/ai_manager.cpp: Fixed bug with ai parameters not being set correctly during ai redeployment 20090413 15:37:40< Crab_> boucman: ok, I've got 1st part fixed (config is passed ok now) ^ 20090413 15:37:57< Shadow_Master> I may be accidentally doing Stupid Things(tm) with tstrings in game_events.cpp or intro.cpp since some commits ago 20090413 15:37:58-!- Reisiger [n=Reisiger@adsl-84-226-54-253.adslplus.ch] has joined #wesnoth-dev 20090413 15:38:05< boucman> cool, what's part 2 ? 20090413 15:38:13< AnMaster> YogiHH, indeed doing so now 20090413 15:38:19< Shadow_Master> so far it sounds like one of those massive-memory-leak/corruption caused by tstring misusage 20090413 15:38:33< Shadow_Master> (one of those managed to get my machine completely unusable once - not good) 20090413 15:38:58< AnMaster> YogiHH, how do you print a std::string from gdb 20090413 15:39:05-!- ettin [n=jorda@wesnoth/developer/ettin] has quit [Read error: 110 (Connection timed out)] 20090413 15:39:27< AnMaster> I mean when I do a plain print it doesn't look very much like a string 20090413 15:39:30< Crab_> that that poisoning config needs [register_candidate_move] to be changed to "register_candidate_action" 20090413 15:39:30 * YogiHH uses msvc++ because he didn't want to ask such questions anymore ;-) :-P 20090413 15:39:34< Shadow_Master> I take back intro.cpp - but i may still be related to my [deprecated_message]/[wml_message] code manipulation of lately 20090413 15:39:42< Shadow_Master> (e.g. game_events.cpp) 20090413 15:39:59 * Crab_ will now fgrep -Rn for register_candidate_move, to make sure all is changed 20090413 15:40:01< silene> Crab_: in multplayer, i only have access to the default ai now; what should i do to reenable the other ones? 20090413 15:40:18< boucman> Crab_: I already did, the poison stuff is the only user I found 20090413 15:40:20< AnMaster> YogiHH, well I'm on Linux so.. 20090413 15:40:25< Reisiger> mordante: Rebuilding to get rid of left-overs from the MSVC crash. How can I read the const string while building? 20090413 15:40:39< YogiHH> AnMaster: sorry, i am pretty useless if it comes to gdb 20090413 15:40:51< Crab_> silene: ai_manager.cpp:523 20090413 15:41:03< AnMaster> mhm 20090413 15:41:07< AnMaster> anyone know that then? 20090413 15:41:35< loonycyborg> p x.c_str() maybe? :P 20090413 15:41:36< Shadow_Master> AnMaster: could you test a quick C++ patch? 20090413 15:41:49< Crab_> silene: in a few days, i'll write a "look up all configs in ai/ais " there, instead of hardcoding. 20090413 15:41:59< AnMaster> Shadow_Master, sure 20090413 15:41:59< silene> Crab_: great 20090413 15:42:07< AnMaster> where is the diff? 20090413 15:42:28< Shadow_Master> I'm crafting it, give me a few secs 20090413 15:42:57< silene> AnMaster: print should do the job, there will be noise around it, but the string should be there 20090413 15:43:42< AnMaster> (gdb) print u->_M_current->name_ 20090413 15:43:42< AnMaster> $7 = {value_ = {static npos = 18446744073709551615, 20090413 15:43:42< AnMaster> _M_dataplus = {> = {<__gnu_cxx::new_allocator> = {}, }, _M_p = 0xee5358 ""}}, translated_value_ = { 20090413 15:43:42< AnMaster> static npos = 18446744073709551615, _M_dataplus = {> = {<__gnu_cxx::new_allocator> = {}, }, 20090413 15:43:43< AnMaster> _M_p = 0xee5358 ""}}, translatable_ = false, last_untranslatable_ = false} 20090413 15:43:45< AnMaster> hm 20090413 15:43:47< AnMaster> really? 20090413 15:44:02< silene> AnMaster: yes, it's the empty string "" 20090413 15:44:03< AnMaster> I can't say I can decode any string in there 20090413 15:44:05< AnMaster> ah ok 20090413 15:44:16< Crab_> boucman: so, if you'd committed that [register_candidate_action], no part 2 then, it works ) 20090413 15:44:23< AnMaster> yeah I debug created that unit to test this as quick as possible 20090413 15:44:28< AnMaster> so that sounds about right in fact 20090413 15:44:49< Shadow_Master> AnMaster: http://wesnoth.pastebin.com/d1ffca90f 20090413 15:44:51< AnMaster> silene, "\004\003" as type_name_ does not though... 20090413 15:44:53< Crab_> boucman: although i already see another poisoning improvement... 20090413 15:44:53< mordante> Reisiger, nevermind I think I found the solution http://paste.debian.net/33367/ 20090413 15:45:50< AnMaster> Shadow_Master, Hm ok. sec. (slow computer so recompiling will take a minute or so). what does it do? 20090413 15:45:52< mordante> Reisiger, there might be more of the same errors, but for now I want to look at wesnothd first, the patch compiles for me 20090413 15:45:53< AnMaster> that patch I mean 20090413 15:46:08< Reisiger> mordante: Ok. Testing. 20090413 15:46:20< Shadow_Master> AnMaster: it should just make sure I am not creating one of those difficult-to-track-down bugs in code that is executed even earlier 20090413 15:46:24< silene> Shadow_Master: your patch does about nothing 20090413 15:46:30< AnMaster> hm 20090413 15:46:56< Shadow_Master> silene: sure? I once had to fix my own code in a similar way to avoid making wesnoth invoke the OOM killer :-/ 20090413 15:47:26< silene> Shadow_Master: yes, i'm sure, the objects will be killed the exact same time 20090413 15:47:37< Polarina> Just tell users to kill the OOM killer before it does any harm. 20090413 15:47:54< AnMaster> Shadow_Master, patch applied. All hunks said "offset -35 lines" but I think I'm 3 or 4 revisions behind atm, due to spending time debugging. 20090413 15:47:55< mordante> silene, I also recall it does something there are some issues in the t_string class 20090413 15:47:57< AnMaster> now to compile it 20090413 15:48:23< Shadow_Master> silene: it was about taking references to the resulting std::string from one of t_string's operators 20090413 15:48:42< mordante> can't remember the exact details :-/ 20090413 15:48:48< boucman> Crab_: please commit, I'm on something else right now 20090413 15:48:56< Crab_> ok 20090413 15:49:03< AnMaster> Shadow_Master, compiling... 20090413 15:49:05< AnMaster> (this is slow 20090413 15:49:20< Polarina> No it's not. :) 20090413 15:49:33< AnMaster> well my computer is slow. 20090413 15:49:36< Polarina> Ah... 20090413 15:49:43< silene> mordante: while t_string is not the best code i wrote, i'm sure it does have none of these bugs 20090413 15:49:50< Shadow_Master> Polarina: are you really, really sure you don't need Silencium(R)? please, I don't want you to die :( 20090413 15:49:58< AnMaster> Polarina, a 64-bit Sempron 3300+ that was quite ok in 2005 but is a bit aged by now 20090413 15:50:02< Shadow_Master> or get killed. 20090413 15:50:11< Polarina> Shadow_Master: I'm pretty sure I don't need any. 20090413 15:50:18 * AnMaster wonders what sort of monster computer Polarina has 20090413 15:50:30< Shadow_Master> a frankenputer, knowing him. 20090413 15:50:32-!- oak_ [n=oakus@c02--112b.kn.vutbr.cz] has joined #wesnoth-dev 20090413 15:50:54< Polarina> AnMaster: Intel Core 2 Quad Q6600. 20090413 15:50:55< AnMaster> mhm 20090413 15:50:55< silene> Shadow_Master: temporary objects pointed by reference are kept alive as long as the reference is alive; i really meant it when i said you patch was not changing anything 20090413 15:51:16< AnMaster> it has spent half a minute linking wesnoth so far... 20090413 15:51:37< AnMaster> the wesnoth binary is 81 MB heh 20090413 15:51:42< Polarina> :P 20090413 15:51:43< mordante> IIRC it has to do something with a tempory t_string returned from config::operator[] which gets converted to a string 20090413 15:51:48 * Polarina loves debugging symbols. 20090413 15:51:49< Shadow_Master> exactly 20090413 15:51:55< Shadow_Master> (what mordante said) 20090413 15:52:00< mordante> where the lifetime of the tempory doesn't get extended due to the const ref 20090413 15:52:07-!- mode/#wesnoth-dev [+b %*!*@wesnoth/translator/Polarina] by ChanServ 20090413 15:52:14-!- crimson_p [n=irchon@64.201.60.216] has joined #wesnoth-dev 20090413 15:52:27< silene> mordante: you are saying crap; if the function returns a temporary, then its lifetime is extended 20090413 15:52:46< Shadow_Master> silene: sorry, but I and mordante have seen that not really work fine for all real cases 20090413 15:53:16< mordante> but the temporary t_string is not bound by a reference 20090413 15:53:22< AnMaster> it segfaulted again. But in another loop now 20090413 15:53:23< AnMaster> wth 20090413 15:53:33< AnMaster> well not even loop 20090413 15:53:35< AnMaster> option_to_filter << u->type_name() << " " << name << " " << u->level(); 20090413 15:53:39< AnMaster> that was where this time 20090413 15:54:10< mordante> silene, and I recall it took quite some debugging to find it the first time, try to find the bug report 20090413 15:54:12< AnMaster> http://rafb.net/p/nIYygf31.html 20090413 15:54:15< Shadow_Master> okay, that means I am not at fault, good! 20090413 15:54:26< AnMaster> this is very confusing however 20090413 15:54:42-!- crimson_p [n=irchon@64.201.60.216] has quit [Remote closed the connection] 20090413 15:54:42< Shadow_Master> yup %-/ as most memory corruption bugs 20090413 15:55:01< AnMaster> Shadow_Master, they aren't as confusing in pure C programs in my experience 20090413 15:55:22< Shadow_Master> well, it is that Wesnoth's vconfig and t_string classes do quite a lot of weird stuff behind the scenes 20090413 15:55:37< AnMaster> since the libc stuff is a lot simpler than the libstdc++ stuff 20090413 15:55:47< AnMaster> so fewer abstractions to dig through 20090413 15:55:50< silene> mordante: you are probably talking about a case where the object was explicitely destroyed by the programmer while the reference was still alive 20090413 15:55:51< Shadow_Master> yeah- in C you tend to directly deal with memory 20090413 15:56:08< Shadow_Master> silene: uhm, no. 20090413 15:56:11< mordante> silene, no I'm talking about this case 20090413 15:56:35< Shadow_Master> I'll try to find the example commit 20090413 15:56:45< Reisiger> mordante: Error 43 fatal error LNK1120: 6 unresolved externals E:\Projects_Ext\Wesnoth\trunk\cmake\Debug\wesnothd.exe 20090413 15:56:45< Reisiger> :( 20090413 15:56:53-!- mode/#wesnoth-dev [-b %*!*@wesnoth/translator/Polarina] by ChanServ 20090413 15:57:03< AnMaster> Shadow_Master, IMO you do so in C++ too. The difference is that you are pretending you don't. Personally I tend to go higher level than C++ (python, erlang, scheme, haskell or whatever) if I don't want to use C. 20090413 15:57:15< Reisiger> I'll wait until the full rebuild is done and attempt to build wesnothd again to pastebin the output 20090413 15:57:49< AnMaster> ok 20090413 15:57:56< AnMaster> the variable name contains garbage it seems 20090413 15:57:59< Shadow_Master> shikadibot: log 30843 20090413 15:58:02< shikadibot> Revision 30843 (shadowmaster, 2008-11-19 15:12:09 +0000 (Wed, 19 Nov 2008)): 20090413 15:58:04< AnMaster> (gdb) print name 20090413 15:58:04< AnMaster> $5 = (const string &) @0x7fff9c0a1b10: {static npos = 18446744073709551615, 20090413 15:58:04< AnMaster> _M_dataplus = {> = {<__gnu_cxx::new_allocator> = {}, }, _M_p = 0x5bc4148 "�\\C\n"}} 20090413 15:58:05< shikadibot> Fix some serious memory corruption/SIGABRT/SIGSEGV that 20090413 15:58:08< shikadibot> occurred at random after expanding the story WML vconfig 20090413 15:58:10< shikadibot> (+7 discarded lines) 20090413 15:58:12< boucman> Crab_: ready to commit or still testing ? 20090413 15:58:13< shikadibot> Web interface URL: http://svn.gna.org/viewcvs/wesnoth?view=rev&rev=30843 20090413 15:58:20< AnMaster> and it was assigned at: 20090413 15:58:22< AnMaster> const std::string& name = u->name().empty() ? "-" : u->name(); 20090413 15:58:22< AnMaster> hm 20090413 15:58:29< AnMaster> anything looks wrong with that? 20090413 15:58:38< Shadow_Master> silene: r30843 ^ 20090413 15:58:40-!- Espreon [n=espreon@wesnoth/developer/espreon] has quit [Read error: 60 (Operation timed out)] 20090413 15:59:03< CIA-30> crab * r34864 /trunk/data/ai/ (dev/formula_ai_poisoning.cfg formula/poisoner_eval.fai): Poisoning formula improvement: it it better to poison regenerating/in_village unit than to not poison them. 20090413 15:59:04< Shadow_Master> consider that an important of the game engine is using vconfig rather than config atm 20090413 15:59:05< Crab_> boucman: I was testing. now committed. ^ 20090413 15:59:16< boucman> ok, thx 20090413 15:59:39< Shadow_Master> shikadibot: log 31042 20090413 15:59:40< shikadibot> Revision 31042 (shadowmaster, 2008-11-24 14:43:05 +0000 (Mon, 24 Nov 2008)): 20090413 15:59:43< shikadibot> * Add blurring to story screens 20090413 15:59:45< shikadibot> * Fixed a possible reference-to-temporary issue (symptom might me mordante's memory corruption) 20090413 15:59:47< AnMaster> YogiHH, well it seems like it is the variable "name" that contains garbage. 20090413 15:59:49< shikadibot> (+1 discarded lines) 20090413 15:59:50< Shadow_Master> silene: also 31042 - mordante confirmed it to fix his issue 20090413 15:59:51< shikadibot> Web interface URL: http://svn.gna.org/viewcvs/wesnoth?view=rev&rev=31042 20090413 16:00:07-!- Netsplit niven.freenode.net <-> irc.freenode.net quits: benetnash, Smar 20090413 16:00:08-!- Smar [n=smar@a88-113-60-192.elisa-laajakaista.fi] has joined #wesnoth-dev 20090413 16:00:18< AnMaster> YogiHH, and then I don't mean the name of the unit, but rather the local name variable 20090413 16:00:39< YogiHH> AnMaster: any recognizable garbage or just garbage? 20090413 16:00:51< Reisiger> mordante: http://wesnoth.pastebin.com/d3dd36f26 20090413 16:00:53< Shadow_Master> I'm guessing : anything from wesnoth's core? :P 20090413 16:01:34< AnMaster> YogiHH, Have you seen this garbage "�\\C\n"? Wanted: dead or debugged! 20090413 16:01:35< AnMaster> ;P 20090413 16:01:41< Shadow_Master> before I came up with r30843, I could even see the symbol table in the barfing stderr 20090413 16:01:49< AnMaster> no I can't really say it seems familiar. 20090413 16:02:25< Reisiger> mordante: got to prepare some stuff(TM) before heading of. 20090413 16:02:47< AnMaster> lets see... 20090413 16:02:59 * AnMaster checks if it is same every time 20090413 16:03:00< YogiHH> AnMaster: how can that be different to u->name()? 20090413 16:03:31< mordante> silene, my old bug https://gna.org/bugs/index.php?8126 the log of the 6th of january http://wesnoth.debian.net/logs-dev/2007/ directly at the start and at 1:03 20090413 16:03:31< AnMaster> YogiHH, it isn't same every time hm... 20090413 16:03:58-!- nerwa [n=nerwa@59.78.26.75] has joined #wesnoth-dev 20090413 16:03:58< AnMaster> lets see 20090413 16:04:01< YogiHH> AnMaster: "name" and u->name() should be the same 20090413 16:04:16< AnMaster> YogiHH, alas they are not. 20090413 16:05:57< YogiHH> weird 20090413 16:06:01< YogiHH> afk for a while 20090413 16:08:09< AnMaster> ok I have a trace of single stepping 20090413 16:08:25< Shadow_Master> Sapient: no idea what you are talking about, and I don't expect to be able to concentrate on it very soon 20090413 16:08:28< mordante> silene, and I don't know whether or not the problem is the code or a compiler failing, but we've seen this problem several times 20090413 16:08:29< Shadow_Master> * you and esr 20090413 16:08:47< silene> mordante: i insist, what xan and toragan are saying is crap 20090413 16:09:06< AnMaster> http://rafb.net/p/vgREnt98.html 20090413 16:09:11< Shadow_Master> Sapient: e.g. even with the bug report, I'm a bit lost about what I have to do with it 20090413 16:09:18< silene> mordante: my issue is not whether the code or the compiler is at fault; my issue is that we are hiding the bug by doing that 20090413 16:09:18< AnMaster> YogiHH, Shadow_Master or anyone else can go look at that 20090413 16:09:27< AnMaster> too many <> for me to be able to read it 20090413 16:09:35< Shadow_Master> silene: did you check my commits? 20090413 16:09:41-!- Reisiger [n=Reisiger@adsl-84-226-54-253.adslplus.ch] has quit ["Verlassend"] 20090413 16:10:32< silene> Shadow_Master: yes, and if bug there was, i think you just hided it instead of fixing it 20090413 16:10:43< Shadow_Master> *hid 20090413 16:10:45< mordante> silene, I agree we hide a bug, but thusfar nobody has been able to determine what the bug exactly is 20090413 16:10:58< Shadow_Master> yup. 20090413 16:10:59< AnMaster> this same bug or another one? 20090413 16:11:11< Shadow_Master> AnMaster: no idea. Nobody knows for sure :-/ 20090413 16:11:42< AnMaster> anyway valgrind did say there was a uninitialised read (http://rafb.net/p/NkD8GR91.html as pasted above) 20090413 16:11:48< boucman> Crab_: something to improve with your AI arena 20090413 16:11:56< Crab_> yes, tell me 20090413 16:12:00< AnMaster> Shadow_Master, not sure if you saw that 20090413 16:12:05< Shadow_Master> AnMaster: tstring involved in thse crashes as usual 20090413 16:12:12< boucman> when we choose "run the same test again" it still asks which AI we want to use, instead of reusing the same one 20090413 16:12:18< AnMaster> Shadow_Master, hm what is this tstring thingy? 20090413 16:12:34< Shadow_Master> AnMaster: a std::string wrapper, sort of, that is translations-aware 20090413 16:12:39< Crab_> boucman: yes, and it has an option to "reuse" the old ai. 20090413 16:12:56< AnMaster> Shadow_Master, maybe it would be a good idea to write a test suite or something and test that bit stand-alone then? 20090413 16:13:04< Shadow_Master> there is one already IIRC 20090413 16:13:12< AnMaster> hm ok 20090413 16:13:17< boucman> well, I think the menu could be skiped entriely, the most common usage is reusing the same scenario with the same AI 20090413 16:13:22< mordante> AnMaster, that won't happen for this case 20090413 16:13:24< Crab_> boucman: I'll change this in a new version to make it possible to re-run the test in as few clicks as possible. 20090413 16:13:27< AnMaster> mordante, oh? 20090413 16:13:34< boucman> ok 20090413 16:13:36< Shadow_Master> no idea if the recall code has been rewritten/modified recently? 20090413 16:13:43< Crab_> boucman: i'm thinking of a 'right-mouse-click-menu' 20090413 16:13:47< mordante> AnMaster, the only way to avoid it is to not use that construction in the code 20090413 16:14:03< AnMaster> Shadow_Master, no idea if this is a recent problem, last I played IftU was over half a year ago 20090413 16:14:04< Shadow_Master> actually, dfranke touched it lately 20090413 16:14:05< boucman> I know you'll rewrite it at some point, I'm just throwing ideas around at the time I have them, you don't have to implement them right away :P 20090413 16:14:19< Shadow_Master> and YogiHH 20090413 16:14:22< Crab_> boucman: this "some point" is ,actually, quite near ) 20090413 16:14:25< AnMaster> mordante, so you know what causes the issue then? 20090413 16:14:37< Shadow_Master> s/recall code/menu-events.cpp/ 20090413 16:14:39< mordante> AnMaster, and the problem is, the code looks harmless but it goes wrong 20090413 16:14:41< Crab_> boucman: so continue to throw ideas, for I want to make ai arena as good as possible 20090413 16:14:52< mordante> AnMaster, causes yes, how to fix it no 20090413 16:14:57-!- ikarius [n=ross@smtp.gridironsystems.com] has joined #wesnoth-dev 20090413 16:15:17< Shadow_Master> Crab_ may also be related. 20090413 16:15:19< AnMaster> mordante, well in this case u->name was empty, so I guess something messed up with assigning that "-" to the name variable... const std::string& name = u->name().empty() ? "-" : u->name(); 20090413 16:15:24< boucman> ok, will do :P 20090413 16:15:25< mordante> somehow if you create a const std::string& from a config::operator[] you have the issue at hand 20090413 16:15:25< Shadow_Master> :p 20090413 16:15:27< silene> the code at menu_events.cpp:885 is crap 20090413 16:15:43 * Shadow_Master runs git blame 20090413 16:16:18< Shadow_Master> silene: I blame esr 20090413 16:16:34< silene> AnMaster: remove the reference "&" at line 885 20090413 16:16:45< AnMaster> silene, hm ok, will do sec.. 20090413 16:17:17< AnMaster> building... 20090413 16:17:17< mordante> AnMaster, and since nobody has been able to identify and fix the exact issue we kind of try to avoid it 20090413 16:17:33< AnMaster> mhm 20090413 16:17:33< mordante> AnMaster, (which of course is not a great solution ;-) ) 20090413 16:17:39-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 104 (Connection reset by peer)] 20090413 16:17:54-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 16:18:10< mordante> AnMaster, so we get bitten by it every now and then 20090413 16:18:15< AnMaster> I see 20090413 16:18:18< Shadow_Master> my X server is dying or something 20090413 16:18:23< Shadow_Master> um... 20090413 16:18:34< AnMaster> Shadow_Master, move a healer next to it! ;P 20090413 16:18:38< silene> Shadow_Master: nice, i already fixed another bug caused by this exact patch from esr yesterday... 20090413 16:19:17 * AnMaster waits a few minute while wesnoth links 20090413 16:19:45< AnMaster> also since when did wesnoth change to git? 20090413 16:19:47< AnMaster> um 20090413 16:19:54< Shadow_Master> should we make "esr shall not touch C++ code" a policy? ;P 20090413 16:20:15< Shadow_Master> (assuming the change fixes the problem) 20090413 16:20:34< silene> AnMaster: it didn't; it's still svn; but several developers (including me) prefer to use the git tools to access svn 20090413 16:20:43< AnMaster> mordante, won't this make recall dialog even slower since it will need to copy said string now? 20090413 16:20:59< AnMaster> though that is better than crashing 20090413 16:21:02< AnMaster> so far it seems to work 20090413 16:21:12< AnMaster> but since this is not reproducible 100% of the time it is hard to be sure 20090413 16:21:30< Shadow_Master> shikadibot: log 24671 20090413 16:21:31< shikadibot> Revision 24671 (esr, 2008-03-15 20:30:45 +0000 (Sat, 15 Mar 2008)): 20090413 16:21:31< shikadibot> description= -> name in [unit] 20090413 16:21:31< shikadibot> This will cause unit names to be displayed incorrectly from savefiles made 20090413 16:21:31< shikadibot> (+2 discarded lines) 20090413 16:21:31< shikadibot> Web interface URL: http://svn.gna.org/viewcvs/wesnoth?view=rev&rev=24671 20090413 16:21:57< Shadow_Master> it is about to become an ancient change though 20090413 16:22:09< CIA-30> silene * r34865 /trunk/src/menu_events.cpp: Fixed segfault. Reference should never be used on the result of a ternary operator. 20090413 16:22:13-!- Dragonking [n=dk@chello084010022254.chello.pl] has joined #wesnoth-dev 20090413 16:22:27< AnMaster> silene, is that some odd C++ requirement? 20090413 16:22:29< Dragonking> hello again 20090413 16:22:34< mordante> hi Dragonking 20090413 16:22:38< Crab_> hi Dragonking 20090413 16:22:39< Dragonking> boucman, Crab_ I see some issue in a backlog 20090413 16:22:46< Dragonking> s/backlog/irclog/ 20090413 16:22:47< Crab_> Dragonking: fixed 20090413 16:22:53< Dragonking> Was that fixed? 20090413 16:22:53< boucman> indeed, but we are fixing them 20090413 16:23:05< boucman> (I have a few ones, but don't bother, I'm working on them) 20090413 16:23:07< mordante> AnMaster, copying one small string won't slow things down noticeably 20090413 16:23:18< Dragonking> boucman: in my code? 20090413 16:23:24< silene> AnMaster: not really, the idea is that temporary objects that are operands of operators are destroyed at the end of the line; but people tend to forget that the ternary operator is an operator 20090413 16:23:24< Shadow_Master> ummm. 20090413 16:23:37< boucman> Dragonking: the incorect chunk of WML was given to the RCA constructor (fixed, bad merge of your work and Crab's) 20090413 16:23:46< AnMaster> mordante, well true, I guess it is slow for other reasons. 20090413 16:23:54< Shadow_Master> silene: I am sure I have spotted a lot of instances of that though 20090413 16:24:05< boucman> and I am working on adding a new type of RCA, and I am initializing the type_ and name_ fields whic are unused, but really handy for debugging 20090413 16:24:09< Shadow_Master> which would mean... "we are screwed"? 20090413 16:24:13< silene> Shadow_Master: then it's time to find a good regexp for grep :-) 20090413 16:24:19< Shadow_Master> yeah, thinking :P 20090413 16:24:31< AnMaster> silene, easier in low level langs like C or high level langs like Python, haskell or whatever IMO. C++ is kind of worst from both worlds in many cases. 20090413 16:24:35< Dragonking> boucman: Yes, good idea, actually I forgot to do so. ;p 20090413 16:25:39< AnMaster> Shadow_Master, should I revert that patch to game_events.cpp now? 20090413 16:25:56< Shadow_Master> AnMaster: yeah 20090413 16:26:13-!- Morian [i=romain@bezut.info] has joined #wesnoth-dev 20090413 16:27:00< Dragonking> boucman: Tell me when you are done, maybe I'll rewrite this filter thing then. 20090413 16:27:04< silene> Shadow_Master: indeed, that's frightening how often it's used 20090413 16:27:27-!- nerwa [n=nerwa@59.78.26.75] has quit [Read error: 110 (Connection timed out)] 20090413 16:27:42-!- cjhopman_ [n=chris@wesnoth/developer/cjhopman] has joined #wesnoth-dev 20090413 16:27:55< loonycyborg> AnMaster: I think it's best from both worlds in many other cases :P 20090413 16:27:57< boucman> Dragonking: I'm more or less done, I need to do a little testing and it's all good 20090413 16:28:05< Shadow_Master> grep -R '.*&.*?.*\"' src/ 20090413 16:28:17< Shadow_Master> "oops". And that's just for c-string temporaries. 20090413 16:28:31< Shadow_Master> s/c-string/string-or-tstring-from-cstring/ 20090413 16:28:47< Dragonking> boucman: So is current design what you more or less desired? 20090413 16:28:53< Shadow_Master> though I also managed to catch some false positives 20090413 16:28:56< boucman> yes 20090413 16:29:14< Dragonking> good 20090413 16:29:20< Shadow_Master> silene: what do you think of this in parser.cpp: 20090413 16:29:22< Shadow_Master> std::string const &file = i != end ? *(i++) : ""; 20090413 16:30:00< Shadow_Master> the commit belongs to you also :P 20090413 16:30:36< silene> Shadow_Master: it depends on the type of *(i++) :-) 20090413 16:30:45< Shadow_Master> AnMaster: did it work? 20090413 16:31:18< AnMaster> Shadow_Master, still building 20090413 16:31:27< Shadow_Master> silene: uh, despite std::string("") being a temporary by itself? 20090413 16:31:31< Shadow_Master> what's the full rule? 20090413 16:31:39< silene> Shadow_Master: this is one is bad; though it doesn't ring a bell; ayin wrote the parser, not me 20090413 16:31:48< AnMaster> Shadow_Master, I was a few revisions behind so I got lots of header file changes 20090413 16:31:53< AnMaster> so this will take a while 20090413 16:31:54< loonycyborg> Shadow_Master: "" is not a temporary. 20090413 16:32:03< AnMaster> at 54% atm according to cmake 20090413 16:32:07-!- crimson_p [n=irchon@64.201.60.216] has joined #wesnoth-dev 20090413 16:32:10< Shadow_Master> loonycyborg: but std::string("") should be, right? 20090413 16:32:11< silene> loonycyborg: but std::string("...") is 20090413 16:32:14< Shadow_Master> I mean, notice the l-value 20090413 16:32:26-!- fabi [n=fabi@wesnoth/developer/fendrin] has quit [Remote closed the connection] 20090413 16:32:45< Shadow_Master> there's a implict constructor call in it 20090413 16:32:57< Shadow_Master> s/in it/involved in that line/ 20090413 16:33:03< loonycyborg> So *(i++) is a std::string? 20090413 16:33:03< crimson_p> so did anything change with translations since 1.6? 20090413 16:33:04< cjhopman_> that line is ok if *(i++) is an std::string, right? 20090413 16:33:34< silene> loonycyborg: yes 20090413 16:33:39< crimson_p> because they don't work for me in 1.6.1 20090413 16:33:41< Shadow_Master> crimson_p: 1.6<->1.6.x, or 1.6<->trunk? 20090413 16:34:16< AnMaster> Shadow_Master, lots of other such constructs or? 20090413 16:34:26< crimson_p> 1.6->1.6.1 20090413 16:34:27< Shadow_Master> AnMaster: yes, we are screwed 20090413 16:34:48< silene> Shadow_Master: okay, the parser one seems really to be my fault, since it doesn't look like a copy-paste from somewhere else 20090413 16:35:01< AnMaster> Shadow_Master, how comes the compiler doesn't warn about this, it seems like something that should be quite easy to warn about? 20090413 16:35:05< Shadow_Master> wesbot: log 6713 20090413 16:35:08< wesbot> silene * r6713 : Get rid of the static linesource vector, it was the last obstacle before switching to an on-line preprocessor. Instead, directly embed the token positions into the preprocessor output stream. Change the parser so that it can take this information into account. 20090413 16:35:13< wesbot> URL: http://svn.gna.org/viewcvs/wesnoth?view=rev&rev=6713 20090413 16:35:18< Shadow_Master> silene: yeah, it is you. It appears so in git svn blame 20090413 16:35:24< Shadow_Master> ;) 20090413 16:35:30-!- nerwa [n=nerwa@59.78.26.75] has joined #wesnoth-dev 20090413 16:35:56< silene> Shadow_Master: i know, i did blame too, but it could have been indentation fixes for instance, but it doesn't look like it 20090413 16:36:02< Shadow_Master> AnMaster: ask the GCC guys, or a boost developer (e.g. silene), not me ;) 20090413 16:36:09< AnMaster> mhm 20090413 16:36:15< crimson_p> I don't get any errors about anything 20090413 16:36:27< silene> AnMaster: there are compilers that warn about it, sun cc does, i think 20090413 16:36:36< AnMaster> I see 20090413 16:36:48< silene> but sun cc is crap, so it's already used nowadays 20090413 16:36:49< Shadow_Master> I haven't tried a newer GCC than 4.3.2 either and won't do 20090413 16:37:04< silene> s/already/hardly/ hmm... 20090413 16:37:15< AnMaster> Shadow_Master, why 4.3.2 specifically? 20090413 16:37:38< Shadow_Master> AnMaster: because it is one of the quartet provided by debian lenny 20090413 16:37:48< silene> Shadow_Master: are you fixing some of the occurrences? (just so that we don't work on the same files) 20090413 16:37:49< AnMaster> anyway since last I checked gcc had over 700 switches it may very well be hidden there somewhere... 20090413 16:38:00< Shadow_Master> I've got 3.4, 4.1, 4.2 and 4.3 installed 20090413 16:38:06< Shadow_Master> silene: no, I don't have much time atm 20090413 16:38:12< Shadow_Master> feel free to do it. 20090413 16:38:17< silene> okay, will do then 20090413 16:38:59< Shadow_Master> (in fact, by solely stepping into this channel, I have turned my laptop from a Homework-Solving-Machine into a Time-Sink 3000 (tm)) 20090413 16:39:32< Shadow_Master> (but it had to do with my campaign, so I couldn't resist the call of duty) 20090413 16:39:47< Shadow_Master> :-( 20090413 16:40:29< crimson_p> well I'm getting up; real computer time 20090413 16:40:36-!- crimson_p [n=irchon@64.201.60.216] has quit [Remote closed the connection] 20090413 16:41:46< CIA-30> mordante * r34866 /trunk/CMakeLists.txt: 20090413 16:41:46< CIA-30> Fix a MSVC cmake compiler issue. 20090413 16:41:46< CIA-30> sdl-config is not available for MSVC, tested by Reisiger. 20090413 16:41:51< mordante> Shadow_Master, I know that feeling as well ;-) 20090413 16:41:57< CIA-30> mordante * r34867 /trunk/CMakeLists.txt: 20090413 16:41:57< CIA-30> Fix a MSVC cmake compiler issue. 20090413 16:41:57< CIA-30> The escaping of the defines now also works for MSVC, tested by Reisiger. 20090413 16:42:23< Shadow_Master> :-( 20090413 16:42:31< AnMaster> Shadow_Master, I quite like IftU btw 20090413 16:42:48< Shadow_Master> that compensates it a bit, I guess :-) 20090413 16:42:50< Polarina> I can do some Lua coding of anyone needs me. :) 20090413 16:42:57 * Polarina goes back to her corner. 20090413 16:43:00< AnMaster> Shadow_Master, very epic. Which is important for me. 20090413 16:43:26< AnMaster> Shadow_Master, IftU, LoW, NR, UtBS are probably those campaigns I like most 20090413 16:44:30< YogiHH> mmm, is it save to svn update at the moment? 20090413 16:44:32-!- crimson_penguin [n=ben@64.201.60.216] has joined #wesnoth-dev 20090413 16:44:39< YogiHH> *safe* 20090413 16:44:52< mordante> it's always safe ;-) 20090413 16:44:54< Shadow_Master> YogiHH: it defiinitively won't be worse than three commits ago 20090413 16:45:00< AnMaster> YogiHH, the bug got fixed btw, r34865 20090413 16:45:10< boucman> YogiHH: have you lost faith ? 20090413 16:45:12< boucman> :P 20090413 16:45:26< YogiHH> Shadow_Master: well, i'd rather compare it to the running system i have at the moment over here :-P 20090413 16:46:10< YogiHH> boucman: let's say the latest discussions made me more careful than usual ;-) 20090413 16:46:12< AnMaster> Shadow_Master, oh btw it is still rebuilding 20090413 16:46:23< Shadow_Master> AnMaster: what you say :[ 20090413 16:46:33< boucman> YogiHH: hehe 20090413 16:46:37< Shadow_Master> even my broken laptop can beat you at it 20090413 16:46:39< boucman> Dragonking: done 20090413 16:46:44< AnMaster> Shadow_Master, that meme is a bit old? 20090413 16:46:46< CIA-30> boucman * r34868 /trunk/src/ (formula_candidates.cpp formula_candidates.hpp): new type of candidate move: strategic, only called once with no parameter. Also initialize name_ and type_ correctly 20090413 16:46:52< AnMaster> or maybe it wasn't what I thought it was 20090413 16:47:15< AnMaster> Shadow_Master, well building at -O2 since wesnoth is horribly slow otherwise 20090413 16:47:35< boucman> ok, wiki time 20090413 16:47:38< CIA-30> boucman * r34869 /trunk/changelog: changelog entry for rev 34868 20090413 16:47:42< Shadow_Master> AnMaster: yes it is old 20090413 16:47:46< AnMaster> Shadow_Master, I guess it would be faster to compile at -O0 20090413 16:48:03< AnMaster> Shadow_Master: Linux tux.lan 2.6.27-gentoo-r8 #1 Sat Jan 31 04:55:36 CET 2009 x86_64 AMD Sempron(tm) Processor 3300+ AuthenticAMD GNU/Linux 20090413 16:48:11< Shadow_Master> AnMaster: but that didn't stop me from slipping a similar message for a Can't Happen(tm) case in image.cpp 20090413 16:48:39< AnMaster> Shadow_Master, all your compile time are belong to bad memes? 20090413 16:48:41< AnMaster> :( 20090413 16:48:53-!- YogiHH [n=chatzill@d082183.adsl.hansenet.de] has left #wesnoth-dev ["I'm not here right now."] 20090413 16:49:14< Shadow_Master> foreach(f, container_that_should_never_get_to_contain_NULL_pointers) { if(f == NULL) { ERR_DP << "somebody set up us the bomb\n"; continue; } 20090413 16:49:28< Shadow_Master> a.k.a. "memory corruption bomb" 20090413 16:49:53< AnMaster> Shadow_Master, well since this is C++ you can never know. 20090413 16:50:29< Shadow_Master> really - it Can't Happen(tm) (unless the core pretty much gets f***** up), but I couldn't resist slipping it - I wrote that code around 6 AM and I had not slept a single minute that day 20090413 16:51:52< AnMaster> Shadow_Master, I tend to sprinkle my own C code with assert() to help tracking down bugs. And if it is feasible: unit tests 20090413 16:51:54< Shadow_Master> (and if it gets a chance of happening, well, odds are wesnoth will blow up before reaching that method) 20090413 16:52:18< Shadow_Master> AnMaster: it's an exception :P my other code is full of asserts (including the assert(true == false) class) 20090413 16:52:19 * mordante also loves asserts 20090413 16:52:55< AnMaster> if true == false something is wrong. Or is that for "should never be reached"? 20090413 16:53:02< AnMaster> hm 20090413 16:53:05< Shadow_Master> the later 20090413 16:53:15< AnMaster> ah 20090413 16:53:41< mordante> I just use assert(false) in that case 20090413 16:54:01< Shadow_Master> true == false makes more sense for non programmers in the error message 20090413 16:54:08< Shadow_Master> (IMHO) 20090413 16:54:21< AnMaster> anyway the issue with C++ as far as I can see is that while it certainly abstracts away things compared to C (good thing) it doesn't increase the runtime type safety to the same degree 20090413 16:54:32-!- YogiHH [n=chatzill@d051102.adsl.hansenet.de] has joined #wesnoth-dev 20090413 16:54:40< mordante> I've no idea what makes more sense for non programmers (if it makes sense for them at all) ;-) 20090413 16:55:30< AnMaster> meaning it is a kind of awkward mix of low level code which is unsafe with high level "let system handle the details", resulting in hard to track down bugs. 20090413 16:55:33< Shadow_Master> AnMaster: does the "easter-egg" expression sound familiar to you? 20090413 16:55:57< AnMaster> Shadow_Master, I heard the word yes. 20090413 16:56:14< AnMaster> as in a hidden thing in a program 20090413 16:56:23< AnMaster> put there as a joke, surprise or whatever 20090413 16:56:53< AnMaster> but what has that got to do with true == false? I guess the meme thing could be considered a kind of easter-egg 20090413 16:57:05< Shadow_Master> yup 20090413 16:57:15< loonycyborg> AnMaster: It both allows abstraction and low-level code forcing neither. 20090413 16:57:20< Shadow_Master> "This Really Can't Happen Unless Earth Was Flat All The Time" 20090413 16:57:41< Polarina> #undef false #define false 1 20090413 16:57:47< Polarina> That'll flatten the Earth. 20090413 16:57:48< AnMaster> loonycyborg, indeed. But instead of the best of both worlds it ends up as worst of both worlds IMO. 20090413 16:57:58< AnMaster> :/ 20090413 16:58:07< Shadow_Master> Polarina: don¿t spoil it 20090413 16:58:07< loonycyborg> That depends on how you use it. 20090413 16:58:44< AnMaster> Polarina, thought they were keywords in C++ (unlike C99's stdbool.h where they indeed are defines) 20090413 16:59:10< Polarina> Oh.. :( 20090413 16:59:18< Shadow_Master> loonybot: #undef false 20090413 16:59:18< AnMaster> I may be wrong though 20090413 16:59:22< loonybot> error: undefined reference to `main' 20090413 16:59:24< CIA-30> jhinrichs * r34870 /trunk/src/savegame.cpp: fix processing of load_game settings 20090413 16:59:28-!- nerwa [n=nerwa@59.78.26.75] has quit [Success] 20090413 16:59:33< Shadow_Master> loonybot: {} #undef false 20090413 16:59:33< loonybot> 20090413 16:59:44< AnMaster> well it might be possible to define or undefine still 20090413 16:59:49< Shadow_Master> apparently it is can be redefined. Otherwise geordi would have complained 20090413 17:00:06< loonycyborg> false is definitely a keyword in C++. 20090413 17:00:27< loonycyborg> Though you can define a preprocessor symbol "false" :P 20090413 17:00:33< Shadow_Master> loonybot: wrong. 20090413 17:00:33< loonybot> error: expected constructor, destructor, or type conversion before '.' token 20090413 17:00:42< Shadow_Master> loonycyborg: I can redefine false 20090413 17:00:50< AnMaster> Shadow_Master, I assume it uses GCC internally? If so: C++ keywords can be defined usually since it uses the C preprocessor. Even though in C++ doing so is undefined behaviour iirc 20090413 17:00:53< Shadow_Master> er. AnMaster. right. 20090413 17:01:04< Shadow_Master> geordi uses g++ indeed 20090413 17:01:06< AnMaster> loonybot: {} #undef for 20090413 17:01:06< loonybot> 20090413 17:01:10< AnMaster> seemed to work too 20090413 17:01:17< AnMaster> which definitely is a keyword 20090413 17:01:33< Shadow_Master> this works: http://wesnoth.pastebin.com/deb73481 20090413 17:01:43< Shadow_Master> and it'd make our favorite Unix-old-timer hacker vomit :p 20090413 17:01:51< Polarina> loonybot: {} #define main omg 20090413 17:01:52< loonybot> warning: control reaches end of non-void function 20090413 17:01:59< Shadow_Master> the output is "foo\n" indeed 20090413 17:02:05< AnMaster> Shadow_Master, well yes because it is C++. printf() is way cleaner :P 20090413 17:02:08< Shadow_Master> (g++ 4.3) 20090413 17:02:15< AnMaster> or fprintf() in this case 20090413 17:02:19< crimson_penguin> with --log-debug=config, 1.6 and 1.6.1 have 20 lines of ~"Binding textdomain wesnoth-aoi to path /Applications/Wesnoth.app/Contents/Resources/.//translations" 20090413 17:02:23< crimson_penguin> I'm not sure what else to try 20090413 17:02:27< AnMaster> or since it is a constant, even fputs() 20090413 17:02:30< CIA-30> silene * r34871 /trunk/src/serialization/ (parser.cpp preprocessor.cpp preprocessor.hpp): Fixed two other occurrences of the ternary bug from hell. (My fault.) Factored the code a bit. 20090413 17:02:40< CIA-30> silene * r34872 /trunk/src/ (dialogs.cpp show_dialog.cpp): A few more occurrences of the ternary bug. 20090413 17:02:50< Shadow_Master> silene: TBFH? 20090413 17:03:11< AnMaster> what would TBFH mean? 20090413 17:03:15< silene> this one is outside my acronym repoistory 20090413 17:03:18< AnMaster> duh wait 20090413 17:03:21< AnMaster> of course 20090413 17:03:25< Shadow_Master> haha 20090413 17:03:30< loonycyborg> http://codepad.org/Adqtno4d :P 20090413 17:03:35< AnMaster> silene, "the ternary bug from hell" I think 20090413 17:03:52< silene> oh! right 20090413 17:04:33 * crimson_penguin immediately came up with a possible acronym, but it didn't make any sense in the context 20090413 17:04:35< AnMaster> why does cmake say -- Found FriBiDi: /usr/lib64/libfribidi.so every now and then, I disabled fribidi in ccmake... 20090413 17:04:40< AnMaster> so why does it even check for it 20090413 17:04:53< Shadow_Master> I should really make xkcdish #wesnoth-dev/#wesnoth-umc-dev strips 20090413 17:04:54< Shadow_Master> <.< 20090413 17:05:34< AnMaster> oh my 20090413 17:06:03< mordante> AnMaster, I also have the cmake issue need to look at it later 20090413 17:06:11< AnMaster> ah 20090413 17:06:12< Ivanovic> crimson_penguin: might be that some changes by silene regarding dummylocales broke translation stuff on mac 20090413 17:06:17< crimson_penguin> Shadow_Master: http://pastebin.com/d7f96d6cf 20090413 17:06:20< Ivanovic> talk to silene about it, no idea what else it could be 20090413 17:06:21< loonycyborg> AnMaster: There were a lot of bugs with that custom FriBiDi check. Fortunately that dep will be dropped soon and I'm using scons :P 20090413 17:06:36< crimson_penguin> hey silene! :D 20090413 17:06:41< silene> ? 20090413 17:06:41< Shadow_Master> Ivanovic: shame on you btw. 20090413 17:06:51< crimson_penguin> silene: translations don't work on Mac 20090413 17:06:51< Shadow_Master> and Turuk, for that matter. 20090413 17:07:06< Shadow_Master> shikadibot: TBFH? 20090413 17:07:06< crimson_penguin> silene: they did in 1.6, don't in 1.6.1 20090413 17:07:06< shikadibot> TBFH: The Ternary Bug From Hell. 20090413 17:07:09< Shadow_Master> :-) 20090413 17:07:12< silene> lol 20090413 17:07:12< loonycyborg> Translations on windows still work fine. 20090413 17:07:37< silene> crimson_penguin: do you use autoconf? 20090413 17:07:40< crimson_penguin> jeez, I feel old - NONE of the people in the quote I just pasted are still around 20090413 17:07:50< Shadow_Master> crimson_penguin: hehe 20090413 17:07:59< Shadow_Master> isaac is still around though. 20090413 17:08:13< crimson_penguin> oh ok 20090413 17:08:13< Shadow_Master> prepare a bottle of fresh blood and he'll appear like a little vampire bat 20090413 17:08:17< crimson_penguin> I never see him here though 20090413 17:08:29< crimson_penguin> silene: no... well, not other than for building the translations 20090413 17:08:44< Shadow_Master> yann also speaks when there are planetary conjunctions 20090413 17:09:31< crimson_penguin> silene: I use XCode 20090413 17:09:35-!- JW1 [n=X@c-71-57-85-168.hsd1.il.comcast.net] has joined #wesnoth-dev 20090413 17:09:35< silene> crimson_penguin: then i don't think my patches are related; does the console say anything? 20090413 17:09:50< crimson_penguin> which console, where? 20090413 17:10:04< silene> crimson_penguin: some stderr.txt file, or something 20090413 17:10:13-!- nerwa [n=nerwa@59.78.26.75] has joined #wesnoth-dev 20090413 17:10:17< crimson_penguin> oh; no 20090413 17:10:25< crimson_penguin> (I have a real console :P) 20090413 17:11:06< crimson_penguin> actually, maybe I should read it more thoroughly (it doesn't say anything with the default log options) 20090413 17:12:37< Shadow_Master> crimson_penguin: there's some interesting logic appliying in that paste btw 20090413 17:12:51< crimson_penguin> yes :P 20090413 17:13:32-!- Tigge_ [n=tigge@bacchus.olf.sgsnet.se] has quit [Read error: 60 (Operation timed out)] 20090413 17:14:38< crimson_penguin> silene: I'm concluding it doesn't say anything; no instances of "translation" or "locale" other than the one I mentioned, which is the same in 1.6 20090413 17:17:50< CIA-30> silene * r34873 /branches/1.6/src/ (6 files in 2 dirs): Ported commits 34865, 34871, 34872 from trunk: fixes for use-after-free segfaults. 20090413 17:18:12< Shadow_Master> we are extremely lucky 20090413 17:18:26< Shadow_Master> (albeit in a bad way) 20090413 17:18:37< Shadow_Master> AnMaster: did it fix your issue btw? 20090413 17:18:45< AnMaster> Shadow_Master, yes think so 20090413 17:18:57< silene> crimson_penguin: i checked and i did change some mac specific code 20090413 17:19:03< YogiHH> afk 20090413 17:19:04< Shadow_Master> AnMaster: "think", didn't test? 20090413 17:19:19< AnMaster> Shadow_Master, since it wasn't 100% reproducible I can't be 100% sure but I tested several times and couldn't reproduce. 20090413 17:19:24< AnMaster> that is what I mean with "think" 20090413 17:19:40< Shadow_Master> okay, it qualifies :-P 20090413 17:20:31< silene> crimson_penguin: could you look into the src/language.cpp file, around line 205, and change it so that it looks like http://wesnoth.pastebin.com/db89c159 20090413 17:22:55< Polarina> Macro hell! http://codepad.org/yFB7mRRH 20090413 17:23:31< Shadow_Master> you've really got plenty of spare time in your hands 20090413 17:23:52< Polarina> I do. 20090413 17:24:01< Shadow_Master> what do you work at? 20090413 17:24:08< Shadow_Master> wait, do you work at all? o.O 20090413 17:24:14< Polarina> No. 20090413 17:25:24< Polarina> Imagine if all Wesnoth code were written like that. :) 20090413 17:25:26< AnMaster> Polarina, I have seen worse 20090413 17:25:40< Polarina> AnMaster: I've seen template hell (it's really hell). 20090413 17:25:47< AnMaster> yes that is worse 20090413 17:26:01< AnMaster> Polarina, http://www.ioccc.org/ 20090413 17:26:22< Turuk> Shadow_Master: or me for what matter? 20090413 17:27:26-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 104 (Connection reset by peer)] 20090413 17:27:41-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 17:27:58< Polarina> AnMaster: Yay! Fun. :) 20090413 17:28:16< AnMaster> heh 20090413 17:30:26-!- cjhopman [n=chris@wesnoth/developer/cjhopman] has joined #wesnoth-dev 20090413 17:34:21< crimson_penguin> silene: ok 20090413 17:34:29< Shadow_Master> Turuk: 17 spam messagea I nuked 20090413 17:34:36< Shadow_Master> *s. Read the ACP logs 20090413 17:34:38< Turuk> I saw that, you and torangan 20090413 17:34:51< Shadow_Master> what, there was more? 20090413 17:34:53< Turuk> I did read them, however when someone just says "and Turuk too" 20090413 17:34:56< crimson_penguin> silene: that fixes it 20090413 17:35:00< Turuk> I have no idea what you are referring too 20090413 17:35:08-!- stikonas [n=stikonas@wesnoth/translator/stikonas] has quit [Read error: 54 (Connection reset by peer)] 20090413 17:36:50< silene> crimson_penguin: okay, now, could you put back the "category == LC_MESSAGES && " at the beginning of the two tests? 20090413 17:37:57< crimson_penguin> silene: still works 20090413 17:39:24< silene> okay, now remove the two lines corresponding to LC_ALL, and use LANG instead of LANGUAGE in the two other lines 20090413 17:39:48< silene> (LC_ALL was removed because of a bug, so it would be great if we could find a way not to put it back) 20090413 17:41:27< crimson_penguin> still works :) 20090413 17:41:34 * loonycyborg wishes the gettext stuff weren't so hacky :( 20090413 17:41:45< silene> crimson_penguin: just to avoid any misunderstanding, that's how it should look like: http://wesnoth.pastebin.com/d6386742a 20090413 17:42:38< crimson_penguin> yup, it's the same 20090413 17:43:36-!- cjhopman_ [n=chris@wesnoth/developer/cjhopman] has quit [Read error: 110 (Connection timed out)] 20090413 17:44:46< silene> crimson_penguin: okay, now i need you to test something (just to be sure that LANG does not introduce the LC_ALL bug); do you have a french locale on your computer? (or another one that uses the comma instead of the point in numerical values) 20090413 17:45:15< crimson_penguin> I should have "all" of them I think 20090413 17:45:22< crimson_penguin> I'm currently set to Swedish, which I think does that too 20090413 17:45:37< CIA-30> crab * r34874 /trunk/data/ai/scenarios/ (4 files in 2 dirs): Modified user interface of AI Arena to use right-click menu. 20090413 17:46:42< crimson_penguin> wait, what? ...it's not working, but it was working 20090413 17:46:42< crimson_penguin> ahhh, it's working, I don't know why it wasn't just now; maybe I had an old copy open or something 20090413 17:47:08< crimson_penguin> anyway, I'll use French just to be sure 20090413 17:47:11< crimson_penguin> silene: what do I test? 20090413 17:48:11-!- turin [n=turin@168.215.250.1] has joined #wesnoth-dev 20090413 17:48:12< cjhopman> crimson_penguin: you are from sweden? 20090413 17:48:38< silene> crimson_penguin: give me a few seconds, i will give you a small program that you will test with various values of LANG and LC_NUMERIC 20090413 17:48:39< crimson_penguin> cjhopman: no, but I started learning some Swedish from a previous Swedish translator 20090413 17:48:49< crimson_penguin> silene: ok 20090413 17:48:54< boucman> Crab_: I kind of disagree with your change to poisoning 20090413 17:49:04< Ivanovic> esr: okay, wrote "a little" about the translation process 20090413 17:49:06< Ivanovic> http://www.wesnoth.org/wiki/Translation_Maintainance_Commands 20090413 17:49:08< crimson_penguin> cjhopman: I'm Canadian, so I should know French, but I didn't go to school, so I hardly know any 20090413 17:49:39< Ivanovic> esr: please check if you see anything i missed and add info you have (especially about the tools, also check for stuff where the tools lack functionality like modifying CMakeLists.txt files) 20090413 17:49:43< Dragonking> boucman: Around? 20090413 17:49:45< boucman> actually it's better not attack regenerating units, becous our other weapon might be better, and more generally it's a case where we should count on other formulas doing a better job 20090413 17:49:50< boucman> Dragonking: yes 20090413 17:49:57< Crab_> boucman: then it should be picked by another formula 20090413 17:50:03< Dragonking> boucman: What is your CM supposed to do? 20090413 17:50:03-!- heinz_ [n=heinz@p54B33085.dip0.t-ipconnect.de] has left #wesnoth-dev ["Leaving"] 20090413 17:50:15< boucman> yeah, it's called "C++ fallback" :P 20090413 17:50:36< boucman> Dragonking: I didn't commit any use of the new type, only a type that is called once 20090413 17:50:41< boucman> with no special param 20090413 17:51:05< Dragonking> boucman: once per what? 20090413 17:51:07< Crab_> my point: the goal of that script is to make the ai use poison efficiently. So, needs to assign values to any 'good uses' of poison. and poisoning regenerated/in_village units is better then attacking already poisoned unit (i've seen old script do that in ai arena) 20090413 17:51:12< boucman> example of usage would be to analyze the overal situation and set some general objectives through global AI variables, or spliting in squads, or things like that 20090413 17:51:15< crimson_penguin> silene: should I make a new package and start uploading, or wait? 20090413 17:51:23< boucman> once per ai action 20090413 17:51:53< Dragonking> What is action? 20090413 17:52:03< boucman> Crab_: not 100% convinced 20090413 17:52:11< boucman> Dragonking: the fact of the AI "doing something" 20090413 17:52:37< Dragonking> boucman: Each time candidate actions are evaluated you repeat your eval n times - where n is number of AI's units 20090413 17:52:53< boucman> huh ? 20090413 17:52:56< silene> crimson_penguin: this is the C program: http://wesnoth.pastebin.com/d2b4f84f6 20090413 17:53:10< Dragonking> boucman: You put your eval code in loop 20090413 17:53:22 * boucman checks 20090413 17:53:26< Dragonking> boucman: So each call to evaluate your CA makes it loop 20090413 17:53:54< silene> crimson_penguin: when you run it, it will ask for a number and then echo it; so you just enter numbers like 1.1 and 1,1 and see how it reacts 20090413 17:54:06< Crab_> boucman: well, old script treated 'undead units' and 'units in village' the same. imo, this is wrong - since the result of hitting them with poisoned weapons isn't the same (if unit heals from poison, it loses regen/village healing) 20090413 17:54:14< boucman> Dragonking: oops :P 20090413 17:54:18< Dragonking> boucman: :) 20090413 17:54:49< boucman> Dragonking: fixing 20090413 17:55:07< Crab_> boucman: so, I've seen ai attacking already poisoned unit (due to fallback) and ignoring unpoisoned-unit-in-village 20090413 17:55:13< crimson_penguin> silene: this doesn't seem very good... 1.5 = 1.500000, 1,5 = 1.000000 20090413 17:55:34< silene> crimson_penguin: for now, that's good; that's the behavior wesnoth expect :-) 20090413 17:55:46< crimson_penguin> ok, well that is good then :) 20090413 17:55:50< Dragonking> boucman: ok :) 20090413 17:55:53< boucman> Crab_: I'm no strategic expert, you might want to discuss that more with Dragonking than me, I think it's a border case, and probably better left out of that particular formula, but it's open to discussion 20090413 17:55:59-!- Psyche^ [n=Psyche@g224104216.adsl.alicedsl.de] has joined #wesnoth-dev 20090413 17:56:06< silene> crimson_penguin: now, set the LANG variable in your environment, and set it to the french locale (fr_FR) or another and try again 20090413 17:56:23< silene> this should give you the opposite behavior 20090413 17:56:25< crimson_penguin> ohh, right, ok 20090413 17:56:35-!- _ping_ [n=ping_c@56341227.rev.stofanet.dk] has quit ["Leaving"] 20090413 17:57:03< crimson_penguin> silene: it does :) 20090413 17:57:44< CIA-30> boucman * r34875 /trunk/src/formula_candidates.cpp: me <= stupid 20090413 17:58:53< silene> crimson_penguin: great, now change the first line of the program so that it is setlocale(LC_ALL, "C"); that should be the wesnoth setup and hopefully you will be back to the first kind of behavior 20090413 17:59:05< Dragonking> Crab_: Mind this poison CA is still far from being perfect :) 20090413 17:59:18< Dragonking> There is big room for improvement 20090413 17:59:49< crimson_penguin> silene: yup 20090413 18:00:59< silene> crimson_penguin: great, thanks for your time, i will commit the corresponding patch, you can ship your version with the code you have now 20090413 18:01:15< crimson_penguin> silene: great :) 20090413 18:02:15< Dragonking> Crab_: I'll for sure work on that myself quite a bit cause it is part of my SoC idea :) 20090413 18:02:29< Crab_> Dragonking: yes, of course. but I've just spotted a behavior that ai preferred attacking already poisoned unit, and not attacking non-poisoned unit in village, so i've tried to fix this by returning different priorities for different situations - http://tinyurl.com/formula-ai 20090413 18:02:44< boucman> yes, let's keep poison as our testing ground for RCA 20090413 18:03:54< Crab_> Dragonking, boucman, btw, I've changed ai_arena_small to use right-click menu. now it should be more useful (and i'm working to make it generate lists of possible tests and AIs dynamically ) 20090413 18:04:41< boucman> yup, saw that, thx 20090413 18:06:22< CIA-30> silene * r34876 /trunk/src/language.cpp: Fixed localization on MacOSX. It seems like Apple is now using the LANG variable, as most other systems do. 20090413 18:07:14-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 60 (Operation timed out)] 20090413 18:07:31-!- Patterner [n=Psyche@g224106008.adsl.alicedsl.de] has quit [Connection timed out] 20090413 18:07:32-!- Psyche^ is now known as Patterner 20090413 18:07:36< crimson_penguin> Ivanovic: so, I should make a Wesnoth_1.6.1a.dmg then, right? 20090413 18:07:42< Ivanovic> jupp 20090413 18:07:50< CIA-30> silene * r34877 /branches/1.6/src/language.cpp: Fixed localization on MacOSX. It seems like Apple is now using the LANG variable, as most other systems do. 20090413 18:08:06< Ivanovic> that is: just include this patch and not any of the other fixes 20090413 18:09:12< crimson_penguin> silene: humm... keep in mind, I'm on OS X 10.5.6, but we support 10.4 20090413 18:09:12-!- wesbot changed the topic of #wesnoth-dev to: released 1.6.1, announcing "soon" | Summer of Code info: http://www.wesnoth.org/wiki/SummerOfCodeIdeas | 52 bugs, 235 feature requests, 9 patches | logs: http://irclogs.wesnoth.org/ | Don't paste on IRC! Use a pastebin: http://wesnoth.pastebin.com | http://imagebin.org 20090413 18:09:23< crimson_penguin> Ivanovic: of course 20090413 18:11:38< silene> crimson_penguin: yes, but the original code was written 5 years ago; i wouldn't be surprised if LANG has been the correct variable for a long time; the fact that LANGUAGE was incorrect since then was probably hidden by LC_ALL 20090413 18:12:09< silene> at least the code now match what i would somehow expect from a unix system :-) 20090413 18:12:20< crimson_penguin> ok :) 20090413 18:13:28-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 18:13:55< Polarina> 1.6.1a ? 20090413 18:14:38< crimson_penguin> Polarina: it's like 1.6.1, but with working translations ;) 20090413 18:14:39< silene> Turuk: there is another spambot running amock in the forums 20090413 18:14:42< Turuk> spam attack again, yay 20090413 18:14:46< Turuk> I got it, thanks silene :) 20090413 18:14:57< crimson_penguin> (silene broke translations on Mac, but has not fixed them) 20090413 18:15:00< Polarina> crimson_penguin: Cool. 20090413 18:15:12< crimson_penguin> err, "now" 20090413 18:16:05< boucman> Dragonking: ok, I will change the semantic of the strategic a bit to make more sense 20090413 18:16:18< silene> Turuk: that's not the first time today; i guess a new and improved bot was released recently 20090413 18:16:23< boucman> i.e I want it to be called at most once a turn. 20090413 18:16:42< crimson_penguin> bz2 ftw; "Savings: 45.1%" 20090413 18:16:42< Turuk> silene: I was thinking the same thing, and it hasn't been one or two threads but a large number at once 20090413 18:16:49< silene> yep 20090413 18:17:05< Dragonking> boucman: It is ok fot it to be like now.. 20090413 18:17:36< boucman> Dragonking: i'm trying to use it to set a variable with "usefull positions to move unit to" 20090413 18:17:38< Dragonking> boucman: Making it "do something" (not being execute) once per turn only would be trivial 20090413 18:18:02< boucman> Dragonking: the problem is in the scoring part... 20090413 18:18:15< Polarina> crimson_penguin: lzma ftw; "Saves more than bz2" 20090413 18:18:19< boucman> once the action is done, we want to return a score of 0 or we enter an infinite loop 20090413 18:18:30< boucman> and that's a bit tricky to do (not impossible, just tricky) 20090413 18:18:42< crimson_penguin> Polarina: psh - it's not available for a dmg :P 20090413 18:18:44< Dragonking> boucman: I don't follow 20090413 18:18:59< boucman> ok, let's keep looking at my example 20090413 18:19:27< boucman> I want to look at the whole map, store interesting locations, and then let other candidates do what they want 20090413 18:19:47 * crimson_penguin starts uploading 20090413 18:19:56< boucman> so, my first idea was to return a very high value (1000) to be sure to be the first to run 20090413 18:20:00< Polarina> Do we have a windows build already? 20090413 18:20:14< boucman> and in the action part, set my variable and do no real action 20090413 18:20:49< boucman> however, by doing that I am called again, return 1000 again and set my variable again, it's an infinite loop 20090413 18:20:49< Dragonking> boucman: It is simple, eval formula: if( ai.vars.my_tmp_var = ai.turn, 0, 1 ) action: [ set_var('my_tmp_var', ai.turn), store_interesting_locations() ] 20090413 18:21:35< boucman> Dragonking: I thought of that but it's a bit hackish, and my "interesting actions" might change due to the AI's movements 20090413 18:22:04< Dragonking> boucman: You want it to change? 20090413 18:22:11< boucman> the best idea I had so far is eval= action= but that's really hackish 20090413 18:22:31-!- noy [n=Noy@d75-157-52-251.bchsia.telus.net] has joined #wesnoth-dev 20090413 18:22:32< boucman> Dragonking: what if we kill the target at the location... that location wouldn't be usefull anymore 20090413 18:23:11< Dragonking> boucman: So you want to re-evaluate it every ca_scoring? 20090413 18:23:43< boucman> Dragonking: that was my idea so far, but i'm more doing that to study the problem than anything 20090413 18:23:49< Crab_> boucman: can use Dragonking's "Precondition formula" GSoC idea to achieve that ? 20090413 18:23:50-!- nerwa [n=nerwa@59.78.26.75] has quit [] 20090413 18:24:12< boucman> Crab_: nope, I don't think that's what precondition was for 20090413 18:24:13< Dragonking> boucman: Right now 'eval' can't have side effects, like setting variable etc. 20090413 18:24:40< boucman> oh ok, i'll have to find another way 20090413 18:25:09< Crab_> boucman: so, you want something like 'formula that will run before each cycle of RCA evaluation and set the *interesting parameters* for that cycle' ? 20090413 18:25:23< boucman> yes 20090413 18:27:37< Crab_> boucman: there are hackish ways to do this, but, imo, its better served by specific formula type which is not an RCA. 20090413 18:27:44< boucman> Crab_, Dragonking: as I've already stated, I'm exploring the idea, if you believe it's not a good idea, it might not be 20090413 18:28:05< boucman> Crab_: it makes sense to have it as an RCA too 20090413 18:28:37< Dragonking> My first thought it that I sort of dislike idea of 'eval' and 'filter' formulas have "side effects" possible. 20090413 18:28:58< boucman> Dragonking: yeah, I agree with that, it was a bad idea 20090413 18:28:58< Crab_> boucman: i personally believe that there's a need for non-RCA 'small formulas' which can be called (if they are present), to augment default behavior in some specific well-defined places.. 20090413 18:29:19< boucman> Crab_: well, that was the point of RCA, you know... 20090413 18:29:22< crimson_penguin> Polarina: so, what's "happy easter" in Icelandic? I know "glad påsk" and "god pøske" 20090413 18:29:28< Crab_> boucman: for example, "at start of turn", "at start of RCA evaluation cycle", ... 20090413 18:29:35< boucman> eval was to find the well defined place, adn action to do the action 20090413 18:29:50< Polarina> crimson_penguin: "Gleðilega páska" 20090413 18:29:54< Dragonking> boucman: Well... maybe a non_score_candidate_action ? 20090413 18:29:59< crimson_penguin> gah! 20090413 18:30:12< Crab_> boucman: yes, but i want to augment RCA-evaluation-mechanism itself 20090413 18:30:12< crimson_penguin> Polarina: that's crazy! 20090413 18:30:23< Crab_> Dragonking: I think they should not be 'candidate actions' 20090413 18:30:35< corn> source code for my prototype currently at http://cornmander.com:9090 : http://cornmander.com/wesstats.tar.gz 20090413 18:30:37< Polarina> crimson_penguin: Why? 20090413 18:30:44< crimson_penguin> Polarina: ...but gleöilega páska to you anyway :D 20090413 18:30:55< Dragonking> Crab_: ok, but boucman wants to have it bound to CA evaluation loop 20090413 18:31:00< corn> the whole thing is a turbogears application, you start up the included webserver by doing python start-wesstats.py 20090413 18:31:01< boucman> Crab_: it's starting to make sense to have more formulas for RCA at_start_of_cycle, at_start_of_turn and things like that... 20090413 18:31:03< crimson_penguin> Polarina: Just, a lot longer than the other two, and with more accents 20090413 18:31:08< corn> and all the logic code is under wesstats/controllers.py 20090413 18:31:16< corn> template code is under wesstats/templates/ 20090413 18:31:36-!- Rufik21 [n=Rufik21@195.182.20.34] has joined #wesnoth-dev 20090413 18:31:41< Crab_> Dragonking: we can check the presence of these 'optional aspect-like formulas' in the RCA loop, and run them, if they are present. 20090413 18:32:41< Crab_> Dragonking: we can also use the same mechanism to allow user to overrider default_ai decisions - we can replace hardcoded logic with a call to user-defined formula, for example, in the code that evaluates combat outcome or calculates statistics or chooses the weapon to attack... 20090413 18:32:49-!- Rufik21 [n=Rufik21@195.182.20.34] has left #wesnoth-dev ["Closing Window"] 20090413 18:33:19-!- stikonas [n=stikonas@wesnoth/translator/stikonas] has joined #wesnoth-dev 20090413 18:33:28< Crab_> boucman: yes, "firing small formulas in response to events" 20090413 18:34:08< Dragonking> boucman: hmr.. we could go for another thing, bound_to_action formulas, we could define for example formulas that are "start of turn" "after recruitment" "after anything", put it into map, and just from pieces of code call run_event_formula() 20090413 18:34:44< Crab_> Dragonking: yes, that's good. but even better is to use the event-observer pattern. 20090413 18:35:08< Dragonking> Crab_: Yes 20090413 18:35:35< Ivanovic> ah, lovely: http://www.pcgameshardware.de/aid,605759/Die-Lieblings-Spiele-der-PCGH-Redaktion-Thilo-Bayers-persoenliche-Top-Games/Spiele/News/ 20090413 18:35:39< Crab_> Dragonking: this can be even used by default ai ) for example, we can use an event "ai wants to recruit" and connect an "recruitment formula" to it. 20090413 18:35:57< Dragonking> Yup, good idea 20090413 18:35:58< Ivanovic> wesnoth among the top 10 of the games the chief editor of a gaming hardware mags 20090413 18:36:04< Crab_> Dragonking: we will be able, basically, to merge default ai and formula ai together. 20090413 18:36:20< Dragonking> :) 20090413 18:36:34< Dragonking> ok, I need to disappear now 20090413 18:36:37< Crab_> as in "one AI to rule them all.." 20090413 18:36:46< Dragonking> I'll be back later, but I doubt I'll do anything wesnoth-releated today 20090413 18:36:55< mordante> Ivanovic, weren't we in there also last year? 20090413 18:37:05< Ivanovic> mordante: of course we were 20090413 18:37:10-!- Tigge [n=tigge@bacchus.olf.sgsnet.se] has joined #wesnoth-dev 20090413 18:37:45< Crab_> Dragonking: so, I will move ai files to src/ai's today, after you disappear ) as in http://www.wesnoth.org/wiki/AI_Module 20090413 18:37:47< mordante> it's nice to see to be in somebodies personal top 10 for two years :-) 20090413 18:38:00 * boucman checks 20090413 18:38:05-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 18:38:27< boucman> Dragonking: should I remove the strategic type ? I'm not sure it's usefull the way it is and is trivial enough to add back... 20090413 18:38:56< boucman> Crab_: you might want to have a data/dev/formula directory 20090413 18:39:09< boucman> to not mess up the data/ai/formula with experimental stuff 20090413 18:39:16< boucman> Dragonking: I'll remove it 20090413 18:39:31< mordante> the list of games that didn't make his top ten contains quite some nice titles 20090413 18:39:31< Crab_> boucman: I'll expand this section, but, basically I want to "move first, then refactor", in two smaller steps 20090413 18:39:37< boucman> ok 20090413 18:39:56 * mordante hopes esr didn't read that...^ 20090413 18:40:24< Dragonking> boucman: We can keep it 20090413 18:40:31< Dragonking> boucman: Someone may find it useful 20090413 18:40:34-!- zookeeper [n=l@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20090413 18:40:56< boucman> no, i'd rather remove for the moment, it's trivial to add back if someone ask for it and the idea is not mature enough at this point 20090413 18:41:03< Dragonking> ok 20090413 18:41:08< Dragonking> I'm off, bye 20090413 18:41:25< Crab_> boucman: imo, it will be better served by observer-formula of the "start turn" event 20090413 18:41:27< Crab_> bye Dragonking 20090413 18:41:54< Crab_> boucman: we'll need some parallel structure there, with a "stable" line and "dev" lines (unless we're going to make a *small hack* and make a reload_ai_from_version_control_system(...) function ) 20090413 18:42:15 * Ivanovic fears that esr will kill me when he sees the wiki page about translation stuff since it is a lot to read... 20090413 18:43:25< mordante> depends on the number of quite some's in the text ;-) 20090413 18:43:35< Ivanovic> but hey, he has asked for complete documentation, hasn't he? 20090413 18:43:45< boucman> Crab_: I wonder if we should push this into RCA or have a completely different mechanism... 20090413 18:43:50< mordante> he did 20090413 18:43:58< boucman> my gut feeling is that we should fit it in RCA, but it's a gut feeling 20090413 18:44:06< Ivanovic> mordante: it is more to read than the *combined* soc project proposals by Crab_ and Dragonking... 20090413 18:44:07< Ivanovic> ;) 20090413 18:44:18< Crab_> boucman: imo, it is not a candidate action. it is just a formula which can "register to be an observer" to events. 20090413 18:44:40< Crab_> boucman: so, the engine will run all the formula-observers when the event fires 20090413 18:44:44< CIA-30> boucman * r34878 /trunk/src/ (formula_candidates.cpp formula_candidates.hpp): remove the strategic type, the idea is not mature enough at this point 20090413 18:44:45< mordante> I guess it's detailed ;-) 20090413 18:45:11< boucman> Crab_: I understand the idea, but I'm not convinced it's the way to go (yet, i'm open to all arguments) 20090413 18:45:18< Ivanovic> mordante: i'd say so: http://www.wesnoth.org/wiki/Translation_Maintainance_Commands 20090413 18:45:42-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Connection timed out] 20090413 18:45:52< mordante> I was already looking at it ;-) 20090413 18:46:46< Crab_> boucman: well, it fits in the current RCA interface, so we can make it an RCA, as well 20090413 18:48:12< boucman> Crab_: we have global formulas, we have unit formulas, we have RCA 20090413 18:48:39< boucman> the whole thing is becoming quite confusing so I'm looking for ways to keep the thing explainable... if you see what I mean 20090413 18:48:42< zookeeper> Crab_, did you need me for something? 20090413 18:50:30< Crab_> zookeeper: i've already found out the answer for my original question, but I've have another question: from scenario .cfg, I include a bunch of other .cfg's from a directory (an event in each of .cfg's) I want each .cfg to "register itself" in some sort of array. How can it be done ? 20090413 18:51:50< Crab_> ( I'm thinking about something like 'Define a start event in each of those .cfg's which adds some values to a global array variable '. Is it doable? ) 20090413 18:52:27< zookeeper> well, sure you _can_ do something like that...it's a bit messy though 20090413 18:52:45-!- cjhopman [n=chris@wesnoth/developer/cjhopman] has quit ["Konversation terminated!"] 20090413 18:52:49< zookeeper> i could write it for you if you'd specify it a bit more precisely 20090413 18:55:20< Crab_> zookeeper: no, let me try to do this first) I'll ask you again if I won't be able to do it by the aforementioned method. 20090413 18:55:30< zookeeper> silene, btw, that latest lua feature sounds really useful. i'm not too excited about mixing other languages with WML generally, but being able to use them to write new tags and stuff sounds great. 20090413 18:56:32 * Shadow_Master is waiting to see UMC using Lua 20090413 18:56:33< zookeeper> Crab_, sure. what i'd probably do would be to just use [set_variables] to put them all into a regular WML array and then do whatever i need with it 20090413 18:57:27< silene> zookeeper: yes, it's why fabi wanted it in; i still think it is a bit of masochistic approach (that is, hiding lua behind wml just so that one does not mix lua and wml in the same file) :-) 20090413 18:57:28< Crab_> zookeeper: [set_variables] will execute if I just *include* the file with [set_variables] ? no need to put them inside some startup event to make them execute ? 20090413 18:58:22< Crab_> boucman: yes, it will be good to keep things simple. 20090413 18:58:32< zookeeper> Crab_, err, i think there's too many errors in your question for me to be able to answer it :) 20090413 18:58:39< silene> zookeeper: no, set_variables has to be inside an event 20090413 18:58:44< Crab_> zookeeper: ok ) 20090413 18:58:52< silene> argl, i meant, Crab_ 20090413 18:59:11< zookeeper> silene, well, i think that's the perfect approach :) 20090413 18:59:15< Crab_> silene: thanks. 20090413 18:59:57< Crab_> boucman: For example, we can base on candidate_action_manager. it has 'register_candidate_action' which registers candidate moves for RCA loop 20090413 19:00:44< boucman> we could increast the candidate action structure to hold more functions... 20090413 19:00:46< Crab_> boucman: we can add a method there, for example 'register_observer', which will register an observer formula to some event. and we can add a method there to execute all the observers of a certain event. 20090413 19:01:16< Crab_> so, the observer will be just a 'base_candidate_action' 20090413 19:01:40< Crab_> s/just a/subclass of 20090413 19:01:55< silene> Crab_: does the registering have to be dynamic? (just to be sure using event actions is a good idea) 20090413 19:02:16< Crab_> silene: no. static. once-per-scenario 20090413 19:02:48< Crab_> silene: but, if it can be done dynamically, I will gladly listen to 'how to do it' ) 20090413 19:03:30< boucman> Crab_: i don't see the point of having the observer design pattern we can simply add it to base candidate action 20090413 19:03:46< boucman> observers are only usefull when we don't know who will register, but we do 20090413 19:04:14< boucman> it's all candidates and it will be called from the candidte_action_manager, so observers (as in the design pattern) seems a bit overkill 20090413 19:04:27< Crab_> boucman: the code may be not in position to know who will register. imagine a default ai raising an event "me_wants_to_recruit" 20090413 19:04:43< silene> Crab_: for the dynamic part, you can indeed use variables, but only if it makes sense from a user point (that is, what happens if the scenario modifies one of the variables behind your back); otherwise you may just define yet another wml tag (see game_events.cpp) 20090413 19:05:08< boucman> Crab_: wait a minute, do you want the observers to be in the candidate layer, or at the ai interface layer ? 20090413 19:06:21< silene> Crab_: if you want something static, it is a bit more complicated, you will have to add new wml tags at the toplevel 20090413 19:06:57< Crab_> boucman: is not important, imo. I would prefer to have a single entity (such as candidate_action_manager or some other ai-independent) to manage all those formulas. i want to be able to raise events and ask questions both from formula_ai and default_ai 20090413 19:07:28< boucman> ok, so it's not in the candidate layer 20090413 19:07:42< boucman> I understand much better now, and yes observers make sense, then 20090413 19:07:58< silene> Crab_: the advantage of the static part is that you don't have to worry about making the data persistent 20090413 19:08:29< dfranke> Shadow_Master: I haven't touched the recall code yet. 20090413 19:08:38< dfranke> Shadow_Master: only the unit list. 20090413 19:08:38< Crab_> silene: basically, I want to "have a directory with small .cfg files with an event in each of those", and "make master scenario which includes all those .cfg files and allows a user to select from a list of options, each option "backed up" by one of those small .cfg files " 20090413 19:09:16< Shadow_Master> dfranke: no problem, we already tracked down the culprit 20090413 19:09:20-!- fendrin [n=fabi@wesnoth/developer/fendrin] has joined #wesnoth-dev 20090413 19:09:21< Shadow_Master> he's now in preemptive prison 20090413 19:09:39< dfranke> Shadow_Master: heh, k. 20090413 19:09:51< Crab_> silene: so, basically, I want a test001.cfg (with event test001), test002.cfg (with event test002), test003.cfg(with event test003), and I want to ask the user, "what do you want to run? test001, test002, or test003 ?" 20090413 19:10:08-!- gabm [n=gabriel@72.0.215.2] has joined #wesnoth-dev 20090413 19:10:30< zookeeper> Crab_, my offer still stands ;) it's probably easier for me to write the code (or the relevant parts) than try to explain it 20090413 19:10:32< silene> Crab_: at which time do you ask the user? 20090413 19:10:53< Crab_> silene: after user loads the scenario and presses the right mouse button and selects "select test" 20090413 19:11:13< zookeeper> but yeah, there's currently no way to make the game recognize changes to .cfg files without restarting 20090413 19:11:34< Crab_> zookeeper: that's not so important part. they will not be changed frequently enough. 20090413 19:12:03< Crab_> zookeeper: more important is the ability for user to *add* a new .cfg file and have the game "just notice" it on next restart of scenario 20090413 19:12:11< zookeeper> sure, that's no problem.. 20090413 19:12:13< boucman> Crab_: the events maybe, but the AI will be changed very often 20090413 19:12:15< silene> Crab_: and do you already have a way to take these data into account or does it have to be added to? 20090413 19:12:32< Crab_> boucman: AI can already be hot-redeployed by [modify_side] 20090413 19:12:47< boucman> yeah 20090413 19:12:55< Crab_> current is /wesnoth/data/ai/scenarios/scenario-AI_Arena_small.cfg 20090413 19:13:36< Crab_> there the test configs are "hardcoded" 20090413 19:14:29< silene> Crab_: so it seems like you already have a way to communicate with the engine, it's modify_side, right? 20090413 19:14:48< Crab_> silene: yes 20090413 19:15:07< silene> Crab_: okay, then forget everything i told, i thought that's what you wanted 20090413 19:15:30< Crab_> silene: i just don't want to code new c++ if it can already be done in wml/lua. 20090413 19:15:47< zookeeper> Crab_, and basically you just want a menu with an option for triggering each event in ai_arena_small/*.cfg? 20090413 19:15:56< Crab_> zookeeper: yes 20090413 19:16:16< Crab_> zookeeper: and I don't want the list of *.cfg's hardcoded. 20090413 19:16:30< zookeeper> well, as i said i can write it, it's a bit hacky but not really a problem 20090413 19:16:41< silene> Crab_: yes, it can, and as for not hardcoding the list, just let the preprocessor do the job: {the_directory/} 20090413 19:16:50< Crab_> silene: already done. 20090413 19:17:01< Crab_> silene: but I need to populate the list of options. 20090413 19:17:10< silene> Crab_: okay, now choose your poison, lua or wml? :-) 20090413 19:17:16< Crab_> silene: lua ) 20090413 19:17:23 * zookeeper retreats 20090413 19:17:24< zookeeper> ;) 20090413 19:18:03< Crab_> so, I was thinking about "adding a startup event in each of those small configs which will register it in some array" 20090413 19:18:07 * Shadow_Master sends a tomato surprise to zookeeper's area 20090413 19:18:12< Shadow_Master> (random Yetis) 20090413 19:18:22 * zookeeper befriends them 20090413 19:18:32< silene> Crab_: yes, and if you use lua, you can use the preload event for that 20090413 19:18:32< Shadow_Master> oh right, you are a damn zookeeper :P 20090413 19:18:36< zookeeper> oh, wait...i guess it should rather be "imprison" 20090413 19:18:52< Crab_> silene, ok. 20090413 19:19:13< Crab_> zookeeper: so, thanks for the offer, but I'll first try to do it myself ) 20090413 19:20:05< zookeeper> no problem 20090413 19:20:05< fendrin> silene: I have some time now. Can you point me to a wiki page where the lua thing is documented? 20090413 19:20:43< silene> Crab_: since it is the preload event, you don't have to worry about using wml persistence, you can directly use a plain lua table; something like: "if not my_magic_table then my_magic_table={} end; my_magic_table[#my_magic_table + 1] = { whatever you need }" 20090413 19:20:57< Crab_> thanks 20090413 19:21:03 * Shadow_Master sends random hydrophobic hyenas after zookeeper 20090413 19:21:26 * Shadow_Master grabs some popcorn 20090413 19:21:40< silene> fendrin: http://www.wesnoth.org/wiki/LuaWML 20090413 19:21:40 * zookeeper puts them in a box 20090413 19:21:45< Shadow_Master> :( 20090413 19:23:14< silene> Crab_: then, in your select_challenger_ai, you programatically build the WML object corresponding to your current "message" code, and then you fire a "message" action on it 20090413 19:24:02< fendrin> silene: I can write [event][lua]code={@path_to_a_file}[/lua][/event]? 20090413 19:25:39< silene> fendrin: no, the preprocessor will mess your code real bad; try instead code=<> (yes, unfortunately you have to use the complete path, since by the time lua is run, all location data have been discarded by the engine) 20090413 19:26:00< Crab_> silene: it'll be in "_select_test". i'll just 'show a message, and then fire named wml event from lua, based on the option selected by the user' 20090413 19:26:54< silene> Crab_: right, _select_test, i didn't notice it, i just choose the first thing that looked like a choice :-) 20090413 19:28:11< silene> Crab_: yes, in the command part, just put the lua equivalent of the current code 20090413 19:28:50< Crab_> silene: select_challenger_ai is also a choice, but this one will require c++ coding (that 'get the list of all ais in specific folders' sort of thing I'll add to ai_manager ) 20090413 19:30:02< silene> Crab_: if it's still a fire_event, it will somehow look like { "command", { { "fire_event", { name=something } } } } 20090413 19:30:17< Crab_> silene: thanks again. 20090413 19:31:05-!- thespaceinvader [n=chatzill@wesnoth/artist/thespaceinvader] has joined #wesnoth-dev 20090413 19:31:47< fendrin> silene: I can only code new wml tags in lua that work in [event], right? 20090413 19:31:59-!- noy [n=Noy@wesnoth/developer/noy] has quit [] 20090413 19:33:28< silene> fendrin: right; the other parts of the engine don't allow it at all, it would require some massive and invasive coding; but if you a good real case, i can consider it 20090413 19:35:17< fendrin> silene: What about subtags? 20090413 19:36:52< silene> fendrin: these are hardcoded by the C++ code of each tag; do you have a specifc one in mind? 20090413 19:38:38< silene> for instance, you can use the custom tags below "command", "then", and so on, since they are hardcoded to use the generic machinery 20090413 19:38:46< Crab_> silene: and, another question - there'll be two special directories, ai/ais and ai/dev, which will be the place to put 'ai configurations' .cfg files. I want to make it possible to add AI configurations both to user data directory (eg. ~/.wesnoth/) and game data directory. 20090413 19:38:49< Crab_> Q:Where should I hardcode those directory names ? (note: the list and content of ai config files can change at runtime) 20090413 19:39:08< fendrin> say, I have that selfdefined tag [freeze_unit] and I want it to have a subtag [damage]. Can that be coded? 20090413 19:40:07< silene> fendrin: oh! i had misunderstood; yes it can, the whole wml object is passed verbatim to the lua function, so subtags are there too 20090413 19:40:27< zookeeper> silene, in case it's relevant and you didn't know, sapient's [insert_tag] AFAIK works inside any tag as long as it's inside an event 20090413 19:40:42< fendrin> silene: cool 20090413 19:40:53< zookeeper> not limited to event toplevel, command, then etc 20090413 19:41:04< silene> zookeeper: i know, more precisely it works as long as vconfig is involved 20090413 19:41:36< zookeeper> ok, great. was just checking 20090413 19:41:56< silene> fendrin: though i shouldn't say "verbatim"; the content is currently passed with variable expansion done; it seemed like the most intuitive way, but if it causes trouble, we may consider changing it 20090413 19:45:01< fendrin> silene: Can I check in lua if wesnoth was started with --debug? 20090413 19:45:26< fendrin> or if debug was given at the ingame commandline. 20090413 19:45:45< silene> fendrin: lua doesn't provide anything special; is it available to wml? 20090413 19:45:58< fendrin> silene: no it isn't 20090413 19:47:09< fendrin> afaik 20090413 19:47:52< silene> fendrin: it's trivial to add a lua function that gives this info, so if you are sure you need it, just tell me 20090413 19:48:58< fendrin> silene: my plans are: A complete wml validator in lua that checks every tag for complete arguments/wrong arguments. But maybe it should only be on in debug mode. 20090413 19:49:48< fendrin> arguments are attributes and subtags and maybe their type. 20090413 19:51:06< fendrin> I want to test it with some selfdefined lua tags that load that validator implicit. If it's working well it can be made explicit later. 20090413 19:52:19< silene> hmm... note that if you override existing tags, you currently lose the ability to call them; do you think you will have to? 20090413 19:52:52-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 19:53:08< fendrin> well, my target is to overwrite every one of them so their c++ counterparts gets obsolete and we have complete validation over whole wml. MHHUAAHHRRR! 20090413 19:53:46< silene> fendrin: so it seems i should give you a way to call the older tag? 20090413 19:54:57< fendrin> silene: I still don't know. It's time for me to give a prototype that does something useful. 20090413 19:57:12-!- Andrai [n=Andrai@150.165.63.86] has joined #wesnoth-dev 20090413 20:00:37< gabm> hi all 20090413 20:00:59-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has quit [Success] 20090413 20:01:08-!- noy [n=Noy@70.70.224.183] has joined #wesnoth-dev 20090413 20:01:14< gabm> general question for the WML experts: how do the "#textdomain" tags work? 20090413 20:01:33< fendrin> silene: what happens to files in data/lua. Are the included automaticaly? 20090413 20:01:41-!- Andrai [n=Andrai@150.165.63.86] has quit [Remote closed the connection] 20090413 20:03:28< gabm> zookeeper: I was told you know your way around WML 20090413 20:03:40< gabm> zookeeper: would you have the answer to my question ^^ 20090413 20:04:38< gabm> zookeeper: (I'm a GSoC candidate, btw, I guess you didn't get to know me) 20090413 20:05:46-!- Andrai [n=Andrai@150.165.63.86] has joined #wesnoth-dev 20090413 20:09:46< Ivanovic> gabm: in fact about those silene knows more 20090413 20:09:59< silene> fendrin: no, they aren't, it's up to the user to include them; i wasn't quite sure if they had to or not 20090413 20:10:04< Ivanovic> that is: unless you specify a more explicit question 20090413 20:10:33< silene> gabm: it's read by the preprocessor and it's somehow inserted in to each string prefixed by _ 20090413 20:10:54< Ivanovic> basically this tag is read by wmlxgettext 20090413 20:11:21< Ivanovic> and later on you specify which "files"/textdomains to load and use for file replacement 20090413 20:11:58< Ivanovic> i don't think the rest has much to do with the explicit markers, that the preprocessor and all this stuff ignores them simply because it is a comment for wml (since starting with '#') 20090413 20:12:31-!- Dragonking [n=dk@wesnoth/developer/dragonking] has quit [] 20090413 20:12:48< fendrin> silene: Can I trigger the excecution of nested events in a selfmade tag? 20090413 20:14:03< silene> fendrin: yes (modulo whether i understood your question or not) 20090413 20:14:46< fendrin> :-) 20090413 20:16:02< silene> note that if they are real nested events that you are trying to put to the toplevel, you may be hitting the issue with having the variable expansion already been done 20090413 20:17:14< silene> for instance, if the nested tag is a kill event whose action depends on the content of the $x1,$y1 variables from the killed unit to be set, the engine will already have blanked these variables 20090413 20:18:11< fendrin> silene: same issue as with "insert_wml"? 20090413 20:18:32< Ivanovic> gabm: so your qeuestions regarding "how does the '#textdomain'-tag work" has to be answered with: not at all, since it is only a marker for an *external* tool 20090413 20:19:05< Ivanovic> for wml it is *only* a comment and thus ignored 20090413 20:19:18< silene> fendrin: you mean "insert_tag"? yes, it has already been replaced by the content of the actual variable 20090413 20:19:39< Ivanovic> what matters though is the [textdomain] [/textdomain] block to determin the currently active domains 20090413 20:19:49< gabm> Ivanovic: thanks for the answer - I was afk for a moment 20090413 20:19:52< Ivanovic> since this defines the .mo files that should be loaded 20090413 20:21:20< gabm> Ivanovic: I was mainly wondering why they usually happen straight in the middle of, say, a [unit] definition 20090413 20:21:49< Ivanovic> that is due to wmlxgettexts working when extracting strings from files 20090413 20:21:51-!- Reisiger [n=Reisiger@adsl-84-227-169-168.adslplus.ch] has joined #wesnoth-dev 20090413 20:22:17< Ivanovic> everything from the #textdomain declaration matching the current run is taken till a different declaration is met 20090413 20:22:34< silene> gabm: they are stored into each translatable string, so once strings are dumped into savegames, the pretty printer adds as many textdomain comments as needed for the savegame to be reloaded properly 20090413 20:23:05< gabm> I see, so they are not even dealed with in the savegame code 20090413 20:23:26< Ivanovic> personally i would be suprised if they were needed in the savegames 20090413 20:23:32< silene> no, it's transparent for the savegame; it's purely at the preprocessor/parser/printer level 20090413 20:23:38< Ivanovic> there only loading the mo files is needed and doing so once should be all needed 20090413 20:23:42< fendrin> silene: H = wesnoth.dofile("lua/helper.lua") <-- This code snippet from the wiki isn't working? It's not an absolute path. 20090413 20:23:49< gabm> They do appear all over the place in the save files, though 20090413 20:24:07< silene> Ivanovic: they are needed; how would you make a difference between the text of an ability (in wesnoth-core) with the name of unit (in wesnoth-utbs) for instance 20090413 20:24:36< Ivanovic> not at all 20090413 20:24:37< Ivanovic> ^^ 20090413 20:24:48< silene> fendrin: from wesnoth point of view, it's an absolute path :-) 20090413 20:25:11< fendrin> silene: absolute enough for me :-) 20090413 20:25:36< gabm> Thanks Ivanovic and silene, I probably know what I need to know about those tags for now :P 20090413 20:26:29< silene> fendrin: the main issue with the "absolute" thing will probably with umc; for now, i try a lot not to think about it ;-) 20090413 20:27:42< fendrin> silene: I will try to define an wml tag that is used to define more wml tags. 20090413 20:28:05< silene> oh! that's a bit vicious 20090413 20:28:43< silene> (but i don't foresee any difficulty) 20090413 20:28:55< fendrin> The new tags will be validated. 20090413 20:32:06< esr> Ivanovic: Reading your Translation_Maintainance_Commands page now... 20090413 20:35:01< esr> Ivanovic: This is great! Will probably take me a couple of readings to digest. 20090413 20:36:01< Ivanovic> :) 20090413 20:36:37< Ivanovic> it should be rather complete and give you some single pointers where to enhance existing scripts (wescamp-import as well as change-textdomain) to include cmake into the matter 20090413 20:39:02< zookeeper> esr, http://www.wesnoth.org/forum/viewtopic.php?f=21&t=25028 20090413 20:39:40< zookeeper> (i don't expect you to fix the problem, just tell him the ignore commands which i don't remember) 20090413 20:40:34< esr> zookeeper: Thanks, will do. 20090413 20:40:48< crimson_penguin> Ivanovic: ~1 hour till the fixed dmg is up 20090413 20:40:57< Ivanovic> crimson_penguin: cool 20090413 20:41:08< Ivanovic> will probably wait with announcing till tomorrow anyway 20090413 20:41:12< crimson_penguin> k 20090413 20:43:26< CIA-30> esr * r34879 /trunk/data/campaigns/Delfadors_Memoirs/scenarios/08_ur_thorodor.cfg: Make sure an event is properly tagged first_time_only=yes. 20090413 20:43:29-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 20:48:17-!- alink [n=alink@wesnoth/developer/alink] has joined #wesnoth-dev 20090413 20:51:05-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 110 (Connection timed out)] 20090413 20:51:41< Crab_> hi alink. a question - since 1.6.1 is already tagged, it's ok to rename route's move_left to something like move_cost ? 20090413 20:51:54-!- Andylee [n=kvirc@188-23-107-61.adsl.highway.telekom.at] has joined #wesnoth-dev 20090413 20:51:56< Andylee> hi there 20090413 20:52:01< Andylee> me again. 20090413 20:52:06< alink> Crab_: yes, good idea 20090413 20:52:18< Crab_> ok. i'll do it soon. 20090413 20:52:28< Andylee> i forgot who the friendly guy was who helped me so much with my sql problem some days ago. 20090413 20:52:48< Andylee> I know this is not the channel for this but I know no one other. 20090413 20:53:10< Andylee> my program says, that this sql synthax is wrong... and I don't get why. 20090413 20:53:12< Andylee> string sql = "UPDATE AccessCheck SET User = @user, Pass = @pass Where UserID = @userid"; 20090413 20:55:05< alink> Crab_: Plus I suppose that it should be easy to replace thing like "set_movement(route.move_left);" by "movement_left() - route.move_cost" 20090413 20:56:15< Crab_> alink: I will look through all such places in the ai, because I'm going to move set_movement calls away from the ai code. 20090413 20:57:03< Crab_> alink: so, I will make sure that all usage of move_cost is correct. 20090413 20:57:45< CIA-30> jhinrichs * r34880 /trunk/src/playcampaign.cpp: Fix broken replays for campaign saves after the first scenario. 20090413 20:58:39< Chusslove> silene: Thanks for the review, all's fine by me; I only didn't get if you will do the modifications and splitting, or should I submit two new patches? 20090413 20:58:45< silene> fendrin: now that i think about it, you will encounter a minor hindrance; registering new wml tag was not meant to be dynamic, so new tags are not saved, they were supposed to be created in the preload event; it means that you also have to store the data inside some wml data so that you can restore the wml tags that were dynamically created by your wml tag 20090413 20:59:05< esr> YogiHH: Have youu seen bug #13364? I expect the fix is probably trivial. 20090413 20:59:30 * YogiHH checks 20090413 20:59:59< silene> Chusslove: i would have done the splitting; as for the changes, it's up to you; i can do them later if you don't have time 20090413 21:00:20< Chusslove> silene: Let me check something first then... 20090413 21:00:26< Chusslove> Ivanovic: There? 20090413 21:00:43-!- cjhopman [n=chris@wesnoth/developer/cjhopman] has joined #wesnoth-dev 20090413 21:01:01< YogiHH> esr: ah, yes, i have noticed that as well. It is for the automatic replay saves and i was too lazy to care for that by now ;-). But it shouldn't be hard to find, i agree. 20090413 21:01:11< fendrin> silene: sorry, I don't get that. 20090413 21:01:38< esr> YogiHH: I'll assign it to you, then. 20090413 21:02:41< silene> fendrin: you were talking about making a [register_wml_action] tag or did i misunderstand? 20090413 21:02:53< lizard_r> esr, Hi, I'm currently playing tHoT/Fear on Wesnoth 1.6 the Dwarvish Masked Thunderer does not have a mask, but I think he is supposed to have one. (yesterday played this on 1.4 there he had one) 20090413 21:03:11< Chusslove> silene: I'll anyway prepare the two patches, though I've another question: how about sticking this comment http://rafb.net/p/cbXeO936.html just before that "localized resources..." message? The // TRANSLATORS bit tells xgettext to extract it into PO, so translators see it right there. 20090413 21:03:40< fendrin> silene: yes 20090413 21:04:19< silene> Chusslove: this is fine; i thought about suggesting that, but i have too lazy to test if it would indeed be visible from a translator :-) 20090413 21:04:25< esr> lizard_r: Hm, sounds like a trivial WML glitch. You say "the" Masked Thunderer; is there more than one, and are they all unmasked? 20090413 21:04:31< Chusslove> silene: I've tested it :) 20090413 21:04:58< lizard_r> esr, all are unmasked, also in later scenarios 20090413 21:05:03< alink> Crab_: a bit more work to do with the correct move_left given by path::paths, maybe first add move_cost and then later remove move_left 20090413 21:05:11 * Chusslove wonders if everyone today are adding foreach macro to their C++ utility toolbox... 20090413 21:05:14< YogiHH> afk 20090413 21:05:18-!- zookeeper [n=l@wesnoth/developer/zookeeper] has quit [Read error: 148 (No route to host)] 20090413 21:05:28< esr> lizard_r: Hm, that's not good. Hold on, let me look... 20090413 21:05:28< alink> Crab_: and rename move_left to something else for checking its usage 20090413 21:05:33< Chusslove> silene: Ok, I'll make and upload patches shortly. 20090413 21:06:00< alink> Crab_: the ambiguity between route.move_left and unit.move_left is annoying anyway 20090413 21:06:30< silene> fendrin: the register_wml_action function is only meant to be called from the preload events, since the registered tags are not persistent; if you intend to call it at another point, you have to take care of persistency yourself; the wml tags created outside the preload event won't be automagically restored after saving/loading 20090413 21:06:49-!- zookeeper [n=l@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20090413 21:06:55< alink> Crab_: wait there is no unit.move_left, where did i saw that 20090413 21:07:06< Crab_> alink ) 20090413 21:07:36< Ivanovic> Chusslove: am (somehow) around 20090413 21:07:56< Ivanovic> in general you should just leave your requests/questions and i will eventually come to them 20090413 21:07:59< fendrin> silene: as long as all of them stay in the preload everything is fine? 20090413 21:08:02< Ivanovic> ;) 20090413 21:08:15< Chusslove> Ivanovic: silene is about to commit that patch for localized images, so I was wondering how exactly do we proceed. 20090413 21:08:28< Ivanovic> Chusslove: no idea, no plan so far 20090413 21:08:29< alink> Crab_: ah it's unit.movement_left() already, good 20090413 21:09:07< silene> fendrin: yes, if the tag is never used outside the preload event, you can be lazy and forget about persistency 20090413 21:09:35< silene> (i mean, the "register" tag, the new tags can obviously be used elsewhere) 20090413 21:09:45< Chusslove> Ivanovic: I made that offer that it be me who deals with the stuff entirely (receiving images, runinng tracker script), so that you have only to eliminate stale images at release. If that would be ok, that means I would have to have a repository write access? 20090413 21:10:06< fendrin> silene: Okay, that's fine. Just thought my plan could fail... 20090413 21:10:26< Ivanovic> Chusslove: in general it would be nice if you could document all the stuff in a nicely readable way 20090413 21:10:50< Ivanovic> that is: just add it at http://www.wesnoth.org/wiki/Translation_Maintainance_Commands 20090413 21:10:56< Chusslove> Ivanovic: I would certainly do that, as soon as things sink in. 20090413 21:11:05< Chusslove> Right, had that page in mind exactly. 20090413 21:11:07< silene> fendrin: it wouldn't have failed, it would just have meant you would have had to add a few more lines of code 20090413 21:11:45< Ivanovic> Chusslove: that is: create a section for this image localization stuff and describe how it works and what has to be done on the maintainer side (including exact commands to run) 20090413 21:12:05< Ivanovic> and maybe put the "how to generate the translated files" onto an additional side in the wiki 20090413 21:12:18< Ivanovic> (should be linked from the translation faq as well as from this tools side) 20090413 21:12:23< Chusslove> Ivanovic: As in right now (before the process starts)? 20090413 21:12:37< Ivanovic> sure 20090413 21:12:48< Ivanovic> since this page is also about "how it works" to get stuff in 20090413 21:13:21< silene> Chusslove: we have a special template, {{DevFeature}} or something like, for this kind of things on the wiki 20090413 21:13:43< Ivanovic> silene: uhm, since this is *not* wml related it should not be marked in this way 20090413 21:14:11< Ivanovic> the DevFeature is basically meant for stuff relevant for content creators, this translation stuff is transparent for those 20090413 21:14:16< silene> Ivanovic: i thought it was more generally for anything on trunk, is it not? 20090413 21:14:32< Chusslove> I'm only not sure *exactly* what the maintenance workflow will be, so thought first about running along for some time before jotting down maintenance steps in details. But I can certainly write down how I think it will mostly be. 20090413 21:14:37< Ivanovic> silene: for this stuff i don't think it should be used 20090413 21:14:53< Ivanovic> Chusslove: write down the general steps now and update later on when changes occur 20090413 21:15:02< Chusslove> Will do. 20090413 21:15:03< Ivanovic> just that some basic "how to use" doc is available 20090413 21:15:11< Ivanovic> afk now, watching a movie 20090413 21:15:14< silene> Ivanovic: and it's not exactly transparent; it would be great if content creators don't embed text in their pictures and use an overlay instead 20090413 21:15:52< silene> i'm thinking about the titlescreen map for instance 20090413 21:16:07< Ivanovic> silene: ehm, this would be better, but especially for the main menu this is not easily possible IIRC 20090413 21:16:33< Ivanovic> since there is just a single file loaded, not a file with many single extra files on top of them 20090413 21:16:33< Chusslove> Ivanovic: Than the other issue (post-movie :) is: if I'd announce the feature on ML and forum, with some pointers to translators, shall I say "send localized stuff to Ivanovic, as usual", or...? 20090413 21:16:52< silene> Ivanovic: why not? Chusslove's patch should make possible, if i understood the patch correctly 20090413 21:17:01< Ivanovic> (beside this extra files overlaying maps look *bad*, since they don't appear at the same time, cf the maps in trow 20090413 21:17:35< silene> Ivanovic: it will appear at the same time; in fact, the engine is not even aware there is a non-overlayed picture 20090413 21:17:46< Ivanovic> Chusslove: for the moment almost noone will be working on it anyway, since it is trunk only and translators most likely won't work on it for some more time 20090413 21:17:50< Ivanovic> ;= 20090413 21:17:55< Ivanovic> s/=/) 20090413 21:18:05 * Chusslove gulps. 20090413 21:18:12< Chusslove> Trunk only, as in 1.8 material? 20090413 21:18:16< Ivanovic> jupp 20090413 21:18:57< Ivanovic> silene: then maybe some existing content should be converted 20090413 21:19:04< Ivanovic> like eg the maps in trow 20090413 21:19:23< Ivanovic> since they are some "old" system with extra labels on an image which "pop in" a tiny little later than the map 20090413 21:19:29< Ivanovic> ;) 20090413 21:19:39< Chusslove> Alright, what's a year in this line of work... that makes it a lot less pressing. 20090413 21:19:49< Ivanovic> Chusslove: it won't be a year at all 20090413 21:20:07< Ivanovic> that is: you can experiment with it yourself for a while before "the mass" starts to work on it in maybe two months 20090413 21:21:07< Chusslove> True that too. 20090413 21:21:31< silene> Ivanovic: indeed, i didn't know about these maps in trow, but it would be perfect for them; though if the overlay currently pops later, it was perhaps on purpose? 20090413 21:23:42< crimson_penguin> Ivanovic: so I've made a new zip of all the stuff I use to compile (and package) for 1.6.1; should that go in the release as well? 20090413 21:23:59< crimson_penguin> (and do you think wesnoth_compile_mac_1.6.1.zip is a sensible name?) 20090413 21:26:15< esr> lizard_r: Bug cobfirmed, I can reproducece it. 20090413 21:26:58< lizard_r> ok, do you fix it/remeber it or should I make a bug report? 20090413 21:27:30< Chusslove> silene: As for the original overlays, such as in TRoW, the localization system is ambivalent: if there are no original overlays, translators can create either standalone images or own overlays; if there are original overlays, translators simply create standalone localized images for original overlays. 20090413 21:27:32< esr> lizard_r: wait one, I may just have fixed it. 20090413 21:27:50< lizard_r> esr, ok thanks :-) 20090413 21:28:40-!- ilor [n=user@wesnoth/developer/ilor] has joined #wesnoth-dev 20090413 21:28:44 * crimson_penguin uploads to his server for now 20090413 21:28:58< ilor> hi all 20090413 21:29:19< esr> lizard_r: Fixed. I wonder how that image line got deleted? Will backport to 1.6. 20090413 21:30:06< silene> Chusslove: now that i think about it; there isn't a way to have a default overlay? which means that it is not possible to split an existing picture into a blank picture and a text picture without modifying the wml code? 20090413 21:30:14< CIA-30> esr * r34881 /trunk/data/campaigns/The_Hammer_of_Thursagan/units/Dwarvish_Masked_Thunderer.cfg: Give the Masked Tuhunderer back his mask. 20090413 21:30:34< gabm> YogiHH: are you back? 20090413 21:31:27< Chusslove> silene: Not that I'm aware of... I mean, even conceptually, some text is so snugly fit, that translator would have to do some easy, but human-only doable tuning. 20090413 21:31:46< ilor> 1.6.1 tagged -> stringfreeze on branches/1.6 lifted, right? 20090413 21:32:14< Chusslove> So to split into base/overlay in original is somewhere possible, somewhere not, depending on whoever is programming/drawing that. 20090413 21:32:33< Chusslove> And the localization system covers either option. 20090413 21:32:51< Crab_> ilor: at least in the channel topic it doesn't say "stringfreeze" anymore.... 20090413 21:33:01-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 104 (Connection reset by peer)] 20090413 21:33:16-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 21:34:39< CIA-30> esr * r34882 /branches/1.6/data/campaigns/The_Hammer_of_Thursagan/units/Dwarvish_Masked_Thunderer.cfg: Give the Masked Thunderer back his mask (backport). 20090413 21:34:40< silene> Chusslove: let's suppose it is possible (let's say i'm taking my original gimp/photoshop file and i separate the background thing from the text overlay); does your patch allow me to put these two files in place of the current file and expect it to work? if not, would it make sense to allow a "default" (or whatever its name) language code for overlays that would always be considered last 20090413 21:35:54< Chusslove> silene: Ah, you mean like that? Yes, it allows; if foo/bar/baz.png, the original overlay goes under foo/bar/baz/l10n/en_US/baz--overlay.png 20090413 21:36:26< silene> so the en_US overlay will always be used if none other is found? (just making sure) 20090413 21:36:34< Chusslove> Hm... though, yes, I have to put it so that en_US is alwyas added at the end. Will do. 20090413 21:45:58< fendrin> How can I load a test scenario that's id is not "test"? 20090413 21:47:37< silene> fendrin: i have been wondering for a long time; in the end, i simply overwrite the existing one :-) 20090413 21:48:58< Crab_> fendrin: -t name -d 20090413 21:50:09< Crab_> fendrin: just make sure that -t name is not the last option (for example, use -d or . as last) - since otherwise it'll thing that you're trying to tell it the location of the data directory 20090413 21:50:17-!- cjhopman_ [n=chris@wesnoth/developer/cjhopman] has joined #wesnoth-dev 20090413 21:50:20< Crab_> s/thing/think 20090413 21:50:40-!- cjhopman [n=chris@wesnoth/developer/cjhopman] has quit [Read error: 54 (Connection reset by peer)] 20090413 21:52:47-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 104 (Connection reset by peer)] 20090413 21:53:02-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 21:53:16< gabm> Ivanovic: maybe you know about this: can the random_seed change in the middle of a scenario? 20090413 21:54:00< fendrin> Crab_: It's telling me: "unknown scenario lua" 20090413 21:54:25< Crab_> fendrin: have you registered it in data/_main.cfg ? 20090413 21:54:50< gabm> Ivanovic: I guess it would be a Bad Thing(tm), but I'd like to make sure 20090413 21:55:15< fendrin> Crab_: no 20090413 21:55:27< Crab_> fendrin: do so. 20090413 21:56:13< fendrin> Crab_: Thank you. 20090413 21:56:17< Crab_> np 20090413 21:56:39-!- DUHH [n=DUHH@athedsl-4488791.home.otenet.gr] has joined #wesnoth-dev 20090413 21:57:09-!- noy [n=Noy@wesnoth/developer/noy] has quit ["GO, GET TO THE CHOPPAH!!!"] 20090413 21:57:41< Crab_> fendrin: and make sure that the scenario itself is inside [test][/test] WML tag 20090413 21:58:16-!- DUHH [n=DUHH@athedsl-4488791.home.otenet.gr] has left #wesnoth-dev [] 20090413 21:58:31< cjhopman_> gabm: I don't think so 20090413 21:58:59< cjhopman_> actually i dont know 20090413 21:59:05< Ivanovic> crimson_penguin: i think at sf.net there is some folder/release for this stuff (compile stuff) 20090413 21:59:06-!- DUHH [n=DUHH@athedsl-4488791.home.otenet.gr] has joined #wesnoth-dev 20090413 21:59:07< Ivanovic> just add it there 20090413 21:59:15-!- DUHH [n=DUHH@athedsl-4488791.home.otenet.gr] has left #wesnoth-dev [] 20090413 21:59:16< Ivanovic> silene: no, this was clearly *not* intentional 20090413 21:59:24< gabm> cjhopman_: I'll guess it's no for now, then 20090413 21:59:35< Ivanovic> silene: just start trow and you will see what i mean 20090413 21:59:40< gabm> cjhopman_: thanks 20090413 22:00:10< Ivanovic> basically the images pop up "sequentially" because they can not be loaded right at the same time with the wml based story screen hack 20090413 22:00:17-!- happygrue [n=quassel@c-67-176-145-41.hsd1.in.comcast.net] has joined #wesnoth-dev 20090413 22:00:45-!- theDUHH [n=DUHH@athedsl-4488791.home.otenet.gr] has joined #wesnoth-dev 20090413 22:00:54< silene> Ivanovic: yes, i took a look, i consider it a bug of the storyscreen code (or at least a misfeature) 20090413 22:01:00< Ivanovic> :) 20090413 22:01:24< Ivanovic> gabm: no idea about the random seed 20090413 22:01:39< gabm> Ivanovic: thx 20090413 22:03:03-!- happygrue [n=quassel@c-67-176-145-41.hsd1.in.comcast.net] has quit [Client Quit] 20090413 22:03:52-!- happygrue [n=quassel@wesnoth/developer/wintermute] has joined #wesnoth-dev 20090413 22:04:42-!- ettin_ is now known as ettin 20090413 22:08:04-!- Andrai [n=Andrai@150.165.63.86] has quit [Remote closed the connection] 20090413 22:08:17-!- Synergizer [n=synergiz@c-75-73-225-141.hsd1.mn.comcast.net] has quit ["Leaving"] 20090413 22:09:48< CIA-30> ilor * r34883 /trunk/ (6 files in 4 dirs): 20090413 22:09:48< CIA-30> Make wesnoth --editor --load DIR (wesnoth -e -l DIR) start the editor with a 20090413 22:09:48< CIA-30> load map dialog pointed at DIR, and make DIR the default map directory for the 20090413 22:09:48< CIA-30> current session, per ESR's request. Also make wesnoth -e foo work like wesnoth 20090413 22:09:48< CIA-30> -e --load foo, and change how -e MAP is processed internally. 20090413 22:10:10-!- Synergizer [n=synergiz@c-75-73-225-141.hsd1.mn.comcast.net] has joined #wesnoth-dev 20090413 22:10:43< ilor> esr: I'm hoping r34883 is kinda-sorta what you wanted ;) 20090413 22:11:20< esr> ilor: I'll give it a try, thanks. 20090413 22:11:24< silene> ilor: what's the point of the -l option if it works the same without it now? 20090413 22:12:33-!- elias [n=allefant@allegro/developer/allefant] has quit ["Leaving"] 20090413 22:14:03< ilor> silene: backwards compatibility, and making the case when the filename begins with a dash work (-e -filename won't work) 20090413 22:14:33< crimson_penguin> Ivanovic: I see... cvs builds, and it's hidden 20090413 22:14:44< Ivanovic> crimson_penguin: not cvs builds 20090413 22:15:23< Ivanovic> http://sourceforge.net/project/showfiles.php?group_id=89495&package_id=128407 20090413 22:15:47< Ivanovic> basically "unofficial"/"MacCompile Stuff" 20090413 22:16:07< crimson_penguin> ohh right, ok 20090413 22:16:09< gabm> YogiHH and everybody: does the savegame outline proposed by SkeletonCrew at http://www.wesnoth.org/wiki/User:SkeletonCrew#Savegame_format have "popular approval"? 20090413 22:16:17< gabm> Well at least from the devs :) 20090413 22:16:29< mordante> gabm, SkeletonCrew is my alter ego ;-) 20090413 22:16:50< gabm> mordante: lol 20090413 22:17:06< gabm> mordante: well, is your outline proposal still current 20090413 22:17:13< gabm> mordante: ? 20090413 22:17:34< mordante> that proposal has never been really fleshed out and I haven't discussed it in detail with the other devs yet 20090413 22:17:58< mordante> so not sure whether it has popular approval ;-) 20090413 22:18:26< gabm> mordante: I see 20090413 22:18:33< mordante> after I wrote that I got distracted by the gui, which is still WIP 20090413 22:19:23< gabm> mordante: for the GSoC proposal I'm asked to propose a tentative savegame format, but it seems that what we need is a big brainstorm 20090413 22:19:54< mordante> yep 20090413 22:20:27< CIA-30> cjhopman * r34884 /trunk/ (changelog src/game.cpp): added --rng-seed command line option to specify the seed for the rng. 20090413 22:20:40< mordante> but before you can start coding it's a good idea to design and plan first 20090413 22:20:43< crimson_penguin> Ivanovic: um, can I change it from "MacCompile Stuff (new)" to "Mac Compile Stuff" 20090413 22:20:49< Ivanovic> sure 20090413 22:21:13< mordante> but you can start by writing down some ideas and then discuss it 20090413 22:21:31< gabm> mordante: I think that for the proposal I'm mainly gonna identify redundant attributes, like the other candidate with a detailed application did 20090413 22:21:53< cjhopman_> ah... can now do much better profiling 20090413 22:22:20< mordante> cjhopman_, does that option also work in MP games? 20090413 22:22:44< gabm> mordante: But I'll put down a few ideas I like, such as moving root stuff into a [header] tag as you proposed 20090413 22:23:02-!- fabi [n=fabi@g227075051.adsl.alicedsl.de] has joined #wesnoth-dev 20090413 22:23:24< cjhopman_> im just using it now for ai vs ai... there is actually one spot in the code that calls srand() and would mess it up 20090413 22:23:35< crimson_penguin> ok, done that 20090413 22:23:44< crimson_penguin> still uploading the zip though 20090413 22:24:03< crimson_penguin> Ivanovic: 1.6.1a is added though, and I'll delete the old one in a second 20090413 22:24:07< mordante> gabm, feel free to use from it what you want, but I can't remember how finished the proposal was so there might be parts missing 20090413 22:24:15< Ivanovic> crimson_penguin: perfect 20090413 22:24:36< gabm> mordante: I'll remember that ;) 20090413 22:24:53< cjhopman_> ah, and it would probably be a good idea to reseed it for real games 20090413 22:26:13< mordante> yep 20090413 22:28:02< silene> cjhopman_: i don't remember, are you using precise profiling or some invasive profiling like gprof? 20090413 22:33:35-!- res|laptop [n=res@pdpc/supporter/student/res2k] has quit [Read error: 104 (Connection reset by peer)] 20090413 22:34:57< fabi> silene: Can I call eval? 20090413 22:34:57-!- res|laptop [n=res@pdpc/supporter/student/res2k] has joined #wesnoth-dev 20090413 22:35:11< cjhopman_> silene: ah, i am using google performace tools... which I believe would lie somewhere between gprof and oprofile 20090413 22:37:03< YogiHH> gabm: mordante's ideas are not completely fleshed out, but they provide a good basis to build upon 20090413 22:37:31< gabm> YogiHH: that's the impression I had 20090413 22:37:32-!- fendrin [n=fabi@wesnoth/developer/fendrin] has quit [Read error: 110 (Connection timed out)] 20090413 22:37:46-!- fabi is now known as fendrin 20090413 22:37:56< cjhopman_> probably closer to oprofile... it basically just takes like backtrace samples at some frequency 20090413 22:39:37< silene> cjhopman_: i would be interested if someone were to profile the impact of removing translation caching in tstring; five years ago, caching was a noticeable boost, but nowadays i wonder if the doubled memory footprint is still worth it; so if you ever fell bored... ;-) 20090413 22:41:28-!- happygrue [n=quassel@wesnoth/developer/wintermute] has quit [Remote closed the connection] 20090413 22:42:41< mordante> :-) 20090413 22:43:37< fendrin> silene: 20090413 22:42:23 error lua: Failure while running Lua script: [string "..."]:2: attempt to call field 'register_wml_action' (a nil value) 20090413 22:45:12< CIA-30> esr * r34885 /trunk/data/campaigns/Under_the_Burning_Suns/scenarios/09_Blood_is_Thicker_Than_Water.cfg: Address bug #13367. 20090413 22:45:40< silene> fendrin: the error message seems quite clear; what does the code look like? 20090413 22:46:09-!- theDUHH [n=DUHH@athedsl-4488791.home.otenet.gr] has quit [] 20090413 22:48:10< fendrin> silene: http://wesnoth.pastebin.com/m3e6550c0 20090413 22:50:42< silene> fendrin: just to be sure this is not a bad interaction; could you try removing the first preload event? 20090413 22:51:09< YogiHH> wesbot: seen dfranke 20090413 22:51:09< wesbot> YogiHH: Queried user last spoke 3h 41m ago. dfranke is currently here and on the channel #wesnoth. 20090413 22:51:17< silene> (also don't forget to add first_time_only=no to the other one, but this is not relevant to your current bug) 20090413 22:51:59< fendrin> silene: the first preload event is the newest code. 20090413 22:53:04< silene> fendrin: i was talking about the event you have copy-pasted from the wiki, the one that hacks _G 20090413 22:53:38< fendrin> silene: yes, that code is the newest one, I thought it might be needed for register_wml_action 20090413 22:53:51< fendrin> so I have already tested the code without it. 20090413 22:54:05< silene> but i doubt this is the cause; are you sure you are using a wesnoth binary that does contain the register_wml_action function? 20090413 22:54:22< fendrin> uh 20090413 22:54:25< fendrin> yeah 20090413 22:55:06< fendrin> I should recompile first. 20090413 22:56:35< CIA-30> ilor * r34886 /trunk/src/editor2/ (action.cpp action.hpp action_base.hpp map_context.cpp): editor action debugging aid 20090413 22:58:26< silene> fendrin: also, i'm somewhat surprised your "\"" quotes are correctly parsed, i don't remember wesnoth parser knowing about escaping 20090413 22:59:42< fendrin> silene: can I use the << >> quotes whatever context? 20090413 22:59:58< silene> yep 20090413 23:00:35< AI0867> mordante: splitting [option]'s message into three parts still leaves difficulty_descriptions in [campaign] 20090413 23:02:49< mordante> AI0867, yes, but like I said I haven't look at it closely 20090413 23:03:12< mordante> and I want to get rid of this ugly =*& syntax ;-) 20090413 23:04:06< AI0867> semicolon separated MENU_IMG_TXT 20090413 23:04:50< AI0867> as the number of them is variable, it's probably best to introduce a [difficulty] tag or the like 20090413 23:10:30< AnMaster> Shadow_Master, there? 20090413 23:10:37< AnMaster> I have a question about IftU... 20090413 23:11:12< AnMaster> in "An Errand of Hope", there is a coffin at 11,29 which looks special but nothing happens when I move a unit there 20090413 23:11:16< AnMaster> it seems a bit strange 20090413 23:16:37-!- Sapient [n=sapien-x@c-71-204-10-166.hsd1.ga.comcast.net] has joined #wesnoth-dev 20090413 23:16:45< Sapient> 20:19 fendrin: you mean "insert_tag"? yes, it has already been replaced by the content of the actual variable 20090413 23:17:01< Sapient> silene: not true, you can delay variable substitution for inserted tags as well as spawned events 20090413 23:17:30-!- cjhopman_ [n=chris@wesnoth/developer/cjhopman] has quit ["Konversation terminated!"] 20090413 23:17:56< silene> Sapient: i explicitely call get_parsed_config; doesn't that perform variable expansion? 20090413 23:18:08< Sapient> you can use [set_variables] [literal] to set a variable, then [insert_tag] to insert it 20090413 23:18:43< Sapient> you should not be calling get_parsed_config() until a dumb config is actually needed 20090413 23:19:08< silene> Sapient: i need a dumb config 20090413 23:19:57< Sapient> well it all depends what you're doing 20090413 23:20:41< YogiHH> good night everyone 20090413 23:21:05< Sapient> if it is the context of ActionWML which is to be executed later via WML events, then no parsing/evaluation should occur until execution of [insert_tag] 20090413 23:21:27-!- YogiHH [n=chatzill@d051102.adsl.hansenet.de] has left #wesnoth-dev [] 20090413 23:21:40-!- busfahrer [n=busfahre@unixboard/user/busfahrer] has quit ["leaving"] 20090413 23:21:42< Sapient> unless delayed_variable_substitution=false 20090413 23:23:01< silene> Sapient: you seem to be missing a lot of the context of the discussion; we were not talking about wml, we were talking about lua 20090413 23:23:07-!- lizard_r [n=MirandaM@Wbda9.w.pppool.de] has quit ["I'm gone, but the Saurians will last."] 20090413 23:23:21< Sapient> ok, sorry for missing the context 20090413 23:23:32< Crab_> silene, can you help me a bit with lua ? http://wesnoth.pastebin.com/m6ca5d9d9 20090413 23:23:47< mordante> I'm off night 20090413 23:23:59-!- mordante [n=mordante@wesnoth/developer/mordante] has quit ["Leaving"] 20090413 23:24:42< silene> Crab_: you are missing a pair of brackets in cmd_fail 20090413 23:24:53< Sapient> silene: I was contemplating the ability to set custom action tags via WML, but I think it's much more suited to LUA; bravo on that extension 20090413 23:25:08< silene> Crab_: it should be { { "set_variable 20090413 23:25:13< Crab_> thanks! 20090413 23:25:13< silene> Sapient: thanks 20090413 23:25:44< fendrin> silene: it tells my that there is no global eval. Is there a lua eval available? 20090413 23:27:33< AnMaster> hm I can't make music, but I think the underground music need more variations... It is getting a bit monotonous after several underground scenarios with the same music... 20090413 23:27:53< silene> fendrin: function eval(s) assert(loadstring(s))() end, perhaps? 20090413 23:28:01< AnMaster> some variation would be good 20090413 23:28:23< fendrin> silene: I bet that is a security risk, isn't it? 20090413 23:28:29< corn> http://cornmander.com:9090/gold/ 20090413 23:28:36< corn> opinions? 20090413 23:28:42< silene> Crab_: by the way, i don't the difference between the working script and the failing script; did you paste twice the same one? 20090413 23:28:54< corn> currently only 3 bars is working 20090413 23:29:08< Crab_> silene: yes, my error. but you were right - extra pair of bracers made it work. 20090413 23:29:15< silene> fendrin: i really don't think so (but you can never be sure with security issues) 20090413 23:30:19< Sapient> corn: ah, right... was just about to post the Internal Server Error on 10bar 20090413 23:30:49< corn> yeah, I need to generalize the code so it actually works with multiple granularities 20090413 23:32:52< Sapient> well, it seems like it could be a useful statistic... with more granularity that it 20090413 23:33:13< corn> the trouble is that the data is all over the place 20090413 23:33:24< Turuk> so much spam 20090413 23:33:35< Sapient> well, round it up and put it in its place! 20090413 23:33:50< Sapient> especially the "uppity" data 20090413 23:33:52< corn> for example if the gold range is from 1-1000 you would have 1 result for each range 20090413 23:33:55< corn> lol 20090413 23:34:09< corn> so it's a pain to graph that kind of data 20090413 23:34:19< corn> for each value* 20090413 23:34:22< silene> Crab_: the "unpack" bit looks quite clever, does it actually work? 20090413 23:34:25< Ivanovic> corn: yes, it is 20090413 23:34:33< Crab_> silene: yes. 20090413 23:34:44< Ivanovic> corn: that is why part of your project would be to "find a nice way" to group things 20090413 23:34:45< corn> also some results don't make sense, so I just filtered them out 20090413 23:34:53< Ivanovic> something that makes sense somehow 20090413 23:34:56< silene> Crab_: i should make a mental note about it then :-) 20090413 23:34:59< corn> for example a result of 30k gold on exit 20090413 23:35:06< Sapient> debug mode ftw 20090413 23:35:21< Sapient> or hand edit savefile 20090413 23:35:30< Ivanovic> (eg put everything <=0 gold into one block, everything between 0 and starting gold into another, ...) 20090413 23:35:50< corn> Ivanovic: that's a great idea actually 20090413 23:36:05< Ivanovic> you "only" have to find a nicely working way 20090413 23:36:25< Ivanovic> maybe you should talk to content creators (they are mainly in the forums) what they think would help them 20090413 23:37:39< Ivanovic> and yeah, getting data into some "meaningful format" is no trival task and requires some thinking on how to best do it in which situations 20090413 23:37:50< corn> I did that and got redirected here: http://www.wesnoth.org/forum/viewtopic.php?f=12&t=24792 20090413 23:37:54< Ivanovic> ahh, statistics, what a lovely beast... 20090413 23:38:04< Sapient> maybe we could place a checksum into the savegame to detect hand-edited files 20090413 23:38:33< Ivanovic> corn: the forums are a strange place 20090413 23:38:55< corn> Sapient: all they would have to do is recalculate the checksum 20090413 23:38:58< Ivanovic> corn: best is to provide them with some examples what you think and wait for the "ahhh, you can't do it this way, you *have* to do it that way" replies 20090413 23:39:00< Ivanovic> ;) 20090413 23:39:07< Polarina> If anyone's interested in a portable, optimized SHA-256 implementation which I wrote, you can get it here http://codepad.org/uMSS167t 20090413 23:39:20< Sapient> corn: why would they? 20090413 23:39:35< corn> oh 20090413 23:39:41< Sapient> the checksum would just turn off their upload of stats 20090413 23:39:51< corn> if the game just silently doesn't log the file, but lets them use the savegame anyway 20090413 23:39:54< corn> that would work 20090413 23:40:15< Sapient> unless they're deliberately trying to mess up your rows, corn 20090413 23:40:21< corn> har har 20090413 23:40:34-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has left #wesnoth-dev [] 20090413 23:41:24< Ivanovic> some will always mess things up, either intentionally or "by mistake" (what is cheating via debug commands?) 20090413 23:41:55< Sapient> that is "debugging" ;) 20090413 23:42:00< Ivanovic> so some kind of robusness in stats display might make sense (as in "calculating the median", leaving out the top and buttom 10% of results, stuff like this) 20090413 23:43:42< gabm> guys, another general question: in what order (if at all) is the data in [snapshot], [replay_start] and [replay] used when you load a game? 20090413 23:44:39< corn> http://cornmander.com:9090/gold/?granularity=5bar 20090413 23:44:41< corn> works now 20090413 23:44:44< corn> 10bar looks awful though 20090413 23:45:09< gabm> In replays there's only [replay_start] and [replay], but saves have all three, and it get confusing 20090413 23:45:25< Ivanovic> corn: would be boring if things were perfect right from the start, wouldn't it? 20090413 23:45:26< Ivanovic> ;) 20090413 23:45:31< corn> true 20090413 23:45:37< corn> just saying as a matter of fact 20090413 23:45:45< corn> hm 20090413 23:45:51< corn> who is trying to break it with 999999999bar ;) 20090413 23:46:19 * Sapient grins wickedly 20090413 23:46:26< Ivanovic> 100bar is not working at all 20090413 23:46:28< Ivanovic> :( 20090413 23:46:28< corn> it's set up as a switch statement, it doesn't parse the input 20090413 23:46:49< corn> it sets it to 5bar if it doesn't recognize the input 20090413 23:46:54< Polarina> Evil... 20090413 23:47:11< corn> you can do a sql injection though if you modify any of the other values though 20090413 23:47:18< Sapient> whopee 20090413 23:47:21< corn> don't do that though, I don't have a table backup yet 20090413 23:47:31 * Polarina destroys corn. 20090413 23:47:36< Ivanovic> corn: better create on really fast 20090413 23:47:42< Ivanovic> this chan is logged in public... 20090413 23:47:44< Ivanovic> ;) 20090413 23:48:07< gabm> silene: who might know the answer to my question ^^ ? 20090413 23:48:38< Ivanovic> gabm: probably yogihh 20090413 23:48:48< Sapient> the Master of Replays 20090413 23:48:50< Ivanovic> but since it is almost midnight over here, he already went off to bed 20090413 23:49:08< gabm> Ivanovic: yep, too bad, I saw he just left 20090413 23:49:17< corn> gah 20090413 23:49:29< corn> my php install has really tight memory restrictions 20090413 23:49:38< corn> it runs out of memory when trying to do a sql backup from phpmyadmin 20090413 23:50:09< Polarina> corn: What's the name of the database you use? 20090413 23:50:19< corn> polarina 20090413 23:50:20< corn> duh 20090413 23:50:38< Polarina> corn: Use the in-built string escaping in MySQLdb 20090413 23:50:50< Ivanovic> corn: you got shell access? 20090413 23:50:53< corn> yes 20090413 23:50:56-!- Olivier_Fortin [n=chatzill@bas3-montreal19-1279588245.dsl.bell.ca] has joined #wesnoth-dev 20090413 23:51:03< corn> I did a dump now from the cmd line 20090413 23:51:04< corn> its ok 20090413 23:51:05< Ivanovic> corn: with this you can use "mysql-hotcopy" 20090413 23:51:17< Polarina> corn: Use for example this instead: curs.execute("SELECT gold, COUNT(gold) FROM GAMES %s GROUP BY gold", (filters, )) 20090413 23:51:19< Ivanovic> works rather nicely for our wesnoth forum/wiki/whatever db 20090413 23:51:39< corn> Polarina: I am going to switch it shortly 20090413 23:51:43< Polarina> corn: That'll automatically escape things. 20090413 23:51:43< Ivanovic> Polarina: not needed at all with mysql-hotcopy (only usable with shell access) 20090413 23:51:47< corn> right now I have something rather hackish 20090413 23:52:33-!- Olivier_Fortin [n=chatzill@bas3-montreal19-1279588245.dsl.bell.ca] has quit [Client Quit] 20090413 23:53:13< Ivanovic> corn: trust me, mysql-hotcopy feels even more hackish, but it works perfectly (to restore you just copy over the folder and that's it...) 20090413 23:53:22-!- zookeeper [n=l@wesnoth/developer/zookeeper] has quit [] 20090413 23:53:28< corn> ok 20090413 23:56:56< corn> I wonder what the time and end_time rows are in the sql dump that sirp provided 20090413 23:57:06-!- stikonas [n=stikonas@wesnoth/translator/stikonas] has quit [Read error: 110 (Connection timed out)] 20090413 23:57:17< corn> I want to use them to create a graph showing how long it takes to finish a scenario 20090413 23:57:30< corn> but I am not sure what they mean 20090413 23:57:37< corn> gonna look in src code 20090413 23:57:56< CIA-30> esr * r34887 /trunk/data/campaigns/Delfadors_Memoirs/ (5 files in 3 dirs): 20090413 23:57:56< CIA-30> Regrade DM as Intermediate on advice from fendrin (my wife has made similar 20090413 23:57:56< CIA-30> noises). Minor text tweaks suggested by zookeeper. 20090413 23:58:10-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090413 23:58:10< Ivanovic> okay, time for me to head off to bed and get some sleep, n8 20090413 23:58:15< corn> cya 20090413 23:58:56-!- silene [n=plouf@wesnoth/developer/silene] has quit [Read error: 110 (Connection timed out)] --- Log closed Tue Apr 14 00:00:49 2009