IRC logs for #openttd on OFTC at 2023-06-04
⏴ go to previous day
00:10:34 <petern> At some point, just release 14... 😉
00:12:18 <TrueBrain> So hit that merge button already glx[d] 😛
00:14:16 <TallTyler> Are we doing 13.2 then?
00:15:14 <petern> Does it have shares? 😄
00:17:45 <glx[d]> I think there's more things to backport but I had enough conflicts in this batch 🙂
00:18:23 <glx[d]> (and I ran the mark-done command)
00:19:19 <glx[d]> scripts work very nicely
01:47:42 *** HerzogDeXtEr has joined #openttd
02:38:06 *** debdog has quit IRC (Ping timeout: 480 seconds)
02:58:48 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
06:55:49 *** HerzogDeXtEr has joined #openttd
07:13:30 *** gelignite has joined #openttd
08:16:30 <pickpacket> I am continually amazed at how much you guys get done and how quickly
08:52:07 <TrueBrain> Much easier to review, tnx Rubidium 🙂
09:03:28 <TrueBrain> pickpacket: but the question is .. is it the right work getting done! 😛
09:15:50 <TrueBrain> andythenorth: now start making use of this; we want results! 😛
09:23:40 <TrueBrain> Rubidium: I guess most other places already did silently ignored full strings
09:23:52 <TrueBrain> so maybe my question is more: why -was- Utf8Encode already special
09:24:18 <TrueBrain> I don't get me wrong .. I mainly ask as I like the simplicity of the StringBuilder .. and Utf8Encode kinda ruins it 😛
09:24:58 <TrueBrain> yeah, okay, reading the current code again, it already did silently ignore full strings
09:25:01 <TrueBrain> just not for these 3 places
09:25:13 <TrueBrain> I guess that was because it wanted to keep the utf8 codepoint together
09:25:22 <TrueBrain> that it didn't accidentially put 1 of the 2 bytes in the string
09:25:25 <TrueBrain> but that you already covered
09:25:33 <TrueBrain> so there again I am wondering .. why return a bool? 😄
09:26:00 <TrueBrain> say the string was full after `SCC_RED`, the rest would have just run but did nothing
09:28:40 <pickpacket> TrueBrain: to me the question is ”where do all these people get the time and energy from?” 😄
09:29:34 <TrueBrain> okay, Rubidium, finally got to the point of why this code was how it was 😛 That was not obvious, but I found a good reason for myself 😛
09:32:31 <petern> Well I can thumbs-down comments on Github too. Shame there's no 🤡 option...
09:36:21 <Rubidium_> probaly some US vs UK debate?
09:36:30 <TrueBrain> dunno, Merriam Webster says Mimic
09:36:45 <TrueBrain> but Mimicked; I always like the word 🙂
09:36:48 <TrueBrain> it randomly gains a k 😛
09:37:07 <TrueBrain> You mimic, you mimicked
09:39:00 *** gelignite has quit IRC (Quit: Stay safe!)
09:55:15 <FLHerne> TrueBrain: in older English, "mimick" had a k too
09:55:17 <FLHerne> but it wandered off at some point
09:56:12 <TrueBrain> dP: to set expectations, we won't see `frame_freq` in the survey, as server-owners are never asked to participate 🙂
09:56:56 <TrueBrain> PRs to address that are welcome, but I cannot be bothered
09:57:32 <dP> let's see how clients telemetry does first
09:59:38 <dP> it's not clear how to even process server telemetry as at the same time it represents multiple clients but is duplicating their reports
10:00:08 <dP> will gui server report telemetry btw?
10:00:35 <TrueBrain> anyone who signs up will
10:00:41 <TrueBrain> but we only ask the question in a GUI way
10:01:36 <dP> sometimes people run servers with gui as it's just easier but don't play on that instance
10:01:50 <dP> hopefully not statistically significant though
10:01:55 <TrueBrain> but ideally we also add a TUI way of asking if people want to participate
10:04:41 <petern> Add a console message that gives the setting to change.
10:04:59 <TrueBrain> something like that would work fine 🙂 So if anyone is up to it 😄
10:06:07 <dP> wait, you don't ask question, but can dedicated server participate just by changing the config?
10:07:52 <TrueBrain> argh, I cant reproduce 10502, which annoys me 😦
10:08:12 <TrueBrain> and I kinda don't want to rebuild 13.0 .. as that takes for-ever 😛
10:09:29 <dP> if I turn it on on citymania you'll get 5*24 hours of gameplay reports that represent who knows what
10:09:31 <JGR> TrueBrain: I've reproduced it, I'll post in a few minutes
10:09:48 <dP> do you track playtime in the report/statistics btw?
10:11:06 <TrueBrain> I can see GRF callbacks returning different values, but it doesn't trigger any assert 😛 Lovely weird
10:13:02 <TrueBrain> Rubidium: did you actually test that code? As that is one very annoying part to actually test 😛 😄
10:18:15 <dP> JGR: hm, does 10913 allow AIs to use async mode? don't see it being limited to GS
10:18:39 <dP> also seems to be missing gs_changelog ;)
10:19:01 <dP> ah, it's on the whole class
10:22:56 <TrueBrain> I should be working on finishing the new infra, but it got a bit boring ... 😛
10:23:22 <petern> Okay, decoupling default padding does make most UpdateWidgetSize functions simpler...
10:23:41 <TrueBrain> as long as you approve my PR first; we can't have another rejected PR!
10:23:55 <petern> It would just be undoing it again :p
10:23:58 <TrueBrain> (and nice; that sounds like a good quality of life improvement)
10:24:45 <TrueBrain> tnx JGR .. I was a bit afraid that this was just the case of a bad GRF ..
10:24:53 *** gelignite has joined #openttd
10:25:50 <JGR> I can't say that I've ever read the GS changelog, wasn'taware that that was something that needed updating
10:25:52 <TrueBrain> funny how cloning the vehicle doesn't crash, but shows a similar flow 🙂
10:26:20 <TrueBrain> JGR: it's okay; I should have noticed in review, but we gotcha 🙂
10:27:27 <JGR> Doing the refit before attaching the vehicle to any free wagons in the depot would make the issue go away
10:28:06 <TrueBrain> or we can just blacklist the GRF for doing bad things 😛 😄 (just kidding ofc)
10:28:20 <TrueBrain> but isn't OpenGFX+trains super old? Why is this only discovered now? 😄
10:29:10 <JGR> Normally you'd build the engine first, then the wagons
10:29:30 <TrueBrain> and normally asserts aren't on .. so yeah, fair
10:29:45 <dP> it may not have crashed earlier versions for whatever reason
10:30:20 <TrueBrain> but okay, that ticket is above my paygrade (read: knowledge), so pushing it back .. at least we know what is broken 🙂
10:34:26 <petern> Phew, for a second I thought you thought we were paying you...
10:34:44 <TrueBrain> wait, you don't get paid?
10:35:07 <petern> Only in lunchtime salad reminders.
10:35:33 <dP> hm, weird, don't see any callbacks in ogfx-trains
10:35:43 <dP> though I might be just decompiling old container wrong...
10:36:13 <TrueBrain> those OpenGL drivers .... we really could use a blacklist to extend to 😄 So silly 🙂
10:36:32 <petern> That was the point of the fabled DirectX driver right?
10:36:46 <TrueBrain> that is just increasing our technical debt
10:37:09 <petern> (If they do OpenGL wrong, Vulkan...)
10:37:15 <TrueBrain> what might be wise that if we detected we crashed on startup, that we automatically fall back to non-OpenGL
10:37:35 <TrueBrain> but requires writing something to disk to detect that 🙂
10:37:51 <TrueBrain> and a way to reproduce crashing 😛
10:39:31 <TrueBrain> still means it crashes the first time, but not the second .. so yeah .. I might try that after lunch 🙂
10:45:27 <petern> Can be done with a "setting" that is updated before switching and after it works, assuming it crashes straight away.
10:48:16 <petern> Ah of course, there's no obvious call to refit during building...
10:50:50 <petern> Oh, just a subcommand. Right.
10:56:32 <petern> Another codespaces PR, so it's untested and uncompiled.
10:57:56 <TrueBrain> petern: sadly, settings are only actually read after newgrf scan is completed .. some are read earlier, but not all. So that would be a bit annoying 🙂 But we can write another file!
10:58:36 <TrueBrain> petern: did you just try to fix a bug without actually testing if it doesn't break everything? 😄 😛
11:00:11 <petern> Doesn't the "onstart" thing load them earlier?
11:00:57 <petern> I figure it has eyes on it, if it actually compiles, it can be tested by someone 🙂
11:02:09 <Eddi|zuHause> isn't that "everything wrong with modern software: let the user test it"? :p
11:04:58 <petern> It's a "I'm not at my normal PC right now, I literally can't compile and test it myself, but here's a potential solution" situation. So no.
11:05:18 <TrueBrain> I was just teasing you; it is fine, I can give it a try in a bit 🙂
11:06:26 <petern> Well, it doesn't compile 😄
11:06:31 <TrueBrain> so I won't test it! 😛
11:06:46 <TrueBrain> can't your codespace also compile? GitHub Codespaces by default should install a compiler for you 🙂
11:06:50 <TrueBrain> it will be slow, that is for sure 😛
11:07:47 <petern> I dunno. Maybe. There's no dependencies installed for sure.
11:08:03 <TrueBrain> `apt install ...` 🙂
11:11:42 <petern> At least it wasn't a typo I guess.
11:22:49 <Rubidium_> why's most of the bike shedding about functions/stuff that's going to be removed a few steps later? Things that wouldn't have really mattered if the revamp PR was just merged as one step :(
11:23:15 <TrueBrain> Rubidium_: it shows how complex the original PR was, and why reviewing was that hard
11:23:23 <TrueBrain> for you it makes sense as you went through all those steps
11:24:06 <TrueBrain> this really is easier to review; just it makes us ask questions we would have in the combined PR, but was impossible because .. bomen .. bos ... 😛
11:24:14 <Rubidium_> that's why it was a number of commits one could have stepped through, and not a single one
11:24:31 <TrueBrain> yeah, but giving comments on that was just ... so .... well, I couldn't find the energy for it 🙂
11:24:37 <Rubidium_> I've literally just taken single commits from the old PR and made them new PRs
11:24:46 <TrueBrain> I know; and you see how many questions that gives 🙂
11:25:06 <TrueBrain> baby-steps .. how ever annoying, it is really more practical in this case 🙂
11:25:12 <TrueBrain> and I appreciate you put in the effort
11:25:27 <Rubidium_> AddCString isn't really a good name either, as there's also `StringBuilder &operator+=(const char *str)` which *really* adds a C-string.
11:25:37 <TrueBrain> and UGH @ Windows crash reports .. they are useless till glx comes around 😛
11:25:59 <TrueBrain> Rubidium_: haha, fair 🙂
11:26:13 <Rubidium_> AddOldStyle is just to have some wrapper that essentially allows calling the old style strecpy-like functions
11:26:13 <TrueBrain> `AddStringViaCCallback` 😛
11:26:31 <TrueBrain> yeah, but `old style` was rather unclear in definition; I was just hoping there were some easier words
11:26:32 <Rubidium_> AddViaStreCallback? :D
11:26:40 <TrueBrain> `old` .. `new` .. we ahve too much of that shit in OpenTTD 🙂
11:26:44 <TrueBrain> Rubidium_: yes, go for that!
11:27:07 <TrueBrain> it perfectly tells what it does
11:28:12 <TrueBrain> glx[d]: if you have some time, can you tell me where the crashes in #10463 and #10394 happen? I am hoping in `Start()`, but I can't tell 😄
11:38:04 <TrueBrain> lol @ that gender part .. now that is magic. At least my question resulted in a fix I guess 😛
11:38:37 <TrueBrain> Rubidium: I still don't get why in an if-statement that reads `!dry_run` you start doing things for a dry-run
11:39:10 <TrueBrain> and I fully understand that it was already weird 😛
11:42:44 <TrueBrain> owh, okay ... so the comment on line 840 is misleading as fuck
11:45:07 <Rubidium_> yay recursion that doesn't always need to happen I guess
11:45:29 <TrueBrain> okay ... if I would have ignored that comment, I would have understood much more of what is happening
11:46:51 <TrueBrain> wauw, okay ... this was .. interesting
11:47:07 <Rubidium_> I think the problem with the comment of line 840 is, that it only comments on the first part of the expression
11:47:22 <TrueBrain> I think we should just remove that comment; your comment following is much more clear
11:48:10 <TrueBrain> basically normally I would make 2 functions there
11:48:25 <TrueBrain> one `static` like `_StringFormat`, which has the last parameter
11:48:36 <TrueBrain> as it even took me a bit of time to figure out `dry-run` was only called from within itself
11:48:39 <TrueBrain> and never from outside 😛
11:48:43 <TrueBrain> but okay, that is not for this PR
11:48:46 <TrueBrain> it is just hard-to-read code 🙂
11:50:08 <TrueBrain> the function basically is a 2-stage rocket 🙂
11:50:39 <TrueBrain> owh, and yes, flipping the order is even better
11:51:42 <TrueBrain> and guess we won't be fixing the existing typo 😛 Not important enough tbfh 🙂
11:52:05 <Rubidium_> interestingly it's not a typo
11:52:17 <Rubidium_> the comment was right at some point
11:53:24 <TrueBrain> luckily the CI cancels these days 🙂
11:54:17 <TrueBrain> we have no Fio command to remove a file? 😦
11:54:58 <TrueBrain> `FiosDelete` is not what you think either 😄
11:55:17 <TrueBrain> `return unlink(FiosMakeSavegameName(name).c_str()) == 0;` is what `FiosDelete` does
11:55:29 <TrueBrain> no clue what it does the `MakeSavegameName` there, with such a function name 😄
12:01:47 <glx[d]> TrueBrain: for #10394 it's hard to get a useful trace as I don't have ati dlls
12:02:03 <TrueBrain> also hard to see the last function that was active in OpenTTD?
12:02:15 <TrueBrain> basically, I just want to know if it crashed in our `Start()`, or later
12:03:24 <glx[d]> ```> 0000000000000000() Inconnu
12:03:24 <glx[d]> [Des frames sont manquantes, aucun binaire chargé pour atio6axx.dll]
12:07:15 <glx[d]> not better (missing intel dlls)
12:07:43 <glx[d]> the crashes are inside drivers
12:07:56 <TrueBrain> yeah, I know; I just want to know what our last call was 🙂
12:08:01 <TrueBrain> so I know what function to protect
12:08:07 <TrueBrain> and I think it is `Start()` that already causes the crash
12:08:11 <TrueBrain> that makes my patch easier
12:08:18 <glx[d]> I can try to hunt for the dlls, but it's a pain 🙂
12:08:32 <TrueBrain> it would help a lot; but not if it takes hours 🙂
12:09:03 <TrueBrain> that moment that `ScheduleErrorMessage` doesn't cause an error to show up ... that is annoying ...
12:11:26 <TrueBrain> hmm .. we broke something recently that causes those errors to no longer show up
12:11:29 <TrueBrain> they used to show up just fine
12:13:08 <petern> I was going to mow the lawn but just walking around the garden is tiring enough, damn it.
12:13:51 <petern> Also the neighbour's kids have a mini pool out and nobody wants to hear a wheezing old man pushing a wheezing old mower...
12:18:44 <petern> Hmm, clang10 on this codespaces image, is that okay?
12:21:45 <petern> > A codespace is a development environment that's hosted in the cloud. You can customize your project for GitHub Codespaces by committing configuration files to your repository
12:21:52 <petern> That seems a bit... inflexible.
12:22:22 <TrueBrain> Not really; this is called `devcontainer`, and it a JSON file that tells all these systems how to setup a dev environment
12:22:27 <TrueBrain> it is really flexible, and really awesome
12:22:32 <TrueBrain> 1 developer has to do it, and all developers can use it
12:25:11 <TrueBrain> glx[d]: tnx .. shows my idea for 10928 is wrong 😄
12:25:29 <TrueBrain> I do need to wait till the first tick or something .. bah
12:35:47 <TrueBrain> also what I would expect
12:36:59 <glx[d]> oh the 13.0 trace might be wrong, forgot to checkout
12:41:16 <TrueBrain> well, it was not for nothing, as the backtraces show I need to adjust my PR a bit; but that is easily enough too
12:41:41 <glx[d]> but it's really a pain to need to hunt for the driver files 🙂
12:41:52 <TrueBrain> I know .. but it is appreciated 🙂
12:43:24 <TrueBrain> it now waits for the first draw-tick; if that succeeded, the driver is marked as operational
12:43:32 <TrueBrain> if that crashes, next boot, it will switch to non-OpenGL
12:43:38 <TrueBrain> should have prevented both tickets 🙂
12:44:09 <TrueBrain> and yes, this adds 8 bytes of RAM for everyone, just because a few GPU drivers are silly
12:44:18 <TrueBrain> ruining the game once again 😢
12:45:01 <petern> 8 bytes wasted, literally ruined the game.
12:48:00 <TrueBrain> please petern , not here. go to the forums for these kind of remarks. Pffff 😛
12:48:48 <TrueBrain> okay, I am pretty happy with 10928 .. seems like a simple and clean solution to at least smoke out some of those reports 🙂
12:49:24 <TrueBrain> you could actually test 10926 yourself? Nice petern , codespaces ftw? 🙂
12:50:19 <TrueBrain> sadly, I cannot judge if that PR is valid or not .. I am sure frosch has an opinion 😄 😛
12:54:55 <glx[d]> hmm added label to #10879 (hoping it applies almost cleanly)
12:55:49 <petern> Hrmm, well that comment doesn't make much sense anyway, I'll change it.
12:56:21 <glx[d]> checking #10747, but might be a pain to apply (IIRC it's done on top of other major codechanges)
13:01:42 <TrueBrain> glx[d]: I tested it with really nasty asserts in weird places 😄
13:01:46 <TrueBrain> I can fake driver crashes! 😄
13:03:10 <petern> Just press the ignore signals button
13:03:51 <Eddi|zuHause> i'm not quite sure when or why it happened that you need to press ignore signal twice
13:04:05 <petern> (Or was that fixed? :D)
13:04:28 <petern> (Or was that fixed? :D)
13:04:42 <petern> Hmm, Discord lag... probably WiFi again :/
13:05:09 <TrueBrain> owh, Discord is actually lagging 😄
13:06:20 <petern> I ought to get myself some long runs of CAT6efgh to hardware the APs in a better location.
13:06:30 <Rubidium_> wow... after 35 minutes the commit checker hasn't run yet and gets cancelled ;)
13:06:42 <Rubidium_> did I break something?
13:07:09 <petern> I ought to get myself some long runs of CAT6efgh to hardware the APs in a better location.
13:08:11 *** DorpsGek has joined #openttd
13:08:11 *** ChanServ sets mode: +o DorpsGek
13:09:02 <TrueBrain> it is funny, some random dude made a Project and put all our tickets on his project, and moved them around
13:09:05 <TrueBrain> every ticket tells us about that
13:09:15 <TrueBrain> like .. why do we care as upstream project some downstream made a project and put stuff on that?
13:09:26 <TrueBrain> seems like a terrible decision of GitHub .. you can really spam tickets that way 🙂
13:10:23 <TrueBrain> Rubidium_: what PR? (out of your many)
13:11:06 <Rubidium_> I was just amazed that when I made the update I got an email for cancelling the commit checker
13:11:18 <Rubidium_> as that usually runs almost instantaneously
13:11:30 <TrueBrain> no, you pushed a new version
13:11:30 <TrueBrain> so it cancelled all the old runs
13:11:30 <TrueBrain> to prevent you clogging up the whole CI .. owh wait! 😄
13:12:03 <TrueBrain> as long as it is a cancel, all is fine 🙂
13:14:07 <TrueBrain> no, you pushed a new version
13:14:12 <TrueBrain> but only after the rest of the CI finishes; it is one of the last tasks to start
13:17:20 <TrueBrain> but only after the rest of the CI finishes; it is one of the last tasks to start
13:17:25 <glx[d]> thanks discord to send things twice 🙂
13:17:32 <TrueBrain> yeah ... Discord is really confused atm 😛
13:17:51 <TrueBrain> it even sends things twice to IRC
13:19:15 <TrueBrain> 5 open GS-related bugs .. but that is not for today
13:20:25 <TrueBrain> just looked at all the crashes of late, see if some were easy fixes .. some actually were 🙂
13:21:31 <TrueBrain> just looked at all the crashes of late, see if some were easy fixes .. some actually were 🙂
13:22:13 <glx[d]> it's getting annoying 🙂
13:30:08 <TrueBrain> `If the dropdown doesn't fully fit, we need a dropdown.` .. what a solid comment ...
13:30:18 * Rubidium_ hopes TrueBrain isn't going to be mad when I add some unit tests for SoftClamp
13:31:29 <TrueBrain> code is so trivial, I don't see the point of unit tests .. but that shouldn't stop you from building them 😄
13:32:01 <TrueBrain> ugh, Discord issues still not resolved .. time to do something else I guess 🙂
13:33:39 <petern> Maybe read the forums for entertainment.
13:33:40 <petern> Maybe r/openttd has something interesting to say.
13:33:48 <kamnet> I propose DiscoBrain 🙂
13:34:23 <TrueBrain> hihihihihi, I like that name 😄 Makes me feel like dancing 🙂
13:36:40 <TrueBrain> ugh, Discord issues still not resolved .. time to do something else I guess 🙂
13:36:47 <TrueBrain> code is so trivial, I don't see the point of unit tests .. but that shouldn't stop you from building them 😄
13:36:59 <petern> Maybe read the forums for entertainment.
13:37:41 <kamnet> I propose DiscoBrain 🙂
13:38:09 <petern> Okay so yeah, definitely not my WiFi then 🙂
13:39:49 <petern> Okay so yeah, definitely not my WiFi then 🙂
13:41:59 <petern> £100 for a 100m roll of CAT6A, oof.
13:42:33 <TrueBrain> I could merge 10933 and 10932, but different authors, different tickets, different subjects .. just a very similar fix 😄
13:42:59 <petern> £100 for a 100m roll of CAT6A, oof.
13:43:37 <TrueBrain> Rubidium: we did well ... the CI is queued up for at least another 2 hours 😛
13:48:07 *** DorpsGek has joined #openttd
13:48:07 *** ChanServ sets mode: +o DorpsGek
13:53:29 <TrueBrain> pff, make your own PR! 😛
13:56:06 <TrueBrain> wow, that dude is dragging on with "haha, look at me" 😛
13:58:12 <TrueBrain> stop making the CI work, ffs 😛
13:58:39 <Rubidium_> one strecat left...
14:03:11 <TrueBrain> stop making the CI work, ffs 😛
14:06:56 <TrueBrain> owh, even worse, Rubidium made a commit in my branch that breaks the CI ... now that is just rude
14:12:11 <TrueBrain> did that boring dude of that youtube ever tell a proper solution btw? I didn't even watch it that far .. got a bit annoyed by his way of presenting it 😛
14:13:29 <petern> Oh we just link videos instead of describing issues now?
14:13:34 <TrueBrain> (and yes, this solution still overflows; but that is even less likely)
14:18:05 <Rubidium_> TrueBrain/petern: that video is a talk of CppCon about all the troubles they ran into with creating the C++20 std::midpoint function that gives you the middle value between two numbers. So yes, it comes to a conclusion but it goes through all the reasoning why std::midpoint is as it is now
14:18:53 <TrueBrain> it was rather boring, sorry 😛
14:19:55 <Rubidium_> oh, and "boring dude of that youtube" is also "the lead developer for libc++, the C++ standard library for LLVM" and "chairman of the Library working group of the C++ standard committee"
14:19:55 <TrueBrain> skipping forward I couldn't even found what the final implementation was ..
14:20:05 <TrueBrain> he can have all kind of fancy titles
14:20:10 <TrueBrain> doesn't take away that he was really smug about it
14:20:15 <TrueBrain> and took for ever to start talking
14:20:37 <TrueBrain> might work for a presentation; works poorly to make a point on the internet 😄
14:23:39 <TrueBrain> ugh, stupid Discord, be fixed already
14:30:06 <petern> I also don't like watching 15 minute videos on how to do something when a simple list of instructions is better.
14:30:55 <TrueBrain> it took me another 15 minutes to actually find the implementation used 😛
14:30:58 <TrueBrain> it took me another 15 minutes to actually find the implementation used 😛
14:31:26 <TrueBrain> but they had a good point, if I cast the left side to unsigned, it works in all cases; which is nice
14:31:53 <TrueBrain> but they had a good point, if I cast the left side to unsigned, it works in all cases; which is nice
14:34:19 <TrueBrain> I really like that about Rust, where underflows and overflows are a lot harder to make happen .. in fact, you have to be explicit that you allow it
14:34:39 <petern> There's a compiler flag for that 🙂
14:34:50 <TrueBrain> really? I am scared 😛
14:36:21 <petern> Hmm, no, not quite that far, just warning on conversions.
14:37:53 <TrueBrain> I also like the `min / 2 + max / 2 + (min & max & 1)` solution for a midpoint 😛 Works only for unsigned stuff, ofc, but it just looks funny 🙂
14:56:58 <TrueBrain> oof, bad for statistics
14:59:47 <TrueBrain> frosch: I have a handful of PRs I think we should vote on Saturday; something like "spin the wheel" approach? 😛
15:00:25 <TrueBrain> or we can bring cards where do put down a low value if we don't like it or a high value if we do, put that blind in front of us, and all turn it around at the same time?
15:05:19 <frosch> TrueBrain: can we also vote on "ignore samu prs, instead of closing them" unless someone finds a way to close things without sending notifications
15:05:37 <TrueBrain> yeah ...... I get what you mean 😛
15:06:01 <TrueBrain> let's put it on the agenda!
15:06:28 <frosch> i'll watch you carry a flipchart through brussels
15:07:48 <frosch> among influencers it became custom to do boxing matches to settle grudges
15:08:02 <TrueBrain> especially when they play chess, yes 😛
15:08:04 <frosch> do the same for controversial features?
15:08:44 <frosch> 2tt vs all signal-kiddies?
15:09:39 <TrueBrain> but honestly, we really need a way to settle PRs .. we are way too nice, and keep them open for ever and ever
15:09:45 <TrueBrain> just because we don't want the drama, basically 😛
15:10:26 <frosch> i actually prefer ignoring things over drama
15:10:36 <TrueBrain> yeah .. but there has to be a better solution, not? 🙂
15:12:13 <frosch> anyhow, i don't think you will get any result when discussing individual PRs which noone knows.
15:12:29 <frosch> discussing general project goals may be more helpful?
15:12:58 <frosch> like "more settings" vs "more addons" vs "bdl decides"
15:13:21 <frosch> benevolent dictator for life?
15:15:55 <frosch> or "keep silly features from TTD" vs "delete everything that looks fancy for newbies, but every long term player ignores". like shares, disasters, town actions (ads, exclusive rights, statues, road recon, ...), servicing, breakdowns, autorenew, autoreplace, groups, liveries, orders, timetables, calendars, aircraft, ships, buoys, trees, desert, snow, sea, terrain elevation, mapgens, ...
15:16:17 <frosch> i can find a rational argument for removing everything from that list :p
15:16:29 <TrueBrain> haha, you gave it some thought there 😛
15:17:08 <TrueBrain> currently I am more in the "DirectX .. I think we can't handle the technical debt .. nobody is doing anything with that PR .. shall we just .. close it?"
15:17:28 <TrueBrain> I am more short-term-minded atm 😛
15:18:12 <frosch> but all the drama is caused by: some group likes a feature, some groups thinks its really useless 🙂
15:18:31 <TrueBrain> no, drama is created because people cannot have conversations
15:18:36 <TrueBrain> let's not confuse the two 🙂
15:18:48 <frosch> and then both sides makes endless "rational" arguments, while in the end it is really a game with irrational fun elements
15:20:13 <frosch> oh darn.. i forgot "money" in my list
15:20:21 <frosch> its the most pointless game mechanic in ottd
15:20:32 <TrueBrain> hahaha, it really is 😄
15:20:54 <TrueBrain> anyway, you know me, I rather have a bit more opinion in a game, as otherwise you become this infinite blurry of nothingness
15:21:33 <frosch> money, running cost, infra cost, inflation, custom currencies, exchange rates, ...
15:21:41 <TrueBrain> but the drama is rather unrelated to all that in my opinion; and also not really relevant to me
15:22:03 <TrueBrain> I wonder more if we can get a bit more speed to some changes, which require us to say "no" to things easier
15:22:33 <TrueBrain> as I lost track of what PRs to ignore 😄
15:22:59 <frosch> add a label "tb is interested" :p
15:23:09 <TrueBrain> often I notice I go like: I think all developers agree we can close this PR ... but .... how do I get to know if that is true? 😄
15:24:07 <TrueBrain> Rubidium: this should at least have given me enough review quote to get 10932 and 10933 reviewed, right? 😄
15:24:22 <frosch> so you want monthly voting rounds: list of PRs, opinion of "general feature" and "particular implementation", and then everyone can say strong-favour, favour, neutral, against, strong-against
15:24:36 <frosch> that's how c++ comitee does it
15:24:39 <TrueBrain> I want no such thing; not sure why you put words in my mouth 😛
15:24:49 <TrueBrain> (hihi, sorry, couldn't resist :D)
15:25:02 <TrueBrain> let's create some drama about your wording of that sentence 😄
15:25:31 <frosch> fine, it's my suggestion for "how do i get to know noone likes a PR"
15:25:34 <TrueBrain> I am more a fan of doing a livestream, and just go yea or nah on it, brutally honest, disregarding who wrote it 😛
15:25:52 <TrueBrain> omg, that awoke andy ..
15:25:55 <TrueBrain> not the GSAsyncMode
15:26:49 <andythenorth> I have an alert on 'drama'
15:27:19 <frosch> but what do you do within the livesteam? someone presents the PR, people discuss their concerns, and after some time-limit there is a vote SF, F, N, A, SA, or postpone for next time
15:27:34 <TrueBrain> that would be civil
15:27:45 <TrueBrain> I was thinking more Got Talent mode 😛
15:27:54 <andythenorth> no we do it by proof-of-work mining 😛
15:27:57 <frosch> i don't watch tv, no idea how that works
15:28:04 <andythenorth> the one with fastest CPU gets to win
15:28:08 <TrueBrain> you must have seen this in your life, it has been there for so long ..
15:28:42 <frosch> what are the crosses for?
15:28:51 <TrueBrain> if you are a terrible what-ever, like singer
15:28:56 <TrueBrain> a jury can press the red button
15:28:57 <TrueBrain> and if 3 of them do
15:29:24 <TrueBrain> just pure drama, ofc
15:29:28 <TrueBrain> so it fits perfectly 😄
15:29:46 <Rubidium_> TrueBrain: I'll leave #10933 until #10932 is merged and you rebased it
15:29:59 <frosch> so the only positive feedback is no feedback?
15:30:07 <frosch> and if everyone is "meh" it will be done?
15:30:12 <TrueBrain> yeah, if you can finish your act, it is at least not terrible
15:30:44 <frosch> SF/F/N/A/SA sounds more measurable to me :p
15:31:02 <frosch> hmm, never notices so similar to SFINAE that looks
15:31:45 <TrueBrain> as the PR list is an endless list of things in various of state, and I cannot filter that
15:31:55 <TrueBrain> so sometimes I randomly open one, and am like: owh, this is pretty nice
15:32:03 <TrueBrain> or: ugh, and close it again
15:33:43 <frosch> anyhow, i think we can discuss the workflow at the meeting, but discussing the PRs there seems unviable 🙂
15:34:18 <frosch> how do belgians eat their popcorn?
15:34:22 <frosch> sweet, salty, something else?
15:35:54 <TrueBrain> hihi, GitHub has ofc GitHub Projects, where you can sort things more visibly
15:37:58 <frosch> about livestreams: i think the discussions are usually not public, only the voting results at the end. at least it's like that at my work, and i think c++ commitee also does it like that
15:38:23 <frosch> it's easier to discuss things in an entitled commitee without having to defend your opinion in public afterwards
15:38:39 <TrueBrain> well, I doubt we will ever be given that luxary 😛
15:39:55 <frosch> i think we should also put "entitled" into the name. something like "entitled openttd project board"
15:40:12 <TrueBrain> entitled or opinionated? 😄
15:41:09 <frosch> some word that plebs would use to refer to the members, after their PR was downvoted
15:41:26 <TrueBrain> instead of the individual you mean?
15:42:09 <frosch> currently you have "THE openttd developers did this or that". i prefer "the ENTITLED openttd project board did this or that" :p
15:42:18 <andythenorth> hmm was it me campaigning for better GS timing tools?
15:42:33 <TrueBrain> but yeah, you do make it sounds all so official; that somehow feels weird. But maybe it is what we need 🙂
15:42:36 <andythenorth> I can print out time to second accuracy currently I think
15:44:48 <frosch> TrueBrain: whatever we do, it must be automated :p a fixed shedule like "vote on every 1st sunday every month". no "wait for someone to send an invitation" since that will end up like "someone does a release and write a news post" :p
15:45:19 <TrueBrain> anyway, mostly why I have been bringing this up lately, I have noticed we had more than a few people who wanted to contribute in the last 6 months or so
15:45:22 <TrueBrain> much more than we had before
15:45:29 <TrueBrain> but their PRs all seem to wither
15:45:43 <TrueBrain> that way we never get young blood in the project 😄
15:46:18 <TrueBrain> some are completely logical changes, but they get these lengthy replies from certain individuals .. after which all enthousasm dies 😛
15:47:47 <TrueBrain> in other words, you see that a new group of people want to join in, but you also see that some .. euh .. veterans? are holding them back 😛
15:48:00 <frosch> lol, i wonder whether there is a precendent for a board voting SF/F/N/A/SA on banning someone :p
15:48:17 <frosch> and then communicating the vote result to the thread
15:48:24 <TrueBrain> it is the kind of thing you need to be able to discuss .. just ... as it is holding back the project as a whole
15:48:43 <TrueBrain> I consider it a scare-tactic 😄
15:48:47 <petern> Hmm, changing more padding and it's ... lots o_O
15:51:26 <TrueBrain> oof, almost touchedn an S ticket ... I managed to just avoid it
15:53:28 <TrueBrain> I still can't get over the fact GitHub shows that on every ticket on that board
15:53:38 <TrueBrain> really feels like a bug more than anything else
15:55:45 <TrueBrain> frosch: is there software to guide votes like that? 🙂
15:57:30 <frosch> i do not know any, c++ people use one md file per topic, and then some fancy scripts to generate overviews
15:57:53 <TrueBrain> low-tech is sometimes equally efficient 🙂
15:58:40 <TrueBrain> right, can't find anything small anymore to pick up from the tickets ..
16:01:12 <TrueBrain> a busy day today .. we are at 24 merged PRs in the last 24 hours 😛
16:03:04 <frosch> correction, they do not use md, but xml, and their fancy scripts are written in c++ :p
16:03:14 <TrueBrain> .... scripts ... in C++ ....
16:03:18 <TrueBrain> riiiiggggghhhhttttt
16:04:04 <TrueBrain> georgedeagostino: how is it going with the report?
16:04:28 <TrueBrain> frosch: let's not do that, okay? 🙂
16:06:36 <frosch> the voting result can be public, it's more the reasoning/discussions that's kept in an member-only conversation
16:06:56 <TrueBrain> well, Security Advisories are private, we found out! 😛
16:07:13 <TrueBrain> the amount of seriousness in my conversation today is weird 😛
16:07:48 <TrueBrain> Rubidium: the CI is almost out of work, quick, put some wood back on the fire!
16:09:20 <TrueBrain> that `std::max` usage, haha, okay, I like that 🙂
16:10:33 <petern> You know those comments about StringBuilder's operator++ not doing ++?
16:11:05 <petern> Yeah, blank string because it's not moving forward...
16:12:25 <petern> OR maybe it's not meant to, however it's still not appending to a buffer.
16:13:05 * Rubidium_ wonders what petern's trying
16:13:41 <petern> I'm looking at free disk space in the file list window. Or rather I'm looking at the text " free" because it's not filled in.
16:23:00 <Rubidium_> petern: "implementing" the ++ doesn't help it seems :(
16:23:19 <petern> No, that was just coincidence I think.
16:23:25 <petern> Oddly it only seems to be {BYTES} that doesn't work.
16:24:11 <petern> Oh most things don't use format_to
16:25:11 <petern> FormatHexNumber works but that only does one format_to.
16:25:45 <Rubidium_> the first guess I had was that StringBuilder is passed by value, but that doesn't seem to be the case
16:40:11 <Rubidium_> oh... fudge... it smells like it passes the StringBuilder by value to format_to
16:41:15 <Rubidium_> though that means FormatHexNumber doesn't work and you've fallen into the same trap as I've fallen in
16:41:52 <petern> It "appears" to work 🙂
16:42:09 <petern> Because it's the last thing added to the string.
16:42:52 <petern> Maybe it's TrueBrain's turn to add a unittest 😄
16:44:37 <petern> Bugger, I managed to swing my chair into my knee earlier and it's still throbbing :/
16:46:00 <JGR> Sounds like it might be worth deleting the copy constructor/copy assignment operator?
16:50:14 <Rubidium_> JGR: yeah, except that breaks using it in fmt::format_to (or std::format_to), so I must remove the "state" from the iterator itself
16:54:49 <petern> Proper iterators aren't meant to have state, I believe.
16:58:51 *** D-HUND is now known as debdog
16:59:12 <Rubidium_> probably; I want to quickly go to std::string, but alas... intermediate steps
17:09:14 <TrueBrain> The older the game gets, the more I think we could use a "Welcome to OpenTTD; what type of theme / interface do you want?", where people can select "Classic", which does all the old things .. or "New player", where you get things like 10938 🙂
17:09:53 <petern> Set defaults for new settings based on how old their settings file is...
17:10:15 <petern> "Are any original data files present?"
17:10:30 <TrueBrain> or just .. ask the user! 🙂
17:11:54 <Rubidium_> and then for classic remove autorail/road :D
17:14:03 <TrueBrain> anyway, not really surprising I hope, but I am a big fan of making it easier on new players. The old players will find the settings .. the new players are clueless 😛
17:14:30 <petern> As long as the setting is worded correctly
17:14:51 <TrueBrain> ofc! Has to be n00b friendly too! 😛
17:20:32 <glx[d]> oh because we are still overfilling actions, I have to wait to be able to handle the translator request
17:21:16 <TrueBrain> haha, I was waiting for it too glx[d] 😄 Yeah ... we should remove MingW, would make it go quicker 😛
17:22:34 <glx[d]> not sure, CodeQL is often the last to finish
17:22:42 <TrueBrain> but it is only 1 job 😛
17:22:52 <TrueBrain> and actually finds issues 😛 😄
17:31:34 <Rubidium_> so I should hold back a bit so the translator can join? :D
17:31:55 <TrueBrain> bit late now 😛 It is queued 🙂
17:52:04 <andythenorth> one sets 'use_old' in cfg
17:52:14 <andythenorth> next release is 1 month later, changes default 😛
17:52:32 <TrueBrain> Rubidium: how many commits is the StringBuilder -> std::string away?
17:55:01 <Rubidium_> not sure; depends a bit on the rabbit hole I fall in while getting there
17:55:10 <glx[d]> trying 10942 before approving (just to see the effect)
17:55:23 <TrueBrain> I am forcing #10940 if you don't mind, so it gets in the nightly
17:55:31 <TrueBrain> CodeQL is at least 20 minutes away .. so might be tight
17:55:34 <TrueBrain> okay with you Rubidium?
17:57:54 <Rubidium_> though I hope it's fewer than a dozen commits before it's on std::string
18:02:17 <TrueBrain> hmm .. backport script is acting up, and it is annoying 😄
18:04:02 <TrueBrain> it kept wanting to drag in unrelated commits, not part of the original PR
18:04:36 <TrueBrain> I think I fixed it correctly .. not 100% sure .. need to look into what actually happened 😛
18:04:58 <TrueBrain> at least 1 commit in there shouldn't be in there
18:06:14 <michi_cc[d]> Multi-commit squash that wasn't tagged?
18:06:22 <TrueBrain> ah, yes, squashes ...
18:06:53 <TrueBrain> detecting that is really hard we said right ...
18:13:08 <TrueBrain> if it was done by auto-merge, it does tell how it was merged
18:13:21 <petern> What does an AI storing (or not) company names have to do with shares? I'm confused.
18:13:36 <petern> (What is storing company names anyway?)
18:17:40 <TrueBrain> and no, I don't know
18:18:25 <petern> Hmm, maybe "store company names" actually means "changes the company name" then
18:18:27 <TrueBrain> it seems kamnet might know, as he once posted he uses IdleMore 🙂
18:20:02 <TrueBrain> but yeah, he used shares for personal administration; so completely unrelated to actual shares. It is fun, how people find ways to do their thing 🙂
18:20:39 <TrueBrain> basically they start AIs so they can switch companies and act like they play with different companies
18:23:17 <andythenorth> when is diagonal tunnels? 😛
18:23:35 <andythenorth> I need to put another connection there 😛
18:37:18 <TrueBrain> it fails to build, but I will fix that when we are done with backports 😛
18:38:27 <TrueBrain> which is right about now 😛
18:40:35 <TrueBrain> oh-oh ... it merged while eints was busy
18:40:37 <TrueBrain> eints doesn't like that 😄
18:46:14 <TrueBrain> no actual changes, just rebase?
18:47:49 <TrueBrain> it used to be 7 minutes
18:47:56 <TrueBrain> darnit Rubidium .. now I have to restart eints again
18:48:00 <TrueBrain> stop merging stuff for a while 😛
18:48:26 <TrueBrain> and Rubidium, 10810, was that a rebase? Or are there actual changes?
18:49:29 <TrueBrain> okay, for all: till you see an eints commit: please don't merge anything!
18:50:07 <TrueBrain> and ofc we reached our CI limit now .. lol .. some of these days ... 😄
18:50:08 <Rubidium_> it was a rebase due to the bugfix
18:50:37 <TrueBrain> Rubidium_: that sentence is totally useless to me, as a bugfix in the PR? 😛
18:50:54 <TrueBrain> sometimes answers miss the essence of the question .. I ofc wanted to know if I could blindly approve the PR, or if I actually had to check for changes 🙂
18:51:46 <TrueBrain> right, eints is running again .. ~10 minutes for the first commit ....
18:52:03 <frosch> we need some intern to improve eints 🙂
18:52:19 <TrueBrain> I guess it is slowing down because there is more and more history?
18:53:55 <frosch> i think the main problem is eints loading and unloading of the complete project data
18:54:04 <TrueBrain> all projects are slower and slower; also a bit weird
18:54:12 <frosch> there is the huge openttd project and then like 5 tiny projects
18:54:21 <TrueBrain> didn't we allow all to be loaded in memory?
18:54:28 <TrueBrain> or maybe I should setup an instance per project instead
18:54:41 <frosch> if there is any translator working in parallel, while the small ones are downloaded, eints weill reload the openttd project for the translator, which blocks anything in between
18:55:06 <frosch> so my theory: while you are raging that eints is slow downloading ogfx, some translator is raging that eints is slow giving strings for openttd
18:55:22 <TrueBrain> I doubt that EVERY EVENING for the past few weeks a translator has been active
18:56:25 <frosch> there is no reason why the small projects should be slow, unless the huge openttd project is loaded again
18:56:52 <frosch> anyway, the real solution would be to throw out the silly load-everything storage of eints, and use sqlite instead
18:57:17 <DorpsGek> - Update: Translations from eints (by translators)
18:57:44 <frosch> if crud just wasn't that boring 🙂
18:59:43 <TrueBrain> okay, finally, a commit .. w00p
18:59:56 <TrueBrain> lol, less in there than I was expecting
19:00:05 <TrueBrain> I changed the english.txt ... doesn't eints than throw out all translations?
19:00:48 <TrueBrain> you even documented that
19:00:51 <TrueBrain> I should have changed the STR
19:00:58 <TrueBrain> meh .. not that important, honestly
19:01:31 <frosch> translators will also see "outdated" things
19:03:10 <TrueBrain> yup .. so I waited for eints for nothing. FOR NOTHING I TELL YOU
19:04:04 <frosch> poor eints, don't let dorpsgek hear you
19:04:58 <frosch> eints worked 20 minutes for you, just for you
19:05:06 <TrueBrain> and what did it bring me
19:05:12 <TrueBrain> quality over quantity ffs!
19:06:08 <andythenorth> hmm can replace vehicle with itself?
19:06:30 <andythenorth> inconsistent bug though
19:31:21 <Rubidium_> too bad Windows doesn't like the backport PR :(
19:31:53 <TrueBrain> yeah, backports are getting more and more tricky 🙂
19:31:59 <TrueBrain> all this std::string 😛
19:37:08 <petern> I didn't expect going beyond 13.1 tbh.
19:45:24 <glx[d]> TrueBrain: eints can't know new/modified strings before eints run, and fr_FR was up-to-date before todays eints run 🙂
19:49:22 <LordAro> you lot have been busy
19:53:31 *** gelignite has quit IRC (Quit: Stay safe!)
19:58:29 <Rubidium_> #11111 would be nice next weekend, wouldn't it? :D
20:03:24 <TrueBrain> let's see if that makes Windows happy
20:03:43 <TrueBrain> but this std::string is being tricky .. so maybe we shouldn't backport that PR if this fails 🙂
20:22:14 <TrueBrain> ah, green! Rubidium, you can approve again 😄
20:22:21 <glx[d]> I think only one commits from this PR matters
20:22:31 <glx[d]> and it still needs to be adapted
20:22:35 <TrueBrain> they all matter in their own way 😛
20:22:47 <TrueBrain> we are all equally important
20:22:50 <TrueBrain> some a bit more than others
20:23:27 <glx[d]> anyway backports will be harder and harder with all the std::string stuff 🙂
20:23:45 <TrueBrain> yeah, but I hope this was the last minor release
20:23:51 <TrueBrain> we wouldn't have done it if it wasn't for andy
20:25:12 <Rubidium_> we could also be way more picky about what to backport, instead of essentially anything that starts with 'Fix' and exists in the release
20:25:16 <TrueBrain> well, tomorrow I hope to finish writing the preview stuff for the new infra ... after that I can deploy service by service 🙂
20:25:28 <TrueBrain> Rubidium_: we could ... but this is more fun 😄
20:26:14 <JGR> Backporting a lot of things does increase the odds that a regression sneaks its way past as well
20:26:46 <TrueBrain> but yeah, can't remember the last time we did a minor release this far into the next version
20:27:12 <TrueBrain> so let's approve, merge, and release 13.2 🙂
20:27:33 <andythenorth> could we have "clone vehicle" also?
20:27:35 <andythenorth> to clone wagon/engine?
20:29:04 <TrueBrain> well, ofc release the 10th, but lots of things to prepare first 😛
20:29:17 <TrueBrain> did I ever finish my "create a changelog" script? Hmm
20:30:11 <TrueBrain> somewhere in my history is a very long bash command 😄
20:31:46 <TrueBrain> I still lose a bit of history with WSLg from time to time, but I have 27k unique commands in my history ... 2k of those are `cd` 😄
20:32:14 <TrueBrain> just a random "fun" fact for you
20:35:16 <TrueBrain> meh, no automerge for branches ...
20:38:10 <TrueBrain> lol, random Youtube movie: `OpenTTD JGR Tutorials | #12 | Downloading OpenTTD JGRPP` .. isn't it a bit late to tell that in the 12th episode? 😄 😄
20:42:06 <Rubidium_> maybe they have teased how to install it for 11 episodes, to get views?
20:52:22 <TrueBrain> yes, do you take over reviews from here LordAro? There is another one open to review .. I got lost in it 😛
20:52:32 <TrueBrain> we need to keep the CI busy
20:52:36 <TrueBrain> otherwise it will get mad
21:25:04 *** keikoz has quit IRC (Ping timeout: 480 seconds)
21:59:50 *** nielsm has quit IRC (Ping timeout: 480 seconds)
22:05:28 *** HerzogDeXtEr has quit IRC (Quit: Leaving.)
22:07:31 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
23:46:21 *** Flygon has quit IRC (Read error: Connection reset by peer)
continue to next day ⏵