IRC logs for #openttd on OFTC at 2024-04-08
โด go to previous day
01:59:32 *** Wormnest has quit IRC (Quit: Leaving)
02:47:55 *** gnu_jj_ has joined #openttd
02:51:06 *** gnu_jj has quit IRC (Ping timeout: 480 seconds)
02:56:20 *** debdog has quit IRC (Ping timeout: 480 seconds)
04:41:31 <DorpsGek> - Update: Translations from eints (by translators)
05:49:01 *** keikoz has quit IRC (Ping timeout: 480 seconds)
06:08:20 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
06:17:21 *** keikoz has quit IRC (Ping timeout: 480 seconds)
07:13:40 <DorpsGek> - Add: summary for week 14 of 2024 (by OpenTTD Survey)
07:25:41 *** Ox7C5 has quit IRC (Ping timeout: 480 seconds)
08:59:04 <xarick> how do I catch these long spikes?
09:07:21 <peter1138> Yeah, it's not ideal is it.
09:19:57 <xarick> i think otvi is the worst offender currently in place
09:20:08 <xarick> need to find out what's causing these big stalls
09:20:19 <peter1138> "List all vehicles to get vehicle count" ๐
09:21:45 <xarick> i suspect something different honestly, this AI ain't strong enough to amass vehicles
09:24:55 <peter1138> List all vehicles does have to iterate ALL vehicles ๐
09:32:52 <xarick> typical, I load savegame and the stalls are gone ๐ฆ
09:38:10 <xarick> not that many vehicles
09:43:33 <xarick> "adapted list to this many tiles", let me search the code for this
09:47:56 <xarick> townTiles.Valuate(AITile.GetCargoAcceptance, cargoID, 1, 1, 4);
09:48:41 *** keoz has quit IRC (Remote host closed the connection)
09:48:48 <xarick> deliveryPoint = AITile.GetClosestTown(townTile);
09:48:59 <xarick> I remember GetClosestTown was utterly slow before kd-tree
09:50:47 <xarick> I wonder that SafeAddRectangle do
09:53:18 <xarick> list.AddRectangle(AIMap.GetTileIndex(x1, y1),AIMap.GetTileIndex(x2, y2));
09:53:39 <xarick> AddRectangle... i suspect this is slow
09:56:44 <peter1138> Basically this API is designed in a very wasteful way.
09:56:55 <peter1138> Make a huge like of TileIndexes, then valuate them.
09:57:10 <xarick> wants to deliver industry cargo to town, probably goods
09:57:26 *** keikoz has quit IRC (Ping timeout: 480 seconds)
09:57:37 <xarick> rectangle probably is a rectangle over the entire town, to find where it can accept goods
09:57:50 <peter1138> I think there probably needs to be a thought about how to do the things that AIs commonly want to do , but in a more efficient way.
09:58:05 <peter1138> And then deprecate and eventually remove the old stuff that is just a performance hog.
10:07:06 <peter1138> AddRectangle combined with Valuate at the same time might help but I dunno.
10:07:07 *** Ox7C5_ has quit IRC (Ping timeout: 480 seconds)
10:12:06 <peter1138> Why do 32" 1080p monitors exist?
10:22:03 <peter1138> Hmm, I wonder if there are any NewGRFs that rely on date_fract.
10:28:06 <xarick> is that 1 million tiles I am seeing?
10:28:29 <xarick> and it's constantly adjusting the rectangle with add.rectangle, removerectangle?
10:33:26 <xarick> not even 500 max ops is sufficient to slow it down ๐ฆ
10:34:17 <isosys> If I'm reading correctly the inclusion of the dependency breakpad requires that vcpkg is used, correct?
10:34:57 <reldred> I believe it's all vcpkg now yes
10:35:32 <LordAro> not that individual developers need that dependency
10:35:44 <LordAro> it's only desirable for actual releases
10:37:02 <reldred> Yeah come to think of it when I built on linux the other week it was pretty straight forward
10:37:14 <reldred> just used distro packages for deps
10:37:40 <peter1138> I build without breakpad, yeah.
10:37:50 <peter1138> It's an optional dependency.
10:38:35 <LordAro> it'd be nice if we could avoid the scary cmake warning
10:38:40 <isosys> Sure, it builds just fine without it (just a warning), but seems a good inclusion for those that publish patchpacks.
10:39:37 <xarick> oh, this rectangle is not even over a town, this rectangle is a rectangle starting from the location of the industry producing goods, and an arbitrary 600 radius away from the industry hoping to find a location which accepts goods
10:39:55 <LordAro> isosys: not really, unless you're planning on implementing your own crash reporting system
10:41:06 <peter1138> xarick: ah, so as a player you'd find a town then see if it accepts, but this just... searches the map almost randomly...
10:41:49 <isosys> LordAro: Doesn't it create a crashlog/minidump file like windows?
10:42:09 <xarick> the max radius and min radius shrinks until it gets less than 150000 tiles in the list
10:42:36 <xarick> but while doing that, it's constantly adding and removing tiles from the list, that's horribly unoptimized
10:43:13 <xarick> isn't there a math formula to add and remove area?
10:44:08 <peter1138> Seems like if you know 150000 is your limit, you can just hard code a min & max that matches that...
10:44:50 <peter1138> outerx * outery - innerx * innery = tiles covered.
10:45:18 <xarick> there's a caveat though
10:45:29 <peter1138> Sure, I don't know what the script is doing ๐
10:45:32 <xarick> SafeAddRectangle, it accounts for map edges
10:46:13 <peter1138> 150,000 limit is all of the map on a normal size game.
10:53:24 <xarick> SafeAddRectangle is used all over Otvi
10:57:43 <xarick> I could add tiles 1 by 1
10:58:00 <xarick> but there's still removerectangle ๐ฆ
10:58:21 <xarick> didn't wanna make big changes here ๐ฆ
10:59:01 <xarick> it's used in 24 places in the code, can't be risking making it broke
10:59:52 <peter1138> andythenorth: Salad or not?
11:05:40 <peter1138> Ordered something for 99.99 and the website took VAT off and added it back on. Final value 100.00 ๐ฎ
11:07:52 <peter1138> Hmm, Cotswolds trip next Saturday. Do I want to get knackered riding an additional 75 miles to and from the start...
11:08:10 <peter1138> (Combined total, about 38 each way)
11:08:27 <LordAro> that sounds like something i would do
11:08:37 <LordAro> but 75 is quite a lot regardless
11:08:48 <peter1138> The ride itself is 68 miles.
11:11:12 <peter1138> The train takes longer than riding there.
11:12:50 <peter1138> (And it's 3 trains)
11:16:16 <peter1138> 70 minutes waiting for changes.
11:16:35 <peter1138> Also 2 bike spaces available, reservation required.
11:17:58 <xarick> ``` if (AIMap.IsValidTile(t1) && AIMap.IsValidTile(t2)) {
11:17:58 <xarick> for (local x = x1; x <= x2; x++) {
11:17:58 <xarick> for (local y = y1; y <= y2; y++) {
11:17:58 <xarick> list.AddTile(AIMap.GetTileIndex(x, y));
11:18:15 <xarick> probably makes it less spiky
11:18:33 <xarick> but... much slower in thinking too
11:18:48 <peter1138> Slower but spread out.
11:19:39 <xarick> probably gonna be tooooo slow but let's test
11:21:54 <merni> bicycles in openttd when
11:30:57 <xarick> this AI is so spiky all over the place ๐ฆ
11:36:13 <_glx_> But you allow a lot more than the default 10k opcodes
11:37:18 <_glx_> Number of opcodes per tick is the main issue
11:43:26 <truebrain> LordAro: The "scary" warning is there for breakpad exactly for this case; patchpacks should really compile with it, if they want to receive any useful crash dumps ๐ so it should be scary ๐
11:44:21 <truebrain> isosys: Ignore LordAro here; patchpacks are advised to have breakpad, so any crash reports can be analysed ๐ just be sure to keep the debug symbols around!
11:56:32 <isosys> truebrain: Thanks! I will read more about breakpad later, but do you recommend any change that makes obvious that a crash report originated from a patchpack and not from an official release?
11:57:01 <truebrain> no, in the crash.json file is what version is comes from
11:57:10 <truebrain> including exact version, even the git hash
11:57:14 <truebrain> at least, when that is not altered ๐
11:58:16 <_glx_> Because we can only read dumps from our own builds
11:58:41 <truebrain> no, that statement is too vague. You can only analyze crash dumps for which you have the symbols available
11:58:48 <truebrain> for builds we produce, we keep them on a symbols server
11:58:58 <truebrain> a patchpack can do that in many other ways too, like attaching them to a GitHub release
11:59:48 <_glx_> Like we used to do with msvc PDB before break pad and symbol server
12:12:18 <xarick> let's try 10k opcodes and medium
12:14:12 <xarick> the defaults are kinda.... conservative in my opinion
12:23:45 <xarick> my code doesn't account for script speed ๐ฆ
12:26:05 *** VE1LEB has quit IRC (Remote host closed the connection)
12:47:03 <andythenorth> peter1138: might have scrambled eggs
12:55:24 <peter1138> /me makes a note not to let someone know to fix their NewGRF again.
13:11:38 <_glx_> that bit math is simple, & 15 gets the last 4 bits so value between 0-15, & 7 for 3 bits (0-7), &3 for 2 bits (0-3), &1 is one bit (0-1) and &0 is useless
13:12:29 <_glx_> 0x1111, 0x111, 0x11, 0x1, 0x0
13:13:47 <xarick> game script is not a competitor ๐ฆ
13:14:12 <xarick> it has a different frame counting
13:18:03 <_zephyris> peter1138: Did you get any further with the font gamma correction? I think a 1x scale anti-aliased screenshot would be helpful to compare to the readability of the original sprite font.
13:26:09 <xarick> holy crap it's slow, look at the dates
13:26:35 <xarick> but it's at a constant 1 ms
13:32:42 <_glx_> you can try 15K as there's some room in total game loop
13:40:37 <peter1138> "AI uses too much CPU, woe!" sets appropriate limit "AI doesn't use much CPU, woe!"
13:40:55 <peter1138> _zephyris: Not done much with it.
13:41:21 <xarick> it's an act of balance ๐ฆ
13:45:15 <xarick> ```const uint speed = this->elem == PFE_GAMESCRIPT ? 1 : 1 << (4 - GetGameSettings().difficulty.competitor_speed);
13:45:15 <xarick> if (avg * active_scripts > MILLISECONDS_PER_TICK * speed) {
13:45:22 <xarick> testing my new variable ๐
13:53:30 <peter1138> Hmm, weird, console isn't working properly for me :S
13:53:51 <peter1138> Maybe we broke something ๐
13:55:41 <peter1138> `Microsoft Connect Test`
13:56:04 <LordAro> i am extremely confused
13:57:02 <LordAro> 90.244.156.146 & 90.244.156.147 ?
13:57:26 <peter1138> 23.73.137.235 & 23.73.138.194
13:57:45 <LordAro> looks like there are lots of variants
13:57:52 <peter1138> If I ask 8.8.8.8 I get 96.17.178.196/184
13:58:11 <peter1138> 1.1.1.1 returns 104.86.110/241/217
13:58:28 <peter1138> So I guess that's normal, but the one you get is... wrong.
13:59:37 <LordAro> i'm getting 96.17.178.196/209 when connected to a vpn
14:00:54 <LordAro> and that's still returning the redirect
14:10:54 <xarick> 10000 opcodes at medium speed is equivalent to
14:11:08 <xarick> 40000 opcodes at very fast
14:12:56 <xarick> 40000 opcodes at very slow
14:14:58 <xarick> 250k at very fast is equivalent to 1m at medium
14:24:18 *** matusguy has joined #openttd
14:44:46 *** Wormnest has joined #openttd
14:51:39 <Rubidium> darn C-style casts again! :(
14:57:50 <peter1138> What is special about r25493?
14:58:24 <peter1138> Some old patchpack with day length, I guess.
14:58:45 <peter1138> "true day length" uh...
15:11:33 *** iSoSySt has joined #openttd
15:26:42 <LordAro> so i'm being MITM'd somewhere
15:27:11 <LordAro> https works as expected (except for certificate mismatches)
15:27:23 <peter1138> I did wonder about the http ๐
15:27:47 <LordAro> well that's how Windows does it
15:34:07 <xarick> AI 9 had a spike, bam immediately 500 ops
15:35:10 <xarick> AI 6 with 57k ops is processing the rectangle slightly "faster"
15:35:54 <xarick> I'm probably reverting the change
15:36:16 <xarick> I didn't want to be involved in fixing more scripts ๐ฆ
15:36:50 <_glx_> nobody asked you to fix them ๐
15:46:07 <truebrain> LordAro: Isn't that URL used to detect WiFi portals?
15:59:02 *** j_n has quit IRC (Quit: User went offline on Discord a while ago)
16:08:22 <peter1138> Updated the assert and did the other casts for good measure.
16:18:08 <Rubidium> ... and there went the CI's cache :(
16:18:54 <_glx_> oh no they released new images
16:27:41 *** ChanServ sets mode: +v tokai
16:29:26 *** HerzogDeXtEr has joined #openttd
16:30:28 <truebrain> Explains the http part ๐
16:31:59 *** gelignite has joined #openttd
16:38:49 <peter1138> Well, I guess that forum post is right now :p
16:44:41 *** tokai|noir has joined #openttd
16:44:41 *** ChanServ sets mode: +v tokai|noir
16:47:07 *** berndj-blackout has quit IRC (Read error: Connection reset by peer)
16:47:07 *** gnu_jj_ has quit IRC (Read error: Connection reset by peer)
16:50:51 *** nielsm has quit IRC (Ping timeout: 480 seconds)
16:51:31 *** tokai has quit IRC (Ping timeout: 480 seconds)
16:59:38 <andythenorth> I wasn't paying attention
16:59:55 <peter1138> You missed the minute slice from 12:32 to 12:33
17:12:22 <truebrain> Completely broken, lol
17:12:35 <truebrain> I was wondering what those cables were doing hanging out
17:12:49 <Rubidium> looks like that #12454 builds after a rerun of the failed jobs. So... is there a lottery for getting the old runner?
17:13:18 <truebrain> New images are rolled out slowly
17:13:47 <LordAro> it's starting to look like we might have to build it ourselves
17:14:09 <truebrain> Building the library was never the issue
17:14:23 <truebrain> Rb worded it nicely in his blog post ๐
17:15:26 <truebrain> Lol, that kinda building ourselves. No tnx ๐
17:15:46 <truebrain> Decoder is relative easy btw. The encoder .. less so ๐
17:15:58 *** APTX has quit IRC (Remote host closed the connection)
17:16:29 <LordAro> presumably it's only the generic build that has any real issue being built
17:16:34 <truebrain> As Facebook wouldn't hide a backdoor in that, would they? ๐
17:16:59 <LordAro> oh, derp, windows too
17:25:58 <frosch123> oh, we need anolog signals, with continous states between red and green
17:28:23 <peter1138> (size_t)clicked - (size_t)topleft
17:28:29 <peter1138> clicked and topleft as void *.
17:28:58 <andythenorth> we need faster signals
17:30:21 <frosch123> intptr_t would probably be more appropiate
17:31:01 <_glx_> passing an int via a void* without being a pointer should not be done on first place
17:31:37 <frosch123> it's a position in the screenbuffer
17:32:12 <frosch123> i guess it could be char* or uint8_t*
17:32:31 <peter1138> Yeah, I was wondering that.
17:33:02 <peter1138> But also, does it not depend in the blitter bit-depth...
17:33:34 <peter1138> Hmm, no, because the divisions on the same line sort that out.
17:33:41 <frosch123> that is taken care off by "pitch"
17:33:57 <peter1138> GetScreenDepth() / 8 actually.
17:34:00 <andythenorth> maybe red PBS should be yellow, would that be faster?
17:34:47 <frosch123> if you really don't like the pointer comparision, you can also add the reverse of MoveTo
17:35:12 <peter1138> No, it's the C-casts I don't like ๐
17:35:16 <frosch123> compute global screencord from local DrawPixelInfo
17:35:48 <talltyler> andythenorth: I had a go at importing the old yellow path signals patch, with the aim of iteratively rewriting it. I got it to compile, but it crashes trying to load the main menu so Iโm not quite there yet. ๐
17:36:10 <frosch123> poor C casts, they have served well for 60 years. and now they are thrown out because of ageism
17:36:17 <peter1138> The old yellow path signals path? You mean the Hackykid one?
17:36:29 <peter1138> Thrown out because they allow things to compile which shouldn't ๐
17:36:30 <truebrain> talltyler: remove opntitle.dat, solves that issue I am sure ๐
17:36:57 <talltyler> Oh yeah, I could try that
17:36:59 <frosch123> i thought jgrpp has pbs presignals aka yellow signals?
17:38:01 <talltyler> JGRPP does it with realistic braking, not exactly sure how that all works
17:38:22 <talltyler> But the basic idea is to reserve two blocks ahead instead of just one
17:38:40 <peter1138> I guess not Hackykid's PBS, as that is way too ancient to get going.
17:38:41 <frosch123> ah, it improved on the yellow signals
17:38:59 <talltyler> And if a train sees a yellow signal, slow down so it doesnโt catch up to the train in front where it would have to make a full stop at a red signal
17:40:09 <peter1138> I think you're best off reading the existing patches, work out what they do, then rewrite it in code that actually makes sense...
17:40:22 <peter1138> Because trying to apply an existing patch and fix it up is usually messy.
17:40:33 <talltyler> Yes, that is how I will need to about it whenever I pick it up next ๐
17:42:06 <talltyler> It was posted to the forum as a patch file and the easiest way to read it was apply it to existing code so I can read the diff in git gui
17:42:13 <talltyler> Donโt question my silly workflow choices ๐
17:42:30 <peter1138> You can just read the diff...
17:45:24 <truebrain> meh; I forgot GitHub stores caches per branch. So even if I could "fix" the vcpkg cache for a branch, it wouldn't be available to "main"
17:45:45 <truebrain> (I thought to just inject the xz in the cache for the CI; but that isn't working ๐ )
17:47:14 <talltyler> Yeah, but a diff with an outdated version of OpenTTD doesnโt help me much ๐
17:48:03 *** brickblock19280 has quit IRC (charon.oftc.net helix.oftc.net)
17:48:03 *** tateisukannanirase has quit IRC (charon.oftc.net helix.oftc.net)
17:48:03 *** locosage has quit IRC (charon.oftc.net helix.oftc.net)
17:48:03 *** lemuria0685 has quit IRC (charon.oftc.net helix.oftc.net)
17:48:03 *** andythenorth has quit IRC (charon.oftc.net helix.oftc.net)
17:48:03 *** _glx_ has quit IRC (charon.oftc.net helix.oftc.net)
17:48:03 *** frosch123 has quit IRC (charon.oftc.net helix.oftc.net)
17:48:03 *** temeo[m] has quit IRC (charon.oftc.net helix.oftc.net)
17:48:03 *** einar[m] has quit IRC (charon.oftc.net helix.oftc.net)
17:48:03 *** karl[m]12 has quit IRC (charon.oftc.net helix.oftc.net)
17:48:03 *** cjmonagle[m] has quit IRC (charon.oftc.net helix.oftc.net)
17:48:03 *** Farrokh[m] has quit IRC (charon.oftc.net helix.oftc.net)
17:48:18 *** frosch123 has joined #openttd
17:48:28 *** lemuria0685 has joined #openttd
17:48:46 *** brickblock19280 has joined #openttd
17:48:46 *** tateisukannanirase has joined #openttd
17:48:46 *** locosage has joined #openttd
17:48:46 *** andythenorth has joined #openttd
17:48:46 *** temeo[m] has joined #openttd
17:48:46 *** einar[m] has joined #openttd
17:48:46 *** karl[m]12 has joined #openttd
17:48:46 *** cjmonagle[m] has joined #openttd
17:48:46 *** Farrokh[m] has joined #openttd
17:49:18 *** karl[m]12 has quit IRC (Ping timeout: 481 seconds)
17:50:23 <truebrain> frosch123: tell that to the AIs!
17:50:39 <frosch123> the example you showed earlier was a pointer-to-integer cast. where do we use integer-to-pointer?
17:51:15 <frosch123> err, ok, i won't look :p
17:51:36 <peter1138> Actually not even that old, pre SLV_141.
17:52:15 <peter1138> By "old saveloader" I would mean TTO/TTD.
17:52:35 <frosch123> oh, right all our poolindexes are store like that
17:53:00 <frosch123> first pass stores integer in pointer, second pass replaces integer with pointer to poolitem
17:59:04 *** karl[m]12 has joined #openttd
18:12:35 <peter1138> Yeah, the pointers don't exist while it's loading...
18:14:12 <LordAro> i suppose it could be a union/variant
18:22:42 <peter1138> "two fields" sounds simple, but it's just a simple pointer in the object that references it.
18:24:01 <peter1138> I guess you could avoid the casts by faking pointers, but what's the point ๐
18:27:08 <LordAro> peter1138: most of those casts just make me question the code that requires it
18:28:00 <peter1138> Lots of them are due to comparing a signed integer against a size_t
18:28:39 <peter1138> See, that's the problem with a global approach...
18:47:47 <frosch123> did you try to enable ``-Wold-style-cast``? it may trigger on 3rdparty and other stuff though
18:58:00 <peter1138> Hehe, another patch to delete ๐
18:58:19 <peter1138> But you left cargo_suffix as a pointer.
19:01:50 <LordAro> that is also a weird function
19:04:47 <LordAro> i'm having trouble working out why it does things with firstcargo
19:04:55 <LordAro> it looks like it puts it on the end of the string?
19:05:55 <Rubidium> the first cargo is formatter differently from the other cargoes
19:05:59 <LordAro> and then if there's no cargo at all it just returns nothing? or maybe just the prefix string
19:07:27 <Rubidium> I'm not trying to learn the magic of NewGRF. I'm trying to get rid of the lengthof macros
19:08:10 <LordAro> one could argue that lazy refactoring is worse than no refactoring at all :>
19:08:21 <LordAro> ( lazy refactoring is basically all i do )
19:09:00 <Rubidium> yes, lets leave cpp_lengthof in while doing other refactors and get bitten by it not doing what you expect it to do (like with lengthof)
19:11:12 <LordAro> but the existing code isn't going anywhere, and peter1138's slower "actually make things better" approach seems better in the long term
19:11:36 <peter1138> That's just one function...
19:12:11 <michi_cc> talltyler: Oh, "I have a patch for that, too" โข๏ธ ๐
19:12:11 <michi_cc> Outdated like heck ๐
19:12:22 <peter1138> My approach is clearly too slow because there are things I have patches for that are now obsolete ๐
19:12:51 <peter1138> You have one for CargoDest too, right?
19:13:48 <michi_cc> Yes, and that one is only on hold, and not abandoned ๐
19:14:00 <michi_cc> New map first, though ๐
19:15:38 <Rubidium> LordAro: in the long term you definitely have a point, but my point is rooted in the fact that two-thirds of the "lengthof-is-not-what-you-expect-it-to-be" issues are due to the "actually make things better" approach. So, I rather remove the troublesome macro sooner so we do not introduce more bugs while making things better the slower way
19:16:37 <peter1138> LordAro, if you want something to fix, the desync cache comparer is pretty broken ๐
19:16:57 <peter1138> You might want to install WSL though...
19:18:43 <LordAro> i guess my (admittedly silly) thinking is that once these questionable constructs are converted to something "better", they'll be harder to find and improve further
19:21:21 <Rubidium> it's mostly the different between 'grep lengthof' vs 'grep std::size'
19:26:29 <peter1138> There's also an element of "don't let the person working on little bits hold onto them and forget to make PRs"...
19:31:55 <talltyler> michi_cc: I will try yours too ๐
19:32:33 <locosage> hm, why is cmake complaining about duplicate file names now? didn't do that with 13.4
19:33:07 <peter1138> ^ originally written in Jun 2023 as part of another patch.
19:35:07 <_glx_> locosage: check added because xcode
19:37:07 <locosage> ffs, first it was visual studio with this dumb issue, now xcode
19:37:23 <frosch123> lordaro: there are no outparams in that method
19:37:27 <frosch123> they are all in/out
19:38:23 <frosch123> did someone replace lordaro with an ai?
19:38:55 *** gelignite has quit IRC (Ping timeout: 480 seconds)
19:39:09 <locosage> _glx_: how do I disable it though? I don't need xcode support
19:39:22 <peter1138> Just rename your files...
19:39:53 <locosage> renaming files is dumb
19:40:00 <locosage> it's like uninventing directories
19:41:06 <LordAro> peter1138: now the alignment is broken :p
19:42:24 <LordAro> i like out params to be obvious
19:42:29 <_glx_> renaming is the only option when the building tool ignores the directories
19:42:31 <LordAro> which unfortunately means using pointers
19:43:06 <locosage> luckily I don't need it to build on anything but linux
19:43:19 <locosage> and cmclient already has unique filenames because of visual studio
19:43:38 <peter1138> We're not using C any more.
19:43:41 <_glx_> visual studio doesn't care as long as they are in different folders
19:43:58 <locosage> old versions cared for some reason
19:44:18 <LordAro> i feel like i'm trying to prioritise readability over safety
19:44:23 <LordAro> which may or may not be a good thing
19:44:36 <peter1138> My coding environment tells me it's a non-const reference.
19:45:22 <peter1138> I then can easily look at the comments that appear in a pop up, and it (now) tells me it's an in,out parameter.
19:46:00 <peter1138> If it was just one return parameter, then yes, returning that would make sense.
19:46:11 <peter1138> These are all in,out with defaults provided that can be overridden.
19:46:37 <peter1138> Taking all those those as in parameters and spitting them out again via return is not exactly tidy.
19:47:47 <peter1138> If I was still using vim, I admit I'd have to go jumping through hoops to find this out.
19:52:24 <truebrain> how is it that the youngest among us is holding on to the oldest tech ... IRC, MSYS, vim ... the list is getting long ๐ ๐ ๐
19:53:11 <peter1138> CMake generates bloat don't forget ๐
19:54:12 <_jgr_> As long as it's not autoconf, it's fine ๐
19:54:41 <_glx_> autoconf, when configure takes 10 times as long as compile
19:55:24 <peter1138> (The one where you store the build system, a python blob, in your repo for everyone to run...)
19:55:42 <peter1138> IIRC, it's also a binary.
19:58:30 *** keoz has quit IRC (Ping timeout: 480 seconds)
20:21:05 <peter1138> Ah whoops, it was an old patch, I forgot to double check it after merging changes.
20:23:54 *** Wormnest_ has joined #openttd
20:23:54 *** Wormnest has quit IRC (Read error: Connection reset by peer)
20:30:35 <andythenorth> hmm, could we do articulated ships for multiple holds, without preventing multiple ships in future?
20:31:02 <andythenorth> what if length 0 was possible?
20:33:20 *** wensimehrp has joined #openttd
20:33:20 <wensimehrp> talltyler: Signals works quite differently in different railway systems, i.e. some follows the G-Y-YY-R pattern, others follow the G-YY-Y-R pattern. I think you might need to change the logic by a bit.
20:36:23 <truebrain> it might surprise you, but not everything in the game is meant to be realistic ๐
20:36:31 <truebrain> sometimes having a feature is better than not having it at all ๐
20:38:22 <andythenorth> we just need signals that are faster ๐
20:38:33 <truebrain> hmm .. I am trying to figure out when which line in translations are translated last .. but the language files got renamed .. so a simple "git blame" fails ๐
20:38:34 <andythenorth> current ones are always red
20:40:06 <xarick> wow, windows 11 extracts .tar files natively now
20:40:12 <xarick> it's about time microsoft
20:41:19 <truebrain> `error: Utf8Error { valid_up_to: 118124, error_len: Some(1) } }`
20:41:29 <truebrain> invalid UTF-8? Really? This will be fun ๐
20:44:01 <peter1138> Right, there should be no padding changes.
20:44:04 <peter1138> That's for another PR ๐
20:47:28 <LordAro> truebrain: i learned it from you dad!
20:47:40 <truebrain> yeah, that is not the flex you think it is ๐
20:48:08 <LordAro> i'm pretty sure it's referencing something
20:48:17 <LordAro> but i don't actually know what
20:58:58 *** Smedles has joined #openttd
21:05:17 <truebrain> yippie, my endless amount of "git blame" works, and I can construct a sensible JSON based on our language files ๐ (one where cases are not a hack ๐ )
21:07:03 <truebrain> analyzing a single translation file takes only 1 minute .. most of that is "git blame" being slow ๐
21:07:33 <truebrain> our translation files are mutated so often, that a "git blame" isn't a quick operation anymore ๐
21:10:39 *** Wolf01 has quit IRC (Quit: Once again the world is quick to bury me.)
21:17:32 <wensimehrp> A simple graphics replacement grf could fix this, hmm
21:41:43 <truebrain> did peter break it again?
21:45:09 <_glx_> ``` "/home/arikover/Self-Compile/OpenTTD/OpenTTD/build-master/openttd(_Z22UpdateViewportPositionP6Windowj+0x57) [0x557cf8c3c6a7]",
21:45:09 <_glx_> "/home/arikover/Self-Compile/OpenTTD/OpenTTD/build-master/openttd(_Z13UpdateWindowsv+0x1a9) [0x557cf8c653c9]",
21:45:09 <_glx_> "/home/arikover/Self-Compile/OpenTTD/OpenTTD/build-master/openttd(_ZN11VideoDriver4TickEv+0x238) [0x557cf87ca9a8]",
21:45:09 <_glx_> "/home/arikover/Self-Compile/OpenTTD/OpenTTD/build-master/openttd(_ZN20VideoDriver_SDL_Base8MainLoopEv+0x2e) [0x557cf87bba5e]",
21:45:09 <_glx_> "/home/arikover/Self-Compile/OpenTTD/OpenTTD/build-master/openttd(_Z12openttd_mainiPPc+0x1a51) [0x557cf8a5f391]",
21:45:11 <_glx_> ``` seems very indirectly related to news changes, but hey it's possible ๐
21:59:24 <michi_cc> truebrain: Get old, get lazy, probably ๐
22:03:00 *** keikoz has quit IRC (Ping timeout: 480 seconds)
22:05:10 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
22:06:40 <truebrain> is it in the news too?
22:16:54 <peter1138> DeleteNewsItem is totally wrong. Pom-te-pom.
22:30:25 <peter1138> But then, working vs broken...
22:30:59 <truebrain> groundbreaking concept, tbh ๐
22:38:31 <peter1138> Okay, how to benchmark yapf...
22:38:41 <peter1138> Performance and repeatability...
22:49:52 *** matusguy has quit IRC (Remote host closed the connection)
23:04:15 <peter1138> Shame that `std::as_bytes` uses `std::byte` instead the more sane `uint8_t`...
23:13:10 <_glx_> but you can't do math with `std::byte` (a good thing I think)
23:18:47 <michi_cc> peter1138: I think the point of that is that `std::byte` has special aliasing rules that the normal types don't have.
23:49:35 *** ChanServ sets mode: +v tokai
23:56:28 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
23:57:01 *** Wormnest_ has quit IRC (Ping timeout: 480 seconds)
continue to next day โต