Time Nick Message 01:02 MTDiscord Sfan, that's true for sizeof, but when that goes to the stack, everything is in their own address unless you're using structures, and specifically forcing the compiler to use #pragma pack 1/2/4, then it will do a lot of fancy slow code to stuff the floats together on most platforms, even when that's not efficient. Pragma pack is used most commonly for network buffer messages to make them byte aligned without changing the actual 01:02 MTDiscord message structure. For example do sizeof() on a structure containing a single double and a single float, and tell me the size it returns by default on your machine 01:13 pgimeno why a double and a float instead of two floats? 01:15 pgimeno http://www.formauri.es/personal/pgimeno/pastes/floats.c 01:15 pgimeno @exe_virus ^ 08:37 Krock > INFO[Main]: Client::ProcessData(): Discarding data not coming from server: peer_id=24432 08:37 Krock hmmm 09:16 MTDiscord Two floats will get packed as you expect, because it aligns with 64 bits. I specifically asked for something that doesn't align with 64 bits nicely. In code that happens relatively often, even with a compiler, and so the floats will typically get stored on a single address alone in their very own double. If you bit align yourself, then the compiler can do fancy things. 3 floats would also get the same result as a double + float. 09:16 MTDiscord That being one float is stored by itself. In code if you have 3 floats doing different jobs all close to each other, they'll typically not be placed onto a single register/address during that code execution except in cases of SSE. 09:26 MTDiscord https://www.google.com/amp/s/www.geeksforgeeks.org/structure-member-alignment-padding-and-data-packing/amp/ 10:32 sfan5 Krock: for testing your PR consider this https://clang.llvm.org/docs/ThreadSanitizer.html 10:33 Krock sfan5: I found a culprit. std::move 10:33 sfan5 ah 10:33 Krock the buffer became invalid afterwards 10:42 sfan5 btw for a "const-wrapper class" I was thinking of something like this http://sprunge.us/vNucxM?cpp 10:42 sfan5 would remove the need to do that manually 10:44 Krock oh that's a neat idea 10:55 Krock hmm.. problem is that connection.cpp / connectionthreads.cpp need access to members, such as "address", "type", "time" 10:56 Krock read&write access 11:11 sfan5 you can add write access but then it's not automatically safe anymore 11:13 sfan5 also I just noticed that removing the move constructors in my example is not actually needed 11:22 nrz we should copy those tiny data if you are talking about thread safeness ? 11:34 Krock tiny data? how about entire packets? 11:38 sfan5 #11612 and #10729 could use another review 11:38 ShadowBot https://github.com/minetest/minetest/issues/11612 -- Fix client-side performance of chat UI by Desour 11:38 ShadowBot https://github.com/minetest/minetest/issues/10729 -- Allow Enabling The Touch UI In A Desktop Build by TheBrokenRail 11:43 sfan5 merging #11616, #11638, #11644 in 10m 11:43 ShadowBot https://github.com/minetest/minetest/issues/11616 -- Add preprocessor check for weird (incorrect) build configurations by sfan5 11:43 ShadowBot https://github.com/minetest/minetest/issues/11638 -- Add feature table entry for new dynamic media API by sfan5 11:43 ShadowBot https://github.com/minetest/minetest/issues/11644 -- [PATCH] Trivial typos 11:46 sfan5 (will put some more typo fixes in the last one) 11:49 pgimeno github has started giving broken links for commits 11:50 pgimeno https://github.com/minetest/minetest/pull/11616 - if you click on the commit line, you get a 404 11:51 pgimeno changing ...github.com/sfan5/minetest... to ...github.com/minetest/minetest... fixes it 11:52 sfan5 huh 11:59 Krock ah very cool. the first thread races already appear on init, in Logger::log() 12:08 Krock however there's surprisingly no thread race for ConnectionReceiveThread 12:09 Krock nvm. they appeared earlier in the logs 15:03 Krock goddamn it. it was a copypaste error 15:34 sfan5 rubenwardy: you do have server-side checks that people are actually uploading a .zip in CDB, right? 15:35 sfan5 ah nvm 15:35 sfan5 there was some unfinished code in the pkgmgr that identified 7z, tar.gz and tar.bz2 and I was wondering if it could possibly have worked in previous versions 15:35 sfan5 but it can't 15:38 rubenwardy Yeah 15:38 rubenwardy Also unzip the zips and validate the contents 15:38 rubenwardy Such as init.lua/mod.conf/etc 18:05 sfan5 pgimeno: https://github.community/t/bug-clicking-on-pr-commit-links-causes-404/201684 18:05 sfan5 (wonder if that page works without js) 18:05 sfan5 looks like someone already opened a topic in the place where github excepts bug reports, so they'll hopefully fix it soon 18:05 pgimeno thanks, let's hope so 18:07 Pexin I've got most enduser github stuff working without js, but that's because greasemonkey 18:08 Pexin well, greasemonkey and custom browser css that forces element visibility 18:09 Pexin no contributor stuff tho 18:13 sfan5 merging #10795, #11612, #11637 in 10m 18:13 ShadowBot https://github.com/minetest/minetest/issues/10795 -- Fix HUD multiline text alignment by appgurueu 18:13 ShadowBot https://github.com/minetest/minetest/issues/11612 -- Fix client-side performance of chat UI by Desour 18:13 ShadowBot https://github.com/minetest/minetest/issues/11637 -- Fix src/util/string.cpp on NetBSD by alarixnia 18:46 sfan5 does anyone know why we have max_forceloaded_blocks? 18:47 Krock to avoid that mods spam-load every mapblock? 18:47 sfan5 but that's a mod bug 18:47 sfan5 we don't arbitrarily limit the amount of hud elements either 18:47 sfan5 or entities or particles or ... 18:49 Krock entities are mapblock-bound, and the server cares basically zero about HUD elements and particles 19:48 sfan5 why do vector metatables not have comparison operators 19:48 sfan5 it seems like an obvious omission 19:49 pgimeno wasn't there a PR about that? 19:51 pgimeno #11039 and before it #9612 19:51 ShadowBot https://github.com/minetest/minetest/issues/11039 -- Add metatables to lua vectors by Desour 19:51 ShadowBot https://github.com/minetest/minetest/issues/9612 -- Add a metatable for vectors by Desour 19:51 MTDiscord sfan5: vector comparison is a bit... special, so it might be reasonable to omit that 19:52 MTDiscord (0, 0, 1) is not less than (0, 1, 0), yet (0, 1, 0) isn't less than or equals (0, 0, 1) either 19:52 pgimeno oh wait, I misread 19:54 pgimeno what would a < b do for vectors? is (1, 2, 3) < (3, 2, 1)? well, you can use lexicographical order but I don't think that's very useful 19:55 MTDiscord Usually a < b IMO should be interpreted as all components of a must be smaller than the corresponding component of b 19:55 sfan5 yeah that's what I was thinking of 19:55 MTDiscord But that exhibits the "weird" behavior I just described, so there probably shouldn't be syntactic sugar for it 19:56 MTDiscord modlib actually has that syntactic sugar, but I'm now starting to question it :P 19:56 Krock a < b is not useful for multi-dimensional values 19:56 MTDiscord Krock: wrong 19:56 Krock no, correct. 19:56 MTDiscord is a point in an area from min to max? p >= min and p <= max 19:56 Krock this depends on a coordinate sorting function 19:57 Krock where each "min" must be smaller or equal "max" 19:57 MTDiscord coordinate sorting function? 19:57 MTDiscord well yes, I can't see these definitions being useful for things like "smart vector table", you'd use lexicographical order for that 19:58 pgimeno Usually a < b IMO should be interpreted as all components of a must be smaller than the corresponding component of b <-- but then you have cases where it's not true that a < b AND it's not true that a > b AND it's not true that a = b, that's abhorrent if you ask me 19:58 MTDiscord yeah, that's the "weird" behavior 19:58 pgimeno I don't think it's useful 19:58 Krock comparisons with weird behaviour are not reliable enough 19:59 Krock you'd rather have a isInArea(pos, corner1, corner2) function to cover all cases