09:22 <+bridge> @davide55 oh good to know I can record some next time 09:23 <+bridge> 😄 14:16 <+bridge> chillerdragon: I tried integrating my testing lib into `ddnet_protocol` repo and there're good news and bad news. Bad news is that most of tests seem not to pass, good news - at least one of them passed :lol: 14:33 <+bridge> watfak 14:34 <+bridge> what tests fail? huffman? 14:34 <+bridge> ye 14:34 <+bridge> fakin huffmna 14:34 <+bridge> i copy pasted C++ code to C 14:34 <+bridge> what can go wrong 14:34 <+bridge> where did you get the test values from? 14:35 <+bridge> one of them fails because I yoinked it from https://github.com/ddnet/ddnet/pull/12195, and that PR adds a condition to not write trailing zero byte 14:35 <+bridge> ok sure 14:35 <+bridge> and the rest= 14:37 <+bridge> but the second test doesn't pass because... i probably made wrong input data. I read https://github.com/ddnet/ddnet/blob/db13b71cf7d071df3b9fc7770ea9cac5b0bd7342/src/test/huffman_test.cpp#L38 and made a file with 1-7 + zeros but it's 0-7 + zeros -.- 14:38 <+bridge> yep, and it passes now 14:45 <+bridge> gamer 14:46 <+bridge> @milkeeycat: come join luluworlds project no off by one errors there 14:47 <+bridge> xd 14:47 <+bridge> @milkeeycat: Are you going to add those tests to the CI? 14:48 <+bridge> ye, it's going to replace some of the existing tests 14:48 <+bridge> Oh .\_. 14:48 <+bridge> Rip existing tests 14:48 <+bridge> So when I locally do run tests with make I run less tests? :/ 14:49 <+bridge> ah, no, I mean it would still be possible to run it locally 14:51 <+bridge> So no tests will be deleted just duplicated? 14:52 <+bridge> I think existing tests will be just converted in this new format, no tests will be lost 15:22 <+bridge> https://github.com/teeworlds-go/huffman 15:22 <+bridge> best huffman lib 👀🔥 15:23 <+bridge> send security issues my way 👀 15:23 <+bridge> go? 15:23 <+bridge> chillerdragon just be doing things 15:23 <+bridge> indeed 15:24 <+bridge> that's primarily my work ._. at least v2 15:24 <+bridge> and matricks' work 15:25 <+bridge> alr 15:25 <+bridge> i based this on commit count :p 15:50 <+bridge> @essigautomat remember when i crashed before because of device lost? it happened again even after i updated drivers 15:50 <+bridge> might be a me issue then 15:50 <+bridge> or tlcient 16:09 <+bridge> happened twice in 15 mins.. 16:09 <+bridge> ill try recreate on ddnet 16:09 <+bridge> ill try recreate on ddnet client 17:55 <+bridge> what happen 17:58 <+bridge> crashed 17:58 <+bridge> device lost 18:08 <+bridge> Did you reboot after updating drivers? 18:20 <+bridge> yes 18:46 <+bridge> @learath2 the other day I said `std::expected` is a worse `Result`. today I found another difference: you can't wrap references in `std::expected`/`std::optional`. as far as I can tell, this makes it impossible to have an optional move references 18:47 <+bridge> is that correct? 18:49 <+CN-Bridge> std::reference_wrapper 18:50 <+bridge> I have seen this issue only on windows so far - I doubt this is a ddnet issue 18:50 <+bridge> not impossible, but I strongly doubt it 18:50 <+bridge> thanks Bamcane 18:51 <+bridge> I should also read into this :justatest: 18:52 <+bridge> oh that's neat, thanks 18:53 <+CN-Bridge> It's really interesting for me to read the C++ standard things though I hardly use some of them. 18:54 <+bridge> There are some really nice things in there, I am a big fan of std::optional 18:57 <+CN-Bridge> I like those new containers after C++20, like std::inplace_vector and std::hive. The new format library is also nice. 19:05 <+bridge> i wonder what the point of inplace vector is 19:08 <+bridge> it's a good replacement for the arrays we have in ddnet 19:08 <+bridge> we usually store an array plus a length for our strings 19:08 <+bridge> the inplace vector would be a one-to-one replacement 19:28 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1519393692496953384/image.jpg?ex=6a3d6525&is=6a3c13a5&hm=eb3e78e162dae23363d37c4beba4d2b1131c577dc63aa36e437e092e16f30854& 19:28 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1519393692954398861/image.jpg?ex=6a3d6525&is=6a3c13a5&hm=650331ec02733a31134cf6feaddfebf8dea2b22639e5a12917d135bd9f08affb& 19:28 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1519393693705044170/image.jpg?ex=6a3d6525&is=6a3c13a5&hm=516082e04b9b91702a8992994d8f9059900dd31e211e61e691947ea9ca6378e5& 19:28 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1519393694262890697/image.jpg?ex=6a3d6525&is=6a3c13a5&hm=787b3cbdbaf39479e8bd4a1d6d1ad3016261b505b3b310dda0a8edc7649a0534& 19:52 <+bridge> ah 20:29 <+bridge> C++26 has `std::optional` 20:29 <+bridge> 20:29 <+bridge> https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p2988r12.pdf 20:29 <+bridge> https://www.sandordargo.com/blog/2025/10/01/cpp26-optional-of-reference 20:29 <+bridge> 20:29 <+bridge> plus what bamcane said 20:32 <+bridge> but yes this is very annoying 20:33 <+bridge> and you run into a bunch of issues like that when you want to do rust-style monadic error handling and/or algebraic data types in c++ 20:33 <+bridge> you can uuusually work around them but it always ends up so much more verbose