07:39 <+bridge> [ddnet] how do i pull request? 09:30 <+bridge> [ddnet] https://www.thecodedmessage.com/posts/cpp-move/ 09:33 <+bridge> [ddnet] call the article "Move Semantics: C++ vs Rust" instead 10:03 <+bridge> [ddnet] well its his opinion 10:07 <+bridge> [ddnet] I don't think an article with that title is going to produce a useful discussion, that's why I suggested a different one 10:08 <+bridge> [ddnet] i disagree 10:08 <+bridge> [ddnet] there are lot of articles with titles like this "considered harmful" and i see plenty of discussion on hn 10:08 <+bridge> [ddnet] unrelated to rust 10:09 <+bridge> [ddnet] I stole the title I liked better from the very author who also posted it on the rust subreddit 10:09 <+bridge> [ddnet] https://old.reddit.com/r/rust/comments/qlycje/move_semantics_c_vs_rust/ 10:10 <+bridge> [ddnet] well idk then 10:10 <+bridge> [ddnet] the post looks interesting tho 10:14 <+bridge> [ddnet] https://swc.rs/ 10:14 <+bridge> [ddnet] xd 10:14 <+bridge> [ddnet] > SWC is 20x faster than Babel on a single thread and 70x faster on four cores. 10:14 <+bridge> [ddnet] poggers 10:15 <+bridge> [ddnet] https://openjdk.java.net/jeps/8277131 10:16 <+bridge> [ddnet] java is modernizing a little bit :monkalaugh: 10:16 <+bridge> [ddnet] > JEP draft: Virtual Threads (Preview) 10:17 <+bridge> [ddnet] https://news.ycombinator.com/item?id=29236375 10:28 <+bridge> [ddnet] I completely agree. Makes it sound like a hit piece. And I hate the original "goto consudered harmful" article too. So it's doubly annoying for me 10:29 <+bridge> [ddnet] while I accidentally summoned you with the clickbait title, do you know about this? 10:29 <+bridge> [ddnet] I wouldn't read the article if I just saw the title 10:32 <+bridge> [ddnet] Shifting into the sign bit is indeed undefined in C, I can't find the same thing in C++14 though 10:32 <+bridge> [ddnet] ah, thanks 🙂 10:32 <+bridge> [ddnet] Oh actually found it 10:33 <+bridge> [ddnet] C++14 5.8p2, it's not UB in C++14 😛 10:34 <+bridge> [ddnet] nice, the code I merged wasn't UB 10:34 <+bridge> [ddnet] undefined and c name a better duo 10:34 <+bridge> [ddnet] I couldn't think of a way to do it without UB, especially since I thought that uint → int conversion was UB 10:34 <+bridge> [ddnet] :greenthing: 10:34 <+bridge> [ddnet] when out of range of the target type 10:34 <+bridge> [ddnet] > Otherwise, if E1 has a signed type and non-negative value, and E1 ×2E2 is representable 10:34 <+bridge> [ddnet] > in the corresponding unsigned type of the result type, then that value, converted to the result type, is the resulting value; otherwise, the behavior is undefined. 10:34 <+bridge> [ddnet] E1 * 2^{E2} that is 10:35 <+bridge> [ddnet] nice 10:35 <+bridge> [ddnet] The cast back and forth to the signed type I'm unsure about though 10:35 <+bridge> [ddnet] Atleast the operation itself isn't UB that's for sure 10:36 <+bridge> [ddnet] Robyte said that it merely has an implementation defined result 10:36 <+bridge> [ddnet] which is good enough for me, I assume two's complement and no compiler magic 10:37 <+bridge> [ddnet] Let me give it a quick look over just in case 10:38 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/4340 10:40 <+bridge> [ddnet] Yep it's fine C++14 4.7p2: 10:40 <+bridge> [ddnet] > If the destination type is unsigned, the resulting value is the least unsigned integer congruent to the source integer (modulo 2n where n is the number of bits used to represent the unsigned type). [ Note: In a two’s complement representation, this conversion is conceptual and there is no change in the bit pattern (if there is no truncation). — end note 10:40 <+bridge> [ddnet] 10:40 <+bridge> [ddnet] + 4.7p3 10:40 <+bridge> [ddnet] > f the destination type is signed, the value is unchanged if it can be represented in the destination type; otherwise, the value is implementation-defined 10:41 <+bridge> [ddnet] Since two's complement is guaranteed that only leaves compiler goofs, and neither clang nor gcc is insane enough to break that 10:41 <+bridge> [ddnet] Though one could use memcpy there too, I doubt it'd end up in different assembly and that one is guaranteed to recreate the bit pattern 10:47 <+bridge> [ddnet] fwiw I've been missing so many sounds lately :/ 10:47 <+bridge> [ddnet] sounds? 10:47 <+bridge> [ddnet] mostly dj and hammer sounds on GER1 10:47 <+bridge> [ddnet] GER1 kinda became unplayable for me 10:48 <+bridge> [ddnet] hm i hear them 10:49 <+bridge> [ddnet] I think it's only me, if it happened to everyone we'd have a riot at hand 😄 10:49 <+bridge> [ddnet] macos? 10:49 <+bridge> [ddnet] :monkalaugh: 10:49 <+bridge> [ddnet] nope, windows and linux both 10:50 <+bridge> [ddnet] feels like huge packet loss 10:50 <+bridge> [ddnet] is ur internet ok 10:50 <+bridge> [ddnet] yep, it's completely fine in FRA and I get like 28 ping on GER1 aswell 10:51 <+bridge> [ddnet] maybe ur pc is diying 10:51 <+bridge> [ddnet] why would it only suffer on GER1 tho? 😄 10:51 <+bridge> [ddnet] dying* 10:51 <+bridge> [ddnet] I would bet on ddnet being buggy instead of his computer dying 10:51 <+bridge> [ddnet] i just repeated the word dying a lot and it sounds weird now 10:52 <+bridge> [ddnet] I really think we need to take a look at the snap stuff :/ I'm not sure if it's operating as intended 10:52 <+bridge> [ddnet] what was changed? 10:52 <+bridge> [ddnet] Especially now that we are at the very edges of it's capabilities 10:52 <+bridge> [ddnet] We have way too many objects now, it's testing the limits 😄 10:53 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/4306/files 10:53 <+bridge> [ddnet] lots of edgecases never before exposed 10:53 <+bridge> [ddnet] ah 11:11 <+bridge> [ddnet] i found something hilarious on stackoverflow 11:11 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/910109841295560764/unknown.png 11:28 <+bridge> [ddnet] I'd so delete my account after that shame 12:09 <+bridge> [ddnet] @Discord Mod 12:11 <+bridge> [ddnet] thanks