--- Log opened Fri Sep 02 00:00:33 2016 20160902 00:05:57-!- DMG-WR0K [~damage@pool-108-29-130-218.nycmny.fios.verizon.net] has quit [Quit: gone.] 20160902 00:07:01-!- Shiki [~Shiki@141.39.226.227] has joined #wesnoth 20160902 00:08:26< Shiki> Do races have to have uniqe ids too? I suppose soo.... ? 20160902 00:18:39< celmin> Probably, yeah. 20160902 00:58:17-!- RatArmy [~RatArmy@240f:b3:88e3:1:221:85ff:fec0:94bc] has joined #wesnoth 20160902 01:17:54-!- Bonobo [~Bonobo@2001:44b8:254:3200:2d28:7666:f53f:db78] has joined #wesnoth 20160902 01:57:20-!- RatArmy [~RatArmy@240f:b3:88e3:1:221:85ff:fec0:94bc] has quit [Quit: Leaving] 20160902 02:11:05-!- Shiki [~Shiki@141.39.226.227] has quit [Remote host closed the connection] 20160902 02:24:28-!- ArneBab_ [~quassel@55d454f2.access.ecotel.net] has joined #wesnoth 20160902 02:28:49-!- ArneBab [~quassel@55d45c58.access.ecotel.net] has quit [Ping timeout: 255 seconds] 20160902 02:32:21-!- ncms [and@2a02:a312:c101:f800:a19d:e280:1e2d:2d30] has quit [Read error: Connection reset by peer] 20160902 03:29:43-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has joined #wesnoth 20160902 03:48:02-!- mattsc [~mattsc@wesnoth/developer/mattsc] has quit [Ping timeout: 265 seconds] 20160902 03:53:32-!- mattsc [~mattsc@wesnoth/developer/mattsc] has joined #wesnoth 20160902 04:13:06-!- hk238 [~kvirc@unaffiliated/hk238] has joined #wesnoth 20160902 04:34:23-!- hk238 [~kvirc@unaffiliated/hk238] has quit [Quit: http://www.kvirc.net/ 4.9.1 Aria] 20160902 05:28:05-!- Kwandulin [~Miranda@p200300760F4241C47961716C22DA2FA7.dip0.t-ipconnect.de] has joined #wesnoth 20160902 05:28:09-!- DMG-LP [~damage@pool-108-29-130-218.nycmny.fios.verizon.net] has quit [Quit: Leaving] 20160902 05:38:04-!- celmin [~celticmin@unaffiliated/celticminstrel] has quit [Quit: And lo! The minstrel departs, to spread the music to the masses!] 20160902 05:45:01-!- celticminstrel [~celmin@unaffiliated/celticminstrel] has quit [Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] 20160902 05:45:14-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has quit [Quit: Connection closed for inactivity] 20160902 07:48:46-!- Bonobo [~Bonobo@2001:44b8:254:3200:2d28:7666:f53f:db78] has quit [Ping timeout: 255 seconds] 20160902 07:58:14-!- Bonobo [~Bonobo@2001:44b8:254:3200:2d28:7666:f53f:db78] has joined #wesnoth 20160902 08:03:10-!- Bonobo [~Bonobo@2001:44b8:254:3200:2d28:7666:f53f:db78] has quit [Ping timeout: 255 seconds] 20160902 08:03:30-!- Bonobo [~Bonobo@2001:44b8:254:3200:5cc9:2c21:da2f:ecfe] has joined #wesnoth 20160902 08:09:46-!- RatArmy [~RatArmy@240f:b3:88e3:1:221:85ff:fec0:94bc] has joined #wesnoth 20160902 08:10:54-!- RatArmy [~RatArmy@240f:b3:88e3:1:221:85ff:fec0:94bc] has quit [Client Quit] 20160902 08:11:51-!- zookeeper [~lmsnie@wesnoth/developer/zookeeper] has joined #wesnoth 20160902 09:07:02-!- Kwandulin [~Miranda@p200300760F4241C47961716C22DA2FA7.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20160902 09:25:42-!- hay207_ [~hay207@41.34.26.78] has quit [Ping timeout: 276 seconds] 20160902 09:36:40-!- Haldrik [~haldrik@unaffiliated/haldrik] has joined #wesnoth 20160902 09:42:01-!- Kwandulin [~Miranda@p200300760F4241C4C5532239151E8F2D.dip0.t-ipconnect.de] has joined #wesnoth 20160902 10:16:39-!- RodiX [uid5578@gateway/web/irccloud.com/x-wkwqttwwiyzuxcxk] has quit [Quit: Connection closed for inactivity] 20160902 10:47:29< DeFender1031> can I ask a dumb question that really doesn't matter at this stage of wesnoth's development, because no one is going to change the entire architecture at this point? Why is the lua representation of wml the nested "element 1 is the tagname element 2 is the contents" syntax rather than having a designated attribute for the tagname (for example "tagname" or "__tagname") and having only a single-level table per tag? For example: {" 20160902 10:47:31< DeFender1031> sometag", {attribute = "value", childTag}} could instead have been represented as {"tagname" = "sometag", attribute = "value", childTag}} 20160902 10:49:10< DeFender1031> ack, my example got split 20160902 10:49:19< DeFender1031> For example: {"sometag", {attribute = "value", childTag}} could instead have been represented as {"tagname" = "sometag", attribute = "value", childTag}} 20160902 10:55:53< shadowm> It's a mystery~~~~ 20160902 10:55:55 * zookeeper wouldn't know 20160902 10:56:28< DeFender1031> oh, my example has an extra trailing }, whatever. 20160902 10:56:29< shadowm> I'm sure the person who did it had a reason (or not), but we'll never know since he left. 20160902 10:58:07< DeFender1031> shadowm, the reasons i can think of are either "didn't think of it" (which doesn't really have a response) or "wanted to ensure no conflict with potential attributes" which is why i mentioned the "__" version. 20160902 10:58:09-!- vincent_c [~bip@vcheng.org] has quit [Ping timeout: 258 seconds] 20160902 10:58:27< DeFender1031> because single-table-per-tag seems more intuitive to me. 20160902 10:58:38< shadowm> If we put our minds to the task I suspect we can come up with at least a dozen reasons. 20160902 11:00:20-!- vincent_c [~bip@vcheng.org] has joined #wesnoth 20160902 11:00:39< DeFender1031> eh, not worth the effort. Like I said, it doesn't really matter, no one's going to change it at this point. 20160902 11:03:47-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has joined #wesnoth 20160902 11:07:36-!- Netsplit *.net <-> *.split quits: DDR, Soliton, shurnormal, Haldrik 20160902 11:10:00-!- Netsplit over, joins: Soliton, DDR, shurnormal 20160902 11:11:10-!- Haldrik [~haldrik@unaffiliated/haldrik] has joined #wesnoth 20160902 12:19:45< aeth> DeFender1031: probably bceause of the metatable shortcut if the same person did both 20160902 12:20:01< aeth> T["foo"] { ... } looks sort of like [foo] ... [/foo] 20160902 12:20:10< aeth> *because 20160902 12:22:22< aeth> T["foo"] { T["bar"] { T["baz"] { quux = 1, foobar = 42 }}} vs [foo] [bar] [baz] quux = 1 foobar = 42 [/foo] [/bar] [/baz] 20160902 12:22:45< aeth> Except you might need a newline in the [baz] part in that example (I am not going to use a pastebin for a trivial thing like that) 20160902 12:22:49< DeFender1031> aeth, true, but the metatable could have been set up just as easily to return the format i mentioned instead. 20160902 12:23:51< aeth> DeFender1031: the only other reason I can think of is some API calls that use WML are like some_thing("foo", { quux = 42 }) for [foo] quux = 42 [/foo] 20160902 12:24:01< aeth> i.e. the first argument is a tag then the next is the contents of it 20160902 12:24:23< DeFender1031> aeth, those API calls could also have expected a single table and pulled the tag name from it. 20160902 12:24:33< aeth> e.g. wesnoth.add_modification(u, "object", { ... }) 20160902 12:24:41< aeth> they could have 20160902 12:24:46< DeFender1031> like i said, the whole architecture is based on this, but it didn't have to be 20160902 12:24:54< aeth> Welcome to Wesnoth 20160902 12:25:16< aeth> There's another, better way to do just about everything that was done. 20160902 12:25:54< aeth> e.g. in WML they could have used expressions for logic (like s-expressions) so [and] x y [or] z u [/or] [/and] and it'd be much simpler 20160902 12:26:08< aeth> Instead statements are used, making and unnecessary and making filter stuff unnecessarily hard to think about 20160902 12:26:19< aeth> s/making and unnecessary/making [and] unnecessary/ 20160902 12:27:38< aeth> with expressions you don't even need to know how the thing is laid out globally, you just need to evaluate stuff from the inside outward just like you'd do for e.g. arithmetic in programming languages like 4 * x + 3 / y 20160902 12:27:47< aeth> (except in XML syntax you don't need to know order of operations, either) 20160902 12:28:23< aeth> That's the part of the API that personally bothers me the most, but I think everyone has some part. 20160902 12:32:09< aeth> DeFender1031: I guess the main problem is once an arbitrary decision was made 5+ years ago by someone who has since left, there are dozens to hundreds of add-ons (or in my example, almost all) that would break if it's fixed for a slight improvement. 20160902 12:33:44< DeFender1031> actually, [and] is not unnecessary. There are some cases where you want to combine [or]s that can't be done without [and] 20160902 12:34:10< aeth> well, and is unnecessary in most places where you'd think it is necessary if you treated it like a logic expression that's part of an if statement 20160902 12:34:37< DeFender1031> true 20160902 12:35:06< DeFender1031> well, also in [terrain] it's necessary if you want to filter by terrain, but that's due to a naming conflict :P 20160902 12:35:22-!- irco [~irco@HSI-KBW-134-3-111-4.hsi14.kabel-badenwuerttemberg.de] has joined #wesnoth 20160902 12:35:35< aeth> WML is actually better than an if statement if you were to switch to using logic expressions as a programmer might expect 20160902 12:35:44< aeth> because you'd only need one [and] for a huge list of and stuff 20160902 12:36:32< aeth> "[and] x y z u v w [/and]" vs "x && y && z && u && v && w" or "x and y and z and u and v and w", comparable to e.g. "and(x, y, z, u, v, w)" 20160902 12:41:02< DeFender1031> right 20160902 12:43:35< aeth> If we're going to do a major Python 3 style break in the way WML is handled, I'd want to include this change. 20160902 12:51:06-!- mattsc [~mattsc@wesnoth/developer/mattsc] has quit [Quit: mattsc] 20160902 13:01:55-!- Shiki [~Shiki@141.57.58.245] has joined #wesnoth 20160902 13:02:27-!- Haldrik [~haldrik@unaffiliated/haldrik] has quit [Read error: Connection reset by peer] 20160902 13:06:38-!- Haldrik [~haldrik@unaffiliated/haldrik] has joined #wesnoth 20160902 13:07:20-!- mattsc [~mattsc@wesnoth/developer/mattsc] has joined #wesnoth 20160902 13:15:14-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has quit [Quit: Connection closed for inactivity] 20160902 13:18:03-!- Bonobo [~Bonobo@2001:44b8:254:3200:5cc9:2c21:da2f:ecfe] has quit [Quit: Leaving] 20160902 13:21:26< DeFender1031> aeth, wouldn't have to break. It's theoretically possible to allow both temporarily and deprecate one. 20160902 14:04:55-!- hk238 [~kvirc@unaffiliated/hk238] has joined #wesnoth 20160902 14:19:26-!- Kwandulin [~Miranda@p200300760F4241C4C5532239151E8F2D.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20160902 14:34:12-!- Kranix [~magnus@x1-6-74-44-01-e4-f1-52.cpe.webspeed.dk] has joined #wesnoth 20160902 14:52:54-!- DMG-WR0K [~damage@pool-108-29-130-218.nycmny.fios.verizon.net] has joined #wesnoth 20160902 14:54:50-!- ncms [and@2a02:a312:c101:f800:a19d:e280:1e2d:2d30] has joined #wesnoth 20160902 14:55:52-!- mattsc [~mattsc@wesnoth/developer/mattsc] has quit [Quit: mattsc] 20160902 15:01:45< aeth> DeFender1031: the problem is [and] x [or] y [/or] [/and] (with the mostly optional [and]) would become [or] x y [/or] in this scheme 20160902 15:01:48< aeth> iirc 20160902 15:01:57< aeth> it's been a while since I wrote filters, I like to write them once and forget about them because it's painful 20160902 15:03:49< aeth> it's also possible that certain things would break with [or] x y [/or] and thus require [or] [foo] x [/foo] [foo] y [/foo] [/or] where foo used to be implicit 20160902 15:10:52< DeFender1031> it's not clear to me what your proposed syntax would look like, but I actually like the current way the filters work, with the exception that the logical modifiers are not on the same indentation level as the initial filter (though that can be worked around by always opening with an [and]). I actually adapted the idea of filters and performing unions, exclusions, and negations on other filters into a database project i'm 20160902 15:10:53< DeFender1031> working on. 20160902 15:12:03< aeth> DeFender1031: it's not a syntactic change, it's a semantic change 20160902 15:12:17< DeFender1031> it's not clear to me what youre proposed semantic would look like 20160902 15:13:19< aeth> "[or] x y z [/or]" would be equivalent to "x or y or z" as opposed to "... or {x, y, z}" 20160902 15:14:17< aeth> so "[and] x [or] y [/or] [/and]" would become the more logically correct [or] x y [/or], i.e. it's x or y 20160902 15:14:49< aeth> the problem is, there will have to be an additional change 20160902 15:15:34< aeth> since currently you can have [and] color = red [or] color = blue [/or] [/and] which is hideous and confusing to an outsider, but valid unlike [or] color = red color = blue [/or] 20160902 15:16:29< aeth> https://wiki.wesnoth.org/FilterWML/Examples_-_How_to_use_Filter#Basics:_How_filters_work. 20160902 15:16:38-!- mattsc [~mattsc@wesnoth/developer/mattsc] has joined #wesnoth 20160902 15:16:41< aeth> although I guess the concise "color = red, blue" should be used there anyway 20160902 15:16:52< DeFender1031> ah, i understand 20160902 15:17:03< DeFender1031> except you couldn't do what you sad anyway 20160902 15:17:15< DeFender1031> can't have multiple color attributes in the same tag 20160902 15:17:28< DeFender1031> yeah 20160902 15:17:43< DeFender1031> and yeah, i would not actually like that syntax better. 20160902 15:17:52< aeth> I'm not sure if there's an edge case where not having multiple foo attributes in the same tag would actually break something with this syntax 20160902 15:17:53< DeFender1031> the elegance is that the subfilters work the same way 20160902 15:18:09< aeth> DeFender1031: the elegance here though is that you can have *extremely* complicated filters and they'll be much more apparent 20160902 15:18:26< DeFender1031> umm... having multiple of the same element ends up only parsing the last one, no? 20160902 15:18:33< DeFender1031> er 20160902 15:18:38< DeFender1031> s/element/attribute 20160902 15:19:39< DeFender1031> aeth, i'm not sure I agree. I think it would be less intuitive if they were "sometimes and, sometimes or" 20160902 15:19:42< aeth> DeFender1031: using the filters the way I'm proposing maps directly to actual logic and programming logic in a very simple way, though. It's literally just prefix (or I guess prefix+postfix combined) instead of infix 20160902 15:20:01< aeth> as opposed to a psuedo-infix 20160902 15:20:32< DeFender1031> oh also, your example is only inelegant because you're structuring it in the less elegant way. 20160902 15:21:33< aeth> DeFender1031: the problem is if you do [foo] x [and] y [/and] [/foo] it's not immediately obvious unless you learn how WML works (which is a useless skill, non-portable to other games or programming) 20160902 15:21:45< aeth> [foo] [and] x y [/and] [foo] makes it clear that and is applying to x and y 20160902 15:22:00< DeFender1031> huh? 20160902 15:22:22-!- hk238 [~kvirc@unaffiliated/hk238] has quit [Quit: http://www.kvirc.net/ 4.9.1 Aria] 20160902 15:22:45< DeFender1031> "[foo] x y [/foo]", "[foo] x [and] y [/and] [/foo]" and "[foo] [and] x y [/and] [foo]" are all the same 20160902 15:22:46< aeth> [foo] [and] [bar] ... [/bar] [bar] ... [/bar] [/and] [/foo] makes it clear that both [bar]s belong to the [and], i.e. that both are anded 20160902 15:23:10< aeth> [foo] [bar] ... [/bar] [and] [bar] ... [/bar] [/and] [/foo] does not 20160902 15:23:37< aeth> only the second [bar] *belongs* to the [and] and it's only the quirk of how WML works that makes both [bar]s [and]ed 20160902 15:23:59< aeth> When you're doing XML or a fake almost XML, you need to make it clear what belongs to what. 20160902 15:24:00< DeFender1031> i hear 20160902 15:24:47< aeth> There should be no action at a distance, if possible. If you're trying to think about what [and] is doing, you should only have to look at its contents, and maybe what the parent tag is to know what it's doing. 20160902 15:25:20< DeFender1031> except for the fact that the filter conditions are mostly attributes, not tags. 20160902 15:26:57< DeFender1031> hmm, so you'd have [and] and [or] take [filter] tags as children which each contain one set of whatever to and or or together. Interesting approach. 20160902 15:27:08-!- hk238 [~kvirc@unaffiliated/hk238] has joined #wesnoth 20160902 15:27:28< aeth> basically, turning it into a tree 20160902 15:27:37< DeFender1031> that's similar to what i was saying about the initial filter being at a different level than stuff it's being anded or ored with 20160902 15:27:40< DeFender1031> yeah 20160902 15:27:45< DeFender1031> that actually does make sense. 20160902 15:28:04< DeFender1031> (now i need to figure out if and how that applies to my db project :P) 20160902 15:28:42< DeFender1031> anyway, the proposed semantic could STILL be made backwards compatible with the existing 20160902 15:29:38< DeFender1031> any [filter] tags in [and] or [or] get the appropriate operation applied to them in relation to everything else in there, and anything else gets handled the way it already is. 20160902 15:29:56< DeFender1031> messy, but doable 20160902 15:31:01< DeFender1031> oh, actually, it might not need subtags called filter. 20160902 15:31:10< DeFender1031> you'd just use sub-ands or ors. 20160902 15:31:17< DeFender1031> interesting 20160902 15:31:45< aeth> well yeah all you'd need is an [and] containing only one element 20160902 15:31:51< aeth> which will evaluate to itself, as will [or] 20160902 15:32:04< aeth> well, I mean, always true 20160902 15:32:09-!- Kwandulin [~Miranda@p200300760F4241C47979913672DBE429.dip0.t-ipconnect.de] has joined #wesnoth 20160902 15:32:47< aeth> that then breaks the whole old style [foo] x [or] y [/or] [/foo] then, though. 20160902 15:33:01< aeth> because now [or] y [/or] has two meanings 20160902 15:40:53-!- hk238 [~kvirc@unaffiliated/hk238] has quit [Quit: http://www.kvirc.net/ 4.9.1 Aria] 20160902 15:43:49< DeFender1031> right. 20160902 15:43:55< DeFender1031> anyway, gotta go. be back tomorrow. 20160902 15:44:00-!- DeFender1031 [~DeFender1@46-116-114-128.bb.netvision.net.il] has quit [Quit: I'm not back now.] 20160902 15:44:29< aeth> you could probably use some sort of preprocessor to tell it what style conditional as a transitional step 20160902 16:07:46-!- mattsc [~mattsc@wesnoth/developer/mattsc] has quit [Quit: So long and thanks for all the fish.] 20160902 16:24:56-!- ChipmunkV [~vova@static-89-94-113-91.axione.abo.bbox.fr] has joined #wesnoth 20160902 16:32:11-!- celticminstrel [~celmin@unaffiliated/celticminstrel] has joined #wesnoth 20160902 17:26:21-!- shurnormal [~uxio@unaffiliated/ushiu] has quit [Ping timeout: 244 seconds] 20160902 17:35:38-!- Kranix [~magnus@x1-6-74-44-01-e4-f1-52.cpe.webspeed.dk] has quit [Read error: Connection reset by peer] 20160902 17:36:17-!- Kranix [~magnus@x1-6-74-44-01-e4-f1-52.cpe.webspeed.dk] has joined #wesnoth 20160902 17:38:05-!- Kranix [~magnus@x1-6-74-44-01-e4-f1-52.cpe.webspeed.dk] has quit [Read error: Connection reset by peer] 20160902 17:38:43-!- Kranix [~magnus@x1-6-74-44-01-e4-f1-52.cpe.webspeed.dk] has joined #wesnoth 20160902 17:52:26-!- Shiki [~Shiki@141.57.58.245] has quit [Remote host closed the connection] 20160902 18:04:39-!- Kranix [~magnus@x1-6-74-44-01-e4-f1-52.cpe.webspeed.dk] has quit [Ping timeout: 264 seconds] 20160902 18:12:48-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has joined #wesnoth 20160902 18:16:52-!- Sonderblade [~Sonderbla@h-52-183.a157.priv.bahnhof.se] has joined #wesnoth 20160902 18:25:24-!- Kwandulin [~Miranda@p200300760F4241C47979913672DBE429.dip0.t-ipconnect.de] has quit [Read error: Connection reset by peer] 20160902 18:45:31-!- mattsc [~mattsc@wesnoth/developer/mattsc] has joined #wesnoth 20160902 18:45:43-!- celmin [~celticmin@unaffiliated/celticminstrel] has joined #wesnoth 20160902 19:19:26-!- Shiki [~Shiki@141.57.58.245] has joined #wesnoth 20160902 19:24:52-!- shurnormal [~uxio@unaffiliated/ushiu] has joined #wesnoth 20160902 19:32:38-!- Kranix [~magnus@x1-6-74-44-01-e4-f1-52.cpe.webspeed.dk] has joined #wesnoth 20160902 19:48:55-!- mattsc [~mattsc@wesnoth/developer/mattsc] has quit [Quit: So long and thanks for all the fish.] 20160902 20:44:39-!- Shiki [~Shiki@141.57.58.245] has quit [Quit: Verlassend] 20160902 21:11:58-!- DMG-WRK [~damage@pool-108-29-130-218.nycmny.fios.verizon.net] has joined #wesnoth 20160902 21:14:03-!- DMG-WR0K [~damage@pool-108-29-130-218.nycmny.fios.verizon.net] has quit [Ping timeout: 240 seconds] 20160902 21:33:59-!- Shiki [~Shiki@141.57.58.245] has joined #wesnoth 20160902 21:38:47-!- DMG-WRK [~damage@pool-108-29-130-218.nycmny.fios.verizon.net] has quit [Quit: gone.] 20160902 21:39:02-!- Shiki [~Shiki@141.57.58.245] has quit [Quit: Verlassend] 20160902 21:39:17-!- Kranix [~magnus@x1-6-74-44-01-e4-f1-52.cpe.webspeed.dk] has quit [Quit: Konversation terminated!] 20160902 21:44:32-!- Appleman1234 [~Appleman1@KD119104104134.au-net.ne.jp] has quit [Ping timeout: 244 seconds] 20160902 21:48:40-!- EliDupree [~quassel@idupree.com] has quit [Ping timeout: 258 seconds] 20160902 21:54:37-!- EliDupree [~quassel@idupree.com] has joined #wesnoth 20160902 21:55:15-!- ToBeCloud [uid51591@wikimedia/ToBeFree] has quit [Quit: Connection closed for inactivity] 20160902 22:08:55-!- prkc [~prkc@192.40.89.18] has quit [Ping timeout: 252 seconds] 20160902 22:22:23-!- ChipmunkV [~vova@static-89-94-113-91.axione.abo.bbox.fr] has quit [Quit: ChipmunkV] 20160902 22:25:03-!- prkc [~prkc@catv-80-98-160-168.catv.broadband.hu] has joined #wesnoth 20160902 22:31:16-!- wario [~wario_@unaffiliated/wario] has joined #wesnoth 20160902 22:41:06-!- Appleman1234 [~Appleman1@KD119104108200.au-net.ne.jp] has joined #wesnoth 20160902 22:52:52-!- irco [~irco@HSI-KBW-134-3-111-4.hsi14.kabel-badenwuerttemberg.de] has quit [Ping timeout: 240 seconds] --- Log closed Sat Sep 03 00:00:10 2016