IRC logs for #openttd on OFTC at 2022-01-15
            
00:10:28 *** WormnestAndroid has quit IRC (Remote host closed the connection)
00:11:04 *** WormnestAndroid has joined #openttd
01:02:57 *** Barrotes has quit IRC (Quit: Page closed)
01:24:14 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
02:45:04 <reldred> OpenTTD is not TTD
02:45:17 <reldred> oh woops he already left
02:45:26 <reldred> nevermind me
02:55:20 *** Eddi|zuHause has quit IRC (Remote host closed the connection)
02:56:33 *** Eddi|zuHause has joined #openttd
02:58:52 *** glx has quit IRC ()
03:08:54 *** Flygon has joined #openttd
03:20:46 *** Wormnest has quit IRC (Quit: Leaving)
03:33:28 *** _aD has quit IRC (Quit: leaving)
06:49:42 *** Gustavo6046 has joined #openttd
07:28:40 *** nielsm has joined #openttd
08:45:27 *** WormnestAndroid has quit IRC (Remote host closed the connection)
09:04:27 *** andythenorth has joined #openttd
09:23:45 *** Gustavo6046 has quit IRC ()
09:36:59 <TrueBrain> meh; there is no varaction2 opcode to skip the next opcode or something?
09:37:11 <TrueBrain> for if-statements I really have to make a switch, and a lot more sets? :(
09:52:28 <_dp_> nml does some math for ifs, not sure if it's better than switch though
10:10:31 *** jottyfan has joined #openttd
10:16:22 <andythenorth> multiplayer !
10:16:25 <andythenorth> pikka's server
10:17:09 <peter1138> multipikka
10:34:20 <TrueBrain> lol @ newgrf specs .. so every time varaction2advanced is: signed / unsigned .. except for the last one
10:34:25 <TrueBrain> there it is unsigned / signed
10:34:30 <TrueBrain> because sanity is overrated :D :D :D
10:34:34 <TrueBrain> happy I caught that in time
10:40:04 <Eddi|zuHause> mathematically, "if (a) then b else c" can be translated into a*b+(not a)*c. but you lose the short evaluation. and the boolean value of a has to be normalized into 0/1 instead of 0/not 0
10:40:25 <TrueBrain> I did consider it :P
10:40:34 <TrueBrain> but the fact you evaluate both branches ..... would give weird results :D
10:42:00 <Eddi|zuHause> well, then translating it into a switch is the only option
10:42:17 <TrueBrain> but that wasn't my question ;)
10:42:37 <TrueBrain> I was hoping there was an opcode to skip varaction2advanced entries :D
10:43:20 <Eddi|zuHause> there was never a need for that, because a switch already does that :)
10:43:42 <TrueBrain> it sure does; but many of those switch cases don't need to branch, and a lot of administration around them :)
10:46:11 <Eddi|zuHause> that's only weird because you view it from an angle nobody else did before :)
10:46:20 <TrueBrain> doesn't make it weird ;)
10:46:27 <TrueBrain> NML had the same issue btw :P
10:46:37 <TrueBrain> but .. I am just asking the questions. NewGRF has some funky things
10:46:53 <TrueBrain> so sometimes where I think: this surely isn't possible, someone comes and says: yeah, you can do that like this
10:47:21 <Eddi|zuHause> i don't remember NML having an if operator
10:47:33 <Eddi|zuHause> at least i never tried using one
10:47:53 <Eddi|zuHause> there's an if block, but that's action 7/9
10:49:25 <TrueBrain> w00p, constant comparisons work :D (so "10 11 1 2 <" resolves into 10)
10:51:17 <Eddi|zuHause> that syntax creeps me out...
10:51:27 <TrueBrain> poor you :)
10:51:56 <Eddi|zuHause> how is anyone supposed to work out which operand goes in which position, if you're not using that daily?
10:52:31 <TrueBrain> learning something new, yeah, I know, sounds horrible :P
10:52:56 <Eddi|zuHause> that's not the point
10:54:18 <Eddi|zuHause> i mean from a "try to understand what you wrote 5 years ago" perspective, this is barely any better than brainfuck
11:01:38 <TrueBrain> feels a bit like you worry that minified Javascript is not maintainable :P
11:05:11 <LordAro> or indeed machine code
11:05:39 <LordAro> or wait, that's not nfo
11:05:46 <LordAro> that's your rpn thing
11:05:46 <TrueBrain> :D
11:05:52 <TrueBrain> tomato tomato
11:27:41 <TrueBrain> wow, my brain hurts from attempting to create switches out of if-statements :P
12:17:27 *** WormnestAndroid has joined #openttd
12:25:31 *** Kitrana1 has joined #openttd
12:31:04 *** Kitrana has quit IRC (Ping timeout: 480 seconds)
12:50:29 <peter1138> varactions, because creating your own bytecode when hacking into x86 assembly is the best
12:51:34 *** frosch123 has joined #openttd
13:08:23 <frosch123> that dosgameclub guy put some effort into creating explain-ottd-code videos... quite some unusual format
13:08:53 <TrueBrain> peter1138: haha :D Nicely worded ;)
13:11:45 <andythenorth> hmm
13:11:51 <andythenorth> multiple GS in one map
13:12:28 * andythenorth wonders if all GS authors could be persuaded to write them as callable modules
13:12:52 <andythenorth> then you just choose the modules you want in settings for FIRS GS
13:14:15 <Eddi|zuHause> peter1138: are you suggesting injecting x86 code would have been the better option? :p
13:29:29 <TrueBrain> I wonder if limiting if-in-if-in-if-.. depth to like 10 would be an issue :P
13:33:27 * andythenorth explores GS cargo monitor
13:33:42 <andythenorth> I want to run the same industry production calculation in both GS and grf
13:33:48 <andythenorth> curious if they will diverge
13:34:54 <andythenorth> so I need to trigger every 256 ticks
13:35:07 <_dp_> probably not a good idea, GS isn't particularly consistent
13:35:25 <andythenorth> hmm GS has no ticks concept
13:35:30 <andythenorth> I'll have to do it on date
13:35:51 <andythenorth> how many ticks per day?
13:36:00 <andythenorth> 74?
13:36:08 <andythenorth> @calc 256/74
13:36:08 <DorpsGek> andythenorth: 3.4594594594594597
13:36:13 <andythenorth> meh that's not an integer
13:40:03 <TrueBrain> right ... "store left value in register", "run compare body", "if 0 go to else-body / if 1 go to if-body", "run either if/else body", "load left value from register", "do operator with 'last computed result'" ...
13:40:11 <TrueBrain> I cannot imagine anyone writing sane ifs in NML :P
13:41:28 <andythenorth> stacked ternary
13:42:29 <TrueBrain> either way, that is for an if in the right-hand-side ... now to figure out if I can do this on the left-hand-side too .. but that is more complex :P
13:43:01 <TrueBrain> I think I need to solve this differently :)
13:45:40 <frosch123> TrueBrain: imagine an open cargo wagon with different graphics for 60 cargo types
13:45:47 <frosch123> that needs a long switch/if-cascade
13:48:15 <TrueBrain> These setids are a pain in the ass :p
13:49:28 <andythenorth> who would do that though frosch123? :P
13:52:07 <frosch123> https://github.com/V453000/NUTS/blob/master/src-includes/rail_freight_wagons_1_graphics.nml#L1578 <- 71 cases :p
13:52:23 <frosch123> it lacks support for the newest industry sets
13:52:33 <TrueBrain> yeah, but switches can be solved :) If-in-if on different info is a bit harder ;)
13:53:56 <TrueBrain> well, guess every if inside an if only needs 1 more setid .. so the limit would be ~200
13:53:58 <frosch123> andythenorth: another problem with supporting 256 cargos. vehicle va2 cannot switch on so many cargo types
13:53:59 <TrueBrain> that should be fine :P
13:54:53 <andythenorth> frosch123 sharding? :P
13:55:13 * andythenorth oof lost in GS<->grf ideas again
13:56:53 <TrueBrain> meh, using procedures is a bit better, but still a bit clunky ... "store left value in register", "call procedure", "restore left value from register", "use 1C to do math operation with" (for a right-hand-side if-statement)
13:57:03 <TrueBrain> this 15bit result bla is bla :P
13:57:39 <TrueBrain> but for a left-hand-side it becomes a lot easier in that case: "call procedure", "\2rst 1C", ...
13:58:29 <TrueBrain> can a procedure switch to another chain btw?
13:58:42 <TrueBrain> I assume it can :P
13:59:37 <TrueBrain> as that would mean the procedure could have the compare-body, and based on the result switch to the if or else body, returning the value of the procedure
14:02:23 <frosch123> yes, you can recurse into other switches at procedures as you like
14:03:26 <TrueBrain> good :)
14:04:04 <TrueBrain> so annoying that order of operations is important in life :P
14:06:39 <andythenorth> so do we think GS can reliably walk all the towns on the map at month end?
14:06:47 * andythenorth has no idea about GS performance
14:06:57 <TrueBrain> GS is limited in amount of opcodes it can execute per tick
14:07:11 <TrueBrain> so there is no (like: zero) guarantee about anything happening in any in-game amount of time
14:07:22 <andythenorth> but if we allow some leeway about what 'month end' means
14:07:24 <TrueBrain> depends both on user configuration and size of the thing you are iterating
14:07:29 <andythenorth> this isn't strict 'real-time system'
14:07:45 <TrueBrain> so say, 10000 towns has another performance than 10 towns
14:07:54 <TrueBrain> and a user that sets opcodes to 10 has other performance than one that uses 10000
14:08:19 <andythenorth> I guess it's only verifiable empirically
14:08:23 <andythenorth> well
14:08:27 <andythenorth> yolo
14:15:55 <TrueBrain> I have no clue how you want to do that if a user can change those values, but sure :P
14:16:21 <TrueBrain> but "works for me" is a valid statement :D
14:17:09 <frosch123> gs can change settings, so they can increase their opcode limit :p
14:17:22 <TrueBrain> lol
14:17:27 <frosch123> not sure whether the limit actually applies to GS, or only AI
14:18:21 <TrueBrain> it is one of those settings that was more meant for: so we can tune it
14:18:26 <TrueBrain> more than: anyone should be able to change it
14:18:29 <TrueBrain> like pf-stuff :P
14:19:21 <frosch123> pf-stuff is great, whenever someone complanis about pf not working like they want in their weird track layout, yuo can just sent them down the parameter rabbit hole
14:23:05 <TrueBrain> right ... now to find a way for my code parts to talk to each other ...
14:23:12 <TrueBrain> I didn't want things like "setid" in the RPN parser
14:23:26 <TrueBrain> but ... yeah ... tricky to communicate internally :D
14:25:35 <TrueBrain> but in fun news, except for if-bodies, a whole function is generated in a single chain :D
14:34:53 *** glx has joined #openttd
14:34:53 *** ChanServ sets mode: +v glx
14:58:04 <supermop_Home> hello
15:00:54 <TrueBrain> hi!
15:07:55 <supermop_Home> hows it going
15:08:29 <TrueBrain> slowly getting FIRS economy working in TrueGRF :P
15:08:42 <supermop_Home> nice
15:09:27 <supermop_Home> apparently i can just reuse the same template for replacing basically all of the house sprites, except the statue
15:15:56 *** roadt_ has quit IRC (Remote host closed the connection)
15:30:43 <TrueBrain> debugging NFO ... lovely .... I don't want to do this :P
15:37:42 <glx> it's not the easiest thing to debug
15:38:09 <TrueBrain> I think my procedure call fails .. but how do I know .. hmm
15:48:03 <TrueBrain> owh, lol, wrongly reusing of setids .. lovely :D
15:52:49 <supermop_Home> 4000 should be enough to cover even a very large map, but maybe not a 4096x4096... https://uhpress.hawaii.edu/title/place-names-of-hawaii-revised-and-expanded-edition/
15:53:25 <supermop_Home> i guess i'll need to learn enough orthographic rules to write some kind of generator
15:56:54 <TrueBrain> IT ACTUALLY WORKS! \o/ :D
15:56:59 <TrueBrain> I have function if-statements in RPN now :)
15:57:04 <TrueBrain> functional
15:57:06 <supermop_Home> yay
15:57:24 <TrueBrain> now .... to not use the stupid 15bit result, but rather the 32bit ... means inserting some more operators :D
16:04:49 <TrueBrain> @calc 2 ** 18
16:04:49 <DorpsGek> TrueBrain: 262144
16:05:16 <TrueBrain> now that works fine too :) w00p
16:06:00 <TrueBrain> if-in-if works too :) With the lowest amount of setids used :)
16:08:06 <TrueBrain> now to support functions in the cases .. lets see if that is possible :D
16:09:06 <TrueBrain> "just works"
16:09:06 <TrueBrain> hihi :)
16:10:20 <TrueBrain> that means the example from Lumberjack Industries can now be done .. :D :) :D
16:10:28 <TrueBrain> right .. next pickle ... variables .. but that is for another day :)
16:13:19 <TrueBrain> https://github.com/TrueBrain/TrueGRF/compare/dev?expand=1 <- 714 lines of code to parse the RPN and counting :)
16:13:48 *** Wormnest has joined #openttd
16:14:17 <andythenorth> \o/
16:15:30 <TrueBrain> I really like it only jumps to another setid if it really has to (read: branching) .. otherwise it just creates 1 single (very low) action2 chain :D
16:15:42 <TrueBrain> it uses temporary registers to glue stuff together if it needs to :P
16:16:10 <TrueBrain> very low = very long
16:16:11 <TrueBrain> I need dinner
16:16:33 <frosch123> when you can replicate firs, you can compare how many setids and registers you need with how many nml needs :p
16:16:48 <TrueBrain> ha! That is a nice idea :)
16:18:22 <TrueBrain> in general, might be good to compare the NML result of FIRS with my result .. just to see if nothing extremely weird happened :P
16:21:47 <TrueBrain> but yeah, you can make 254 if-in-if statements before things go wrong .. should be fine, not? :)
16:22:57 <TrueBrain> hmm, no, infinite if-in-if
16:22:58 <frosch123> https://github.com/OpenTTD/OpenGFX/runs/4754568847?check_suite_focus=true#step:7:194 <- nml prints some statistics
16:23:05 <frosch123> i do not have them for firs at the moment :)
16:23:12 <TrueBrain> the problem happens with if-else-in-if-else-in-if-else ...
16:23:47 <TrueBrain> NML only supports up to 127 action2 chains?
16:24:14 <frosch123> you mean registers?
16:24:21 <TrueBrain> yeah
16:24:23 <TrueBrain> sorry, typing hard
16:24:28 <frosch123> 00-7F are for the user LOAD/STORE_TEMP
16:24:33 <frosch123> 80-FF are used by nml expressions
16:24:37 <TrueBrain> ah, it claimed a set, gotcha
16:24:55 <TrueBrain> TrueGRF just needs a few for stack
16:25:05 <TrueBrain> I don't realistic every expect that to exceed 10 :P
16:25:14 <frosch123> so i guess firs-nml cheats by storing some values in user-allocated register
16:25:26 <frosch123> but at the same time nml cannot optimise whatever the user entered there :p
16:26:01 <TrueBrain> (in case of "1 var 1 + +", the right-hand-side is complex, and is generated as "var", "+1", "store-in-register", "1", "+register")
16:26:32 <TrueBrain> so if people go insane in a single statement with these kind of complex rhs structures .. I need a bit of registers for that :D
16:27:00 <TrueBrain> nor sure how NML does that, but claiming 128 seems excessive :P
16:27:58 <frosch123> nml cannot reorder switches
16:28:19 <frosch123> so it suffers
16:28:23 <frosch123> with whatever the user does
16:28:29 <TrueBrain> poor NML :P
16:28:47 <frosch123> if user defines 100 spritesets at the start of the file, and uses them at the end of the file, that occupies 100 ids throughout the file
16:29:14 <TrueBrain> TrueGRF does not have that issue :P I control when actual content is generated :)
16:29:48 <frosch123> yes, truegrf is more high-level in that regard :)
16:30:15 <TrueBrain> https://github.com/TrueBrain/TrueGRF/blob/dev/truegrf-rs/src/grf/mod.rs#L178 <- the only place so far I waste a setid because I am too lazy to fix it properly
16:30:16 <frosch123> that's why the nml statistics print the source location where the maximum was reached
16:30:24 <frosch123> hoping the user identfies what they did bad
16:30:29 <TrueBrain> that is really smart, printing where it came from :)
16:30:43 <frosch123> with pynml it's really useless though :p
16:31:02 <TrueBrain> and poo, reading back that comment I just linked .. I need to reword that :D
16:31:07 <frosch123> issue at line 156284 of generated nml :p
16:31:13 <TrueBrain> haha :D
16:31:33 <TrueBrain> NML gives absolute freedom, and as such the user has to resolve a lot of things
16:31:38 <TrueBrain> that is the result of that choice, I guess :)
16:31:51 <TrueBrain> TrueGRF limits the user a lot, and as such, can do a lot of things for the human :)
16:32:36 <DorpsGek> [OpenTTD/nml] glx22 opened pull request #247: Add: Translate ternary operator into varact2 if needed https://github.com/OpenTTD/nml/pull/247
16:33:02 <frosch123> haha, sounds like the opposite of what truegrf does :p
16:34:00 <TrueBrain> we will see :)
16:35:07 <TrueBrain> yeah, had to double-check, but if you do 255 "if () {} else { if () { } else { if () { } else { ...", it breaks
16:35:14 <TrueBrain> but I am pretty sure sanity has been lost long before that :P
16:35:50 <TrueBrain> "if () { if () { if () { if () { ..." has no limit
16:36:54 <TrueBrain> maybe I should revert them, as it is more likely people cascade if-else, I guess (as you pointed out earlier)
16:37:30 <TrueBrain> owh, no, I am wrong ... I already flipped them. So yeah, flip the examples, and that is what is going on
16:37:32 <TrueBrain> I am fine with that :P
16:38:15 <TrueBrain> https://github.com/TrueBrain/TrueGRF/blob/a371da458bb0bc72f393d8ef57bf4fd88da47e50/truegrf-rs/src/grf/actions/action2/rpn.rs#L465 <- I might have copied that from NML :P Really didn't want to do my own math :D
16:39:17 <glx> oh yes the crazy NFO compare
16:39:45 <TrueBrain> as I do not allow compares to be used for getting 0 / 1 back, I might also move things to the switch statement, now I come to think of it
16:50:42 *** sla_ro|master has joined #openttd
17:11:52 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
18:13:08 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
18:16:57 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
18:38:02 *** Wormnest has joined #openttd
18:49:03 <DorpsGek> [OpenTTD/OpenTTD] DorpsGek pushed 1 commits to master https://github.com/OpenTTD/OpenTTD/commit/15c919156865e82bae8ca3568a97e48ffae71a17
18:49:04 <DorpsGek> - Update: Translations from eints (by translators)
19:04:12 *** WormnestAndroid has joined #openttd
19:08:16 <andythenorth> hmm
19:08:22 <andythenorth> if towns had a regional capital
19:08:27 <andythenorth> electricity would be less silly
19:38:22 *** jottyfan has quit IRC (Quit: jottyfan)
19:49:13 <wiscii> latest firefox update 96.0 forces google search
19:49:32 <wiscii> because firefox really care about your privacy ......
19:50:16 <wiscii> just as google shut down free access to their app portal
19:53:26 <wiscii> i know about the "Trans Siberian Railway" but isn't there a Chinese route as well ?
19:54:03 <wiscii> China to Europe ?
19:54:58 <wiscii> ah, Sino-Euro ..
19:55:33 *** Gustavo6046 has joined #openttd
19:57:34 <wiscii> ah-so , the end-to-end Sino-Euro trip is around 15~18 days, ~35 days there and back - Around 10 trips per year
19:58:06 <wiscii> My most profitable goods line makes 1million per delivery and makes 4 deliveries per year
20:14:13 <DorpsGek> [OpenTTD/OpenTTD] nchappe updated pull request #9760: Feature: [Linkgraph] Show a tooltip with statistics when hovering a link https://github.com/OpenTTD/OpenTTD/pull/9760
20:17:51 <TrueBrain> frosch123: are there things that would break if I make all variables signed? :P
20:18:10 <TrueBrain> tracking signed/unsigned is such a nag
20:21:48 <frosch123> not sure, signedness is so weird when multiple fields are bitstuffed into one 32bit or 15bit thing
20:22:50 <frosch123> so when you extract 3 bits from some larger variable, you certainly do not want to sign-extend those
20:23:07 <TrueBrain> I went the NML route, and TrueGRF doesn't show the bitstuffed fields itself
20:23:16 <TrueBrain> for example, it says "x" and "y", which are in a single variable
20:23:25 <TrueBrain> so I kinda take that away, I think ..
20:23:34 <TrueBrain> unless there are callback return values which need them stuffed again
20:23:35 <frosch123> nml does that for variables, but not for cb results
20:23:56 <frosch123> there are plenty of cb results with "stringid | flag1 | flag2"
20:24:05 <frosch123> where stringid is some 12bit value
20:24:13 <frosch123> (yeah, 12 :p)
20:24:29 <TrueBrain> I already did "result:inputs[]", to not bother users with this stuff .. guess I might as well for those callback results
20:24:47 <TrueBrain> so given that, what else breaks if it is signed only ..
20:25:00 <TrueBrain> hard to see :D
20:25:52 <frosch123> most individual things do not exceed 31 bits, though there are "32 random bits" thingies sometimes
20:26:03 <frosch123> but then you usually also pick some of them, instead of all
20:26:20 <TrueBrain> it would simplify it a lot if just everything is signed, and kinda works how you expect
20:26:30 <TrueBrain> maybe I should just try it signed first, and see if we run into something
20:26:36 <TrueBrain> can always add a "unsigned" keyword :P
20:35:54 <glx> ok I wasn't expecting nml#247 CI to fail this way
20:36:40 <TrueBrain> how did it fail?
20:36:44 <TrueBrain> it now sounds like it did boom :P
20:37:04 <glx> python 3.5 and 3.6 not available on macos
20:37:09 <TrueBrain> lolz
20:37:29 <TrueBrain> I wouldn't have seen that coming either :D
20:41:54 <glx> https://github.com/actions/virtual-environments/issues/4744 <-- oh I should take care of this one too
20:42:50 <glx> https://github.com/actions/virtual-environments/issues/4060 <-- I guess this one just hit me actually
20:43:28 <glx> workflow ran macos-11 indeed
20:43:52 <glx> and this image just doesn't have 3.5 nor 3.6
20:57:56 <TrueBrain> guess it is time to burn 3.5 with fire :P
21:00:06 <DorpsGek> [OpenTTD/nml] glx22 opened pull request #248: Update: [Actions] python versions for regression test https://github.com/OpenTTD/nml/pull/248
21:01:14 <glx> I need to try to remember why nml workflows are forced to windows-2016, because this image will disappear in march
21:06:03 <wiscii> github explicitly told everybody to use windows-latest
21:06:34 <glx> yes we know, that's why I need to remember why it's not the case
21:07:00 <DorpsGek> [OpenTTD/nml] glx22 updated pull request #248: Update: [Actions] python versions for regression test https://github.com/OpenTTD/nml/pull/248
21:16:37 *** gelignite has joined #openttd
21:22:52 <_dp_> wow, first desync since 12.0
21:23:58 <LordAro> oh no
21:26:08 <Gustavo6046> hm?
21:26:10 <Gustavo6046> what happened?
21:33:24 <wiscii> sounds like flying foo hit spinning bah! :)
21:36:33 <TrueBrain> w00p, persistent registers work \o/ :D
21:36:49 <TrueBrain> code needs a bit of a cleanup :D
21:36:57 *** _aD has joined #openttd
21:40:57 <DorpsGek> [OpenTTD/nml] glx22 updated pull request #248: Update: [Actions] python versions for regression test https://github.com/OpenTTD/nml/pull/248
21:42:41 <glx> hmm and there's a new error reported by codeQL
21:43:33 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
21:43:50 *** WormnestAndroid has joined #openttd
21:50:20 *** frosch123 has quit IRC (Quit: be yourself, except: if you have the opportunity to be a unicorn, then be a unicorn)
21:52:12 <glx> https://github.com/OpenTTD/nml/security/code-scanning/128?query=ref%3Arefs%2Fpull%2F248%2Fmerge+ref%3Arefs%2Fpull%2F248%2Fhead <-- regex are fun, but I hate this one
21:57:34 <Gustavo6046> what the heck is that regex
21:57:40 <Gustavo6046> oh
21:58:03 <glx> https://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html <-- it should match that
21:58:17 <Gustavo6046> exponential backtracking... really? I don't see any lookbehinds
21:59:27 <glx> not explicitely, but python engine seems to do it
22:01:02 <Gustavo6046> :/
22:01:12 <Gustavo6046> I mean, the Python re engine is dumb
22:12:37 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
22:17:48 *** WormnestAndroid has quit IRC (Ping timeout: 480 seconds)
22:18:01 *** WormnestAndroid has joined #openttd
22:18:38 *** andythenorth_ has joined #openttd
22:20:41 *** andythenorth has quit IRC (Ping timeout: 480 seconds)
22:20:51 <_dp_> is there a way to know what's the latest netsave.sav now?
22:21:02 <_dp_> want to ask player to send it but there are multiple now
22:26:35 *** geli has joined #openttd
22:26:35 *** geli has quit IRC (Remote host closed the connection)
22:33:53 <glx> file date probably
22:36:56 <_dp_> I'm just gonna give up, he's not responding anymore
22:37:20 <_dp_> judging by how slow and awful he plays I blame android :p
22:40:33 *** Wormnest has joined #openttd
22:40:47 <wiscii> it's saturday night and your client is on android, probably has a girlfriend too xP
23:04:18 *** andythenorth_ has quit IRC (Quit: andythenorth_)
23:20:47 *** LouWestin_ is now known as LouWestin
23:37:20 *** gelignite has quit IRC (Quit: Stay safe!)