--- Log opened Sat Apr 11 00:00:06 2009 20090411 00:01:32< Gnutoo> mmm....mordante isn't here... 20090411 00:01:40< Gnutoo> I've the full stacktrace... 20090411 00:02:03< Ivanovic> Gnutoo: attach it it a bugreport 20090411 00:02:10< Ivanovic> or upload it somewhere and link it 20090411 00:02:12< Gnutoo> it's boost related 20090411 00:02:16< loonycyborg> Gnutoo: Still post it. He reads the logs. 20090411 00:02:16< Ivanovic> mordange is known for reading the logs 20090411 00:02:27< Ivanovic> (link it in here that is) 20090411 00:03:06< Gnutoo> http://rafb.net/p/tc7oK914.html 20090411 00:03:15< Gnutoo> I'll post it in a permanant location too 20090411 00:03:43< Ivanovic> depending on the size wesnoth.pastebin.com should be enough 20090411 00:03:54-!- noy [n=Noy@70.70.128.133] has joined #wesnoth-dev 20090411 00:04:09< Ivanovic> setting it to a month there should be fine, since i is likely that mordante will see your link tomorrow/in some hours 20090411 00:05:51< Gnutoo> http://gnutoo.homelinux.org/wesnoth/backtrace_0001.txt 20090411 00:06:40-!- res|laptop [n=res@pdpc/supporter/student/res2k] has joined #wesnoth-dev 20090411 00:07:03< Gnutoo> I've also a core file 20090411 00:07:13< Gnutoo> but to be usefull it also need: 20090411 00:07:25< Gnutoo> *a gdb cross-compiled for arm(just a configure option) 20090411 00:07:34< Gnutoo> *all the binaries and their symbols 20090411 00:07:55< Gnutoo> and my connection is slow... 20090411 00:07:57< Gnutoo> in upload 20090411 00:10:16-!- Sirp [n=me@wesnoth/developer/dave] has joined #wesnoth-dev 20090411 00:11:06-!- shadowmaster [n=ignacio@wesnoth/developer/shadowmaster] has joined #wesnoth-dev 20090411 00:12:21-!- shadowmaster [n=ignacio@wesnoth/developer/shadowmaster] has quit [Client Quit] 20090411 00:26:44< Crab_> Dragonking: around ? 20090411 00:26:56< Dragonking> Crab_ Yes? 20090411 00:27:07< Shadow_Master> a dragonslayer slew him, don't trust that impostor! 20090411 00:27:12< Shadow_Master> >:( 20090411 00:27:41< Crab_> Dragonking: what's better: get_side(), get_info(), get_ai_parameters(), get_current_team() ... or, side(), info(), ai_parameters(), current_team() ? 20090411 00:28:22< Dragonking> C++ or FAI? 20090411 00:28:26< Crab_> C++ 20090411 00:28:28< Crab_> [ now we have get_info() and current_team() ] 20090411 00:28:33< Dragonking> Let's stick to get_... maybe? 20090411 00:28:36< Crab_> ok 20090411 00:30:49< Crab_> Dragonking: curious question (just curious, for now): why class ai_interface extends public game_logic::formula_callable ? 20090411 00:31:01-!- alink [n=alink@wesnoth/developer/alink] has joined #wesnoth-dev 20090411 00:31:22< Shadow_Master> my summoning worked!!1 20090411 00:31:32< Shadow_Master> mwaahahahahaha! >:d 20090411 00:32:07< Shadow_Master> alink: do you know how the image cache works? if I request a unit.png~RC(magenta>1), is the original unit.png cached, or is the RC'd result cached too? 20090411 00:32:22< alink> hehe pure luck, i didn't even saw your sumoning 20090411 00:32:48< alink> IIRC both are cached 20090411 00:32:58< Shadow_Master> alink: how can I test? 20090411 00:33:02< Dragonking> Crab_: ai.cpp:2347 20090411 00:33:13-!- happygrue [n=George@wesnoth/developer/wintermute] has joined #wesnoth-dev 20090411 00:33:58< Shadow_Master> alink: jetryl and I want to use "image sheets" in wesnoth, which is possible by the ~CROP image functor (which I implemented long ago) 20090411 00:33:58< Crab_> Dragonking: omg:) thanks ) 20090411 00:34:10< Shadow_Master> alink: but we are concerned with the possible render-time performance impact this may have 20090411 00:34:10< alink> Shadow_Master: for unit.png, maybe erase the file after caching ? 20090411 00:34:10< Dragonking> :) 20090411 00:34:32< alink> Shadow_Master: + the memory cost 20090411 00:34:59< alink> using crop will force you to load all anim of an unit, even if you only use the base frame 20090411 00:36:13< Shadow_Master> alink: aren't the current animation frame files all completely cached once units starts playing their animations, anyway? 20090411 00:36:29< Shadow_Master> *start 20090411 00:37:08< alink> Shadow_Master: no AFAIK, it's loaded on demand 20090411 00:37:32< alink> using debug output will allow to easily test that 20090411 00:37:38< Shadow_Master> on demand : nonce those animations are triggerred 20090411 00:37:41< Shadow_Master> *once 20090411 00:37:57< alink> yes 20090411 00:38:48< alink> and debug output in the ~RC part will allow to verify that ~RC is cached too (which i am relatively sure that it is) 20090411 00:39:45< alink> mmmh but using CROP for the different frame of *one* anim make sense 20090411 00:41:12< alink> wait, there is various possible way to implement this CROP thing 20090411 00:42:56< alink> the current use of cut_surface is a bit expensive per-pixel operation and need to have in memory both the whole big multi-frames image and each cutted frame 20090411 00:43:55< alink> but we could also use only the big image and use blit+clipping, which is fast and avoid the cutting + memory used for result 20090411 00:44:59< alink> but will need new special flag+coord for the image, and special care for the interaction with other image functions 20090411 00:47:37< alink> Shadow_Master: I am curious, what is the advantage of "image sheets" for anims ? 20090411 00:47:57< alink> (for the artist i mean) 20090411 00:48:03< Ivanovic> alink: what is the current status of your optimizations and porting them to 1.6? 20090411 00:48:17< Shadow_Master> alink: according to jetryl, image size 20090411 00:48:34< Shadow_Master> alink: I'm guessing that it also makes it easier to "edit the whole thing" 20090411 00:49:05< alink> Ivanovic: I mainly let boucman polished the framerate optimization and commit the stuff 20090411 00:49:10-!- cjhopman [n=chris@wesnoth/developer/cjhopman] has joined #wesnoth-dev 20090411 00:49:41< Sirp> hi cjhopman 20090411 00:49:45< cjhopman> hey sirp 20090411 00:49:46< alink> Shadow_Master: image size? as editing on a big image instead of multiples little ones 20090411 00:51:32< Shadow_Master> alink: from his work on frogatto, Jetryl claims that image sheets can be lighter in file size that "groups of small PNG files" 20090411 00:51:40< Shadow_Master> alink: perhaps Sirp can confirm, he also works on frogatto :P 20090411 00:51:42-!- Gnutoo [n=gnutoo@host155-29-dynamic.17-79-r.retail.telecomitalia.it] has quit ["Leaving"] 20090411 00:52:51< alink> Shadow_Master: at least on disk usage, units image seems very cheap compared to other stuff (like portraits ..) 20090411 00:52:57-!- 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!"] 20090411 00:53:27< alink> for memory, IIRC frogatto use Open-GL which may change things 20090411 00:53:37< Shadow_Master> it doesn't cache stuff AFAIK 20090411 00:55:57< alink> i am rather sceptical about a memory gain on SDL surfaces between the sheet and multiple singles frames 20090411 00:56:30< Shadow_Master> yeah, and I'm not good at benchmarking 20090411 00:56:35< alink> plus cutting and manipulating these big image is probably less good for optimal caching 20090411 00:56:47< boucman> hey all, I'm back 20090411 00:56:52< boucman> cjhopman: around ? 20090411 00:56:53< Crab_> hi boucman 20090411 00:56:57< alink> Shadow_Master: well, I mean it's the same amount of pixels right ? 20090411 00:57:50< boucman> alink: problem with the pixel detection code ? 20090411 00:57:53< alink> boucman: Ivanovic just asked me about the in_hex optimization. I admit that i didn't had much wesnoth time recently and thus I am not aware of the state of things 20090411 00:57:57< Ivanovic> Sirp: you got access to some google analytics stuff about website usage, correct? 20090411 00:57:59< alink> lol 20090411 00:58:13< Sirp> Ivanovic: yes, why? 20090411 00:58:19< Ivanovic> Sirp: that is: Shadow_Master asked about "when are user number lowest" some days ago 20090411 00:58:34< Ivanovic> since then he would like to do some "longer taking" forum maintainance 20090411 00:58:40-!- ryochan7 [n=ryochan7@173.9.238.161] has joined #wesnoth-dev 20090411 00:58:53< boucman> Ivanovic: it has been in trunk for some time with no visible glitch, i'm pretty confident we can backport, unless something unexpected come in 20090411 00:59:10< Sirp> Ivanovic: I am happy to give access to the GA stats to anyone who wants them...just have to send me their Google address.... 20090411 00:59:18-!- zookeeper [n=l@wesnoth/developer/zookeeper] has quit [] 20090411 00:59:18< Ivanovic> boucman: so look at the topic and be shocked about the soon planned release of 1.6.1 20090411 00:59:19< Ivanovic> ;) 20090411 00:59:21< boucman> however it took multiple commits to get it right so i'd rather do the backport myself (tomorow maybe) 20090411 00:59:30< boucman> should be ok 20090411 00:59:35< cjhopman> boucman: yes 20090411 01:00:23< boucman> cjhopman: I looked at your string usage data you posted 20090411 01:00:49< boucman> the good news is that the five top users are animation related, which is an area of WML where we can easily drop the WML strucutre once loaded 20090411 01:01:06< boucman> you just have to tell me what is the magic call to release the chunk of WML tree :) 20090411 01:01:33< alink> Shadow_Master: about the "easier to edit the whole thing" part, maybe just an imagemagick script joining and cutting the images when working on it ? 20090411 01:02:09< Ivanovic> Sirp: i think just a rough estimate is required regarding when it is probably best to take the forums down 20090411 01:02:17< Ivanovic> my guess was sometime mid july 20090411 01:02:33< Shadow_Master> alink: it's just my personal suspicion. Ivanovic is more concerned about the file size 20090411 01:02:38< Shadow_Master> alink: I mean Jetryl not Ivanovic 20090411 01:02:45< Ivanovic> file *what*? 20090411 01:02:58< Shadow_Master> read above 20090411 01:03:00< Ivanovic> hey, i am the one uploading the tarballs, i am somehow able to handle those 200MB 20090411 01:03:03< Ivanovic> ;) 20090411 01:03:15< noy> Ivanovic: we need to check our own server usage for last year 20090411 01:03:23< noy> and extrapolate to see when is best. 20090411 01:03:29< noy> My guess is the first week of July 20090411 01:06:07-!- oak_ [n=oakus@252.108.broadband12.iol.cz] has quit [Read error: 110 (Connection timed out)] 20090411 01:06:21< alink> Shadow_Master: mmh if it's mainly for file-size on disk, then indeed the total png size will probably be smaller (only one header, plus maybe the algo can compact more a repetition of the same frame with only little variants) 20090411 01:07:29< Ivanovic> alink: the size on disc is a lot smaller 20090411 01:07:37< alink> but again unit images are cheap, compared to the total of all images 20090411 01:07:41< cjhopman> boucman: yeah, it was really interesting to see what is actually loaded 20090411 01:07:44< Ivanovic> alink: just create a tarball of your install folder and compare it to "real size" 20090411 01:07:44-!- grzywacz [n=grzywacz@wesnoth/developer/grzywacz] has quit [Remote closed the connection] 20090411 01:07:57< Ivanovic> due to blocksize it will make *at least* 50MB difference IIRC 20090411 01:08:19< boucman> cjhopman: it's really late here and I'm going to leave soo, we'll discuss it tomorow, but there should be some low hanging fruits in that area 20090411 01:08:39< cjhopman> boucman: ok, sounds good 20090411 01:08:50< cjhopman> though tomorrow i have to practice for icpc finals 20090411 01:09:09< boucman> cjhopman: later then... 20090411 01:09:12< alink> Ivanovic: we are comparing the size of the png of a bug "sprite sheet" and a equivalent set of small individual sprites (png too) 20090411 01:09:15< cjhopman> boucman: later 20090411 01:09:18< alink> s/bug/big 20090411 01:10:23< alink> Ivanovic: but good point the tarball probably exploit the similarity between these individual sprites files 20090411 01:10:39< alink> only help download time though 20090411 01:11:08< Ivanovic> alink: you said the main difference comes from the some bytes saved due to the header 20090411 01:11:25< Ivanovic> i say the main difference comes from the blocksize since an image with 1kb will still use the 4kb block size 20090411 01:11:39< Ivanovic> so a "spritesheet" consisting of 10 1kb images would use 12kb 20090411 01:11:51< Ivanovic> those 10 single images would use 40kb 20090411 01:12:05< Ivanovic> (pure size on drive, not in ram) 20090411 01:12:32< alink> ah yes blocksize, indeed make sense, I completly forgot that 20090411 01:12:53< Ivanovic> and in the tarball this is not relevant 20090411 01:13:17< Ivanovic> yeah, my example was extreme, but it comes down to this with *many* tiny images compared to "smaller number" of larger images 20090411 01:14:38< Shadow_Master> alink: in summary, I'll be caching both the "big image" and the cropped part when I request units.png~CROP(....) for the first time? 20090411 01:15:08< alink> so ok, it may help to win some kb on disk, but still seems peanuts compared to the work 20090411 01:15:28< alink> Shadow_Master: yes I believe so, at least other image functions worked like that before 20090411 01:16:24< alink> Shadow_Master: in fact, we already do something similar with terrain image, and i wanted to optimize that, possibly halving the cost of terrain images in cache 20090411 01:17:16< alink> because when building the map we can predict what images will be needed, so we could do all the needed cropping and discard the big base image after that 20090411 01:17:39< alink> but such system would be less efficient for units 20090411 01:19:04< Shadow_Master> sounds like the image cache may need some reworking? 20090411 01:21:38< alink> probably, but using or not this image sheet idea will change what is the optimal way 20090411 01:21:51-!- BenUrban [n=benurban@pool-71-178-129-233.washdc.east.verizon.net] has joined #wesnoth-dev 20090411 01:22:11< alink> IMHO minimizing memory-footprint and rendering-time is the priority 20090411 01:22:23< Shadow_Master> yeah 20090411 01:23:07< alink> and let png and gz optimize hard-disk usage 20090411 01:23:07< Shadow_Master> alink: there's also a limit on simultaneous cached locators IIRC? 20090411 01:23:53< Shadow_Master> * hard limit 20090411 01:24:04< alink> Shadow_Master: initially no (I think) but IIRC boucman added a LRU system there, so maybe there is one now 20090411 01:24:12< Shadow_Master> yeah, there's a LRU 20090411 01:24:45< alink> Shadow_Master: and of course any STL container is limited by user's memory ;) 20090411 01:24:54< boucman> alink: discussing spritesheets ? 20090411 01:24:58< Shadow_Master> yup 20090411 01:25:28< alink> boucman: yeah, but I still don't see the main point 20090411 01:25:29< Shadow_Master> I and jetrel where just talking about the possibility of replacing the many-stand-alone-frame-PNGs system with spritesheets 20090411 01:25:33< boucman> fyi when we asked jetryl if he would we interested, he replied that he hated them mightily 20090411 01:25:42< Shadow_Master> boucman: when was that? 20090411 01:25:51< Dragonking> boucman: Been thinking... my idea is designed only for (so far) attack and support CM 20090411 01:25:51< boucman> early 1.5 IIRC 20090411 01:26:05< Shadow_Master> boucman: um, he may have changed his mind with frogatto from what I've been talking with him 20090411 01:26:18< boucman> Shadow_Master: ok, just mentionning 20090411 01:26:39< boucman> Dragonking: it's 1:30 AM here, so if it's fine with you i'd rather discuss that tomorow :) 20090411 01:26:53< Dragonking> It is 1.30 here too ;p 20090411 01:27:06 * Shadow_Master gives boucman a special banana 20090411 01:27:19< Shadow_Master> hehe 20090411 01:27:23< loonycyborg> It's 3:30 here :P 20090411 01:27:34< Crab_> and 2:30 here ) 20090411 01:27:34< boucman> Dragonking: so, do you intend to use my syntax, your syntax, another syntax ? 20090411 01:27:51< Dragonking> boucman: I was thinking about: making for attack filter_me and filter_target and for support filter_me and filter_ally 20090411 01:27:55< Shadow_Master> boucman: confirmed, he changed his mind since then :) 20090411 01:27:58< alink> Shadow_Master: btw did he realize that using a sprite sheet will need to add some sort of WML file describing how to cut and name the individual sprites ? 20090411 01:28:02< alink> seems annoying 20090411 01:28:03< Ivanovic> it is only 1:28 over here... 20090411 01:28:07< Shadow_Master> :P 20090411 01:28:17-!- loonycyborg [n=sergey@wesnoth/developer/loonycyborg] has quit ["Zzzzzzzzzzzzzzzzzzzzzzzzzz"] 20090411 01:28:21< Shadow_Master> alink: that can be solved via macros IMO 20090411 01:28:43< boucman> Dragonking: ok, why not, as long as it's a syntax that can be extended later for other types 20090411 01:28:45< Shadow_Master> and by having a fixed sritesheet convention 20090411 01:28:58-!- loonybot [n=loonybot@wesnoth/bot/loonybot] has quit [Remote closed the connection] 20090411 01:29:03< Dragonking> boucman: I think it can 20090411 01:29:05< Dragonking> :) 20090411 01:29:10< boucman> Dragonking: you might want to add a filter_me for type move, for the sake of uniformity 20090411 01:29:13< alink> Shadow_Master: well only if all unit have the same anim with same size etc... 20090411 01:29:28< alink> at least if you want to keep such macro KISS 20090411 01:29:35< boucman> (if we do a library of unit filters, for instance, it will be easier if it can be used for all types of formulas) 20090411 01:29:41< Dragonking> boucman: Well, not much point of doing that, since that would only duplicate what eval is doing 20090411 01:29:56 * alink image a macro mess in units image wml like we already have for terrain wml :-/ 20090411 01:30:03< boucman> I know, that's why I said it was for the sake of unitformity 20090411 01:30:03< alink> s/image/imagine 20090411 01:30:09< Shadow_Master> alink: or laternatively, take IPF to a greater level 20090411 01:30:16< Shadow_Master> * IPF syntax 20090411 01:30:25< Shadow_Master> (not sure how to do that, I suck at creating syntaxes) 20090411 01:30:44< boucman> ok, good night all see you tomorow 20090411 01:30:47< Dragonking> boucman: In case of move, it will only drop performance ;) 20090411 01:30:54 * alink reads http://www.acronymfinder.com/IPF.html 20090411 01:30:58< Dragonking> night boucman 20090411 01:31:04< boucman> no, not if there is no formula 20090411 01:31:05< boucman> bye 20090411 01:31:07< alink> gn boucman 20090411 01:31:10-!- boucman [n=rosen@wesnoth/developer/boucman] has quit [Remote closed the connection] 20090411 01:31:11< Dragonking> True 20090411 01:33:54-!- ikarius [n=ross@smtp.gridironsystems.com] has quit [] 20090411 01:34:07-!- molgrum [n=molgrum@c83-249-53-163.bredband.comhem.se] has quit ["Lämnar"] 20090411 01:35:38< Ivanovic> time for some sleep, n8 20090411 01:36:01< alink> good night Ivanovic 20090411 01:37:47-!- Rrenys [n=rrenys@81-20-159-197.levira.ee] has quit [Read error: 104 (Connection reset by peer)] 20090411 01:38:24< alink> du data/core/images/units --exclude *.svn* -a gives 10932 kb 20090411 01:38:31< alink> is it a correct estimation ? 20090411 01:38:49-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 01:40:10< alink> and 51832 for data/core/images 20090411 01:40:37< alink> mmmh 20% is a bit more than i expected 20090411 01:40:51< Shadow_Master> 10932 KB? 20090411 01:41:03< Shadow_Master> ah, 11 MB. I had read it as bytes 20090411 01:41:31< alink> yes sorry kilo-bytes and using the blocksize thing 20090411 01:41:51< alink> well the default =4 20090411 01:42:42< Shadow_Master> what are you doing with a "4" instead of mouth? 20090411 01:42:50< Shadow_Master> (was that a smileY?) 20090411 01:42:56< alink> =) 20090411 01:43:10< alink> the default of du is equal to 4 20090411 01:43:37< alink> here 20090411 01:44:12< alink> seems to translate to 4438562 bytes 20090411 01:45:11< alink> so I read/use that correctly there seems to be 50% of waste due to the small size of these files 20090411 01:45:45< alink> but pfff 5MB, that's barely one mp3 20090411 01:45:59-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has quit [Success] 20090411 01:52:22< CIA-30> crab * r34705 /trunk/src/ (16 files): 20090411 01:52:22< CIA-30> AI Refactoring. Extracted 'team number' and 'master' from ai_interface::info. 20090411 01:52:22< CIA-30> This makes ai_interface::info ai-independent and allows to push it out of ai. 20090411 01:52:43< Crab_> Dragonking: ^^ first part 20090411 01:54:29< Dragonking> Crab_: Great! :) 20090411 01:58:27< Dragonking> good night everyone 20090411 01:58:36< Crab_> night, Dragonking 20090411 01:59:05-!- Chusslove [n=caslav@brsg-d9bee5a1.pool.mediaWays.net] has quit [Read error: 110 (Connection timed out)] 20090411 01:59:26-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 02:00:36-!- crimson_p [n=irchon@64.201.60.216] has joined #wesnoth-dev 20090411 02:02:46-!- crimson_p [n=irchon@64.201.60.216] has quit [Remote closed the connection] 20090411 02:04:27-!- noy [n=Noy@wesnoth/developer/noy] has quit [Success] 20090411 02:07:04-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 110 (Connection timed out)] 20090411 02:21:57-!- Tesafilmchen [n=tesa__@p5B27796C.dip.t-dialin.net] has quit ["Verlassend"] 20090411 02:23:32< Shadow_Master> First, rewinding head to replay your work on top of it... 20090411 02:23:32< Shadow_Master> could not detach HEAD 20090411 02:23:33< Shadow_Master> rebase refs/remotes/trunk: command returned error: 1 20090411 02:23:36< Shadow_Master> > yelp! 20090411 02:24:03< Shadow_Master> anyone knows what this may mean? AI0867 ? 20090411 02:24:12< Shadow_Master> I got it right after running git svn rebase on my wesnoth dir 20090411 02:34:03-!- noy [n=Noy@S010600131096d97f.vw.shawcable.net] has joined #wesnoth-dev 20090411 02:34:38< Shadow_Master> Soliton probsbably would know if he was here. 20090411 02:34:47< Shadow_Master> (gone away for a week - missed that) 20090411 02:35:04-!- Lord_Aether [n=castle@206.170.190.49] has joined #wesnoth-dev 20090411 02:36:00< Crab_> Shadow_Master: not something like this ? http://blog.choonkeat.com/weblog/2008/11/git-svn-rebase-could-not-detach-head.html 20090411 02:37:04< Shadow_Master> waa 20090411 02:37:51< Shadow_Master> may be. which of these may have been added latelY? http://wesnoth.pastebin.com/d6758558 20090411 02:39:20< Shadow_Master> error: Untracked working tree file 'src/revision.hpp' would be overwritten by merge. 20090411 02:39:30< Shadow_Master> why is it in the repo? o.O 20090411 02:40:15< Shadow_Master> Crab_: nuke it. it's your fault 20090411 02:40:28< Shadow_Master> (revision 34705) 20090411 02:40:33< Shadow_Master> ;) 20090411 02:40:48< Crab_> Shadow_Master: yes, seems so. delete it, then. or let me do it :) 20090411 02:41:11-!- Espreon [n=espreon@wesnoth/developer/espreon] has joined #wesnoth-dev 20090411 02:41:35< alink> revision.hpp is in the ignore-list right ? 20090411 02:41:41< Shadow_Master> IIRC yes 20090411 02:42:29< CIA-30> shadowmaster * r34706 /trunk/src/revision.hpp: Crab introduced a revision.hpp in r34705 - revert that part 20090411 02:42:49< Shadow_Master> Crab_: thanks for the link, and for breaking svn. 20090411 02:42:55< Shadow_Master> you've taught me something new accidentally 20090411 02:43:12< Crab_> Shadow_Master: thanks for fixing. I'll recheck my git ignore list, then ) 20090411 02:47:45-!- noy [n=Noy@wesnoth/developer/noy] has quit [Read error: 60 (Operation timed out)] 20090411 02:48:56-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 104 (Connection reset by peer)] 20090411 02:49:12-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 02:50:07-!- noy [n=Noy@S010600131096d97f.vw.shawcable.net] has joined #wesnoth-dev 20090411 02:50:56< alink> mmh ' svn propget svn::ignore . ' gives nothing here. I think that it must not be so. Am i correct ? 20090411 02:51:31< Shadow_Master> alink: svn propget svn:ignore 20090411 02:51:35< Shadow_Master> . 20090411 02:52:32< alink> ah ok, stupid me 20090411 02:52:55< alink> no if fact, stupid auto-completion 20090411 02:53:49< alink> (which added the first ':' without me noticing it, which in fact was nice, so stupid me) 20090411 02:55:47-!- Shadow_Master is now known as dead_pipe_10 20090411 02:56:30-!- noy [n=Noy@wesnoth/developer/noy] has quit [Read error: 104 (Connection reset by peer)] 20090411 02:56:32-!- noy_ [n=Noy@S010600131096d97f.vw.shawcable.net] has joined #wesnoth-dev 20090411 02:58:14-!- dead_pipe_10 is now known as dead_pipe 20090411 03:00:23-!- Blueblaze [n=nick@c-98-199-143-139.hsd1.tx.comcast.net] has quit [Connection timed out] 20090411 03:00:42-!- dead_pipe is now known as Shadow_Master 20090411 03:07:22-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 60 (Operation timed out)] 20090411 03:11:32< Crab_> night ) 20090411 03:11:39-!- Crab_ [n=Crab_@wesnoth/developer/crab] has quit ["Leaving."] 20090411 03:13:59-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 03:14:30-!- noy_ [n=Noy@S010600131096d97f.vw.shawcable.net] has quit [Read error: 104 (Connection reset by peer)] 20090411 03:16:34< Espreon> Shadow_Master: I have a question about AtS's epilogue. 20090411 03:16:46< Shadow_Master> #wesnoth-umc-dev please 20090411 03:16:56-!- |Andylee| [n=kvirc@188-23-0-147.adsl.highway.telekom.at] has joined #wesnoth-dev 20090411 03:16:56< Espreon> Whoops. Wrong channel... 20090411 03:17:20-!- noy [n=Noy@S010600131096d97f.vw.shawcable.net] has joined #wesnoth-dev 20090411 03:19:22-!- Polarina [n=polarina@wesnoth/translator/Polarina] has quit [Remote closed the connection] 20090411 03:21:51-!- noy_ [n=Noy@S010600131096d97f.vw.shawcable.net] has joined #wesnoth-dev 20090411 03:24:50-!- noy [n=Noy@wesnoth/developer/noy] has quit [Connection reset by peer] 20090411 03:24:56-!- Andylee [n=kvirc@188-23-9-196.adsl.highway.telekom.at] has quit [Read error: 60 (Operation timed out)] 20090411 03:26:14-!- gabm [n=Gabriel@72.0.215.2] has left #wesnoth-dev [] 20090411 03:27:00-!- gabm [n=Gabriel@72.0.215.2] has joined #wesnoth-dev 20090411 03:31:00-!- [Relic] [n=[Relic]@adsl-76-229-202-137.dsl.milwwi.sbcglobal.net] has joined #wesnoth-dev 20090411 03:32:01< [Relic]> Hello :) 20090411 03:33:22-!- noy_ [n=Noy@S010600131096d97f.vw.shawcable.net] has quit [Read error: 104 (Connection reset by peer)] 20090411 03:37:41< alink> cool, seems that i can manage to make an 1.6.1 host fixes the faction column UI bug in 1.6.0 clients 20090411 03:38:08-!- Lord_Aether [n=castle@206.170.190.49] has quit [] 20090411 03:38:35-!- BenUrban [n=benurban@unaffiliated/benurban] has quit ["Power failu"] 20090411 03:38:36< alink> i mean I think it's nice to see your UI improves just because you are playing against someone who have an newer version 20090411 03:40:01< alink> mmh OTOH, if the host is 1.6.0, then 1.6.1 clients will still have the bug, which is less nice 20090411 03:40:52< alink> not sure that i can do something about that, 1.6.0 doesn't seems to send the info needed 20090411 03:44:39-!- Shadow_Master is now known as pipemonster 20090411 03:46:21-!- pipemonster is now known as dev_zero 20090411 03:48:50-!- dev_zero is now known as Shadow_Master 20090411 03:48:58-!- Gnutoo [n=gnutoo@host155-29-dynamic.17-79-r.retail.telecomitalia.it] has joined #wesnoth-dev 20090411 03:49:28< alink> So, 1.6.0 host will be 'unfair' by hiding the faction column to his clients (1.6.0 or 1.6.1) which may push an evil player to keep it. But otoh, others clients may want to avoid 1.6.0 host because of this. 20090411 03:50:24< alink> well, maybe not really big deal, because the leader type (if not random) generally indicate the faction type 20090411 03:50:39-!- noy [n=Noy@S010600131096d97f.vw.shawcable.net] has joined #wesnoth-dev 20090411 03:52:58< alink> anyways, I need more tests and checks before commit this (even if it's only a 4 lines changes), I will continue that tomorrow 20090411 03:54:11< alink> i am speaking about something like that : http://wesnoth.pastebin.com/m61933fa0 20090411 03:54:47< alink> for bug #13243 https://gna.org/bugs/?13243 20090411 03:54:52-!- Shadow_Master is now known as broken_pipe 20090411 03:56:01-!- broken_pipe is now known as Shadow_Master 20090411 03:56:40< alink> good night 20090411 03:56:44-!- alink [n=alink@wesnoth/developer/alink] has quit [Remote closed the connection] 20090411 03:59:31-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 104 (Connection reset by peer)] 20090411 03:59:41-!- Sapient [n=sapien-x@c-71-204-10-166.hsd1.ga.comcast.net] has joined #wesnoth-dev 20090411 03:59:45-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 03:59:47< Sapient> yo 20090411 04:00:05< Sapient> esr: looking for me? 20090411 04:06:23-!- BenUrban [n=benurban@c-68-49-10-243.hsd1.md.comcast.net] has joined #wesnoth-dev 20090411 04:08:05-!- Espreon [n=espreon@wesnoth/developer/espreon] has quit ["...z"] 20090411 04:08:46-!- Espreon [n=espreon@wesnoth/developer/espreon] has joined #wesnoth-dev 20090411 04:17:43-!- noy [n=Noy@wesnoth/developer/noy] has quit [Connection timed out] 20090411 04:23:13-!- noy [n=Noy@d75-157-52-251.bchsia.telus.net] has joined #wesnoth-dev 20090411 04:24:09< Shadow_Master> in tstring.cpp: 20090411 04:24:10< Shadow_Master> /usr/include/c++/4.3/bits/ostream_insert.h: In function ‘std::basic_ostream<_CharT, _Traits>& std::__ostream_insert(std::basic_ostream<_CharT, _Traits>&, const _CharT*, std::streamsize) [with _CharT = char, _Traits = std::char_traits]’: 20090411 04:24:23< Shadow_Master> everything goes to hell afterwards. So much for reporting errors with template instantiations 20090411 04:24:39< cjhopman> yeah 20090411 04:24:46< cjhopman> log.hpp should #include 20090411 04:24:54< Shadow_Master> who removed it? 20090411 04:25:01< cjhopman> well.. log.hpp doesn't need it 20090411 04:25:07< cjhopman> mordante did 20090411 04:25:10< Shadow_Master> mordante... UGH. 20090411 04:25:35< cjhopman> but to use logging you need it included 20090411 04:25:38 * Sapient sherpens the pitchfork and hands it to Shadow_Master 20090411 04:25:46< cjhopman> so i think including log.hpp should pull in iostream too 20090411 04:26:03< Shadow_Master> Sapient: thanks 20090411 04:26:19< Shadow_Master> cjhopman: I stumbled upon a similar issue when writing a fork of it 20090411 04:26:41< Shadow_Master> I want to know what is mordante's criteria for deciding upon "useless" stuff 20090411 04:27:31-!- csaunders [n=christop@bas10-montrealak-1128591830.dsl.bell.ca] has joined #wesnoth-dev 20090411 04:28:18< CIA-30> shadowmaster * r34707 /trunk/src/log.hpp: 20090411 04:28:18< CIA-30> Revert part of r34702, namely do not remove #include from 20090411 04:28:18< CIA-30> log.hpp. We *need it* unless we want to manually include it on every 20090411 04:28:18< CIA-30> place log.hpp is included and its facilities used. 20090411 04:28:47< Shadow_Master> really. 20090411 04:30:22< Sapient> Shadow_Master: template-related compile errors can be much improved when "concepts" are part of the language in the next C++ standard 20090411 04:30:36< Shadow_Master> yeah, I've read some of that stuff 20090411 04:36:22-!- BenUrban [n=benurban@unaffiliated/benurban] has quit [Read error: 104 (Connection reset by peer)] 20090411 04:38:09-!- BenUrban [n=benurban@c-68-49-10-243.hsd1.md.comcast.net] has joined #wesnoth-dev 20090411 04:42:28-!- BenUrban [n=benurban@unaffiliated/benurban] has quit [Read error: 104 (Connection reset by peer)] 20090411 04:47:29-!- BenUrban [n=benurban@c-68-49-10-243.hsd1.md.comcast.net] has joined #wesnoth-dev 20090411 04:48:42-!- Ivanovic_ [n=ivanovic@wesnoth/developer/ivanovic] has joined #wesnoth-dev 20090411 04:48:55-!- grantw1 [n=Zenneth@westquad-147025.reshall.umich.edu] has joined #wesnoth-dev 20090411 04:49:16-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 104 (Connection reset by peer)] 20090411 04:49:26< grantw1> Hey guys, I was just wondering how the summer of code stuff is going 20090411 04:49:32-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 04:51:05< Sapient> check back monday ;) 20090411 04:54:58-!- Gnutoo [n=gnutoo@host155-29-dynamic.17-79-r.retail.telecomitalia.it] has quit [Read error: 113 (No route to host)] 20090411 04:58:37-!- Sapient [n=sapien-x@wesnoth/developer/sapient] has quit [Read error: 113 (No route to host)] 20090411 05:00:33-!- Sapient [n=sapien-x@c-71-204-10-166.hsd1.ga.comcast.net] has joined #wesnoth-dev 20090411 05:04:14-!- Ivanovic [n=ivanovic@wesnoth/developer/ivanovic] has quit [Read error: 110 (Connection timed out)] 20090411 05:04:40-!- Ivanovic_ is now known as Ivanovic 20090411 05:09:27-!- happygrue [n=George@wesnoth/developer/wintermute] has quit [Read error: 110 (Connection timed out)] 20090411 05:14:21< grantw1> okay cool thanks 20090411 05:28:58-!- csaunders [n=christop@bas10-montrealak-1128591830.dsl.bell.ca] has quit ["[BX] Wouldn't it be great if the dog could walk itself?"] 20090411 05:32:36-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 60 (Operation timed out)] 20090411 05:33:51-!- voris [n=voris@c-24-16-107-149.hsd1.wa.comcast.net] has quit [Remote closed the connection] 20090411 05:38:06-!- res|laptop [n=res@pdpc/supporter/student/res2k] has quit [Nick collision from services.] 20090411 05:38:06-!- res2k3 [n=res@erft-4d07da5a.pool.mediaWays.net] has joined #wesnoth-dev 20090411 05:38:26-!- res2k3 is now known as res|laptop 20090411 05:39:19-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 06:13:14-!- Blueblaze [n=nick@c-98-199-143-139.hsd1.tx.comcast.net] has joined #wesnoth-dev 20090411 06:14:10-!- Blueblaze [n=nick@c-98-199-143-139.hsd1.tx.comcast.net] has quit [Remote closed the connection] 20090411 06:14:57-!- [Relic] [n=[Relic]@adsl-76-229-202-137.dsl.milwwi.sbcglobal.net] has quit ["Leaving"] 20090411 06:19:59-!- crimson_penguin [n=ben@wesnoth/developer/crimsonpenguin] has quit ["Leaving"] 20090411 06:25:25< dfranke> I just thought of a nifty performance hack... might not be worth the effort to make it portable, but I'm going to play with it... 20090411 06:26:23< dfranke> according to the profiler, map_location::operator<() is a huge hotspot. I guess we already know this since there's a comment, "Inlining those for performance reasons" just above its definition. 20090411 06:26:45< dfranke> Here's the definition: 20090411 06:26:51< dfranke> bool operator<(const map_location& a) const { return x < a.x || (x == a.x && y < a.y); } 20090411 06:27:31< dfranke> If we use shorts instead of ints for map coordinates, that can be reduced to a single CPU instruction. 20090411 06:27:55< dfranke> by aligning x and y into a single 32-bit word and then doing a 32-bit comparision. 20090411 06:29:33< Sapient> wouldn't this slow down all other operations that need just x() or y() though? 20090411 06:29:42< dfranke> no. 20090411 06:29:46< dfranke> I can put them into a union. 20090411 06:30:39< Sapient> x and y can be negative, btw 20090411 06:30:58< dfranke> when are they negative? 20090411 06:31:31< Sapient> it was introduced by the changes to the off-map areas 20090411 06:31:44-!- alink [n=alink@wesnoth/developer/alink] has joined #wesnoth-dev 20090411 06:32:03< Sapient> maps now have a "border" region --- Log opened Sat Apr 11 06:47:31 2009 20090411 06:47:40-!- lobby [n=wesnoth@wesnoth/bot/lobby] has joined #wesnoth-dev 20090411 06:47:40-!- Topic for #wesnoth-dev: 1.6.1 planned for Sunday, April 12th, stringfreeze for branches/1.6 ! | Summer of Code info: http://www.wesnoth.org/wiki/SummerOfCodeIdeas | 53 bugs, 232 feature requests, 11 patches | logs: http://irclogs.wesnoth.org/ | Don't paste on IRC! Use a pastebin: http://wesnoth.pastebin.com | http://imagebin.org 20090411 06:47:40-!- Topic set by wesbot [] [Fri Apr 10 18:09:12 2009] 20090411 06:47:40[Users #wesnoth-dev] 20090411 06:47:40[ AI0867 ] [ dfranke ] [ grantw1 ] [ nital ] [ shikadibot] 20090411 06:47:40[ alink ] [ Dragonking] [ isaac ] [ noy ] [ Sirp ] 20090411 06:47:40[ AnMaster ] [ erl ] [ Ivanovic ] [ Patterner ] [ Smar ] 20090411 06:47:40[ benetnash] [ Espreon ] [ jmunro[a]] [ res|laptop ] [ Tigge ] 20090411 06:47:40[ BenUrban ] [ esr ] [ johani ] [ Rhonda ] [ Turuk ] 20090411 06:47:40[ CIA-30 ] [ ettin ] [ JW1 ] [ ryochan7 ] [ wesbot ] 20090411 06:47:40[ cjhopman ] [ fabi ] [ lobby ] [ Sapient ] [ yann ] 20090411 06:47:40[ corn ] [ freim ] [ Mellar ] [ Shadow_Master] [ |Andylee| ] 20090411 06:47:40-!- Irssi: #wesnoth-dev: Total of 40 nicks [0 ops, 0 halfops, 0 voices, 40 normal] 20090411 06:47:45-!- Soliton [n=Soliton@wesnoth/developer/soliton] has joined #wesnoth-dev 20090411 06:47:48-!- Channel #wesnoth-dev created Tue Jan 27 06:28:41 2009 20090411 06:48:26-!- Irssi: Join to #wesnoth-dev was synced in 53 secs 20090411 06:51:58-!- grantw1 [n=Zenneth@westquad-147025.reshall.umich.edu] has left #wesnoth-dev [] 20090411 06:56:20< alink> dfranke: about optimizing map_location::operator<(), we could also check where we use big set/map of locations and check if really needed 20090411 06:56:38< alink> I assume that it's there that we do all these < calls 20090411 06:57:48< alink> mmh the unit_map search is probably a good part of it, and no optimization possible there 20090411 06:58:26< Sapient> sure, optimization is possible there 20090411 06:58:51< Sapient> unit*[][] 20090411 06:59:06< alink> i mean it will stay a map of location, so still use STL find with < 20090411 07:00:22< Sapient> a 2-D array would allow random access 20090411 07:00:48< alink> ah yes indeed, i see what you mean now 20090411 07:01:26< alink> hum, why don't we do that ? wesnoth map are not so big 20090411 07:01:53< Sapient> because the unit_map is a relatively new class? 20090411 07:02:21< Sapient> it used to be a std::map 20090411 07:02:21< alink> otoh it will be a really sparse grid 20090411 07:05:19< Sapient> another reason is because not many people have been trying to optimize Wesnoth performance 20090411 07:06:07< alink> yeah and when done, it's often focused on framerate or loading 20090411 07:08:20< CIA-30> esr * r34708 /trunk/data/campaigns/Delfadors_Memoirs/ (3 files in 2 dirs): Remove two spurious objectives clauses. 20090411 07:08:35< Sapient> esr: there? 20090411 07:08:57< esr> Sapient: Yes, what's up? 20090411 07:09:10< Sapient> you said there was a problem with $(...) 20090411 07:09:19< Sapient> what did you find? 20090411 07:10:19< esr> Look at data/campaigns/Delfadors_Memoirs/utils/sides.cfg 20090411 07:10:44< esr> YThere's a macro in there called DELFADOR_REAPPEARS. See it? 20090411 07:11:05< Sapient> not yet, I'm updating my checkout 20090411 07:11:42 * alink is always puzzled by the complexity of unit_map code, and each time he forget the reasons why it's so complicated 20090411 07:12:56< Sapient> ok, I am viewing it here: http://svn.gna.org/viewcvs/wesnoth/trunk/data/campaigns/Delfadors_Memoirs/utils/sides.cfg?rev=34685&view=markup 20090411 07:14:45< Sapient> x,y=$({X}-1),$({Y}+1) # should work 20090411 07:14:49< esr> Sapient: OK< the way that macro was originally written was with absolute coordinates 50,19 for Delfador and hand-osset absolute coordinates for each follower. 20090411 07:15:04-!- Sirp [n=me@wesnoth/developer/dave] has quit ["leaving"] 20090411 07:15:39< esr> s/osset/offset/ 20090411 07:16:23< Sapient> adding and subtracting from x,y is really the wrong way to go about it though 20090411 07:16:46< esr> I tried to turn it into a macro where the follower offsets were relative to {X} and {Y} with expressions like $({X}+1) 20090411 07:16:50< Sapient> you should use an SLF with adjacent location filter to store the location 20090411 07:17:10< esr> This dosdn't work. Most of the tinme the unit never appeared at all. 20090411 07:17:44< alink> mmh it seems not hard to replace std::map lmap_ by a vector[][], seems to be mainly find, insert and erase calls (and size() which is more tricky but probably not used much). I almost want to try it :-) 20090411 07:18:20< Sapient> esr: did you get any errors in stderr.txt ? 20090411 07:18:24< esr> OK, never mind the elegant way I should do it. The point is, most of the time these $() expressions seems to evaluate to values tthat put the unit sopmwhere I couldn't find it. 20090411 07:18:38< esr> No, I didn't. 20090411 07:19:12< Sapient> ah, well I would like to look into it, but would prefer to have a minimalistic test case 20090411 07:19:51< Sapient> if you can reproduce it reliably please assign a bug report to me 20090411 07:19:57< esr> OK. 20090411 07:20:18< Sapient> cya later, have fun. 20090411 07:20:18-!- Sapient [n=sapien-x@wesnoth/developer/sapient] has left #wesnoth-dev [] 20090411 07:24:21-!- ettin [n=jorda@wesnoth/developer/ettin] has quit [Read error: 104 (Connection reset by peer)] 20090411 07:27:14-!- Blueblaze [n=nick@c-98-199-143-139.hsd1.tx.comcast.net] has joined #wesnoth-dev 20090411 07:40:24-!- Newell [i=3ab23351@gateway/web/ajax/mibbit.com/x-76a1fa96fc1488dc] has joined #wesnoth-dev 20090411 07:45:38-!- Newell [i=3ab23351@gateway/web/ajax/mibbit.com/x-76a1fa96fc1488dc] has quit ["http://www.mibbit.com ajax IRC Client"] 20090411 07:52:17-!- ryochan7 [n=ryochan7@173.9.238.161] has quit ["Leaving"] 20090411 07:52:47-!- alink [n=alink@wesnoth/developer/alink] has quit [Remote closed the connection] 20090411 07:55:18< dfranke> Oh dear... 20090411 07:55:53< dfranke> This is what happened when I opened the map editor after my optimization hack: http://dfranke.us/oops.png 20090411 08:02:28< dfranke> oh... that's because I got the comparison wrong altogether. Trying again... 20090411 08:03:30< dfranke> woohoo, sanity. 20090411 08:09:57-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 08:13:30< dfranke> ooh, and it's pretty big improvement. 20090411 08:13:39< dfranke> from 10.4ns per call to 3.1ns. 20090411 08:14:17< dfranke> that's about a 2% pickup in overall game performance. 20090411 08:16:51-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 110 (Connection timed out)] 20090411 08:17:38-!- silene [n=plouf@wesnoth/developer/silene] has joined #wesnoth-dev 20090411 08:17:42< silene> hi 20090411 08:17:53< dfranke> hi silene 20090411 08:22:58-!- ettin [n=jorda@wesnoth/developer/ettin] has joined #wesnoth-dev 20090411 08:27:21< dfranke> I'm going to post this patch on gna. I'd like some people to look at it and agree that it won't break anything before I commit it. 20090411 08:29:27-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 104 (Connection reset by peer)] 20090411 08:29:43-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 08:30:09< silene> esr: i haven't quite followed, but if you still have issues with $({X}+1), keep in mind that this notation (almost) only works inside events 20090411 08:31:43-!- Blueblaze [n=nick@c-98-199-143-139.hsd1.tx.comcast.net] has quit [Remote closed the connection] 20090411 08:32:14-!- Blueblaze [n=nick@c-98-199-143-139.hsd1.tx.comcast.net] has joined #wesnoth-dev 20090411 08:41:19< esr> silene: I trued to use it inside a macro called by a turn 12 event. 20090411 08:41:39< silene> then it should work 20090411 08:42:00< silene> what's the content of X? 20090411 08:53:02< dfranke> https://gna.org/patch/index.php?1158 20090411 08:57:54< silene> dfranke: when you say wesnoth spends 3% of time inside it; how did you measure it? 20090411 08:58:11< dfranke> silene: gprof 20090411 08:58:53< silene> dfranke: that's bad, you are counting the overhead of gprof itself, which is quite impressive relatively to small functions 20090411 09:01:07< dfranke> I think it (tries to) compensate for that when it generates statistics, but I could be wrong. 20090411 09:02:11< dfranke> i.e. while actually running you'd incur disproportionate overhead, but it tries to subtract that out when it generates the report. 20090411 09:05:32< dfranke> and anyway, the difference is still accurate. A hundred million calls times a gain of 7ns is 700ms per turn. 20090411 09:06:15-!- busfahrer [n=busfahre@unixboard/user/busfahrer] has joined #wesnoth-dev 20090411 09:32:14< |Andylee|> I become really used to being in here saying nothing 20090411 09:32:34< |Andylee|> looking forward to tomorrow! 20090411 09:33:01< |Andylee|> ah, one question: Wesnoth is freeware, right? or Open Source or whatever. 20090411 09:33:32< |Andylee|> If I DL it, am I allowed to provide it to my friends on my own Webspace for DL? 20090411 09:33:33< dfranke> Yup. GPL all the way down. 20090411 09:33:49< dfranke> you are. 20090411 09:34:53< |Andylee|> thanks... I am espezially up to providing this great game in some small p2p-networks... spreading the word of BfW ;) 20090411 09:36:44< benetnash> |Andylee|: but you must also provide source code of this game for everyone who downloads it from you ;) 20090411 09:37:09< |Andylee|> ok, will pack it in a .rar archive all together 20090411 09:37:13< |Andylee|> would that be ok? 20090411 09:37:35< benetnash> |Andylee|: I was joking, source is important when you want to sell open source 20090411 09:37:43< |Andylee|> hmpf 20090411 09:38:04< |Andylee|> its some time since I was in inmaterial right politics. 20090411 09:38:13-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 60 (Operation timed out)] 20090411 09:39:00< |Andylee|> i some years ago was an advertiser for a small political party on the topic but then lost interest.... and now I start getting confused with the licences. :D 20090411 09:39:14< dfranke> "b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable 20090411 09:39:14< dfranke> physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge." 20090411 09:39:29< benetnash> | 20090411 09:39:32< benetnash> grrr 20090411 09:39:49< dfranke> so no, you don't have to provide the source; if you distribute an unmodified binary, just give a link to it. 20090411 09:39:57< benetnash> |Andylee|: I'm working at uniwersity as programmer and we've got lot of troubles with licenses ;) 20090411 09:41:01< |Andylee|> what university? harvard? 20090411 09:41:47< benetnash> we are writing some stuff for police and they wanted us not to use any open source software (I don;t know why). When we tonld them that they must provide us with: MS IIS, MS SQL and other stuff they changed their mind and we are still working and Apache and Postgresql ;) 20090411 09:41:59< benetnash> |Andylee|: no way. Poznań University of Thechnology. In Poland 20090411 09:42:17< |Andylee|> Poland *sigh* 20090411 09:42:57< |Andylee|> I was there a year ago 20090411 09:43:03< |Andylee|> was shocked ;) 20090411 09:43:07< benetnash> |Andylee|: why? 20090411 09:43:22< |Andylee|> now... I just visited the southern part for a week 20090411 09:43:46< |Andylee|> krakau and the surrounding cities, auschwitz and so on 20090411 09:44:20-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 09:44:30< |Andylee|> and there were SO many nazi symbols.... on the other hand i was impressed by the supermarkets ;) 20090411 09:45:42< |Andylee|> i mean I knew before that poland has and had quite far right politics... but I was not used to see swastikas everywhere from here in austria 20090411 09:47:35< benetnash> well, in auschwitz they are to remember evil during WWII. On the other hand some skinheads or other morons are painting it on the walls. It must be sad for someone visiting poland. 20090411 09:50:33-!- zookeeper [n=l@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20090411 09:50:36-!- Chusslove [n=caslav@brsg-d9bee567.pool.mediaWays.net] has joined #wesnoth-dev 20090411 09:50:52 * benetnash must go tho shop, brb 20090411 09:53:39< |Andylee|> i did not mean the ones in auschwitz 20090411 10:08:10-!- Newell [i=3ab23351@gateway/web/ajax/mibbit.com/x-9e3a35b33b5a172c] has joined #wesnoth-dev 20090411 10:08:24< dfranke> silene: still around? Just answered your comment on the patch. 20090411 10:11:53-!- boucman [n=rosen@wesnoth/developer/boucman] has joined #wesnoth-dev 20090411 10:12:06< boucman> morning all 20090411 10:12:17< dfranke> morning boucman 20090411 10:13:24< dfranke> boucman: please have a look at https://gna.org/patch/?1158. I'll address silene's objection in the manner I described, but my original concerns still stand. 20090411 10:16:56< boucman> will do 20090411 10:17:54-!- loonybot [n=loonybot@79.139.246.210] has joined #wesnoth-dev 20090411 10:18:32-!- loonycyborg [n=sergey@79.139.246.210] has joined #wesnoth-dev 20090411 10:21:52< zookeeper> err... http://www.wesnoth.org/mw/index.php?title=Manuscript 20090411 10:23:25 * dfranke stares agape at zookeeper's link 20090411 10:23:52< boucman> it says "please remove as spam" :P 20090411 10:24:38< dfranke> ...because it's spam. 20090411 10:24:48< dfranke> that's the stupid CS research project I've ever heard of. 20090411 10:24:54< dfranke> stupidest* 20090411 10:25:15< boucman> indeed 20090411 10:25:26< boucman> anonimity through vandalism 20090411 10:25:34< boucman> i mean... 20090411 10:25:43< boucman> imagine that protocole gets widly adopted 20090411 10:25:50< boucman> we would spend days removing spam... 20090411 10:28:37< boucman> dfranke: I have an x86_64 machine to test your patch on :) 20090411 10:29:12< dfranke> boucman: don't bother with the version that's posted, since silene is right. 20090411 10:29:30< dfranke> but I'll have a new one whipped up by tomorrow evening. 20090411 10:29:41< boucman> ok, no problem 20090411 10:30:30< dfranke> black hole Brown's CS department. I don't want to cooperate with their statistics gathering. 20090411 10:33:59< benetnash> change several bytes on that page and destroy their experiment :P 20090411 10:34:16< boucman> hehe 20090411 10:34:29< dfranke> reverse engineer the format and change it to goatse. 20090411 10:34:56-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 10:40:38-!- Blueblaze [n=nick@c-98-199-143-139.hsd1.tx.comcast.net] has quit [Remote closed the connection] 20090411 10:41:34-!- edb [n=edb@79.95.12.71] has joined #wesnoth-dev 20090411 10:42:25-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 110 (Connection timed out)] 20090411 10:52:41-!- grzywacz [n=grzywacz@wesnoth/developer/grzywacz] has joined #wesnoth-dev 20090411 11:00:26< loonycyborg> http://www.wesnoth.org/forum/viewtopic.php?f=4&t=24932 <- was anyone here able to run wesnoth 1.6a under Vista? 20090411 11:01:20-!- Crab_ [n=Crab_@wesnoth/developer/crab] has joined #wesnoth-dev 20090411 11:01:24< Crab_> hi 20090411 11:03:43< benetnash> Crab_: hi! 20090411 11:06:35< boucman> hi Crab_ 20090411 11:06:46< boucman> Dragonking: want to discuss filter_me some more ? 20090411 11:08:15-!- noy [n=Noy@wesnoth/developer/noy] has quit [] 20090411 11:10:29< Dragonking> boucman: I understand your point about uniformity, but I still feel bad withh adding it to move type CM because of what I daid earlier - if it is used, it is against my idea of "improving performance" 20090411 11:10:50< Dragonking> But for a sake of uniformity I'll add it. 20090411 11:11:31< Ivanovic> moin 20090411 11:11:35< boucman> Dragonking: it doesn't cost any performance either, and it's better from a readibility point of view too 20090411 11:11:55< boucman> Ivanovic: the change I wanted to backport I had already backported, so I'm good to go 20090411 11:12:07< boucman> Dragonking: ok, good then 20090411 11:12:59< Ivanovic> boucman: ah, good 20090411 11:13:17< boucman> Dragonking: if you want to push it to the limit, save all WML keys matching filter_* in a hash index by the key name, so it saves all available param formulas automagically 20090411 11:13:29< boucman> it will make things simpler when we implement new types 20090411 11:17:21-!- _Andylee_ [n=kvirc@188-23-2-217.adsl.highway.telekom.at] has joined #wesnoth-dev 20090411 11:19:21< Dragonking> boucman: std::map ? 20090411 11:19:31< boucman> something like that, yes 20090411 11:20:38< Dragonking> boucman: I doubt it will be really fast for attack/move/support... 20090411 11:21:33< boucman> you have only two requests to do... that's neglectable 20090411 11:24:00< Dragonking> boucman: "save all WML keys matching filter_* " you mean parse config for any wml key that begins with filter_ ? 20090411 11:24:12< boucman> yes 20090411 11:24:30< boucman> that's done when the AI is loaded, so once per secenario 20090411 11:24:41< Crab_> boucman:once per side. 20090411 11:24:42< Dragonking> I know 20090411 11:24:49< grzywacz> Dragonking, jabber 20090411 11:24:58< boucman> Crab_: ok 20090411 11:26:06< Dragonking> boucman: So we will be able ot add any new filter later easily if we need 20090411 11:26:36< boucman> yes 20090411 11:27:22< Dragonking> And later I'll need to query "me" and "target" or "support" from map depending on what kind the CM is? 20090411 11:27:33< Dragonking> I ask to see if we think about the same solution 20090411 11:28:07< boucman> yes, 20090411 11:28:15< boucman> we seem to understand each other :) 20090411 11:28:56< Dragonking> boucman: So maybe just remove eval and move from CM body, and also put these into map ? 20090411 11:29:27< Crab_> Dragonking: btw, it will be, imo, better, to move formula ai initialization outside formula ai constructor. for example, to a public method "init()" which will be called from current constructor. it will allow to re-init formula ai if the ai config changes in the middle of the game, for example. this is esp.important if you cache information, derived from config, into maps. 20090411 11:29:45< boucman> we could, but since all types must provide an eval and move, it makes less sense 20090411 11:30:06< boucman> I wanted to put in only the ones that matched filter_* but your way of doing it works too, your choice 20090411 11:30:26< zookeeper> Ivanovic, please delete "Unixie Era" from the add-on server. 20090411 11:31:17< Dragonking> boucman: OK, last question, is there any tool/etghod to extract things from config that match "filter_*" ? Or I need to do it by hand? 20090411 11:31:49< Dragonking> Crab_: Yes.. good idea 20090411 11:32:04< Crab_> Dragonking: alternative - do not use filter_, use a [filter] and put all that inside it 20090411 11:32:11< Ivanovic> zookeeper: any specific reason? 20090411 11:32:23< Ivanovic> and which addon server, the one reachable from 1.6 or one of the others, too? 20090411 11:32:32< Dragonking> Crab_: heh, I think you win ;p 20090411 11:32:42< Dragonking> boucman: I would go with what Crab_ just wrote 20090411 11:33:22< zookeeper> Ivanovic, the 1.6 server. reason being that the guy apparently forgot his password and so he has uploaded another version of it already. 20090411 11:33:51< Dragonking> ok, going afk now, I'll be back later 20090411 11:33:52< boucman> Dragonking: I did some tag matching in animations, so there is a way, but yes, go with Crab_'s syntax 20090411 11:35:23< Crab_> boucman, Dragonking: can you look at http://wesnoth.pastebin.com/m22f65400 and tell, if it breaks anything. 20090411 11:35:41< Ivanovic> zookeeper: will do so "soon" (that is after waking up and such) 20090411 11:35:47< boucman> checking... 20090411 11:35:49-!- |Andylee| [n=kvirc@188-23-0-147.adsl.highway.telekom.at] has quit [Read error: 110 (Connection timed out)] 20090411 11:36:17< Crab_> I've noticed that turn_info turn_data_ is *unused* in the ai code, but passed to it.. 20090411 11:36:21-!- mordante [n=mordante@wesnoth/developer/mordante] has joined #wesnoth-dev 20090411 11:36:39< mordante> hi 20090411 11:36:58< Crab_> hi mordante 20090411 11:37:05< mordante> hi Crab_ 20090411 11:37:33-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 60 (Operation timed out)] 20090411 11:38:12< boucman> Crab_: ok, looks good 20090411 11:38:19-!- busfahrer [n=busfahre@unixboard/user/busfahrer] has quit ["leaving"] 20090411 11:38:19-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 11:39:07< mordante> AnMaster, is your compilation problem solved? 20090411 11:39:08< Crab_> boucman: yes, and turn_data's constructor doesn't have any side effect. so, it seems redundant. And, looking at that comment in ai_interface, I'm wondering if it was added for some kind of hack that is no longer necessary ) 20090411 11:39:40< boucman> well, it's here to do something called network_sync did you have a look into that function ? 20090411 11:39:55< boucman> shouldn't that call be done by end_turn anyway ? 20090411 11:40:14< Crab_> boucman: yes, but it is called not from ai 20090411 11:40:46< boucman> oh, my bad :P 20090411 11:41:19< Crab_> boucman: yes, you're right, playturn.?pp is connected to network sync (I've asked Sirp about it few days ago), but the ai doesn't do anything with it.. 20090411 11:41:55< silene> just to be sure, you are now sending over the network a turndata created after the ai has played, while it was created before the ai played; doesn't that break synchronization? 20090411 11:42:20< zookeeper> Ivanovic, btw, i added "The description field should contain a description of what the add-on is about" and "The type field should contain one of the predefined values" to the add-on server rules. 20090411 11:42:52< zookeeper> ...since for some reason, some add-ons use descriptions which aren't descriptive and bogus types 20090411 11:42:54< Crab_> silene: 1) ai hasn't done anything with that play_data 2) look at playturn.hpp. it doesn't hold state - it holds refs to game structures 20090411 11:42:55< boucman> silene: hmm good point 20090411 11:43:25< CIA-30> ivanovic * r34709 /trunk/po/ (wesnoth/fi.po wesnoth/hu.po wesnoth-manpages/hu.po): updated Finnish and Hungarian translation 20090411 11:43:28< CIA-30> ivanovic * r34710 /branches/1.6/po/ (wesnoth/fi.po wesnoth/hu.po wesnoth-manpages/hu.po): updated Finnish and Hungarian translation 20090411 11:43:28< boucman> Crab_: the simple fact that the variable exist means it could have registered to some game events to record what needs to be sent over the network at destruction time 20090411 11:43:48< Ivanovic> zookeeper: sounds reasonable 20090411 11:43:51< boucman> changing the place it is created in playsingle_controller needs to be checked 20090411 11:43:54< Crab_> boucman: that's why I checked that constructor of turn data doesn't have any side effect 20090411 11:45:35< Crab_> boucman: but, if thou art cautious, I can leave the place of turn_data creation where it is now, my main goal is to remove it from ai_interface::info, since ai doesn't use it anyway. 20090411 11:46:01< boucman> ok, let's do that atm, then 20090411 11:46:12< Crab_> boucman: ok 20090411 11:46:29< boucman> if only for segregation purpose (no change to the controllers if you're mainly working on the AI and can avoid it) 20090411 11:47:46< silene> Crab_: there is a side effect when an exception is thrown; not sure if it is it on purpose, but it is there; that's why i would like to be sure moving the constructor around is worth it 20090411 11:48:06< silene> (removing the parameter to ai is fine though) 20090411 11:48:52< Crab_> silene: ok 20090411 11:53:54-!- Newell [i=3ab23351@gateway/web/ajax/mibbit.com/x-9e3a35b33b5a172c] has left #wesnoth-dev [] 20090411 12:00:38< CIA-30> mordante * r34711 /trunk/src/ (25 files in 4 dirs): 20090411 12:00:38< CIA-30> Revert the rest of r34702. 20090411 12:00:38< CIA-30> r34707 reverted only a part of the commit. Next time when you want to revert a 20090411 12:00:38< CIA-30> commit look what the *entire* commit does. Most of my patches and all of my 20090411 12:00:38< CIA-30> cleanups only try to do one thing, so revert them entirely or not. 20090411 12:00:41< mordante> Shadow_Master, ^ 20090411 12:04:35< mordante> Ivanovic, mordante reads the logs, but I don't know mordange :-P 20090411 12:09:12-!- wesbot changed the topic of #wesnoth-dev to: 1.6.1 planned for Sunday, April 12th, stringfreeze for branches/1.6 ! | Summer of Code info: http://www.wesnoth.org/wiki/SummerOfCodeIdeas | 52 bugs, 232 feature requests, 12 patches | logs: http://irclogs.wesnoth.org/ | Don't paste on IRC! Use a pastebin: http://wesnoth.pastebin.com | http://imagebin.org 20090411 12:09:33< loonycyborg> mordante: AFAICT Shadow_Master's intention was to include iostream in log.hpp, not to revert your entire commit :P 20090411 12:09:50-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Success] 20090411 12:09:55< loonycyborg> Why do you think full revert is required? 20090411 12:10:06-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 12:10:31< mordante> loonycyborg, since I removed it in the header and cleanup the files which broke due to it 20090411 12:10:54< mordante> some places just depend on header files included somewhere else 20090411 12:11:16< loonycyborg> That is you've placed include in some other places? 20090411 12:11:33< loonycyborg> Then that would make sense.. 20090411 12:11:46< mordante> yes I did 20090411 12:12:06< mordante> if you start to revert a commit you should look at the entire thing before reverting it 20090411 12:14:24< Ivanovic> mordante: that is the problem when i don't have nick completion 20090411 12:14:38< Ivanovic> i normally only type the first two or three chars before hitting tab 20090411 12:15:28< mordante> I expected that ;-) 20090411 12:18:59< mordante> Crab_, regarding commit 34705 20090411 12:19:05< Crab_> mordante: yes ? 20090411 12:19:21< mordante> you added a get_side() which returns an int, a side in unit is an unsigned int 20090411 12:20:02< mordante> I now get a lot of signed vs. unsigned comparison warnings 20090411 12:20:23< mordante> so I was wondering whether get_side() needs to use signed integers 20090411 12:20:41< mordante> (and the other related things in that header) 20090411 12:21:09< Crab_> mordante: ok, I will fix this signed vs. unsigned, (note that there are ai's with side numbers <0, so that's not just search-and-replace) 20090411 12:21:31< mordante> that's why I'm asking ;-) 20090411 12:21:43< Crab_> mordante: and, how can I enable such warnings with linux/scons/gcc ? 20090411 12:21:46< mordante> thanks 20090411 12:22:40< mordante> scons sets -Wno-sign-compare which disables this warning 20090411 12:22:51< mordante> I guess loonycyborg knows how to reenable it 20090411 12:23:14< Crab_> why it is disabled by default ? ) 20090411 12:23:42< mordante> some people think it's annoying, but they can be real errors 20090411 12:24:21< mordante> maybe we should consider to reenable them since trunk was clean on those errors on r34702 20090411 12:25:17< mordante> I'll ask Sirp's opinion on it when he's online again 20090411 12:26:03< mordante> the problem other compilers might not show the warning so you'll get a compiler warning more often 20090411 12:26:15< mordante> s/warning/error/ 20090411 12:28:11-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 60 (Operation timed out)] 20090411 12:31:59< silene> does someone what "RACV's Translation" means in the credits? 20090411 12:32:32< Chusslove> Royal Academy of Valencia or something. 20090411 12:32:43< AnMaster> mordante, will try to compile in a few minutes, just woke up 20090411 12:32:55< mordante> AnMaster, ok, well should be fixed now 20090411 12:34:24< silene> Chusslove: how is that related to wesnoth? 20090411 12:34:42-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 12:34:46< AnMaster> brb, need to restart X, it is memory leaking again (/proc//maps says it has a 510 MB heap...) 20090411 12:35:12< mordante> silene, a long flamefest about the right name of the translation https://mail.gna.org/public/wesnoth-dev/2008-09/msg00011.html 20090411 12:35:23< Chusslove> silene: When I googled about it, I found there is some disagreement about what is the "standard" for Valencian language, so this RACV is one of the involved bodies. 20090411 12:37:08< mordante> and since it doesn't seem to be the official version we renamed our dialect to that organisation 20090411 12:37:24< mordante> but it seems to be hot topic for some people 20090411 12:37:28< silene> mordante, Chusslove: so we have both "valencian" and "racv" translations? that's... great... 20090411 12:37:52< mordante> yes we have both since we have people who want to work on both 20090411 12:38:31< loonycyborg> Crab_: SConstruct line 306 20090411 12:38:49< boucman> grafitti just recreated the page on the wiki :( 20090411 12:38:54-!- mjs-de [n=mjs-de@vpw.wh.uni-dortmund.de] has joined #wesnoth-dev 20090411 12:38:54< Crab_> loonycyborg: thanks 20090411 12:40:15< Crab_> boucman: can we just filter using their diclaimer ? 20090411 12:41:23< mordante> dfranke, changing map coords to shorts can have a lot of negative speed impacts as well 20090411 12:41:46< Crab_> boucman: using $wgSpamRegex or something like this.. 20090411 12:41:46< mordante> dfranke, not all processors are fast which non native sizes of integers 20090411 12:42:31< mordante> dfranke, on x86 all instructions get a 1 byte prefix when they need to operator on 16 bit values instead of 32 bit 20090411 12:43:02< mordante> dfranke, no idea about other architectures 20090411 12:44:07< loonycyborg> AFAIK C/C++ int type is set to size that is most fast to operate on a particular architecture. 20090411 12:44:47< mordante> it used to be that, but IIRC x86-64 still uses 32 bit ints 20090411 12:44:52< boucman> Crab_: i'm really not a wiki experyt, I wouldn't know 20090411 12:45:00< dfranke> x86-64 is still fastest with 32 bit ints :-) 20090411 12:45:16< mordante> also when working in 64 bit mode? 20090411 12:45:21< Ivanovic> zookeeper: removed the addon 20090411 12:45:22< dfranke> yes 20090411 12:45:35< Crab_> boucman: this just requires editing mediawiki config file a bit.. 20090411 12:45:57< boucman> dfranke: did you see the latest comment wrt your patch ? 20090411 12:46:15< silene> mordante: whether there is a prefix or not is not particularly important, since, by design, the C++ language performs all the operations on int instead of short 20090411 12:46:45< boucman> silene: can I assign patch 1154 (image localisation ) to you ? 20090411 12:46:45< Crab_> boucman: see http://www.mediawiki.org/wiki/Manual:$wgSpamRegex , it just requires someone who can access the wiki config 20090411 12:47:14< mordante> silene, when comparing two shorts C++ first converts them to ints? 20090411 12:47:28< silene> boucman: you can, i'm busy with the french translation till tomorrow, but i can take care of it on monday 20090411 12:47:32< boucman> Crab_: I don't evek know how to access teh mediawiki config file, loonycyborg might know, though 20090411 12:47:33< silene> mordante: yes 20090411 12:47:41< boucman> ok, thx 20090411 12:48:14< boucman> corn: around ? 20090411 12:48:21< loonycyborg> boucman: Why would I? I only know how to edit the wiki :P 20090411 12:48:34< boucman> I thought you were a wiki expert 20090411 12:48:58< loonycyborg> You definitely confused me with someone else. 20090411 12:49:11< boucman> oops, sorry 20090411 12:49:19< Crab_> boucman: then whom can we ask about it ? We need someone with enough rights on the server, where wiki is located.... 20090411 12:50:25< boucman> Crab_: http://www.wesnoth.org/mw/index.php?title=Special%3AListusers&group=sysop 20090411 12:50:42< Ivanovic> boucman: Crab_ means ssh access to our server 20090411 12:50:51< Ivanovic> not any config that is accessible directly via the web 20090411 12:51:05< loonycyborg> Yes. Aethaeryn is the wiki wizard. 20090411 12:51:08< boucman> ok, it's in the moderator post, then, let me check 20090411 12:51:47< loonycyborg> Though he didn't appear often lately.. 20090411 12:52:01< boucman> Crab_: loonycyborg has ssh access to wesnoth.org :) 20090411 12:52:22< dfranke> silene: I can't reproduce your compiler's output on my system; I get a much longer function. 20090411 12:52:33< dfranke> silene: but modulo choice of register, that's exactly the assembly I worte. 20090411 12:52:54< loonycyborg> boucman: Though probaly I don't have write access to wiki stuff :) 20090411 12:52:59< Crab_> boucman: config/LocalSettings.php in the wiki dir is to be edited... can he ? 20090411 12:53:00< loonycyborg> *probably 20090411 12:53:11< boucman> Crab_: ask him :P 20090411 12:53:18< silene> dfranke: my compiler is GCC 4.3.1, and i have tried both x86-32 and x86-64; what is your system? 20090411 12:53:28< benetnash> Crab_: according getting list of all possible attacks: here is my patch introducing new method - all_my_attacks http://czystybeton.pl/~benetnash/all_my_attacks.patch 20090411 12:54:01< dfranke> silene: 4.3.2, x86-64. 20090411 12:54:15< silene> "Units with trait Weak get a -1 increment", yeah right... 20090411 12:54:24< Crab_> benetnash: post it to patches.wesnoth.org 20090411 12:54:27< boucman> benetnash: before comitting to patches.wesnoth.org, remember to add your name to data/core/about.cfg and add a changelog entry 20090411 12:54:40< benetnash> ok 20090411 12:54:44< benetnash> i'll try 20090411 12:54:50< boucman> Crab_, benetnash, discusssing here before patches.wesnoth.org is ok 20090411 12:55:00< boucman> but it will have to go throuth p.w.o before commit 20090411 12:55:09< silene> dfranke: could you post the assembly gcc produces on pastebin? i will open a bug report 20090411 12:55:39< dfranke> silene: you mean a gcc bug report? 20090411 12:56:06< silene> dfranke: yes, it's obviously a regression between 4.3.1 and 4.3.2 if you don't obtain the same assembly as i do 20090411 12:56:42< dfranke> silene: well, let me try using your program byte-for-byte first. I'm using operator<() as a method rather than as a function. 20090411 12:57:27< mordante> silene, my g++ compares shorts 20090411 12:57:28< boucman> benetnash: so if I read your code correctly, it's a new variable containing all possible attacks for the AI ? 20090411 12:57:32< mordante> silene, http://paste.debian.net/33151/ 20090411 12:59:01< benetnash> boucman: yes 20090411 12:59:41< benetnash> boucman: becouse "attacks" contains only ,,best'' attacks chosen by AI 20090411 13:00:40< boucman> hmm 20090411 13:01:40< silene> mordante: what is that example supposed to show? while the compiler has to act as if the shorts were first converted to int, the optimizers are allowed to optimize the code if it doesn't change the behavior 20090411 13:01:48< Crab_> boucman: when calculating 'attacks' for attacker A and defender B, ai ony returns one result, which corresponds to 'most-defended' tile from which A can attack B. 20090411 13:01:56< boucman> could you pastebin the typical output somewhere so I can see what it looks like without applying the patch (if you have that available, that is) 20090411 13:02:24< boucman> Crab_: that's a bit dangerous, since that tile could be on the "bad side" of the unit 20090411 13:02:40< boucman> Crab_: and with backstabbers, the best defense tile might not be the best attack tile 20090411 13:02:46< Crab_> boucman: what is the 'bad side'? 20090411 13:03:01< boucman> the side behind the ennemy line 20090411 13:03:02< mordante> silene, well from your statement I understood compilers always had to convert to ints when operating on shorts. 20090411 13:03:27< boucman> skirmishers might easily find themselves exposed with that logic 20090411 13:03:44< Crab_> boucman: yes, you're right, but basically I was trying to say that the current 'attacks' picks ONE attack of A->B 20090411 13:04:11< Crab_> boucman: and benetnash's implementation returns all of them, for his ai to decide 20090411 13:04:11< benetnash> boucman: http://pastebin.com/d50c5abdf 20090411 13:04:25< silene> mordante: they do; test "a+b == a*b" instead, you will notice that the comparison is on integers while all the values are short 20090411 13:04:38< Crab_> boucman: also, current 'attacks' returns attacks of multiple attackers on single defender 20090411 13:05:11< boucman> benetnash: thx 20090411 13:05:53< Crab_> boucman: so, benetnash's implementation is two levels lower then current 'attacks' - it doesn't return results of 'combinations of attacks', and it doesn't pick best location to attack from. 20090411 13:05:54< boucman> oh, ok 20090411 13:06:09< boucman> makes sense then 20090411 13:06:13< Crab_> boucman: so, it allows .fai to make more decisions 20090411 13:06:32< boucman> Crab_: ok, I got it backward :) 20090411 13:06:44< Crab_> )) 20090411 13:06:55< dfranke> silene: ok, I do indeed get your output with operator<() as a function. As a method, it's much uglier. 20090411 13:07:37< dfranke> silene: try compiling this: http://pastebin.com/m79204434 20090411 13:07:40< silene> dfranke: that's because of the calling convention for methods, the first argument is messed up 20090411 13:08:12< silene> dfranke: and you are using a call by reference on a small struct, that's another mess 20090411 13:11:53< mordante> silene, yes I understand that case uses ints, but I thought from your statement that every operation had to be on ints even when comparing variables 20090411 13:12:04< silene> dfranke: what's important is to see the effect of inlining; look at the code produced for the function bool f(const map_location &a, const map_location &b) { return a < b; } 20090411 13:12:56< dfranke> silene: we don't get to inline in the production code. It gets called from STL. 20090411 13:13:35< silene> dfranke: we do! do you really think the STL is compiled in a separate file, while the template parameters are unknown?! 20090411 13:13:57-!- oak_ [n=oakus@252.108.broadband12.iol.cz] has joined #wesnoth-dev 20090411 13:14:02< benetnash> ok, I submited patch. I hope you will like it ;) 20090411 13:14:46< boucman> benetnash: will have look today 20090411 13:15:01< silene> mordante: no, my statement is that every operation has to behave as if it was on ints; so once the compiler has obtained ints for one reason or another, it will not convert the values back to short; so the overhead is only when loading or storing values, not when operating on them 20090411 13:15:13< dfranke> silene: when I profiled the original code, I got loads of non-inlined calls, thought this may have been a side-effect of profiling. 20090411 13:15:58< silene> dfranke: this is a side-effect of profiling; gprof should have been deprecated the day oprofile appeared 20090411 13:16:32< dfranke> silene: I haven't used oprofile; I'll give it a try. 20090411 13:17:11< mordante> silene, ok that was what I thought as well, so when comparing the plain values the prefix is used and when loading them in a register as well and needs to sign extend the value on loading 20090411 13:17:19< Crab_> benetnash: afaik, you should add yourself in about.cfg in "Miscellaneous contributors" section (until you get commit access, that is ) 20090411 13:18:31< Crab_> benetnash: and also be sure to use only *tabs* for indention 20090411 13:18:35< mordante> benetnash, Crab_ yes you should add yourself in the patch 20090411 13:18:48 * mordante gives Crab_ a cookie 20090411 13:18:56< benetnash> Crab_: I use only tabs, I hate spacebars ;) 20090411 13:19:01 * Crab_ thanks mordante 20090411 13:19:17< AnMaster> right will try building now, and some X bugs.. 20090411 13:19:27< benetnash> Crab_: I'll fix this contribution and resend this patch 20090411 13:19:52< Crab_> benetnash: are you sure ? recheck ) you may hate tabs, but some of them may still sneak in 20090411 13:20:06< Crab_> especially if you copy-pasted ) 20090411 13:20:17< silene> mordante: that's right; though now that i think about it, i don't think there is a place where we compare map coordinates, so it doesn't really matter 20090411 13:20:51< mordante> Crab_, "11:36 I've noticed that turn_info turn_data_ is *unused* in the ai code, but passed to it.." which function is that? 20090411 13:20:58< Crab_> s/hate tabs/hate spacebars 20090411 13:21:45< Crab_> mordante: it is used in two places, where we construct ai_interface::info which is passed to ai as a constructor parameter 20090411 13:22:12< Crab_> and then, this "turn_info turn_data_ " field in ai_interface_info goes unused 20090411 13:22:30< AnMaster> mordante, that file which failed before (tstring.cpp) seems to compile now at least 20090411 13:22:38< AnMaster> the full compile hasn't finished yet 20090411 13:22:41< mordante> AnMaster, thought it would 20090411 13:22:55< AnMaster> mordante, out of interest: what was the issue? 20090411 13:23:25< mordante> AnMaster, I removed a header which was needed, but that has been reverted 20090411 13:23:32< AnMaster> aha 20090411 13:23:48 * AnMaster notes wesnoth take ages to compile on his old (2005 or 2006) single core sempron :/ 20090411 13:24:15< mordante> silene, we compare map coordinate (I think there are several functions to determine the order) 20090411 13:24:31< Crab_> benetnash: please *recheck* that only tabs are used for indention 20090411 13:24:54< mordante> silene, for rendering the gamemap things need to be in a certain order so things are properly drawn in back and foreground 20090411 13:25:03< Crab_> benetnash: set "display unprintable chars" to see... 20090411 13:25:07< benetnash> Crab_: ok. Now I see that I had some spacebars in this patch. I always thought that automagical vim identation exchanges spacebard for tabs 20090411 13:25:45< Crab_> benetnash: sometimes it automagically 'just doesn't work' ) 20090411 13:26:02< AnMaster> mordante, that removing of header, how came it compile anywhere else btw? 20090411 13:26:19< AnMaster> it sounds somewhat strange 20090411 13:26:53< mordante> AnMaster, different compiler(version)s can include several other header in their header 20090411 13:27:39< mordante> for example a recent gcc version (IIRC) cleaned up the internal header dependencies 'breaking' a lot of other projects, which depended on this behaviour 20090411 13:27:42< silene> mordante: do we? perhaps it was the case before, but now it seems we simply refresh hexes according to map_location::operator< 20090411 13:28:31< AnMaster> hm, I never noticed this issue for compiler headers myself... System headers though I had such issues with between different *BSD and Linux... especially for sys/*.h and netinet/*.h 20090411 13:29:00< AnMaster> mordante, that was non-portable anyway, so good idea to "break" them yeah :) 20090411 13:29:01< Crab_> benetnash, and can you rename 'all_my_attack' to 'all_my_attacks' ? since you're returning a *list*, not a single entity.... 20090411 13:29:19 * AnMaster should try to compile wesnoth with icc some day.. 20090411 13:29:49< loonycyborg> I've already compiled wesnoth with intelc :) 20090411 13:29:52< mordante> AnMaster, true, but most the time you include a header when it doesn't compile and you don't look which headers you really should include 20090411 13:31:26< AnMaster> hm true. A lot easier with high level languages with a "proper" module system. Such as python, erlang, haskell, D or whatever. 20090411 13:31:28< AnMaster> meh 20090411 13:31:52< AnMaster> (this is starting to get off topic, so I'll better shut up) 20090411 13:32:21< mordante> silene, it's now the case display.hpp:736 I need them to be sorted in 'rows' so use a different ordering function 20090411 13:32:30< AnMaster> loonybot, did it work? 20090411 13:32:32< loonybot> error: 'did' does not name a type 20090411 13:32:37< AnMaster> err 20090411 13:32:39< AnMaster> mistab 20090411 13:32:49< AnMaster> loonycyborg I meant 20090411 13:32:56< mordante> silene, and display::drawing_buffer_commit() contains more of the ordering of redrawing the tiles and units 20090411 13:32:58< loonycyborg> AnMaster: Yes. It did. 20090411 13:33:07< AnMaster> also what did that bot think I was trying to tell it. 20090411 13:33:22< loonycyborg> AnMaster: That's a C++ eval bot. 20090411 13:33:48< AnMaster> interesting, How does it ensure security? 20090411 13:34:02< silene> mordante: all the better then, that's exactly the ordering i was suggesting for map_location::operator<; so you will even be able to remove this code 20090411 13:34:16< AnMaster> loonybot: #include \nexit(1); 20090411 13:34:17< loonybot> error: expected constructor, destructor, or type conversion before '(' token 20090411 13:34:18< AnMaster> meh 20090411 13:34:27< loonycyborg> AnMaster: ptrace and chroot jail. 20090411 13:34:30< AnMaster> ah 20090411 13:35:15< mordante> silene, that would be great, only if you make that change it should be documented that that order is guaranteed, since the display code depends on it 20090411 13:35:19< loonycyborg> AnMaster: http://www.xs4all.nl/~weegen/eelis/geordi/ 20090411 13:35:31< AnMaster> I was just about to ask for source heh :) 20090411 13:35:37< mordante> silene, only not sure whether more code depends on the order 20090411 13:36:28< benetnash> Crab_: I submited fixed version of this patch. But still formula_ai.cpp has very wrong identation: 20090411 13:36:29< benetnash> tank:src$ grep ' ' formula_ai.cpp | wc -l 20090411 13:36:30< benetnash> 322 20090411 13:37:04< mordante> formula_ai already had a lot of places wrong :-( 20090411 13:37:07< boucman> benetnash: the new version of your patch is ready for review, or you still want to change stuff ? 20090411 13:37:46< benetnash> boucman: I think it's ready. I tested it and everything works 20090411 13:37:50< mordante> benetnash, it you want to fix it, please supply a separate patch 20090411 13:38:08< boucman> benetnash: ok, will review 20090411 13:38:29< boucman> Crab_: no remarks on benetnash's patch (both the content and idea) ? 20090411 13:38:44< AnMaster> benetnash, if you are looking for indention wouldn't something like grep -E '^(\t* +\t*)+[^ \t]' be better (not tested, but something like that should work I think) 20090411 13:38:44< Crab_> boucman: idea is ok. 20090411 13:38:55< benetnash> mordante: ok, It's quite easy - delete all identation and issue autoident in vim ;) 20090411 13:39:25< mordante> benetnash, I know ;-) 20090411 13:41:21< Crab_> benetnash: implementation, however, has a caveat.. there can be units with 0 movement and 0 attacks left, and there can be units with 0 movement but 1+ attacks left. have you checked/tested your implementation in these cases ? 20090411 13:41:56< dfranke> silene: ok, you're right that it's getting inlined. With the original definition it doesn't show up in oprofile. 20090411 13:43:07-!- oak_ [n=oakus@252.108.broadband12.iol.cz] has quit [Read error: 110 (Connection timed out)] 20090411 13:43:25-!- zookeeper [n=l@wesnoth/developer/zookeeper] has quit [] 20090411 13:43:26< benetnash> Crab_: yes, it's missing. boucman, hold on with patch review, i'll fix it 20090411 13:43:37< boucman> k* 20090411 13:47:09< mordante> corn, did you already upload the prototype code of your stats server? if not can you upload it somewhere we love to have a look at it 20090411 13:48:23< Ivanovic> corn: and please post a comment in your proposal once you uploaded the prototype stuff 20090411 13:48:43< Ivanovic> so far your prototype is not linked anywhere, neither in the wiki not in the application at google 20090411 13:49:27< boucman> corn: and your prototype seems to be down, do you only start it on demand ? 20090411 13:50:20< dfranke> silene: any ideas on how I could benchmark the original code versus your suggested implementation? I want to see how the savings inside operator<() compare to the penalties for using short coordinates. 20090411 13:51:05< Ivanovic> (as all summer of code applicants might see: time of the decission is nearing, where are doing some last "checks" before working on our final "ranking", which we will do *soon*, so if you got anything to add, post a comment in your proposal!) 20090411 13:51:15-!- oak__ [n=oakus@252.108.broadband12.iol.cz] has joined #wesnoth-dev 20090411 13:52:07< boucman> Crab_: could you have your bot repeat Ivanovic's last remark regularly ? 20090411 13:52:33< dfranke> silene: (still there?) 20090411 13:52:40< Crab_> boucman: yes. what is the suitable schedule ? 20090411 13:53:00< silene> dfranke: at a time, there was a benchmark, i don't know if it is still around there 20090411 13:53:23< boucman> do it every 5 hours until monday evening, for example 20090411 13:53:32< Crab_> boucman: and you can put a shortened version of it in the topic, just in case 20090411 13:54:07< mordante> there are still some benchmarks when you play a local MP game 20090411 13:54:24< dfranke> alright, I'll look into this in morning. 20090411 13:54:36< dfranke> I need to have gone to bed a long time ago. 20090411 13:54:45 * mordante knows that feeling ;-) 20090411 13:54:49< mordante> night dfranke 20090411 14:07:37-!- oak_ [n=oakus@252.108.broadband12.iol.cz] has joined #wesnoth-dev 20090411 14:08:52-!- edb [n=edb@79.95.12.71] has quit [Remote closed the connection] 20090411 14:10:15< benetnash> I submited 4th version of patch, I hope it's the last one 20090411 14:10:22< boucman> k 20090411 14:10:35< Crab_> benetnash: ok 20090411 14:11:50< CIA-30> silene * r34712 /branches/1.6/po/wesnoth/fr.po: Updated French translation. 20090411 14:16:23< Crab_> benetnash: i'm not happy with the naming of find_enemies function and it's parameters. You should make it clear that that function has *side effect* - it adds attacks to vars, and you should make puproses of src and dst clear. For example - collect_possible_attacks(std::vector& vars, map_location attacker, map_location attacker_location) 20090411 14:17:19< boucman> benetnash: your variable is a list containing a single hash, which has a single key (attacks) which is a list of all attacks 20090411 14:17:27< boucman> why not simply have a list of attacks ? 20090411 14:17:50-!- Gnutoo [n=gnutoo@host155-29-dynamic.17-79-r.retail.telecomitalia.it] has joined #wesnoth-dev 20090411 14:17:50< Crab_> boucman: a list of attacks would auto-evaluate into ai doing actual attacks. 20090411 14:17:59< Crab_> boucman: this is a *feature* of formula_ai. 20090411 14:18:26< boucman> Crab_: yes, just like with moves... we know that move should be used in [] 20090411 14:18:55< boucman> i tested by printing [all_my_attacks] because I expected it to be attacks, 20090411 14:19:11< boucman> why not be consistant ? 20090411 14:19:24< boucman> esp since the wrapper has no added value 20090411 14:19:28< Crab_> boucman: my_moves ? 20090411 14:19:32< benetnash> boucman: I did that becouse my_moves has the same structure 20090411 14:19:35< boucman> yes, my_moves 20090411 14:19:50< Crab_> mo_moves is a wrapper 20090411 14:19:55< Crab_> s/mo_moves/my_moves 20090411 14:20:07< boucman> hmm 20090411 14:20:13< Crab_> print it ) 20090411 14:20:14< boucman> this has been changed recently , 20090411 14:20:22< boucman> ? 20090411 14:20:22< Dragonking> boucman: Nope :) 20090411 14:20:25< boucman> darn 20090411 14:20:31< boucman> ok, makes sense then :) 20090411 14:21:13< Crab_> :-P 20090411 14:24:59-!- oak__ [n=oakus@252.108.broadband12.iol.cz] has quit [Read error: 110 (Connection timed out)] 20090411 14:28:20< Patterner> wesnoth (v1.7.0-svn (34711)) cannot find the stuff in ~/.wesnoth/data/campaigns/ anymore. or add-ons... Did I miss some momo? 20090411 14:29:15< benetnash> Patterner: ~/.wesnoth? not ~/.wesnoth1.7 ? 20090411 14:31:16< Patterner> good question 20090411 14:32:01< benetnash> try to mv .wesnoth to .wesnoth1.7 20090411 14:32:13< Crab_> Patterner: look for "User configuration directory: ..." line on startup 20090411 14:32:13-!- busfahrer [n=busfahre@unixboard/user/busfahrer] has joined #wesnoth-dev 20090411 14:32:20< Patterner> because it says "User configuration directory: $HOME/.wesnoth" 20090411 14:32:57< loonycyborg> I've renamed campaigns to add-ons. It works ater that. 20090411 14:33:04< loonycyborg> *after 20090411 14:34:25< CIA-30> fendrin * r34713 /trunk/data/campaigns/Delfadors_Memoirs/ (4 files in 4 dirs): DM: Rewrote the generator for scenario 7. 20090411 14:35:07< Patterner> o.k. renaming campaings to add-ons helped. still saying ".wesnoth", not ".wesnoth1.7" 20090411 14:36:15< loonycyborg> That dir is set during compilation. 20090411 14:38:00< Ivanovic> Crab_: in fact: until monday evening is longer than required 20090411 14:38:13< Crab_> Ivanovic: ok. until sunday evening ? 20090411 14:38:14< Ivanovic> that is: we will have our final decission done before 20090411 14:38:19< Ivanovic> jupp, sunday evening is fine 20090411 14:38:26< Crab_> Ivanovic: good 20090411 14:38:28< Ivanovic> anyone not reacting till then is just "too late" 20090411 14:41:45< boucman> benetnash: wht is srcdst_ and units_ public ? 20090411 14:42:04< boucman> why not put the functions in the bottom public: part in the top one ? 20090411 14:44:23< CIA-30> silene * r34714 /branches/1.6/po/wesnoth-units/fr.po: Updated French translation. 20090411 14:44:40< boucman> benetnash: except for that, it looks good, waiting for you answer on my last remarks and i'll commit 20090411 14:45:19< Crab_> boucman: and there's my remark about naming of find_enemies function and its parameters ) 20090411 14:45:59< benetnash> Crab_: I already fixed that. 20090411 14:46:12< benetnash> boucman: I'll discuss it in a while. I have to prepare a dinner ;) 20090411 14:46:13< Crab_> benetnash: thanks 20090411 14:46:33< boucman> k 20090411 14:48:39-!- Polarina [n=polarina@wesnoth/translator/Polarina] has joined #wesnoth-dev 20090411 14:54:49-!- Ambushsabre [n=ambushsa@c-75-67-216-121.hsd1.nh.comcast.net] has joined #wesnoth-dev 20090411 15:00:14-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Connection reset by peer] 20090411 15:00:29-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 15:06:26< benetnash> boucman: srcdst_ was public because in move_map_callable it was and I thought that it must be public for some reason. I 20090411 15:06:31< benetnash> other fields are private 20090411 15:06:58< boucman> ok, I'll move it to private and see if it still compiles 20090411 15:07:08< Crab_> benetnash: IMO delete it and see if it still compiles ) 20090411 15:08:29< Crab_> benetnash: because, then, someday, someone will say " srcdst_ was public because in attack_map_callable it was and I thought that it must be public for some reason. " 20090411 15:09:32< benetnash> Crab_: yes, it compiles. In work I'm C# programmer and in C# removing of some field may result in runtime error 20090411 15:10:30< benetnash> boucman: but afair in C++ default visibility is private, so srcdst_, units_ and ai_ are already private 20090411 15:11:10< benetnash> but I haven't programmed in C++ for two years and I might forget something 20090411 15:11:18< Crab_> benetnash: we're about const move_map& srcdst() 20090411 15:12:40< boucman> benetnash: ok, my bad, I was tricked by the private: in the middle, which doesn't make sense since you're already in a private context 20090411 15:13:26< benetnash> Crab_: I removed it and it still compiles and works. I'll create new patch and sand it in a while 20090411 15:13:37< Crab_> ok 20090411 15:13:57< boucman> while you're at it, please try to keep our convention of having public members first and private member second 20090411 15:14:38< benetnash> boucman: right, it's unnecessary. I remove it 20090411 15:14:46< benetnash> boucman: ok 20090411 15:16:14< benetnash> boucman: I copied it from callable_objects.cpp where in each class private fields are first 20090411 15:16:46< benetnash> boucman: maybe not each, but in some 20090411 15:17:10< boucman> benetnash: it's not because it's not clean elsewhere that it has to be untidy here :P 20090411 15:18:32< benetnash> boucman: of course. I'll still learning, I hope my next patches will be clean and nice ;) 20090411 15:18:40< boucman> sure 20090411 15:21:41< Crab_> benetnash: sure ) For example, it took ~7 patch versions for my run_file formula function to be accepted ) 20090411 15:21:55< boucman> hehe 20090411 15:22:47< Crab_> boucman: we haven't told benetnash about doxygen comments yet :) 20090411 15:22:55< boucman> :P 20090411 15:26:05-!- crimson_p [n=irchon@64.201.60.216] has joined #wesnoth-dev 20090411 15:26:23-!- crimson_p [n=irchon@64.201.60.216] has quit [Remote closed the connection] 20090411 15:31:32-!- BenUrban [n=benurban@unaffiliated/benurban] has quit ["Power failu"] 20090411 15:43:22-!- Ambushsabre [n=ambushsa@c-75-67-216-121.hsd1.nh.comcast.net] has quit [Read error: 110 (Connection timed out)] 20090411 15:44:38< AnMaster> hm 20090411 15:45:16< AnMaster> oops wrong channel 20090411 15:48:49< benetnash> what do you think about adding random(min, max) function to Formula AI? When my AI has several moves with equal, good values it's good to choose one at random not the first 20090411 15:49:06< Crab_> benetnash 'd' is not enough ? 20090411 15:49:16< CIA-30> silene * r34715 /branches/1.6/po/wesnoth-tutorial/fr.po: Updated French translation. 20090411 15:49:24< boucman> benetnash: from a debug point of view, I would advise avoiding random as much as possible 20090411 15:49:33< benetnash> Crab_: you're right ;) 20090411 15:49:45< boucman> when someone sends you a savegame just before an AI problem, it's easier if you can reproduce :P 20090411 15:49:49< silene> benetnash: please no random values for the ai 20090411 15:49:51< AnMaster> hm cut scene pictures being scaled to fill window is uggly 20090411 15:50:08< Crab_> silene: it's already there, for a long time ) AI can roll dice 20090411 15:50:13< AnMaster> happens in Northen rebirth a lot. scaling a 274x283 image to fill a 1392x976 window.. 20090411 15:50:29< boucman> Crab_: it can, but it doesn't :P 20090411 15:50:52< benetnash> silene: why? 20090411 15:51:03< boucman> benetnash: for the reason I stated above 20090411 15:51:05< silene> benetnash: for debugging 20090411 15:51:17< benetnash> ok 20090411 15:51:20< silene> having reproducibility is a must have 20090411 15:52:04< Crab_> boucman: .fai can be used to generate stats for D&D character ) by evaluating something like [3d6,3d6,3d6,3d6,3d6,3d6] ) 20090411 15:52:29< boucman> yes, as I say, it can do random numbers, but so far no formula I have seen use it 20090411 15:53:10< benetnash> boucman: to choose one move from several equally good. To make AI less predictable 20090411 15:53:26< Crab_> boucman: it can be useful for scenario editors, to increase replayability... 20090411 15:53:30< boucman> benetnash: trust me, it's not worth it 20090411 15:53:56< boucman> AIs are VERY complicated, not being able to reproduce your result is too high a price for such a slight improvement 20090411 15:55:20< Crab_> boucman: one concrete example is Delfador's Manuals lvl 22_clash_at_the_manor - it uses random values in conjunction with 'goto' movements to make ai riders less predictable... 20090411 15:55:54< Crab_> s/Manuals/Memoirs ) 20090411 15:56:22< boucman> ok 20090411 15:56:57< Ivanovic> if the algorithms behind the ai are "complex" enough, they are not predictible either 20090411 15:57:14< Ivanovic> but still they are *reproducible* when you encounter a problem 20090411 15:57:37< benetnash> do you think, that all_my_attacks is good name for this variable? it sounds strange... 20090411 15:57:48< Ivanovic> this "complexity" though should come from some weighting and such 20090411 15:58:09< boucman> maybe have a "deterministic" RNG for the AI, at some point could be usefull (i.e the seed saved in the savegame or something) but at this point, don't use random if you can avoid it 20090411 15:58:57< Crab_> boucman: and what to do with 'ai has north-west bias' kind of stuff ? 20090411 15:59:03< boucman> benetnash: it should be my_attacks to be similar to my_moves, i guess 20090411 15:59:20< benetnash> boucman: ok, I'll rename it. 20090411 15:59:25< benetnash> what is RNG? 20090411 15:59:31< boucman> Crab_: then take the last attack if it's less predictable 20090411 15:59:37< Crab_> benetnash: Random Number Generator 20090411 15:59:46< benetnash> Crab_: thx 20090411 15:59:46< boucman> but seriously, the improvement is not worth the problems 20090411 16:00:02< Crab_> boucman: there's no need for improvement ) 20090411 16:00:16< Ivanovic> Crab_: this could be solved with making the ai head towards some enemy leader prefered or stuff like this 20090411 16:00:20< boucman> Imean, savegames provided is more or less the only way we have to reproduce problems reported by our users, it'ss really a functionality we can't afford to drop 20090411 16:00:26< Ivanovic> not hardcoding a "real" direction 20090411 16:00:37< silene> Crab_: the north-west bias is because the ai has no clue what to do; it wouldn't be much better from a user point of view if the units were randomly moving around; it's up to us to fix the scenarios or improve the ai 20090411 16:00:57< Crab_> Ivanovic: yes, "ai is biased - it wants to kill my leader!!!" will not be a bug ))) 20090411 16:01:18< Crab_> silene: yes, I agree. 20090411 16:01:46< Ivanovic> Crab_: of course it is not 20090411 16:01:51< Ivanovic> since this is a target *anyway* 20090411 16:02:54< Ivanovic> Crab_: in general such a north west bias can be countered with a *task* to do when not sure what else to do 20090411 16:03:06< Ivanovic> that is: find some "promising defense position" or anything like this 20090411 16:03:20< Crab_> Ivanovic: yes, something like this. or 'do what is said in the scenario' 20090411 16:03:27< Ivanovic> exactly 20090411 16:04:34< mordante> in fact the nw bias makes it easier to debug, if a unit wanders in that direction you know it has no idea what to do ;-) 20090411 16:05:37< mordante> and I agree that adding random numbers in the AI itself is a bad idea due to debugging 20090411 16:05:57< Crab_> mordante: so, we should deprecate 'd' ? 20090411 16:06:27< mordante> d? 20090411 16:06:31< boucman> Crab_: no, it might be usefull in some rare case, and remember that formulas can also be used by gui/WML 20090411 16:06:39< boucman> mordante: as in 3d6 20090411 16:06:47< Crab_> mordante: formula language already has random numbers ) 20090411 16:07:01< boucman> we should just be carefull when including external AI code to justify it thouroughly 20090411 16:07:27< Crab_> so, maybe add a note to the fai wiki explaining that using random numbers is not 'the right thing to do' in most situations ? 20090411 16:07:31< boucman> btw, mordante, did the crash in the wesband menus get fixed for 1.6.1 ? 20090411 16:07:41-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 60 (Operation timed out)] 20090411 16:07:41< boucman> Crab_: yes, sounds good 20090411 16:08:04-!- Elvish_Pillager [n=eli@66-189-40-122.dhcp.oxfr.ma.charter.com] has joined #wesnoth-dev 20090411 16:08:07< mordante> Crab_, I agree with boucman 20090411 16:08:21< Crab_> ok 20090411 16:08:41-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 16:08:47< boucman> benetnash: did you provide a final version of your patch , 20090411 16:08:51< mordante> having random numbers can be nice for some special scenarios, but try to make the AI decisions not random when not needed 20090411 16:09:11< boucman> one more grafiti spam :( 20090411 16:09:22< mordante> I can imagine some more RPG like scenarios where it can be nice to have 20090411 16:09:31< mordante> boucman, you have a bug number? 20090411 16:09:43< benetnash> I agree with you but consider following situation: in poisoning script there are two equal units and poisoner attacks always first unit. With slight random noise it will poison both randomly 20090411 16:09:45< benetnash> boucman: I hope 20090411 16:09:49< boucman> not of the top of my head, searching... 20090411 16:10:08< Ivanovic> benetnash: the question is *why* are they equal? 20090411 16:10:16< Ivanovic> benetnash: their position on the map is not equal 20090411 16:10:25< Ivanovic> this alone could *also* alter the decision 20090411 16:10:34< Crab_> added a note to wiki 20090411 16:10:40< mordante> benetnash, in that case please no randomness, I consider being able to debug more important 20090411 16:10:45< boucman> Ivanovic: because the AI is not erfect, if the position are close enough in value, we might not have diferentiated them 20090411 16:10:45< benetnash> Ivanovic: and we are returning to north west bias ;) 20090411 16:10:59< boucman> however it shouldn't matter much which one we take as long as it's not random 20090411 16:11:37< benetnash> ok, I understand your point of view 20090411 16:12:00< mordante> benetnash, AI problems can already be hard to reproduce if you add more randomness reproducing can become even harder 20090411 16:12:07< Ivanovic> benetnash: ehm, we don't have to be back to a NW bias 20090411 16:12:27< Ivanovic> benetnash: instead of a NW bias it could fall back to some procedure that makes *sense* 20090411 16:12:29< Ivanovic> ;) 20090411 16:12:58< mordante> benetnash, for some bug we already need attacker 3 to kill a unit in order to trigger a bug 20090411 16:13:08< Crab_> benetnash: and, consider this: if you make the AI choose randomly, it *will* still be biased, but its bias will be random. 20090411 16:13:32< mordante> benetnash, and if the order of the units gets random the unit triggering the bug might already finished its round before the bug occurs 20090411 16:14:10< Ivanovic> things ingame *appearing* random to a player is different from them really being random and thus unreproducible in a reliable manner 20090411 16:14:28< Ivanovic> so yeah, the *player* should think that the ai makes sense and is not really predictable 20090411 16:14:45< benetnash> Crab_: yes, but randomly biased AI makes better playability because (Ivanovic just said that) 20090411 16:15:39< Ivanovic> benetnash: what i said is exactly the oposite of "make things random" 20090411 16:15:45< benetnash> good AI should not play as good as possible but should play as human so It should be biased. 20090411 16:16:04< Ivanovic> when replaying exactly the same situation in exactly the same way the AI should do exactly the same things 20090411 16:16:31< Crab_> benetnash: do humans frequently choose what unit to attack by rolling a dice ? 20090411 16:16:32< boucman> benetnash: could you repost your last patch as a complete patch (instead of just the formula_ai part) plz 20090411 16:16:37< mordante> that is if all attacks have the same result as before 20090411 16:16:44< Ivanovic> and no, it should not play "human" (since this is basically impossible) it should play in a way that makes sense 20090411 16:17:09< benetnash> I cant see any other reason for predictable AI than debugging 20090411 16:17:13< benetnash> boucman: sorry 20090411 16:17:18< boucman> np 20090411 16:17:24< Ivanovic> benetnash: oh, it is *not* predictible easily 20090411 16:17:42< Crab_> benetnash: can you predict default_ai movements ? 20090411 16:17:48< boucman> people, benetnash is convinced, no need to push further :P 20090411 16:17:52< mordante> benetnash, yes we need predictability for debugging 20090411 16:17:59< Ivanovic> deterministic in specific situations is something different than "predictible by normal humans" 20090411 16:18:04< mordante> but predictability doesn't need to be a bad thing 20090411 16:18:14< mordante> the chooses still need to be sane 20090411 16:19:07< mordante> so if all things are equal and the most NW placed unit will always get poisoned it predictable 20090411 16:19:22< mordante> but how do you know the AI thinks all things are equal 20090411 16:19:26< benetnash> boucman: thank you. And I mentioned randomness only for tie breaking (when AI have two equal moves, it's rare case). I don't want AI that plays at random ;) 20090411 16:19:55< mordante> and how often does it happen that two situations are exactly equal ? 20090411 16:20:00< Crab_> benetnash: about tie breaking - if the choices are TRULY EQUAL, then it doesn't matter at all, which choice is taken - so no need to randomize ) 20090411 16:20:06< boucman> yes, I understood it was only for tie breaking and I tried to explain only happen because we can't evaluate everything in AI, we have to stop at some point 20090411 16:21:59< mordante> Crab_, regarding the unused parameters if they're really unused feel free to remove them 20090411 16:22:14< mordante> Crab_, any luck with the signed vs. unsigned warnings? 20090411 16:22:26< Crab_> mordante: will commit fixed version soon 20090411 16:22:36< boucman> benetnash: compiling now 20090411 16:22:40< benetnash> boucman: I hope this is really the last one patch 20090411 16:22:54< mordante> great, then I'll wait to recompile 20090411 16:23:05< boucman> benetnash: we are always very severe with the first patch, so you learn some stuff :) 20090411 16:23:26< benetnash> boucman: of course. I understand you in 100% 20090411 16:24:05< loonycyborg> Crab_: Another way to deal with unused parameters is to omit their names. 20090411 16:24:25< Crab_> loonycyborg: yes, I already know 20090411 16:24:50< mordante> loonycyborg, yes that's another option, which you can use in virtual functions 20090411 16:25:20< mordante> for non virtual functions it makes no sense to add unused parameters 20090411 16:25:51< Crab_> mordante: sometimes it makes sense, when you're refactoring code and you intend to change the situation a bit later... 20090411 16:26:04< loonycyborg> I've got glibcxx_debug errors now. Perhaps it's what causes segfaults for Gnutoo.. 20090411 16:26:25-!- Sirp [n=me@wesnoth/developer/dave] has joined #wesnoth-dev 20090411 16:26:37< Gnutoo> maybe it was the assembly...because I had a bad test example... 20090411 16:26:48< Gnutoo> I'm checking it right now 20090411 16:26:57< mordante> Crab_, true I also do that, but I was talking in general 20090411 16:28:41< loonycyborg> I'm also getting segfaults with icc compiled binary. That's why I've tried glibcxx_debug. 20090411 16:29:30< mordante> loonycyborg, do you have a backtrace? 20090411 16:29:39< loonycyborg> http://rafb.net/p/W9QRFB10.html 20090411 16:30:08< loonycyborg> That's from glibcxx_debug. Might be totally different issue than with icc. 20090411 16:31:23< mordante> that seems another singular iterator problem again 20090411 16:31:40< mordante> which IIRC is UB 20090411 16:33:32-!- crimson_penguin [n=ben@64.201.60.216] has joined #wesnoth-dev 20090411 16:33:41-!- Espreon [n=espreon@wesnoth/developer/espreon] has quit [Remote closed the connection] 20090411 16:35:28< CIA-30> boucman * r34716 /trunk/ (changelog data/core/about.cfg src/formula_ai.cpp): add a my_attacks FAI variable with all possible attacks patch by benetnash 20090411 16:35:37< boucman> benetnash: commited, could you update the wiki with the new variable please ? 20090411 16:35:46< mordante> silene, you might be interested in that backtrace loonycyborg just posted 20090411 16:35:51< benetnash> benetnash: of course 20090411 16:36:02< benetnash> s/benetnash/boucman/ ;) 20090411 16:36:05< boucman> :) 20090411 16:36:23< Crab_> benetnash: congratulations ) 20090411 16:37:15< boucman> benetnash: I would be very interested in seeing your AI code, if you could pastebin a preview somewhere :) 20090411 16:38:51< benetnash> boucman: my diploma work is to evolve such code. In next week I'll start experiments and I hope to finish them at the end of may. 20090411 16:39:25< boucman> interesting... does that mean you won't pastebin a preview ? :P 20090411 16:40:18-!- Rrenys [n=rrenys@81-20-159-197.levira.ee] has joined #wesnoth-dev 20090411 16:40:45< benetnash> boucman: as soon as first AI emerge I'll post it. Now I'm just starting so I don't have anything intresting. Please wait for some results ;) 20090411 16:40:58< boucman> ok, fair enough 20090411 16:44:16< silene> mordante, loonycyborg: that may be my fault; though it looks quite strange that the error didn't occur before; i'm on the 1.6 branch right now, so i can't test any change, but the solution is possibly to add a default constructor and to remove the default parameter from the current constructor, so that there is no copy at construction time 20090411 16:47:49< loonycyborg> silene: There's nothing strange about that. That's the first time I've tried to use glibcxx debug mode since 1.6 IIRC :P 20090411 16:50:08< silene> loonycyborg: what i meant is that this idiom is in there since 0.6, or perhaps even before 20090411 16:50:50< silene> this is unfortunate that it was not noticed for all_children_iterator 20090411 16:51:07-!- heinz [n=heinz@p54B312FA.dip0.t-ipconnect.de] has joined #wesnoth-dev 20090411 16:51:20< loonycyborg> Perhaps it wasn't actually called before. 20090411 16:51:33< loonycyborg> Without an argument that is. 20090411 16:52:38< heinz> hi. I just compiled wesnoth 1.6a from source and it feels... urm... much "slower" than 1.4 on my good Celeron 1.5GHz. Anything that I may have done wrong? 20090411 16:53:31< loonycyborg> There are some reports that 1.6 is much slower than 1.4 for some people. 20090411 16:53:38< mordante> heinz, any numbers? 20090411 16:54:12< boucman> heinz: yes, we know about that, and did some heavy improvement for the (soon to be tagged) 1.6.1 20090411 16:54:18< heinz> mordante: I don't have exact timings, but it is in "very decent, smooth moving" vs "a pain to watch" ;-) 20090411 16:54:26< heinz> boucman: ah, good to hear 20090411 16:54:31< boucman> if you compiled yourself, it would be great to compile from trunk and report if things have improved 20090411 16:54:41< heinz> I already switched off idle animations and the like 20090411 16:54:59< boucman> unfortunately that might help a little but not that much... 20090411 16:55:14< mordante> heinz, can you start wesnoth with --fps? which shows the number of frames the game is running on 20090411 16:55:27< heinz> boucman: will. do. I am just trying to survive my first 1.6 Isar ;-) 20090411 16:56:14< heinz> boucman: well, maybe it's also me. I upgraded the system yesterday, too 20090411 16:56:42< boucman> well, you're not the first one to report that, so there is some truth in it 20090411 16:56:44< CIA-30> silene * r34717 /branches/1.6/po/wesnoth/fr.po: Typo. 20090411 16:56:56< CIA-30> silene * r34718 /branches/1.6/po/wesnoth-utbs/fr.po: Updated French translation. 20090411 16:57:01< boucman> however we had only little feedbacks on the improvements, that's why I'm asking you for help :) 20090411 16:57:50< heinz> boucman: replay jumps wildly between 9 and 40 fps 20090411 16:58:05< boucman> with trunk or 1.6a ? 20090411 16:58:56< heinz> 1.6a. the machine is not soooo quick compiling ;-) 20090411 16:59:39< boucman> k :) 20090411 17:02:22< heinz> I get tons of "20090411 16:57:26 error config: Error: invalid string:" on the console btw. 20090411 17:03:12< heinz> that's 1.6a source && ./configure && make && make install on a recent Ubuntu 9.4 20090411 17:04:42-!- Rrenys [n=rrenys@81-20-159-197.levira.ee] has quit [Read error: 104 (Connection reset by peer)] 20090411 17:05:19-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 17:07:12< loonycyborg> mordante: Here's bt from icc segfault: http://rafb.net/p/AUCNp296.html 20090411 17:07:16< silene> heinz: what's the invalid string? 20090411 17:07:45< loonycyborg> Fortunately icc generates debug symbols compatible with gdb :) 20090411 17:10:04< heinz> silene: it's seemingly empty in most cases 20090411 17:10:34< heinz> silene: but I also get 20090411 16:57:24 error config: File not found 'SOUND_LIST:ELF_FEMALE_DIE' 20090411 17:11:07< heinz> silene: which is somewhat starnge as there are no elves in that game 20090411 17:12:59< mordante> loonycyborg, looks like a different backtrace 20090411 17:13:01-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 110 (Connection timed out)] 20090411 17:13:09< mordante> not sure what went wrong 20090411 17:13:26< loonycyborg> Yes. It also happens at different time. 20090411 17:14:01< loonycyborg> glibcxx one happens at startup while icc's one happens when a campaign starts when game map appears. 20090411 17:14:01< mordante> silene, I prefer to leave that config.hpp problem for you, your detailed C++ knowledge is better as mine 20090411 17:14:27< silene> mordante: okay 20090411 17:15:05< loonycyborg> I'm more than capable of adding a default constructor and removing a default argument :P 20090411 17:15:28< mordante> me too, but I want to make sure it's the right solution for all cases 20090411 17:15:34< silene> loonycyborg: please do so, especially since you already have your system set up for testing ;-) 20090411 17:15:45< mordante> copying an uninitialized iterator is also UB 20090411 17:16:19< mordante> which I hope will be addressed in C++0x 20090411 17:17:06< CIA-30> crab * r34719 /trunk/src/ (ai_interface.hpp menu_events.cpp playsingle_controller.cpp): AI Refactoring: removed unused turn_data_ from ai_interface::info 20090411 17:17:26< CIA-30> crab * r34720 /trunk/src/ (12 files): 20090411 17:17:26< CIA-30> AI Refactoring: Moved location of ai_interface::info to ai_manager. Now using a 20090411 17:17:26< CIA-30> single copy of ai_interface::info for all AIs, and using get_info() accessor to 20090411 17:17:26< CIA-30> get it from AIs. Also, fixed side to be unsigned int where it is possible. 20090411 17:17:40< Crab_> mordante ^^ 20090411 17:17:44< Polarina> Crab_: Keep up the good work. :) 20090411 17:18:01< mordante> thanks Crab_ 20090411 17:18:24< Crab_> Polarina: I've not yet started the most dirty part of that refactoring... 20090411 17:18:47< silene> mordante: i don't remember anyone talking about it, so i don't think it's on the radar; an unitialized iterator is theoretically singular, hance not copyable 20090411 17:18:56< Polarina> Crab_: It's still getting cleaner. :) 20090411 17:19:13< Crab_> Polarina: thanks 20090411 17:20:37< mordante> silene, :-( I hoped it would become defined (eg the copy also being singular) 20090411 17:22:07< heinz> mordante: I doubt such stuff will be handled at any time in the standard. 20090411 17:23:16< mordante> well it would be nice to have it defined, but well if if's not in C++0x it yet it won't happen soon 20090411 17:24:18< heinz> mordante: I think they have still some old machines in mind where loading certain values into the wrong registers might cause traps. I guess there's no such thing alive anymore, but you can't change certain habits ;-} 20090411 17:24:45< silene> mordante: i just checked and the corresponding dr is still tagged as open, so i don't expect any change soon 20090411 17:25:03< mordante> heinz, old hardware can't be modified a standard can 20090411 17:25:11< mordante> thanks silene 20090411 17:25:21< heinz> mordante: I am aware of the theory ;-_) 20090411 17:26:35< mordante> and I see no big problem in changing some UB into defined behaviour, it doesn't break anything 20090411 17:28:18< silene> mordante: this one is a bit annoying because it requires massive rewording; minimal wording would prevent the use of pointers as iterators, that's why people are reluctant to touch it 20090411 17:29:54< mordante> I expected there were good reasons not to do it for now, writing a good standard it not easy 20090411 17:31:25< heinz> mordante: in this case the good reason is probably "do not impose a performance penalty" 20090411 17:32:27< silene> i was mistaken, there was a change: the defect report was moved to the active list, so someone is supposed to prepare some wording for a meeting to come 20090411 17:33:06< mordante> does that mean it has a chance to be part of C++0x or is it already too late for that? 20090411 17:34:11< heinz> mordante: I am pretty sure it won't be defined. 20090411 17:34:23< heinz> silene: oh. where? 20090411 17:34:25< mordante> heinz, why ? 20090411 17:34:31-!- cjhopman [n=chris@wesnoth/developer/cjhopman] has quit ["Konversation terminated!"] 20090411 17:34:56< silene> mordante: i would say it has a chance 20090411 17:35:42< mordante> nice, I go back to hoping it gets in ;-) 20090411 17:38:58-!- molgrum [n=molgrum@c83-249-53-163.bredband.comhem.se] has joined #wesnoth-dev 20090411 17:48:11< heinz> would it be possible to use 1.4 on the 1.6 server? 20090411 17:48:34< Ivanovic> NO 20090411 17:48:57< Ivanovic> just try branches/1.6 (the latest version of it), you might already see some improvements 20090411 17:50:48< heinz> Ivanovic: right now I need to kill some stuff un the harddrive to even get a svn checkout ;-} 20090411 17:51:40< heinz> Ivanovic: branches/1.6 is different from trunk? 20090411 17:51:51< mordante> yes 20090411 17:51:59< Ivanovic> heinz: very different 20090411 17:52:02< heinz> Ivanovic: can I 'svw switch' to it easily? 20090411 17:52:03< mordante> branches 1.6 is the stable version 20090411 17:52:12< mordante> trunk is development 20090411 17:52:15< Ivanovic> trunk is our playground and *incompatible* with 1.6.x (yes already right now) 20090411 17:52:16-!- Psyche^ [n=Psyche@e177225124.adsl.alicedsl.de] has joined #wesnoth-dev 20090411 17:52:18< CIA-30> loonycyborg * r34721 /trunk/src/config.hpp: 20090411 17:52:18< CIA-30> Fixed "attempt to copy-construct an iterator from a singular iterator" glibcxx_debug error 20090411 17:52:18< CIA-30> which was caused by passing a default-constructed iterator as default 20090411 17:52:18< CIA-30> argument to const_child_iterator's constructor and copy-constructing a member from it. 20090411 17:52:22< Ivanovic> from trunk we create the development releases 20090411 17:52:35< mordante> you can switch 20090411 17:52:45< Ivanovic> once we are in a satisfying state we split off a stable series which is "developed" in branches/1.x 20090411 17:53:00< mordante> but in the future getting a separate checkout can be faster 20090411 17:53:08< Ivanovic> (latest stable series being 1.6) 20090411 17:54:43-!- Patterner [n=Psyche@d121113.adsl.hansenet.de] has quit [Read error: 60 (Operation timed out)] 20090411 17:54:43-!- Psyche^ is now known as Patterner 20090411 17:55:20< CIA-30> mordante * r34722 /trunk/src/log.hpp: 20090411 17:55:20< CIA-30> Remove an unneeded header. 20090411 17:55:20< CIA-30> Also added comment iostream is needed so it won't get removed again in the future. 20090411 17:57:09< CIA-30> crab * r34723 /trunk/src/ (5 files): AI Refactoring: changed 'team' to 'side' when it means 'side number that starts from 1'. 20090411 18:05:47-!- Espreon [n=espreon@wesnoth/developer/espreon] has joined #wesnoth-dev 20090411 18:16:25-!- heinz [n=heinz@p54B312FA.dip0.t-ipconnect.de] has quit [Read error: 110 (Connection timed out)] 20090411 18:16:56-!- heinz [n=heinz@p54B312FA.dip0.t-ipconnect.de] has joined #wesnoth-dev 20090411 18:19:01-!- Reisiger [n=Reisiger@adsl-89-217-197-164.adslplus.ch] has joined #wesnoth-dev 20090411 18:19:12< Reisiger> Evening everyone. 20090411 18:19:49< Espreon> Good afternoon to you. 20090411 18:26:54< Crab_> benetnash: around ? 20090411 18:26:59 * Reisiger flexes fingers and works on figuring out which (c|h9pp files are missing from MSVC project files 20090411 18:29:45-!- cjhopman [n=chris@wesnoth/developer/cjhopman] has joined #wesnoth-dev 20090411 18:30:10< boucman> hey cjhopman 20090411 18:41:55< Reisiger> Q: in the server... was there a header containing #include ? I had to add it to parser.hpp to get MSVC to compile partyway (error further down compiling, working on that now) 20090411 18:44:50-!- Turuk_ [n=Turuk@wesnoth/forumsith/turuk] has quit [Read error: 104 (Connection reset by peer)] 20090411 18:45:05-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 18:46:04-!- nagbot [n=nagbot@smtp.terraninfo.net] has joined #wesnoth-dev 20090411 18:51:16< loonycyborg> Reisiger: Mordante removed some unneeded headers recently :P 20090411 18:51:33< Reisiger> I noticed... I think he might have overdone it... 20090411 18:51:40< mordante> I was already looking at it ;-) 20090411 18:51:45< loonycyborg> The problem is that 'unneeded' depends on compiler. 20090411 18:51:59< esr> fabii: ping? 20090411 18:52:54-!- noy [n=Noy@d75-157-52-251.bchsia.telus.net] has joined #wesnoth-dev 20090411 18:53:06-!- Patterner [n=Psyche@e177225124.adsl.alicedsl.de] has quit [Read error: 104 (Connection reset by peer)] 20090411 18:53:07< mordante> true but I already removed a lot of dependencies before, which improved build time here quite a bit 20090411 18:53:17< mordante> brb 20090411 18:54:01< Reisiger> Yep... altho now MSVC throws fits o_O 20090411 18:54:36< esr> OK, thet's try again: fabi: The new generator code for Night In The Swamp is npot working quite right. I have savefile where moving a white mage onto a generator fails to fire the moveto event. This may be an instance of bug #13330: saved moveto event does not fire. 20090411 18:54:56-!- mjs-de [n=mjs-de@vpw.wh.uni-dortmund.de] has quit ["On the road again"] 20090411 18:55:56-!- Patterner [n=Psyche@e177225124.adsl.alicedsl.de] has joined #wesnoth-dev 20090411 18:57:32< Reisiger> mordante: So far wesnothd has fits, once I'm done testing if wesnoth compiles, I'll post MSVC output for the server in a pastebin 20090411 18:58:33< mordante> Reisiger, I removed and replaced with guess the latter caused the problem for you 20090411 18:59:01< mordante> I'll add the after dinner 20090411 18:59:07< mordante> (off to dinner now) 20090411 18:59:17< Reisiger> I added #include to parser.hpp to get that to compile. throws later on an issue about 'time' in sample_user_handler.hpp 20090411 19:01:18-!- Espreon [n=espreon@wesnoth/developer/espreon] has quit [Remote closed the connection] 20090411 19:02:05< Chusslove> Ivanovic: There? I've run a small interpolations-linter on PO files: http://rafb.net/p/u2s8fv89.html 20090411 19:02:34< nagbot> Hello GSoC Applicants! 20090411 19:02:34< nagbot> SoC decision is near 20090411 19:02:34< nagbot> We are doing last checks before working on our final "ranking", which we will do *soon* 20090411 19:02:37< nagbot> So, if you want to add anything, post a comment in your proposal 20090411 19:02:59< Chusslove> Don't know what would be the best way to inform people about these problems. 20090411 19:05:08< boucman> and one more spam... 20090411 19:06:03-!- ryochan7 [n=ryochan7@173.9.238.161] has joined #wesnoth-dev 20090411 19:06:43< CIA-30> fendrin * r34724 /trunk/data/campaigns/Legend_of_Wesmere/scenarios/01_The_Uprooting.cfg: LoW 01: Made use of the new Aged trait. 20090411 19:06:51-!- Espreon [n=espreon@wesnoth/developer/espreon] has joined #wesnoth-dev 20090411 19:08:21< Ivanovic> Chusslove: a mail to the -i18n list 20090411 19:08:28< Ivanovic> it is there for this stuff... 20090411 19:08:32-!- Espreon [n=espreon@wesnoth/developer/espreon] has quit [Remote closed the connection] 20090411 19:08:55< esr> fabi: Night in the Swamp is still slightly broken, but I think it's an engine bug. Saved moveto events don't fire reliably - I've rated this a release blocker. 20090411 19:09:04< cjhopman> hey boucman 20090411 19:09:25< CIA-30> fendrin * r34725 /trunk/data/campaigns/Legend_of_Wesmere/scenarios/21_Elvish_Assassins.cfg: LoW 21: Code cleanup 20090411 19:09:50< Chusslove> Will do. 20090411 19:09:52< Reisiger> mordante: MSVC compiles wesnoth and it's faster :) 20090411 19:10:44< Polarina> Reisiger: Faster compiling, slower running. 20090411 19:11:01< CIA-30> fendrin * r34726 /trunk/data/campaigns/Legend_of_Wesmere/scenarios/19_Costly_Revenge.cfg: 20090411 19:11:01< CIA-30> LoW: 19: Changed scenario objective to fit the story: 20090411 19:11:01< CIA-30> The player must wipe out the saurians by killing every single unit and destroy all villages. 20090411 19:11:05< Reisiger> mordante: I'll get you the output when compiling wesnothd _after_ adding #include back to parser.hpp 20090411 19:11:18< cjhopman> gotta go now, practice is starting 20090411 19:12:07< Reisiger> Polarina: so far just checked compiling... but why would removing reduntant includes have effect on the speed of the executable? 20090411 19:12:17-!- noy [n=Noy@wesnoth/developer/noy] has quit [] 20090411 19:12:40< Reisiger> mordante: Here's the MSVC output: http://wesnoth.pastebin.com/m5cd3491c 20090411 19:12:52< Polarina> Reisiger: I was saying that MSVC makes code slower than GCC. 20090411 19:13:49< mordante> Reisiger, can you paste a patch? 20090411 19:14:45< mordante> nevermind 20090411 19:15:34< Reisiger> mordante: Sorry, the only 'fix' I easily found was adding the #include . I haven't figured out yet what causes the (sample_)user_handler errors. 20090411 19:16:15< mordante> Reisiger, try to add #include in user_handler.cpp 20090411 19:16:25< mordante> I'll commit the parser fix 20090411 19:17:08< Reisiger> Compiles now. 20090411 19:17:56-!- |Andylee| [n=kvirc@188-23-8-120.adsl.highway.telekom.at] has joined #wesnoth-dev 20090411 19:18:16< Reisiger> Build succeeded :) 20090411 19:18:35< mordante> :-) 20090411 19:24:49< Crab_> boucman, Dragonking: a question: I'm refactoring state-change game actions to be separate from ai. and I want the move-partial_move-attack-recruit to return their 'exit status' in case of problems (for example: "invalid move", "interrupted move", "no space in keep to recruit", "not in keep to recruit", etc). 20090411 19:24:51< Crab_> How it will be better to do ? with int return value ? with some-kind-of-object return value? with exceptions ? 20090411 19:25:41< Dragonking> Crab_: That's part of on_fail formula proposal made by me 20090411 19:25:47< Dragonking> Crab_: DOn't bother for now wbout it 20090411 19:26:01< Crab_> no, not yet. it has *nothing* to do with formulas 20090411 19:26:02< boucman> yes, i'd tend to agree with what DK said 20090411 19:26:12< boucman> Crab_: it d 20090411 19:26:14< boucman> it does 20090411 19:26:40< boucman> or is it the pure c++ side you are talking about ? 20090411 19:26:47< Crab_> boucman: why ? its more low-level then formulas. it is pure c++ 20090411 19:27:02< boucman> oh, ok, I think I understand your question now 20090411 19:27:21< Crab_> boucman: it is interaction between c++ code and those base functions which change the game state. 20090411 19:27:32< boucman> so it's at the internal AI api level, handling an incorrect order from an AI 20090411 19:27:50< Crab_> boucman: yes. in general, the AI should not give such an order at all... 20090411 19:28:09< boucman> well, don't go with exceptions, that's for sure 20090411 19:28:21< CIA-30> mordante * r34727 /trunk/src/ (serialization/parser.hpp server/user_handler.cpp): 20090411 19:28:21< CIA-30> Add some headers needed for MSVC. 20090411 19:28:21< CIA-30> Reisiger spotted and tested the fix. 20090411 19:28:44< boucman> do we need the nature of the failure or is the fact that we failed enough ? 20090411 19:28:59< Crab_> boucman: yes, we need the nature of the failure 20090411 19:29:30< boucman> I guess returning a struct would give us more liberty, since some cases mught need extra data and a simple enum wouldn't be enough 20090411 19:29:35< Crab_> boucman: and, I want to make it as hard as possible to forget-to-check-that- exit status... 20090411 19:30:12< Crab_> boucman: because the current code is buggy in a lot of places, in regards to proper checks... 20090411 19:30:22< boucman> hmm 20090411 19:31:01< boucman> i would still tend to use a struct, we do very few exceptions in wesnoth, so I would tend to avoid these 20090411 19:31:20< boucman> and any enum based solution would probably be limited very fast 20090411 19:31:29< Crab_> boucman: so, I'll make a specific class and return that class ? 20090411 19:31:40< boucman> for example 20090411 19:31:43< Crab_> boucman: ok 20090411 19:31:50-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit ["To err is human.. but to really foul things up requires a computer"] 20090411 19:32:26< Crab_> Dragonking: your 'on_fail' formula proposal is the "handling" of that failure on a higher level 20090411 19:32:33< Dragonking> Crab_: ok 20090411 19:32:46< boucman> and the translation from the c++ side to FAI I guess 20090411 19:35:08-!- _Andylee_ [n=kvirc@188-23-2-217.adsl.highway.telekom.at] has quit [Read error: 110 (Connection timed out)] 20090411 19:35:31< Crab_> boucman: yes. and I want to fix lower-level details, make a library of game-state-changing functions, and after that, I want to make the rest of the code treat ai_interface::info as *const* - thus, forcing to change the game state *only* via this ai-independent library. 20090411 19:35:56-!- Blueblaze [n=nick@c-98-199-143-139.hsd1.tx.comcast.net] has joined #wesnoth-dev 20090411 19:36:07< boucman> a worthy goal 20090411 19:37:13< Crab_> boucman: one of the many.. 20090411 19:53:08< Smar> Ivanovic: (or someone) po/wesnoth-lib/fi.po:2067(#427): missing interpolations in msgstr[0]: $primary_value, but line 2067(according poedit) is ”When reporting the bug please include the following error message :”... 20090411 19:54:27< Ivanovic> Smar: ??? 20090411 19:54:48< Ivanovic> hey, i have *no* idea what this meansm since you work on this translation, handle it... 20090411 19:55:04< Smar> anyway, next looks more interesting... ”Alueella '[$section]' jossa '$primary_key| = $primary value', pakollinen avain $key| ei ole asetettu.” $section needs | before ]? anyway, I want that $key to be without ’’... 20090411 19:55:06< silene> Smar: the error message is correct, the translator has put a space instead of an underscore 20090411 19:55:10< Smar> oh... 20090411 19:55:28< Smar> sorry, I thought it were you who sent that message 20090411 19:56:00< Smar> silene: to where? 20090411 19:56:18< Smar> oh, that... 20090411 19:56:20< Smar> silene: why? 20090411 19:56:48< Ivanovic> Smar: compare original message and translation 20090411 19:56:55< Ivanovic> Smar: check if the variables used are identical 20090411 19:56:58< Ivanovic> if not: error 20090411 19:57:04< silene> Smar: what do you mean "why"? do people have a reson to make typos? 20090411 19:57:28< Smar> silene: space before : is considered to typo afaik... 20090411 19:57:31< silene> if you look at the string, you will notice that the translation is "$primary value" while the original is "$primary_value" 20090411 19:57:39< Smar> hmm... 20090411 19:57:43< Smar> ... 20090411 19:57:45< Smar> oh my 20090411 19:57:45-!- molgrum [n=molgrum@c83-249-53-163.bredband.comhem.se] has quit [Read error: 104 (Connection reset by peer)] 20090411 19:57:58< Smar> oh well, *fixing*... 20090411 19:58:03< Smar> thanks for patience. 20090411 20:00:04< Smar> sent the update. 20090411 20:00:06< Ivanovic> Chusslove: it would be nice if you could also post the script you used 20090411 20:00:14< Ivanovic> so that translators can use it themselves, too 20090411 20:03:31-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has joined #wesnoth-dev 20090411 20:04:19< boucman> Crab_: as far as error handling, simply loging the error should be enough in most case, since the AI failing is an AI bug (until we have proper on_fail, that is) 20090411 20:05:08< Crab_> boucman: see the proposed syntax, version 1 - http://www.wesnoth.org/wiki/AI_Refactoring2009Crab#CURRENT 20090411 20:05:21-!- Elvish_Pillage2 [n=eli@66-189-40-122.dhcp.oxfr.ma.charter.com] has joined #wesnoth-dev 20090411 20:05:34< Crab_> and note (3) 20090411 20:06:10< boucman> interesting... 20090411 20:06:47< boucman> I don't think ai_move_command is a proper name for the result type (it's not a command it's aresult) but appart from that, it sounds good 20090411 20:08:04< Crab_> boucman: yes. i'm thinking that it is both a command and a result (and execute_... is a mere wrapper factory method ). 20090411 20:08:36< Crab_> of course, I can use the names ..result, it'll be more convenient 20090411 20:09:31< boucman> Crab_: I'm not sure I understand, in what way is it both a command and a result... when is the move actually attempted, when calling execute_move or when calling .ok() ? 20090411 20:09:41< Polarina> Ivanovic: I read your i18n. Would you like me to send the fixed version now? 20090411 20:09:45< Crab_> when calling execute move 20090411 20:10:00< Crab_> .ok is separate by design 20090411 20:10:15< boucman> ok, so that class is the result of the move (failed, partial move, success) I don't see in what way it's a command 20090411 20:11:10< Chusslove> Ivanovic: That's a wee bit a problem, as the script is not exactly standalone... 20090411 20:11:18< Ivanovic> this message was not from me, it was from Chusslove 20090411 20:11:24< Crab_> boucman: well, if the actual command execution logic belongs to this class, then this is a command too. if the actual command execution login is in some other place (a bunch of static functions, for example), then it is not a command. 20090411 20:11:25< Polarina> Ivanovic: Oh. 20090411 20:11:27< Ivanovic> Polarina: in general send in stuff when you feel like 20090411 20:11:41< Polarina> Ivanovic: When is the last time possible before 1.6.1? 20090411 20:11:43< Ivanovic> (or do you mean my mail from yesterday about the addition of delfadors memoirs? 20090411 20:11:43< CIA-30> ivanovic * r34729 /trunk/po/ (9 files in 8 dirs): updated German and Finnish translation 20090411 20:11:45< CIA-30> ivanovic * r34728 /branches/1.6/po/ (5 files in 4 dirs): updated German and Finnish translation 20090411 20:11:58< Crab_> s/login/logic 20090411 20:12:03< Polarina> Ivanovic: No, the one that was sent right now. 20090411 20:12:14< Polarina> Ivanovic: Something mentiont about mismatch between variables. 20090411 20:12:21< Ivanovic> this was written by Chusslove, not everything on the list is from me... 20090411 20:12:23< Polarina> s/mentiont/mentioned/ 20090411 20:12:28< Polarina> Ivanovic: Ok. 20090411 20:12:32< Ivanovic> jupp, you should make sure that the varibales *work* 20090411 20:12:37< Polarina> But do you know when is the last time before 1.6.1? 20090411 20:12:45< Ivanovic> (i just fixed 4 of those problems in the german translation, thanks Chusslove) 20090411 20:12:56< Ivanovic> Polarina: i don't know yet when i will tag it tomorrow 20090411 20:13:09< Ivanovic> though you should be sure if you send it in in the next 12h 20090411 20:13:40< Polarina> Ivanovic: I'd better do it in few hours then, I would be sleeping in 12 hours. 20090411 20:13:42< Ivanovic> for anything later i will *not* guarantee, though even 24h from now might work, though it might also be too late... 20090411 20:14:44< boucman> I understood that this class was only to describe the result of the command (and check the result is handled through destructor) not that it would have any logic by itself 20090411 20:16:21< Ivanovic> afk for a while... 20090411 20:18:02< Crab_> boucman: this is also a valid way to do it (clients won't notice the difference) 20090411 20:18:14< Crab_> boucman: and look at variant B (also at that wiki page) 20090411 20:18:40< Crab_> what do you think about it ? 20090411 20:19:29< boucman> I don't really see the point of syntax B (though in this case, yes command is the proper name :) ) 20090411 20:19:47< boucman> I mean parameters can be passed in the factory as in syntax A 20090411 20:19:54< Crab_> see note #2, for the main additional benefit 20090411 20:20:02< Crab_> about ' 'mock execution' ' 20090411 20:20:30< Crab_> as both 'execute' and 'is_possible' will be in the same class, it will be possible to avoid code duplication. 20090411 20:21:17< boucman> ok, It's not a strong argument, but it's an argument :) 20090411 20:21:18-!- Elvish_Pillager [n=eli@66-189-40-122.dhcp.oxfr.ma.charter.com] has quit [Read error: 110 (Connection timed out)] 20090411 20:21:23< Crab_> so, 'the judge of whether the move is legal' will be the same class that will actually execute it 20090411 20:21:51< boucman> Crab_: you might be interested in a C++ "trick" Sirp showed me for the animation code 20090411 20:22:02< Crab_> boucman: go on, tell me ) 20090411 20:22:15< boucman> suppose you have a class C with to members C.a and C.b 20090411 20:22:51< boucman> you write your setters with the following signature T& C::set_a(in ) 20090411 20:23:02< boucman> with a code that would be something like 20090411 20:23:12< boucman> a = in ; return this; 20090411 20:23:18-!- edb [n=edb@130.101.196-77.rev.gaoland.net] has joined #wesnoth-dev 20090411 20:23:32< Crab_> and then you do obj.set_a().set_b() ? 20090411 20:23:36< boucman> this way you can write c.set_a(value).set_b(value); 20090411 20:23:46< boucman> to set both in a single line 20090411 20:23:47< boucman> yes 20090411 20:23:58< Crab_> yes, a good one 20090411 20:24:22< boucman> usefull when your object could have a bunch of constructors to handle all its parameters 20090411 20:24:28< boucman> (you already new it apprently) 20090411 20:24:58< Crab_> yes. for example, java/hibernate uses it for criteria query creation. 20090411 20:25:03< boucman> k 20090411 20:25:17< Crab_> boucman: so, you suggest something like this here ? 20090411 20:25:44< boucman> Crab_: depends if you expect to have lots of parameters, but it's an idea to consider 20090411 20:26:38< Crab_> if we go with syntax A as in ( execute_move_unit_command(from,keep); ), then there'll be few parameters 20090411 20:27:08< Crab_> because that execute_move_unit_command will be located in ai_interface.hpp, and it will have access to info_ and side_ 20090411 20:27:16< boucman> i have to admit I find syntax A simpler and more instinctive to read, but I don't have a strong case for it... 20090411 20:27:28< Crab_> boucman: ok, so let it be A 20090411 20:27:42< boucman> I don't know if it's worth bothering too much, this API should have a couple users at most 20090411 20:28:39< Crab_> boucman: look at that wiki paga again - i've updated A to be _result 20090411 20:29:51< boucman> one last note, we have some confusing vocabulary in AI, and we should try to get that straight before it gets confusing 20090411 20:30:03< Crab_> yes, I agree. 20090411 20:30:15< boucman> a "move" is both any AI action, and the specific action of moving a unit 20090411 20:30:23< boucman> let's try to call the first an "action" 20090411 20:30:27< Crab_> ok 20090411 20:30:43< boucman> i.e an "action" is anything that the AI does that changes the state of the game 20090411 20:30:56< boucman> so your class should now be named ai_action_result 20090411 20:30:56< Crab_> ok 20090411 20:31:01< boucman> :) 20090411 20:31:25< Crab_> imo, ai_action_result is a base class of ai_move_result, ai_attack_result, ai_recruit_result.. 20090411 20:31:42< boucman> in that case, ok 20090411 20:31:58< Crab_> then I rename 'command' to 20090411 20:32:00< Crab_> 'action' 20090411 20:32:27< boucman> not sure if doing inheritence will be worth it seeing there is only a couple of possible types of actions and a simple enum might be enough 20090411 20:32:43< boucman> but you have your nose in the code, you are better placed than I am to juge 20090411 20:33:10< boucman> yes, would make sense 20090411 20:33:15< Crab_> it all depends on return values.. for example, it would be nice to ask the 'recruit_action_result' about 'what units were recruited?' 20090411 20:33:39< Crab_> this question would make little sense if directed at the result of move action ) 20090411 20:33:41< boucman> Crab_: not worth it, we can assume our AI caller knows that 20090411 20:33:53< Crab_> boucman: no ) 20090411 20:34:06< boucman> I can't really see when that would be usefull 20090411 20:34:08< Crab_> boucman: AI caller knows what he *wants* to recruit 20090411 20:34:11-!- grzywacz [n=grzywacz@wesnoth/developer/grzywacz] has quit [":wq"] 20090411 20:34:19< Crab_> AI caller knows where he wants to move 20090411 20:34:20< boucman> traits... 20090411 20:34:20< Crab_> etc 20090411 20:34:31< boucman> ok, makes sense, then 20090411 20:34:34< Crab_> boucman: but AI doesn't know the results of the action fully 20090411 20:34:49< Crab_> boucman: now, it tries to *guess* them 20090411 20:34:49< boucman> you're gonna have a heck of a formula_callable to write :) 20090411 20:35:10< Crab_> boucman: that's not the most evil part of it ) 20090411 20:35:45< Crab_> more interesting part is refactoring of existing code to use it and *check* that return value ) 20090411 20:35:52< boucman> Dragonking: are you working on the filter_* thing right now ? 20090411 20:35:58< boucman> hehe 20090411 20:36:18-!- cib0 [n=cib@p4FD0B44E.dip.t-dialin.net] has joined #wesnoth-dev 20090411 20:36:38-!- cib0 [n=cib@p4FD0B44E.dip.t-dialin.net] has quit [Client Quit] 20090411 20:36:38< Crab_> boucman: see the example - http://wesnoth.pastebin.com/m7540da02 20090411 20:37:11< Crab_> ai tries to move unit, then it tries to see, if there's any unit at the destination, it resets its movement to 0 20090411 20:37:33< boucman> hmm 20090411 20:37:36< boucman> evil indeed 20090411 20:37:37< Crab_> imagine the 'top part' of ai ordering move_unit to move own unit at the position occupied by other friendly unit 20090411 20:37:43 * mordante wonders whether Crab_ uses spaces for indention ;-) 20090411 20:38:25< Crab_> mordante: sometimes they sneak in. but now it's a false positive of sorts - i've modified lots of existing code and i've only fixed _info, not indention 20090411 20:39:01< mordante> I just noticed it in the pastebin 20090411 20:39:01< Crab_> mordante: a better solution is to pick a good moment and reindent all those ai files.. 20090411 20:39:23< Gnutoo> mordante, I've corrected the assembly part but the segfault didn't go away...what should I do now? 20090411 20:39:25< mordante> the problem is there never is a good moment ;-) 20090411 20:39:28< Crab_> mordante: it's copypaste 20090411 20:39:42< Crab_> mordante: it's a copypaste of existing code 20090411 20:39:43< Gnutoo> mordante, I've a second bt but it seems the same 20090411 20:39:52< mordante> Crab_, ok 20090411 20:40:15< mordante> Gnutoo, please paste it, couldn't find much in the one you posted earlier 20090411 20:40:30< Gnutoo> http://192.168.1.1/wesnoth/backtrace_0002.txt 20090411 20:40:32< Gnutoo> oops 20090411 20:40:46< Dragonking> boucman: Yes 20090411 20:40:49< Crab_> boucman: so, to make it 'less fragile', we need to pass the return status explicitly, and not depend on such 'guessing' 20090411 20:41:06< boucman> ok, so I won't do my stuff until you commit :P 20090411 20:41:10< Polarina> Gnutoo: I get a 404... 20090411 20:41:16< Gnutoo> yes normal 20090411 20:41:36< boucman> Crab_: now that I see the type of things you're trying to replace, I understand much better 20090411 20:41:37< Gnutoo> http://rafb.net/p/8Ap3fg83.html 20090411 20:41:47< Gnutoo> Polarina, ^^^ 20090411 20:41:48< Dragonking> boucman: Why ask? 20090411 20:41:48< Polarina> http://85.220.25.219:1337/ 20090411 20:41:59< boucman> I was thinking FAI, where we basically reanalyse from start after every action 20090411 20:42:11< Crab_> boucman: no, i'm starting-from-the-bottom ) 20090411 20:42:15< Gnutoo> Polarina, or replace the 192.168.1.1 by gnutoo.homelinux.org 20090411 20:42:19< boucman> I am looking at implementing my "three step" type of RCM 20090411 20:42:29< mordante> Gnutoo, you still have the debugger open? 20090411 20:42:34< Gnutoo> mordante, yes 20090411 20:42:43< Gnutoo> mordante, s/yes/yes I do/ 20090411 20:42:45-!- Ambushsabre [n=ambushsa@c-75-67-216-121.hsd1.nh.comcast.net] has joined #wesnoth-dev 20090411 20:42:56< Dragonking> boucman: I'm actually thinking about rewriting current code and along with that write this three step RCM 20090411 20:43:00< Crab_> boucman: he-he ) by the way, it is the reason why formula functions should be decoupled from RCM.. 20090411 20:43:16< Crab_> Dragonking: better make RCM part pluggable 20090411 20:43:29< boucman> Dragonking: ok, in that case, I'll wait for you 20090411 20:43:53-!- Ambushsabre is now known as devman 20090411 20:44:07< |Andylee|> will 1.6.1 be released tomorrow as planned? 20090411 20:44:37< Reisiger> Q: where can I find a list of the unit abilities? 20090411 20:44:38< boucman> |Andylee|: it should be taged tomorow, but it takes a couple more days before it's announced 20090411 20:44:48< boucman> time needed for packagers to compile/distribute 20090411 20:44:56< |Andylee|> ok 20090411 20:44:58< |Andylee|> thanks 20090411 20:45:15< Dragonking> boucman: To make use of idea of filters, I would need to build vector of unit iterators, to have all units we need and iterate through these, but this vector would need to be created in every CM, I would like to move evaluation outsode of RCM, and just use RMC vector to store info about candidate moves 20090411 20:45:19< boucman> Reisiger: suprisingly enough,, I'm not sure there is such a list, esp since UMC can add some more 20090411 20:45:32< Dragonking> Crab_: Please elaborate what do you mean be pluggable? 20090411 20:45:48< Dragonking> Crab_: SO we have code inside "init" and we have a way to re-load CM ? 20090411 20:46:33< Crab_> Dragonking: for example, if we have 'boucman: I am looking at implementing my "three step" type of RCM', 20090411 20:46:46< Reisiger> boucman: I'm looking for the generic names of healing and curing for unit::get_ability_bool("heals", loc) and unit::get_ability_bool("cures", loc). "heals" I can find in the current calculate_healing, but not information about curing 20090411 20:47:07< Crab_> then he should have the ability to do so by simply writing that CRM part, and reusing those parts of ai code he wants 20090411 20:47:07< boucman> Reisiger: I don't know, I usually grep the code 20090411 20:47:16< Crab_> s/CRM/RCM 20090411 20:47:19< mordante> Gnutoo, in frame 14 can you print the str parameter? 20090411 20:47:36< boucman> Dragonking: I'm not sure I fully understand (and at some point, we might iterate through other things than units, like fore example all possible attacks) 20090411 20:47:45< Gnutoo> mordante, I don't know well gdb...could you tell me the command to type instead? frame 14? 20090411 20:48:02< boucman> Crab_: yes, don't worry, we keep that in mind :) 20090411 20:48:12< Crab_> boucman: ok ) 20090411 20:48:19< mordante> Gnutoo, yes of course f 14 p str 20090411 20:48:41< Gnutoo> ah ok thanks 20090411 20:48:56< Dragonking> boucman: Well in this regard your thre-step RCM would be different then move/attack/support 20090411 20:49:24< Gnutoo> mordante, http://rafb.net/p/UlWgou89.html 20090411 20:49:25< Dragonking> boucman: Because in above 3, we just use units, and we can simply use unit map, with your idea, we use formula AI and we have data in variant 20090411 20:50:19< boucman> yes, the iteration should be internal to the class, probably done with inheritance, I guess 20090411 20:50:48< boucman> so we have a generic_type class, a move_type an attack_type a support_type etc... 20090411 20:51:07< Gnutoo> mordante, should I re-try wesnoth using ssh -Y? to see if it fails at the same point using a huge screen? 20090411 20:51:32< mordante> Gnutoo, you can try, but I hope it will be the same crash 20090411 20:51:46< Gnutoo> mordante, ok because it crashed too... 20090411 20:52:11< mordante> which version of boost do you use? 20090411 20:53:43< Dragonking> boucman: Actually making a separate class for attack and for support is not really good idea, since iteration is the same, just way how we choose over what to iterate differ 20090411 20:53:44-!- devman [n=ambushsa@c-75-67-216-121.hsd1.nh.comcast.net] has quit ["Leaving"] 20090411 20:54:55< boucman> Dragonking: well, I think it's a good idea, because if you do two separate classes, you can separate entirely, whereas if you don't you need to provide them the list of units to start with, which mean you have some knowledge of what the types are out of the type class 20090411 20:55:33< Gnutoo> I hope I'll have enough ram to run 2 wesnoth at once 20090411 20:55:42< Gnutoo> cause I don't want to quit the old debug session 20090411 20:56:33< Dragonking> boucman: Ok.. tell me if I understand you correctly 20090411 20:56:42< mordante> Gnutoo, then better leave it with one session 20090411 20:57:24< Dragonking> boucman: We read WML config - see the type, create and register new object of class that inherits from some generic_CM, and correponds to the type 20090411 20:57:46< mordante> Gnutoo, can you do f 13 p i1 p i2 20090411 20:58:14< mordante> (i1 is a i) 20090411 20:58:54< boucman> so far, yes, probably giving directly the cfg object to the constructor so we don't do any assumption wrt syntax except for the name= and type= 20090411 20:59:27-!- GNUtoo-desktop [n=gentux@host155-29-dynamic.17-79-r.retail.telecomitalia.it] has joined #wesnoth-dev 20090411 20:59:33< Reisiger> Q: is there a way to use unit::get_ability_bool("heals", loc) as an if condition? I get "illegal call of non-static member function" when trying. 20090411 21:00:00< Dragonking> boucman: Ok, so type_* eval and move would be read in generic_CM constructor 20090411 21:00:11< boucman> Reisiger: could you pastebin your code ? 20090411 21:00:16< Reisiger> k 20090411 21:00:35< Crab_> Reisiger ./mouse_events.cpp +311 20090411 21:00:39< boucman> Dragonking: not sure what you mean here 20090411 21:01:00< Dragonking> boucman: Trying to avoid duplicated code. 20090411 21:01:10< Reisiger> http://wesnoth.pastebin.com/m758eb518 20090411 21:01:11< mordante> Gnutoo, did you see my last question? 20090411 21:01:19< mordante> GNUtoo-desktop, did you see my last question? 20090411 21:01:31< GNUtoo-desktop> no I didn't 20090411 21:01:38< mordante> Gnutoo, can you do f 13 p i1 p i2 20090411 21:01:39< mordante> (i1 is a i) 20090411 21:01:41< Sirp> Reisiger: you have to call the function on a specific unit. 20090411 21:01:42< GNUtoo-desktop> wesnoth is running fullscreen on my laptop 20090411 21:01:51< Crab_> Reisiger: why unit:: ? 20090411 21:01:53< boucman> Dragonking: I'm more worried about possibility of easily adding new types and having good encapsulation than avoiding duplicate code, I admit 20090411 21:01:56< Sirp> i.e. *which* unit are you seeing whether they can heal or not? 20090411 21:02:22< Dragonking> boucman: And if we spot a bug the we have to fixx all duplicated code - I'm worried about it. 20090411 21:02:35< GNUtoo-desktop> mordante: I will do it when I will gain back the access to my laptop...because wesnoth has to load in order to put it windowed 20090411 21:02:37< Polarina> What's RACV? 20090411 21:02:39< Dragonking> And I do hate to write duplicated code. 20090411 21:02:45< Reisiger> ok so use the possible_healer ? 20090411 21:03:03< GNUtoo-desktop> mordante: or should I stop the second debugging session? 20090411 21:03:04< Crab_> Reisiger: yes, you may. and check if it is present on that hex or not. 20090411 21:03:12< Sirp> Reisiger: but if you don't understand this you probably want to brush up your C++ skills before hacking the Wesnoth AI code. 20090411 21:03:24< mordante> GNUtoo-desktop, yes please continue the one we were in 20090411 21:03:43< GNUtoo-desktop> ok I'll stop the second debugging session 20090411 21:03:54< boucman> yes, but attack and support are not logically the same thing, having share code when they are not doing the same thing is a bit overkill here, I'd rather have them well encapsulated (we can do some helper functions internally to have them share code, but they should be two different classes) 20090411 21:03:59< Reisiger> OK. Sirp: I'm having a go on the healing calculation, not the AI ;) 20090411 21:04:30< Sirp> oh...okay, that is probably simpler. :) 20090411 21:04:52< Dragonking> boucman: Only difference would be one if statement, selecting not enemies but allies (and another line which replaces "target" with "ally" ) 20090411 21:05:42< boucman> yes, codewise they are very close, I know that, but they are conceptually completely different... 20090411 21:05:53< Gnutoo> mordante, http://rafb.net/p/AQgy0i52.html 20090411 21:05:55< Crab_> Reisiger: and also make sure to check that: 1) the potential healer is present at that location. 2) it is friendly. 3) it is not incapacitated. 20090411 21:06:09< Dragonking> boucman: So you want to duplicate "very close" code because concept is different? 20090411 21:06:21< boucman> of course it makes sense from a "number of lines" point of view, but how would you name your class ? "itterate_over_two_sets_of_units" ? 20090411 21:06:26< Reisiger> k just digger up the valid(), will find the others aswell :) 20090411 21:06:31< Reisiger> *digged 20090411 21:06:46< boucman> Dragonking: yes, design and encapsulation comes first, code length come second 20090411 21:07:07< Crab_> Polarina: for RACV, see irclogs for today. " Royal Academy of Valencia or something ..." 20090411 21:07:15< Dragonking> boucman: I was thinking about a method, that can iterate over one or over two, depending if 2nd is not set as null, so we can use it in move attack and support CM 20090411 21:07:55< boucman> yes, that's where our conceptions are different, for me each son of the generic_RCM class was a type of RCM 20090411 21:08:14< boucman> in your conception, types are built using the sons of generic_RCM as bricks 20090411 21:08:32< Reisiger> Bit weird tho... in the current calculate_healing(...) I can't find any test to see if a unit is capable of curing. 20090411 21:08:34< Dragonking> boucman: To have your idea along with mine, we can add "shared" code in generic_CM from which your types woud be derived 20090411 21:08:47< boucman> both conceptions are valid, but I like the idea of having each type in its own class, it seems code is better separated and thus more pluggable that way 20090411 21:09:02< boucman> yes, we can have helpers in generic_CM 20090411 21:09:29< Dragonking> boucman: Or even better, have empty_CM - as root, then generic_CM - so if not needed, class can be derived from empty_CM to not inherit anything 20090411 21:10:05< boucman> Dragonking: inheriting a method has no cost, the code is not copied, so I don't really see the point 20090411 21:10:31< boucman> the point of generic_CM is that the formula_ai.cpp code can handle all types without even knowing about types 20090411 21:10:48< Dragonking> boucman: Reading data in constructor, my generic_CM would read type_* eval and move 20090411 21:11:07< Dragonking> boucman: When your three-part would not need to read filter_* 20090411 21:11:13< Dragonking> s/type_*/filter_*/ 20090411 21:11:20< Crab_> Reisiger: look at unit_ability_list heal = i->second.get_abilities("heals",i->first); closely 20090411 21:11:35< boucman> yes, agreed 20090411 21:11:37< Dragonking> boucman: I understand the point of it 20090411 21:11:44< Crab_> Reisiger: and then on " if((*heal_it->first)["poison"] == "cured") { " 20090411 21:12:06< Crab_> Reisiger: imo, ' test to see if a unit is capable of curing.' is hidden in there 20090411 21:12:14< Dragonking> boucman: So... your three-part would be derived ftom empty_CM, when move/attack etc from generic_CM (and generic_CM from empty_CM) 20090411 21:12:18< Reisiger> Crab_: thanks :) 20090411 21:12:35< boucman> at this point, I think discussing on IRC is confusing us more than anything, maybe we could pastebin the prototype of the generic_CM to see if we agree 20090411 21:13:09< boucman> you know evaluating type_* for the three part would not exactly be expansive (since they would not be provided :P 20090411 21:14:21< Reisiger> Crab_: the 3) would refer to "stoned" ? 20090411 21:14:43-!- edb [n=edb@130.101.196-77.rev.gaoland.net] has quit [Remote closed the connection] 20090411 21:14:56< Crab_> Reisiger: it's better to use .incapacitated() method 20090411 21:15:19< Reisiger> ok 20090411 21:15:48< Crab_> Reisiger: it is just {return utils::string_bool(get_state("stoned"),false); }, but using incapacitated() will future-proof your changes 20090411 21:16:55< mordante> GNUtoo-desktop, I don' t see the cause of your problem, maybe Sirp has a clue 20090411 21:17:09< Gnutoo> ok 20090411 21:17:18< Gnutoo> :( 20090411 21:17:30< Gnutoo> maybe it's related to armv4? 20090411 21:17:35< mordante> he wrote the formula code so he's more familiar with it 20090411 21:17:37< Dragonking> boucman: http://wesnoth.pastebin.com/m48522ad4 20090411 21:17:45< boucman> thx 20090411 21:17:46< mordante> and it might also indeed be a armv4 problem 20090411 21:17:49< Gnutoo> such as something that is implementation defined or something like this... 20090411 21:17:51< Dragonking> boucman: Some very trivial example 20090411 21:18:04< Gnutoo> mordante, ok thanks 20090411 21:18:06< mordante> or a bug in boost 20090411 21:18:14< mordante> which boost version do you use? 20090411 21:18:15< boucman> yes, but on pure IRC it was getting confusing, discussion will be easier that way 20090411 21:18:21< Gnutoo> mordante, boost 1.36.0 20090411 21:19:08< mordante> if possible you could try 1.38.0 20090411 21:19:29< mordante> I assume the boost people don't accept bugs against 1.36.0 anymore 20090411 21:19:34< Gnutoo> mmm....wesnoth is frozen just before the superb graphic on the lower part of the screen appear 20090411 21:19:42< Gnutoo> mordante, ok thanks 20090411 21:19:49< mordante> you're welcome 20090411 21:19:59< mordante> afk 20090411 21:20:08< Gnutoo> mordante, but is boost 38 suported with wesnoth 20090411 21:20:10< Gnutoo> ? 20090411 21:20:21< Gnutoo> because in the build system is is not mentioned 20090411 21:20:23< Gnutoo> (cmake) 20090411 21:20:37< Dragonking> boucman: So we would have vector of base_CM, then eval all, and chose one with highest score to execute 20090411 21:20:41< boucman> Dragonking: I would move the handling of eval and move to base_CM since all RCM would have them (I guess) nd the API of base_CM woudl have to be expanded more (of course) but appart from these details, we basically agree 20090411 21:21:01< Dragonking> boucman: Of course 20090411 21:21:12< mordante> Gnutoo, I haven't tested it, but I assume it does if not we should try to make it work 20090411 21:21:35< Gnutoo> ok thanks a lot 20090411 21:21:46< Dragonking> boucman: And in this way you have our encapsulation and I have my not-so duplicated code :) 20090411 21:21:52< mordante> not sure which version of cmake you use, but might be older as boost 1.38.0 20090411 21:22:04< boucman> Dragonking: hmm is a CM the "instanciated" move ? I guess not... in that case, we need to have base_CM provide the "best score" for that particular CM and a second function to execute it 20090411 21:22:14< boucman> hehe 20090411 21:22:59< Gnutoo> mordante, cmake-native-2.6.3-r2 20090411 21:23:43< loonycyborg> I'm currently using boost 1.38 with wesnoth 20090411 21:23:43< Dragonking> boucman: Yes, provide best score, then retrive from best CM formula and execute it 20090411 21:24:22< Gnutoo> mordante, could I bother Sirp, is he here at the moment? 20090411 21:24:29< boucman> so the CM has a "residual state" which is the actual parameters to use when executing ? 20090411 21:24:53< mordante> Gnutoo, he's here at the moment 20090411 21:25:05< Dragonking> boucman: CM would store for which set of units/whatever it got best score 20090411 21:25:08< Gnutoo> ok thanks 20090411 21:25:12< boucman> if yes : the internal state is not a very good design, if no we need to pass the data around which is not very practical since we don't know what type the data has and it can be completely type depedant 20090411 21:25:27< boucman> ok, I also thing that's the best of the two 20090411 21:25:47< Gnutoo> Sirp, hi, I've a problem with the formula code...wesnoth segfault 20090411 21:26:04< mordante> if you have problems with cmake you can set Boost_ADDITIONAL_VERSIONS to look for 1.38 20090411 21:26:16< Dragonking> boucman: What do you mean by "internal state" ? 20090411 21:26:19< Gnutoo> Sirp, I've a backtrace and a debuging session (mordante told me what to type) 20090411 21:26:25< Gnutoo> mordante, ok thanks 20090411 21:26:31< mordante> really afk now 20090411 21:26:40< Gnutoo> ok thanks a lot for your help 20090411 21:26:47< boucman> exactly what you said : that we memorize the best set of parameters 20090411 21:27:01< boucman> GNUtoo: Crab_ might be able to help too 20090411 21:27:10< boucman> (me and Dragonking too, :) ) 20090411 21:27:24< Gnutoo> so I should paste the debuging session again? 20090411 21:27:30< Dragonking> boucman: I dont understand why it is bad design 20090411 21:27:30< Gnutoo> s/paste/pastebin 20090411 21:28:10< boucman> Dragonking: nevermind it's minor 20090411 21:28:28< Crab_> Gnutoo: backtrace http://rafb.net/p/8Ap3fg83.html debugging http://rafb.net/p/AQgy0i52.html 20090411 21:28:46< Dragonking> boucman: ok 20090411 21:28:47< Crab_> or not ? 20090411 21:28:53-!- crimson_penguin [n=ben@wesnoth/developer/crimsonpenguin] has quit [Read error: 113 (No route to host)] 20090411 21:30:25< Gnutoo> so what should I do now? 20090411 21:30:38< Dragonking> boucman: Maybe move RCM thing to separate file, since formula_ai cpp is now quite crowded.. with 2,5k+ lines. 20090411 21:30:49< Gnutoo> should I start a second debugging session that use ssh -Y in 1024x768? 20090411 21:30:57< boucman> indeed, i noticed that today 20090411 21:31:03< Crab_> Dragonking: it will make it shorter, quite soon )) 20090411 21:31:11< Crab_> s/it/I ) 20090411 21:31:22< Dragonking> Crab_: :) 20090411 21:31:27< Crab_> Gnutoo: tell how this is reproduced 20090411 21:32:09< Crab_> Gnutoo: basically, what have you been doing to make it segfault 20090411 21:33:04< CIA-30> esr * r34730 /trunk/data/ (5 files in 4 dirs): Add some hero icons where needed. Add a standard macro to do this. 20090411 21:33:13< Dragonking> boucman: So what is your opinion about new file? 20090411 21:33:50< Crab_> Dragonking: IMO, new file is a good idea. 20090411 21:33:58< Dragonking> IMO too :) 20090411 21:34:08< Dragonking> candidate_move.cpp/hpp 20090411 21:34:22< Crab_> then ai_candidate_move.[ch]pp 20090411 21:34:33< Dragonking> Yes, better 20090411 21:34:50< Crab_> Dragonking: sooner or later we'll do a big *boom* and make an ai subdirectory inside ./src/ 20090411 21:34:59< Dragonking> hehe 20090411 21:35:43-!- Gnutoo [n=gnutoo@host155-29-dynamic.17-79-r.retail.telecomitalia.it] has quit [Read error: 60 (Operation timed out)] 20090411 21:37:48< Dragonking> Ok, I'll prolly do some more work around it tomorrow, still have other project for my unit which I *have* to do... 20090411 21:38:02< Crab_> s/unit/univ ? 20090411 21:38:08< Dragonking> Yes 20090411 21:38:13< Dragonking> I even can't type. ;p 20090411 21:38:31< heinz> can I run wesnoth from the build dir? perhaps by using ./configure --prefix=`pwd` or such? 20090411 21:38:52< Dragonking> heinz: Just compile, then ./wesnoth 20090411 21:38:55< Crab_> heinz: yes, of course. you don't have to install it in order to run it 20090411 21:39:02< heinz> ok, thanks 20090411 21:39:27-!- Gnutoo [n=gnutoo@host155-29-dynamic.17-79-r.retail.telecomitalia.it] has joined #wesnoth-dev 20090411 21:40:11< Gnutoo> Crab_, sorry I had a router problem 20090411 21:40:12< loonycyborg> heinz: With ./configure it's src/wesnoth . 20090411 21:40:14< Gnutoo> Crab_, ok simply start wesnoth,click on tutorial...on the openmoko(armv4t,128MB ram,480x640 fullscreen) 20090411 21:40:15< Gnutoo> Crab_, the strange thing is that It segfault before showing the graphics on the lower part of the screen that is the improvement you made on westnoth 1.6x 20090411 21:40:31-!- GNUtoo-desktop [n=gentux@host155-29-dynamic.17-79-r.retail.telecomitalia.it] has quit [Read error: 113 (No route to host)] 20090411 21:42:03< boucman> Dragonking: formula_candidates.*pp maybe ? I agree that separating is nescessary, and I don't have a strong opinion wrt the name 20090411 21:42:30-!- GNUtoo-desktop [n=gentux@host155-29-dynamic.17-79-r.retail.telecomitalia.it] has joined #wesnoth-dev 20090411 21:42:41< Gnutoo> Crab_, sorry I had a router problem 20090411 21:42:57-!- stikonas [n=stikonas@wesnoth/translator/stikonas] has joined #wesnoth-dev 20090411 21:43:06< Dragonking> boucman: Can be that too. :) 20090411 21:43:07< Gnutoo> Crab_, for reproducing the crash I simply have to start wesnoth,click on tutorial...on the openmoko(armv4t,128MB ram,480x640 fullscreen) 20090411 21:43:11< Crab_> Gnutoo: ok. at the moment, I'm looking at the data you've provided... 20090411 21:43:17< Gnutoo> Crab_, the strange thing is that It segfault before showing the graphics on the lower part of the screen that is the improvement you made on westnoth 1.6x 20090411 21:43:20< Gnutoo> Crab_, ok 20090411 21:43:47-!- noy [n=Noy@d75-157-52-251.bchsia.telus.net] has joined #wesnoth-dev 20090411 21:43:56< heinz> loonycyborg: hm.... 20090411 21:43:05 error filesystem: Trying to open file with empty name. 20090411 21:43:56< heinz> 20090411 21:420090411 21:43:05 error filesystem: Trying to open file with empty name. 20090411 21:43:56< heinz> 20090411 21:43:05 error config: Could not open file 20090411 21:43:56< heinz> could not initialize fonts 20090411 21:44:08< heinz> that's branch/1.6 20090411 21:44:26< heinz> ./configure without extra options, 20090411 21:44:42-!- GNUtoo-desktop [n=gentux@host155-29-dynamic.17-79-r.retail.telecomitalia.it] has quit [Client Quit] 20090411 21:44:52-!- GNUtoo-desktop [n=gentux@host155-29-dynamic.17-79-r.retail.telecomitalia.it] has joined #wesnoth-dev 20090411 21:44:54< boucman> heinz: did you make install ? this looks a lot as if wesnoth didn't find its data directory 20090411 21:45:08< heinz> boucman: no, I stopped tha 'make install' 20090411 21:45:34< loonycyborg> "src/wesnoth ." shouldn't require install. 20090411 21:45:43< boucman> ok, then add the data directory at the end of the command line when launching wesnoth (usually ".") 20090411 21:45:58< heinz> ah... 20090411 21:46:03< heinz> I was missing the dot 20090411 21:46:07-!- molgrum [n=molgrum@c83-249-53-163.bredband.comhem.se] has joined #wesnoth-dev 20090411 21:46:33< heinz> starts up nicely now 20090411 21:48:38< Crab_> GNUtoo: several conclusions 1) that this is *at least partly* a bug in boost. 2) person who may help you here is mordante, since the formula parsing code is called from gui code he'd written 20090411 21:49:51< Gnutoo> Crab_, lol mordante wrote: GNUtoo-desktop, I don' t see the cause of your problem, maybe Sirp has a clue 20090411 21:51:32< Crab_> Gnutoo: you see, the gui code passes something "normal" to the formula parser, the formula parser calls one of boost:: routines and it segfaults. so, if mordante says that there's no causes of your problem in the gui code, then the problem is probably in boost... 20090411 21:51:55< Gnutoo> Crab_, could it originate from that: http://rafb.net/p/K71LkM21.html ? 20090411 21:53:24< Crab_> Gnutoo: boost behaves a bit differently on different platforms, so it theoretically be a bug which is not present in boost in 'mainline' platforms.. 20090411 21:53:33< Crab_> s/be/can be 20090411 21:54:35< Crab_> the best 1st step (if it is not already done) is, probably, to ensure that you're running the latest possible version of boost. 20090411 21:56:27< Crab_> and you're running 1.36, so, it will be a good idea to upgrade to 1.38... 20090411 21:57:37-!- GNUtoo_tty [n=gentux@host216-163-dynamic.51-79-r.retail.telecomitalia.it] has joined #wesnoth-dev 20090411 21:57:49-!- gnutoo_ [n=gnutoo@host216-163-dynamic.51-79-r.retail.telecomitalia.it] has joined #wesnoth-dev 20090411 21:58:35< gnutoo_> Crab_, sorry I restarted my router...(before I just restarted hostapd and the wifi card) 20090411 21:59:24< Crab_> gnutoo_: my last messages to you - http://wesnoth.pastebin.com/m1b884102 20090411 21:59:33< gnutoo_> Crab_, could http://rafb.net/p/K71LkM21.html be the cause of the problem? 20090411 21:59:35< gnutoo_> ok thanks 20090411 22:00:05< gnutoo_> Crab_, ok thanks a lot I'll do it... 20090411 22:02:45< Crab_> gnutoo_: ok. And if it still crashes, the only thing that can be possibly done is to "extract" a test case, which calls that boost:: routine with the same parameters as wesnoth does, and submit it to boost bugtracker 20090411 22:03:17< gnutoo_> ok thanks 20090411 22:04:55-!- GNUtoo-desktop [n=gentux@host155-29-dynamic.17-79-r.retail.telecomitalia.it] has quit [Read error: 113 (No route to host)] 20090411 22:10:57-!- Gnutoo [n=gnutoo@host155-29-dynamic.17-79-r.retail.telecomitalia.it] has quit [Connection timed out] 20090411 22:13:07< Ivanovic> Chusslove: uhm, when packaging using gzip instead of bzip2, name the tarball .tar.gz, not tar.bh2 20090411 22:13:15< Ivanovic> s/bh2/bz2 20090411 22:13:17< Ivanovic> ;) 20090411 22:13:21< Chusslove> Argh. 20090411 22:16:05< Ivanovic> no problem, was just suprised about tar xfj failing 20090411 22:16:13< Ivanovic> a file afterwards told me the truth 20090411 22:16:15< Ivanovic> ;) 20090411 22:16:44-!- zookeeper [n=l@wesnoth/developer/zookeeper] has joined #wesnoth-dev 20090411 22:17:43< CIA-30> ivanovic * r34731 /trunk/ (48 files in 25 dirs): updated Serbian translation 20090411 22:17:47< Ivanovic> Crab_: have you altered the changelog entry about fallback for recruitment? 20090411 22:17:51< CIA-30> ivanovic * r34732 /branches/1.6/ (48 files in 25 dirs): updated Serbian translation 20090411 22:17:54-!- stikonas [n=stikonas@wesnoth/translator/stikonas] has quit [Read error: 104 (Connection reset by peer)] 20090411 22:18:00< Ivanovic> Crab_: please try to make sure to only use up to 80 chars per line for changelog entries 20090411 22:18:26< Crab_> Ivanovic: ok about 80 chars. 20090411 22:19:10< Crab_> Ivanovic: yes, changelog is altered "* Changed interaction between default AI an Formula AI - made default AI fallback to formula recruitment if "recruitment" config option is set in AI config" 20090411 22:19:30< Ivanovic> and you extended a two line entry and forgot to remove the 2nd 20090411 22:19:41< Ivanovic> i just fixed it in my last commit, was a really strange entry before 20090411 22:19:42< Ivanovic> ;) 20090411 22:19:46< Crab_> Ivanovic: a merge problem, IMO. 20090411 22:19:55-!- fendrin [n=fabi@e176224034.adsl.alicedsl.de] has joined #wesnoth-dev 20090411 22:20:13< Crab_> Ivanovic: thanks for fixing. 20090411 22:20:28< Ivanovic> just take care next time 20090411 22:20:33< zookeeper> have i missed anything today? 20090411 22:20:40< Ivanovic> and thanks for adding a changelog entry, some people love to omit those... 20090411 22:20:44< Ivanovic> zookeeper: uhm, i don't think so 20090411 22:21:17< boucman> hmm not much 20090411 22:21:24< boucman> you still have a patch pending iirc 20090411 22:21:47< zookeeper> yeah 20090411 22:27:40-!- stikonas [n=stikonas@wesnoth/translator/stikonas] has joined #wesnoth-dev 20090411 22:29:53-!- voris [n=voris@c-24-16-107-149.hsd1.wa.comcast.net] has joined #wesnoth-dev 20090411 22:32:45-!- heinz [n=heinz@p54B312FA.dip0.t-ipconnect.de] has quit [Read error: 110 (Connection timed out)] 20090411 22:33:23-!- heinz [n=heinz@p54B312FA.dip0.t-ipconnect.de] has joined #wesnoth-dev 20090411 22:35:16-!- fabi [n=fabi@wesnoth/developer/fendrin] has quit [Read error: 110 (Connection timed out)] 20090411 22:35:57-!- busfahrer [n=busfahre@unixboard/user/busfahrer] has quit ["leaving"] 20090411 22:36:09< zookeeper> Ivanovic, can you check whether those wiki graffiti spams are coming from the same ip range which we could ban? 20090411 22:38:00-!- noy [n=Noy@wesnoth/developer/noy] has quit [] 20090411 22:42:55< Crab_> zookeeper: imo, the best way is to add a spam filter to the mediawiki config. because those wiki graffiti spams all include their standard diclaimer. 20090411 22:43:57< Crab_> zookeeper: something as simple as http://www.mediawiki.org/wiki/Manual:$wgSpamRegex 20090411 22:44:56< zookeeper> well, sure, i don't care which way it's done. i don't have admin rights in the wiki anyway. 20090411 22:45:04-!- Turuk [n=Turuk@wesnoth/forumsith/turuk] has quit [] 20090411 22:45:31< loonycyborg> Crab_: If you're still wondering who has administrative access to wiki on the server, then it's Soliton, Rhonda and possibly Shadow_Master. 20090411 22:47:38-!- stikonas [n=stikonas@wesnoth/translator/stikonas] has quit [Read error: 110 (Connection timed out)] 20090411 22:48:34< Crab_> loonycyborg: thanks. 20090411 22:50:53< Ivanovic> Crab_: if you just *told* me what exactly to add, i could do so 20090411 22:50:56< loonycyborg> Also possibly Ivanovic 20090411 22:51:26< Ivanovic> that is: i am the most clueless one to handle this since i got access to this stuff without having a real idea what i alter... 20090411 22:55:34< nagbot> Hi GSoC Applicants! 20090411 22:55:34< nagbot> SoC decision is near 20090411 22:55:34< nagbot> We are doing some last checks before working on our final "ranking", which we will do *soon* 20090411 22:55:37< nagbot> So, if you got anything to add, post a comment in your proposal 20090411 22:55:56< Reisiger> Night folks :) 20090411 22:56:01< Crab_> Reisiger: night 20090411 22:56:18-!- Reisiger [n=Reisiger@adsl-89-217-197-164.adslplus.ch] has quit ["Verlassend"] 20090411 22:57:26< Crab_> Ivanovic: the file to edit is config/LocalSettings.php in the mediawiki directory. If there's no $wgSpamRegex in there, just add a line $wgSpamRegex = "/Graffiti research project/"; at the end of it 20090411 22:58:28-!- heinz [n=heinz@p54B312FA.dip0.t-ipconnect.de] has quit [Read error: 110 (Connection timed out)] 20090411 22:58:59-!- heinz [n=heinz@p54B312FA.dip0.t-ipconnect.de] has joined #wesnoth-dev 20090411 22:59:03-!- stikonas [n=stikonas@wesnoth/translator/stikonas] has joined #wesnoth-dev 20090411 23:00:13-!- noy [n=Noy@70.70.128.133] has joined #wesnoth-dev 20090411 23:01:19< gnutoo_> Crab_, http://rafb.net/p/ohMr6L38.html <- in 1024x768 with ssh -Y...look the same 20090411 23:01:27< gnutoo_> s/look/it looks/ 20090411 23:01:53< Crab_> gnutoo_yes, it looks the same.. 20090411 23:02:22< Ivanovic> Crab_: okay, added this entry, lets see if it helps... 20090411 23:03:10< Crab_> Ivanovic: works, sort of ) 20090411 23:03:19< Crab_> try to edit that page http://www.wesnoth.org/mw/index.php?title=Oleanders&action=edit 20090411 23:03:49< Crab_> Ivanovic: just save it without changing anything 20090411 23:04:24< Crab_> Ivanovic: it will not stop a human, of course. But at least it is a message that their spam is not wanted here. 20090411 23:05:14-!- BenUrban [n=benurban@pool-96-231-94-111.washdc.east.verizon.net] has joined #wesnoth-dev 20090411 23:05:41< Crab_> we can change the message they'll get (and if they want to repost, they'll get it at least once). 20090411 23:05:42< Crab_> "You can change this message if you like. This text is on an editable wiki page in the MediaWiki namespace. Simply click 'Special Pages' -> 'All System Messages' and the follow the links for 'Spamprotectionmatch' or 'spamprotectiontext'." 20090411 23:06:52-!- _ping_ [n=ping_c@56341227.rev.stofanet.dk] has joined #wesnoth-dev 20090411 23:07:08< Crab_> zookeeper: can you afterwards delete that http://www.wesnoth.org/mw/index.php?title=Oleanders ? 20090411 23:08:30< Crab_> gnutoo_: have you updated the boost version ? 20090411 23:08:46< gnutoo_> Crab_, i just finished compiling that 20090411 23:09:06< gnutoo_> Crab_, I'll compile wesnoth against it 20090411 23:09:07< Ivanovic> this one will work... 20090411 23:09:17-!- heinz [n=heinz@p54B312FA.dip0.t-ipconnect.de] has left #wesnoth-dev ["Leaving"] 20090411 23:11:14-!- stikonas [n=stikonas@wesnoth/translator/stikonas] has quit [Remote closed the connection] 20090411 23:18:59-!- crimson_penguin [n=ben@64.201.60.216] has joined #wesnoth-dev 20090411 23:24:53< Polarina> Ivanovic: When are you going to bed? 20090411 23:25:02< Ivanovic> soon... 20090411 23:25:24< Polarina> Ivanovic: I'll send you the translations then. 20090411 23:27:44< Polarina> Sent. 20090411 23:28:25-!- stikonas [n=stikonas@ctv-79-132-187-171.vinita.lt] has joined #wesnoth-dev 20090411 23:32:09< CIA-30> silene * r34733 /branches/1.6/po/wesnoth-low/fr.po: Updated Franch translation. 20090411 23:32:26< CIA-30> silene * r34734 /branches/1.6/po/wesnoth-utbs/fr.po: Typo. 20090411 23:35:24< boucman> night all 20090411 23:35:54-!- boucman [n=rosen@wesnoth/developer/boucman] has quit [Remote closed the connection] 20090411 23:36:32< CIA-30> ivanovic * r34735 /trunk/po/ (wesnoth/is.po wesnoth-tutorial/is.po): updated Icelandic translation 20090411 23:36:37< CIA-30> ivanovic * r34736 /branches/1.6/po/ (wesnoth/is.po wesnoth-tutorial/is.po): updated Icelandic translation 20090411 23:44:21< CIA-30> crab * r34737 /trunk/src/ (ai_interface.hpp formula_ai.hpp): AI Refactoring: removed some old (and now unused) functions 20090411 23:44:27< CIA-30> crab * r34738 /trunk/src/ (log.cpp log.hpp): AI Refactoring: added a new log category for ai_actions. 20090411 23:44:28-!- asdfasdf [n=Unknown@62-47-146-17.adsl.highway.telekom.at] has joined #wesnoth-dev 20090411 23:44:34< CIA-30> crab * r34739 /trunk/ (6 files in 2 dirs): Added a new src file ai_actions.[ch]pp , modified 4 build configurations. 20090411 23:44:47-!- asdfasdf [n=Unknown@62-47-146-17.adsl.highway.telekom.at] has left #wesnoth-dev ["Leaving"] 20090411 23:45:26-!- GNUtoo_tty [n=gentux@host216-163-dynamic.51-79-r.retail.telecomitalia.it] has quit ["WeeChat 0.2.6.1"] 20090411 23:49:09-!- |Andylee| [n=kvirc@188-23-8-120.adsl.highway.telekom.at] has quit ["KVIrc 3.4.2 Shiny http://www.kvirc.net/"] 20090411 23:57:48-!- stikonas [n=stikonas@wesnoth/translator/stikonas] has quit [Read error: 110 (Connection timed out)] --- Log closed Sun Apr 12 00:00:31 2009