00:01 <+bridge> [ddnet] well, the free packet is. we have the free solid packet, which is why i filtered it out in the link 00:40 <+bridge> [ddnet] So far so good! How readable is this? 00:40 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1040773087836246066/image.png 00:41 <+bridge> [ddnet] Also, I wanted to change these to icons as well. 00:41 <+bridge> [ddnet] Are these any good? Or is the original prefered? 00:41 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1040773200625287241/image.png 00:41 <+bridge> [ddnet] Also, I wanted to change these to icons as well. 00:41 <+bridge> [ddnet] Are these any good? Or is the original preferred? 00:41 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1040773200625287241/image.png 00:41 <+bridge> [ddnet] @Ravie mapper feedback pl0x 00:43 <+bridge> [ddnet] I like it but not sure what some of them mean 00:43 <+bridge> [ddnet] arrows = animation speed 00:43 <+bridge> [ddnet] squares = grid size 00:43 <+bridge> [ddnet] arrows to right = animation speed 00:43 <+bridge> [ddnet] squares = grid size 00:43 <+bridge> [ddnet] double arrows are resize? 00:43 <+bridge> [ddnet] the fullscreen things? 00:44 <+bridge> [ddnet] yea 00:44 <+bridge> [ddnet] those aren't very clear 00:44 <+bridge> [ddnet] but u said these are from a font? 00:44 <+bridge> [ddnet] yea 00:44 <+bridge> [ddnet] this one 00:45 <+bridge> [ddnet] so we have, **zoom, flip horiz/vert, rotate quad, anim speed, resize grid** 00:45 <+bridge> [ddnet] those could work, sadly not square 00:45 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1040774361566683297/image.png 00:45 <+bridge> [ddnet] thank! i'll try those! 00:46 <+bridge> [ddnet] I just searched `grid` :justatest: 00:46 <+bridge> [ddnet] damn 00:48 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1040775033888456804/image.png 00:49 <+bridge> [ddnet] actually what if i try a different approach to this? 00:51 <+bridge> [ddnet] What if I do something like this instead? 00:51 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1040775759419150476/image.png 00:52 <+bridge> [ddnet] I like that but the middle is still reset? 00:52 <+bridge> [ddnet] Yeah. 00:52 <+bridge> [ddnet] I was just thinking about this too. 00:55 <+bridge> [ddnet] 00:55 <+bridge> [ddnet] @Pipou You're a mapper. What're your take on these changes for the editor UI? 01:35 <+bridge> [ddnet] I think it's worth the risk doing it this way 01:35 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1040786940208889866/image.png 01:35 <+bridge> [ddnet] dont know what symbol to use for animation 01:37 <+bridge> [ddnet] @Voxel It seems much better 01:38 <+bridge> [ddnet] I'm just too used to the keyboard shortcut 01:38 <+bridge> [ddnet] I believe it would be very helpful for newcomers 01:38 <+bridge> [ddnet] I'm just too used to the keyboard shortcuts 02:07 <+bridge> [ddnet] I'll go with this variation for now, and if it's too confusing I can change it 05:09 <+bridge> [ddnet] omg i just got a genius idea for this. what if when you hover your mouse over the middle buttons they turn into a reset symbol, so it indicates better it's meant for resetting the value 08:03 <+bridge> [ddnet] Imo the crossed out eye looks bloat. Not simple enough for tw style. Can you change it’s opacity instead? As in grey it out when it’s inactive? 08:03 <+bridge> [ddnet] (@Voxel) 08:20 <+bridge> [ddnet] Yeah I can try that 08:22 <+bridge> [ddnet] Why the hell must the editor GUI look tw style xd 08:23 <+bridge> [ddnet] speaking of bloat, we dont even use like 3/4th of the entire font icon pack 08:23 <+bridge> [ddnet] when i have enough time and will i want to attempt to make a localized icon pack with custom made icons 08:23 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1040889604640874546/image.png 08:39 <+ChillerDragon> Omg jopstar ur lawyer and financial advisor but u know nothin about design sorri 08:39 <+ChillerDragon> editor does have to look nice and clean! 08:39 <+ChillerDragon> complex textures are ugly 09:19 <+ChillerDragon> my new favorite snap type: SNAPEMPTY 09:19 <+ChillerDragon> axaxax 09:20 <+ChillerDragon> even better than SNAPCHAT 09:27 <+bridge> [ddnet] @Voxel Maybe could consider https://fonts.google.com/icons?icon.query=visibility 09:28 <+bridge> [ddnet] Material Symbols and Icons has much less icons than fontawesome but I think they look better and more similar to eachother 09:28 <+bridge> [ddnet] @Voxel Maybe could consider 09:30 <+ChillerDragon> First screenshot of a vanilla client being connected to a server written in ruby! pog https://zillyhuhn.com/cs/.1668241778.png 09:30 <+bridge> [ddnet] node-tw-server when™️? 09:30 <+ChillerDragon> @Swarfey 09:31 <+ChillerDragon> he is da typescript boi you wanna lobby to 09:31 <+bridge> [ddnet] https://tenor.com/view/eminem-job-for-me-gif-10358335 09:31 <+bridge> [ddnet] Swarfey be like: 09:31 <+ChillerDragon> I remember zeta bullying heinrich for implementing the tw server side in rust instead of client because its "the easy part" but so far I do not agree :D 09:32 <+bridge> [ddnet] xd 09:32 <+bridge> [ddnet] As it seems nothing is easy when it comes to teeworlds coding 09:32 <+ChillerDragon> In the client one can get pretty far without snaps. The server is pretty useless withou them. 09:32 <+ChillerDragon> But luckily there is snap empty which is magic hack :D 09:33 <+bridge> [ddnet] I'm not very fluent in teeworlds server terminology so I don't know what snaps are 09:33 <+ChillerDragon> its like a image you send 09:33 <+ChillerDragon> and it disappears after a few seconds 09:33 <+bridge> [ddnet] 🤔 09:33 <+ChillerDragon> https://www.snapchat.com/ 09:34 <+ChillerDragon> trolololol 09:34 <+bridge> [ddnet] Okay I understand that but what does it have to do with the server 09:34 <+ChillerDragon> No like snaps are basically the game state the server sends to the client. It holds all the entities like players and their positions etc 09:34 <+bridge> [ddnet] Ah okay you trolled me 09:34 <+bridge> [ddnet] I'm dumb 09:34 <+ChillerDragon> hrhrhrhr 09:34 <+ChillerDragon> get stickbugged 09:35 <+bridge> [ddnet] Oh I understand 09:35 <+ChillerDragon> and the client is really sad if the server sends no snaps 09:35 <+ChillerDragon> but building snaps is hard 09:35 <+ChillerDragon> but there is a empty snap type that is ez to build and makes the client happy 09:35 <+ChillerDragon> hackerdragon doing ugly hax 09:35 <+bridge> [ddnet] It's like a way for the client and the server to be on the same page 09:35 <+ChillerDragon> ye 09:35 <+bridge> [ddnet] I mean the client 09:36 <+bridge> [ddnet] The server doesn't care 09:36 <+ChillerDragon> actually the server does care a bit if the client got the snap 09:36 <+bridge> [ddnet] How much does it care 09:36 <+bridge> [ddnet] I mean it won't break if the client didn't get it 09:37 <+ChillerDragon> That part im currently trying to figure out but stuff breaks if the client does not tell the server it got the correct stuff 09:38 <+bridge> [ddnet] Does that mean that one could technically mod their client to troll the server? 09:38 <+ChillerDragon> Yes troll the server into kicking you for "Too weak connection" if you do not properly ack all server packets xd 09:39 <+bridge> [ddnet] In that case no =] 09:39 <+ChillerDragon> prank gone wrong 09:39 <+bridge> [ddnet] [Backfired] [Gone wrong] 09:40 <+ChillerDragon> when tw server in pure css? 09:40 <+ChillerDragon> aw shit im procrastinating again xd 09:42 <+bridge> [ddnet] maybe not css 09:43 <+ChillerDragon> Isnt css turing complete 09:43 <+ChillerDragon> there is even a chat app build in css 09:43 <+ChillerDragon> https://github.com/kkuchta/css-only-chat 09:43 <+ChillerDragon> ruby pog 09:43 <+bridge> [ddnet] Idk if thats the one i saw 09:44 <+bridge> [ddnet] But that is pretty epic 09:44 <+ChillerDragon> faq section of readme is gold 09:44 <+bridge> [ddnet] Okay while you are here 09:44 <+bridge> [ddnet] And since you know what teeassembler is 09:45 <+bridge> [ddnet] 09:45 <+bridge> [ddnet] Star this and don't ask any questions 09:45 <+bridge> [ddnet] 👀 09:45 <+ChillerDragon> FOLLOW LIKE SHARE SUBSCRIBE 09:45 <+ChillerDragon> STAR4STAR 09:45 <+ChillerDragon> follow4follow 09:45 <+ChillerDragon> axaxax 09:45 <+bridge> [ddnet] exactly xd 09:45 <+ChillerDragon> i didnt even use it yet 09:45 <+ChillerDragon> so idk if it any gud 09:46 <+ChillerDragon> but it has nice documentation in readme 09:46 <+ChillerDragon> u got my star 09:46 <+bridge> [ddnet] ayy 09:46 <+ChillerDragon> TEE ASS EMBLER 09:46 <+bridge> [ddnet] it's kinda not perfect 09:46 <+ChillerDragon> hihi 09:47 <+ChillerDragon> Last time i looked into those things was like years ago when building this beauty https://zillyhuhn.com/DDNetPP-web/players.php 09:48 <+bridge> [ddnet] ayoo its using the old version 09:48 <+bridge> [ddnet] which was quite frankly shit 09:48 <+ChillerDragon> xd 09:48 <+bridge> [ddnet] you can try the new one I think there is a link on github 09:48 <+bridge> [ddnet] it works with colors too 09:49 <+ChillerDragon> i aint touching that php monster today :D 09:49 <+bridge> [ddnet] It literally has 0 php 09:49 <+ChillerDragon> the todos are just too overwhelming 09:49 <+ChillerDragon> nah i mean my old php website that makes use of teeassembler 09:50 <+bridge> [ddnet] Ah 09:50 <+bridge> [ddnet] well there is your problem 09:50 <+bridge> [ddnet] php 09:50 <+ChillerDragon> xd 09:50 <+ChillerDragon> php is so nice to get started 09:50 <+ChillerDragon> no dependencies or boilerplating needed 09:50 <+ChillerDragon> just add 1 more line and one more line 09:51 <+ChillerDragon> copy from w3 schools 09:51 <+ChillerDragon> and ez done website 09:51 <+bridge> [ddnet] lmao 09:51 <+bridge> [ddnet] I'm a classic javascript dev 09:51 <+bridge> [ddnet] as fireship said 09:51 <+ChillerDragon> soydev 09:51 <+bridge> [ddnet] I like reinventing the wheel as much as the next javascript developer 09:51 <+ChillerDragon> well at least js ecosystem uses packages 09:52 <+ChillerDragon> C and C++ developers do reinvent all wheels cuz they dont use other peoples code xd 09:52 <+bridge> [ddnet] also fireship said C++ is bloated 09:52 <+ChillerDragon> wot 09:52 <+bridge> [ddnet] I don't know since i havent used 09:55 <+ChillerDragon> lmao i managed to bug client graphics using crack server 09:55 <+bridge> [ddnet] looks like someone forgot to send the right data to client 10:02 <+ChillerDragon> looks like someone forgot to handle incorrect data in the client :p 10:34 <+bridge> [ddnet] good morning ddnet 10:36 <+bridge> [ddnet] morning, good day for fishing ain't it 10:40 <+ChillerDragon> murpi NPC 10:42 <+ChillerDragon> I think I slowly got the hype about test driven development! 10:42 <+ChillerDragon> I added so many CI pipelines that no matter how drunk i was while editing the code if the pipeline is green i can be sure notjing broke 10:43 <+ChillerDragon> https://zillyhuhn.com/cs/.1668246138.png 10:43 <+bridge> [ddnet] morning 10:44 <+ChillerDragon> jao alive 10:44 <+ChillerDragon> omg 10:45 <+bridge> [ddnet] That is not test driven development though, but just having good test coverage 10:46 <+bridge> [ddnet] and using CI as a merge barrier 10:46 <+ChillerDragon> TDD is write test first then code huh? 10:46 <+bridge> [ddnet] TDD would mean you write a new test before you even start writing the feature 10:46 <+ChillerDragon> ah yea 10:46 <+bridge> [ddnet] which is a bit awkward and extreme I think 10:47 <+ChillerDragon> yea ok then im not hyped about TDD ... yet 10:47 <+bridge> [ddnet] a fair enough compromise is to say you have to submit test and code together (thus not decreasing code coverage) 10:47 <+ChillerDragon> but about good test coverage 10:47 <+ChillerDragon> ye i write code and then tests that pass for the code i wrote 10:47 <+ChillerDragon> so i see when my behavior changed 10:47 <+ChillerDragon> and it worked pretty dope so far! 10:48 <+ChillerDragon> Especially full integration tests that run the whole thing are gold 10:48 <+bridge> [ddnet] hi jao 10:48 <+ChillerDragon> xd 10:49 <+bridge> [ddnet] yes, integration tests are more valuable than unit tests since you know the feature actually works for the user. but they run much slower than unit tests, so more expensive 10:56 <+bridge> [ddnet] I find TDD works decently for user facing APIs. Though I don't do it all the time either. Sometimes I just think of some behaviour or edgecase for an api endpoint and I'll jot down a test first mostly so I remember 11:17 <+ChillerDragon> Imo the thing is that while you write the code you might notice that the api would be better/easier to code if it looked differently 12:27 <+bridge> [ddnet] 🧌 i believe that would take ages 12:28 <+bridge> [ddnet] took me already a few months of irregular updates to finish the client 12:28 <+bridge> [ddnet] not even completely finished yet, i bet there are still some things to add 12:38 <+ChillerDragon> thats motivating thanks swarfey xd 12:39 <+ChillerDragon> omg rubys missing types drive me nuts 12:39 <+bridge> [ddnet] well the worst things were snapshot uuid's which i was procrastinating away for months 12:39 <+bridge> [ddnet] finally implemented it yesterday 12:41 <+ChillerDragon> im back to being stuck at tokens again :D 12:41 <+ChillerDragon> idk how that happend 12:43 <+bridge> [ddnet] whats the problem with the token 12:44 <+bridge> [ddnet] just store the last 4 bytes and append them to every packet 12:44 <+bridge> [ddnet] chiller come to rust 12:44 <+bridge> [ddnet] lots of types there 12:44 <+bridge> [ddnet] or idk where it is in 0.7 12:44 <+bridge> [ddnet] and now GATs 12:44 <+bridge> [ddnet] generic associated types 12:44 <+bridge> [ddnet] im trying to do what u doing in ruby but in rust 12:45 <+bridge> [ddnet] time to learn wireshark 12:53 <+ChillerDragon> @Swarfey I store my tokens as strings xd so they might either be "\x01\x01\x01\x01" or "1111" or "01010101" depending how i currently formatted them. Or better its suddenly the array [1,1,1,1] 12:54 <+bridge> [ddnet] o_O 12:54 <+bridge> [ddnet] dont you have something like buffers or something in ruby? 12:57 <+bridge> [ddnet] Idk 13:09 <+bridge> [ddnet] @deen nightly from steam under linux not starting :/ 13:09 <+bridge> [ddnet] it simply hangs 13:10 <+bridge> [ddnet] mhh RC too, weird, self compiling works tho 13:11 <+bridge> [ddnet] https://tenor.com/view/cat-shaking-radlcies-gif-24378563 13:11 <+bridge> [ddnet] Ryozuki trying not to mention rust for 5 seconds 13:12 <+bridge> [ddnet] maybe the steam update broke it or smth, bcs nightly from website works 13:14 <+bridge> [ddnet] Its new "btw im using linux" 13:14 <+bridge> [ddnet] steam non beta client works 13:17 <+bridge> [ddnet] lol change to beta again now it works. i love random bugs 13:17 <+bridge> [ddnet] they always easy to answer 16:57 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1041018906468429844/logo.jpeg 16:57 <+bridge> [ddnet] @Ryozuki ^ 17:00 <+bridge> [ddnet] oui() 17:07 <+ChillerDragon> https://github.com/bnjbvr/rouille 17:09 <+ChillerDragon> I identify with this one 17:09 <+ChillerDragon> https://github.com/Sanceilaks/rzhavchina/raw/principale/logo.png 17:11 <+bridge> [ddnet] turkish image is quite good as well 17:11 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1041022538521784400/image.png 17:11 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1041022538916036728/logo.png 17:11 <+bridge> [ddnet] turkish image is quite good as well 17:11 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1041022538521784400/image.png 17:12 <+ChillerDragon> kraaal 17:13 <+bridge> [ddnet] uh, do i need visual studio now to build ddnet? 17:14 <+bridge> [ddnet] yep, u need visual studio we dropped linux support 17:14 <+bridge> [ddnet] nah, on windows obviously... 17:15 <+bridge> [ddnet] why do you think so? 17:15 <+bridge> [ddnet] rust says it needs visual studio dependencies 17:15 <+bridge> [ddnet] how did you install rust? 17:15 <+bridge> [ddnet] ``` 17:15 <+bridge> [ddnet] Rust Visual C++ prerequisites 17:15 <+bridge> [ddnet] 17:15 <+bridge> [ddnet] Rust requires a linker and Windows API libraries but they don't seem to be 17:15 <+bridge> [ddnet] available. 17:15 <+bridge> [ddnet] 17:15 <+bridge> [ddnet] These components can be acquired through a Visual Studio installer. 17:16 <+bridge> [ddnet] ``` 17:16 <+bridge> [ddnet] didn't install yet 17:16 <+bridge> [ddnet] installer says that 17:16 <+bridge> [ddnet] how do you compile ddnet? 17:16 <+bridge> [ddnet] with the gnu toolchain? 17:16 <+bridge> [ddnet] yes 17:16 <+bridge> [ddnet] mingw 17:16 <+bridge> [ddnet] then you can download the mingw toolchain for rust 17:16 <+bridge> [ddnet] let me check how 17:16 <+bridge> [ddnet] cant u simply download rust for msys 17:17 <+bridge> [ddnet] pacman -S mingw-w64-x86_64-rust 17:17 <+bridge> [ddnet] ah maybe that as well 17:17 <+bridge> [ddnet] if not, try this: https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-gnu/rustup-init.exe 17:18 <+bridge> [ddnet] > On Windows, download and run the `rustup-init.exe` built for the `x86_64-pc-windows-msvc` target. In general, this is the build of rustup one should install on Windows. This will require the Visual C++ Build Tools 2019 or equivalent (Visual Studio 2019, etc.) to already be installed. If you would prefer to install GNU toolchains or the i686 toolchains by default this can be modified at install time, either interactively, with the `-- 17:20 <+bridge> [ddnet] okay, trying with the x86_64-pc-windows-gnu host 17:24 <+bridge> [ddnet] tell us how it goes 17:27 <+bridge> [ddnet] so far seems to work 17:27 <+bridge> [ddnet] just need to make sure that CARGO_HOME and RUSTUP_HOME are properly set in bash 17:27 <+bridge> [ddnet] if you want to redirect it to some non-default place, yes 17:27 <+bridge> [ddnet] yup, using /c/rust 17:28 <+bridge> [ddnet] I see 17:29 <+bridge> [ddnet] ``` 17:29 <+bridge> [ddnet] [0/255] Generating debug/libddnet_engine_shared.a 17:29 <+bridge> [ddnet] Updating crates.io index 17:29 <+bridge> [ddnet] Downloaded cc v1.0.73 17:29 <+bridge> [ddnet] Downloaded link-cplusplus v1.0.6 17:29 <+bridge> [ddnet] Downloaded cxx v1.0.71 17:29 <+bridge> [ddnet] Downloaded proc-macro2 v1.0.40 17:29 <+bridge> [ddnet] Downloaded quote v1.0.20 17:29 <+bridge> [ddnet] Downloaded syn v1.0.98 17:29 <+bridge> [ddnet] Downloaded cxxbridge-flags v1.0.71 17:29 <+bridge> [ddnet] Downloaded unicode-ident v1.0.1 17:29 <+bridge> [ddnet] Downloaded cxxbridge-macro v1.0.71 17:29 <+bridge> [ddnet] Downloaded 9 crates (664.7 KB) in 2.64s 17:29 <+bridge> [ddnet] Compiling cc v1.0.73 17:29 <+bridge> [ddnet] Compiling proc-macro2 v1.0.40 17:29 <+bridge> [ddnet] Compiling quote v1.0.20 17:29 <+bridge> [ddnet] Compiling unicode-ident v1.0.1 17:29 <+bridge> [ddnet] Compiling syn v1.0.98 17:30 <+bridge> [ddnet] Compiling cxxbridge-flags v1.0.71 17:30 <+bridge> [ddnet] Compiling ddnet-engine-shared v0.0.1 (E:\Teeworlds_DDNet\ddnet\src\engine\shared) 17:30 <+bridge> [ddnet] Compiling ddnet-test v0.0.1 (E:\Teeworlds_DDNet\ddnet\src\rust-bridge\test) 17:30 <+bridge> [ddnet] Compiling link-cplusplus v1.0.6 17:30 <+bridge> [ddnet] Compiling cxx v1.0.71 17:30 <+bridge> [ddnet] Compiling cxxbridge-macro v1.0.71 17:30 <+bridge> [ddnet] Compiling ddnet-base v0.0.1 (E:\Teeworlds_DDNet\ddnet\src\base) 17:30 <+bridge> [ddnet] Compiling ddnet-engine v0.0.1 (E:\Teeworlds_DDNet\ddnet\src\engine) 17:30 <+bridge> [ddnet] Finished dev [unoptimized + debuginfo] target(s) in 2m 20s 17:30 <+bridge> [ddnet] ``` 17:30 <+bridge> [ddnet] 🙂 17:30 <+bridge> [ddnet] 🙂 17:37 <+bridge> [ddnet] ```bash 17:37 <+bridge> [ddnet] $ CXXFLAGS="-fdiagnostics-color=always" CFLAGS="-fdiagnostics-color=always" cmake -G Ninja -DDEV=ON -DPREFER_BUNDLED_LIBS=ON -DIPO=OFF -DAUTOUPDATE=OFF -DDOWNLOAD_GTEST=ON .. 17:37 <+bridge> [ddnet] $ time ninja 17:37 <+bridge> [ddnet] ## with rust 17:37 <+bridge> [ddnet] real 1m47,277s 17:37 <+bridge> [ddnet] ## 16.5 17:37 <+bridge> [ddnet] real 1m26,152s 17:37 <+bridge> [ddnet] ``` 17:44 <+bridge> [ddnet] https://github.com/edg-l/teeint 17:44 <+bridge> [ddnet] i know libtw has it but i made my own 17:45 <+bridge> [ddnet] Cool 17:45 <+bridge> [ddnet] ```rust 17:45 <+bridge> [ddnet] use teeint::UnPackTwInt; 17:45 <+bridge> [ddnet] 17:45 <+bridge> [ddnet] let buff = [0b1000_0000, 0b0000_0001]; 17:45 <+bridge> [ddnet] let result = buff.as_slice().unpack().unwrap(); 17:45 <+bridge> [ddnet] assert_eq!(result, 64); 17:45 <+bridge> [ddnet] ``` 17:45 <+bridge> [ddnet] with a fancy trait 17:45 <+bridge> [ddnet] Did you make it for sth or just for fun? 17:45 <+bridge> [ddnet] to call it on buffers directly 17:45 <+bridge> [ddnet] yeah idk i want to make parts of tw in rust like heinrich did 17:45 <+bridge> [ddnet] but ill publish them 17:45 <+bridge> [ddnet] as small crates 17:46 <+bridge> [ddnet] libtwzuki, go 17:46 <+bridge> [ddnet] ill also obey clippy like a god 17:46 <+bridge> [ddnet] :BASED: 17:48 <+bridge> [ddnet] ❯ cargo clippy --all-targets 17:48 <+bridge> [ddnet] 17:48 <+bridge> [ddnet] Checking teeint v0.1.0 (/data1/edgar/teeint) 17:48 <+bridge> [ddnet] Finished dev [unoptimized + debuginfo] target(s) in 0.14s 17:48 <+bridge> [ddnet] :PES3_Sus: 17:48 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1041031696444821604/image.png 17:48 <+bridge> [ddnet] nice 🙂 17:49 <+bridge> [ddnet] the new code viewer in github is dope 17:49 <+bridge> [ddnet] i can search code on ddnet without needing to open it locally 17:49 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1041032115963306079/image.png 17:51 <+bridge> [ddnet] you could do that before, with the search at the top 17:52 <+bridge> [ddnet] it worked rly bad 17:52 <+bridge> [ddnet] they changed it 17:52 <+bridge> [ddnet] but I can't find the string you searched for 😮 17:52 <+bridge> [ddnet] well its in beta 17:52 <+bridge> [ddnet] so it's apparently bad 17:52 <+bridge> [ddnet] cuz im using the new code view 17:52 <+bridge> [ddnet] are you using it too? 17:53 <+bridge> [ddnet] https://github.com/orgs/community/discussions/38692 17:53 <+bridge> [ddnet] no, I checked using the old search 17:53 <+bridge> [ddnet] yeah old search is pretty bad 17:54 <+bridge> [ddnet] you could add some tests testing multi-byte representations 17:54 <+bridge> [ddnet] e.g. for the lowest and highest numbers 17:55 <+bridge> [ddnet] i have one for 64 but yeah i was a bit lazy to add more 17:55 <+bridge> [ddnet] ill add them sometime :D 17:56 <+bridge> [ddnet] Old search is that elasticsearch thing that tries to be way too smart. I absolutely hate what full text search has become in the last decade 17:57 <+ChillerDragon> @Ryozuki thanks for doing that! I do really appreciate individual crates with a nice readme on how to use them. Much more accessible for nobs than libtw2 17:57 <+bridge> [ddnet] yeah 17:57 <+bridge> [ddnet] thats how i felt too 17:57 <+bridge> [ddnet] 7-8 years ago you'd search for stuff and get pretty decent results. Now every site has this weird search behaviour, stemming words, ranking with weird metrics that makes no sense 17:57 <+bridge> [ddnet] altho libtw2 are loto of small crates internally tho 17:57 <+bridge> [ddnet] well idk if they are small 17:57 <+ChillerDragon> no docs and install command tho 17:57 <+ChillerDragon> and it all feels a bit interconnected 17:58 <+ChillerDragon> well i never bothered to understand libtw2 since i cant speak rust anyways but looking at your repos on github it does make a lot of sense at first glance 18:00 <+bridge> [ddnet] yea, libtw2 needs more documentation 😦 18:01 <+bridge> [ddnet] i have rustyman and teeint now 18:01 <+bridge> [ddnet] building blocks to make a protocol parser or smth idk 18:01 <+bridge> [ddnet] havent tested rustyman (my huffman in rust) with the tw table tho 18:02 <+bridge> [ddnet] this documents the correct bit representations for each byte value in the tw table: https://github.com/heinrich5991/libtw2/blob/48a2573af66105fc38f032fe22cfcc60f95f7485/doc/huffman.md#appendix 18:02 <+bridge> [ddnet] oh nice 18:03 <+bridge> [ddnet] there's also an example compression in the docs 18:03 <+ChillerDragon> there is no headless tw client in apt huh? :( 18:03 <+bridge> [ddnet] btw what is a .ksy file? 18:03 <+bridge> [ddnet] katai struct 18:03 <+bridge> [ddnet] https://kaitai.io/ 18:04 <+bridge> [ddnet] oh nice 18:04 <+bridge> [ddnet] no rust tho 18:04 <+bridge> [ddnet] that feels like smth that would fit a macro in rust 18:04 <+bridge> [ddnet] xd 18:04 <+ChillerDragon> can i run a gui tw client in github ci? anyone ever tried that? 18:04 <+ChillerDragon> like with some linux hax commands 18:04 <+bridge> [ddnet] probably, in some way 18:04 <+ChillerDragon> sounds like work 18:05 <+ChillerDragon> might as well just build -DHEADLESS_CLIENT=ON in the ci 18:05 <+ChillerDragon> or maybe server the binary on some sketchy url xd 18:05 <+ChillerDragon> serve* 18:05 <+bridge> [ddnet] https://amiralizadeh9480.medium.com/how-to-run-opengl-based-tests-on-github-actions-60f270b1ea2c 18:06 <+bridge> [ddnet] basically: only possible using software rendering 18:06 <+ChillerDragon> curl.exe 18:06 <+ChillerDragon> yikes 18:06 <+ChillerDragon> i also feel like it slows down the ci and i dont even need the gui 18:06 <+ChillerDragon> i think ill go with wget'ing the headless binary from some url 18:08 <+bridge> [ddnet] the MASKS and SHIFTS on c++ uses a static storage but in rust i decided to use const instead cuz according to the docs: 18:08 <+bridge> [ddnet] 18:08 <+bridge> [ddnet] ``` 18:08 <+bridge> [ddnet] Using Statics or Consts 18:08 <+bridge> [ddnet] 18:08 <+bridge> [ddnet] It can be confusing whether or not you should use a constant item or a static item. Constants should, in general, be preferred over statics unless one of the following are true: 18:08 <+bridge> [ddnet] Large amounts of data are being stored 18:08 <+bridge> [ddnet] The single-address property of statics is required. 18:08 <+bridge> [ddnet] Interior mutability is required. 18:08 <+bridge> [ddnet] ``` 18:08 <+bridge> [ddnet] is there a reason they are static in c++? 18:09 <+bridge> [ddnet] 18:09 <+bridge> [ddnet] 18:10 <+bridge> [ddnet] has anyone used twmap on windows? 18:10 <+bridge> [ddnet] twmap python binding 18:10 <+bridge> [ddnet] dont care too much about such stuff, const is const 18:10 <+bridge> [ddnet] not the binding 18:11 <+bridge> [ddnet] i like to nitpick 18:11 <+bridge> [ddnet] ``` 18:11 <+bridge> [ddnet] import twmap 18:11 <+bridge> [ddnet] Traceback (most recent call last): 18:11 <+bridge> [ddnet] File "", line 1, in 18:11 <+bridge> [ddnet] import twmap 18:11 <+bridge> [ddnet] File "C:\Python38\lib\site-packages\twmap\__init__.py", line 1, in 18:11 <+bridge> [ddnet] from .twmap import * 18:11 <+bridge> [ddnet] ImportError: DLL load failed while importing twmap: La procédure spécifiée est introuvable. 18:11 <+bridge> [ddnet] ``` 18:11 <+bridge> [ddnet] and learn more if possible 18:11 <+bridge> [ddnet] :BASED: 18:11 <+bridge> [ddnet] i'd use constexpr 18:11 <+bridge> [ddnet] looks like it tries to read a DLL, but there's no dll file 18:11 <+ChillerDragon> yikes windows 18:11 <+bridge> [ddnet] would it change anything herE? 18:11 <+bridge> [ddnet] here* 18:11 <+bridge> [ddnet] only a twmap.pyd 18:11 <+bridge> [ddnet] but i doubt any sane compiler cannot optimize it 18:11 <+bridge> [ddnet] yeah xd 18:11 <+bridge> [ddnet] i doubt it but try it out 18:11 <+bridge> [ddnet] but they use static 18:12 <+bridge> [ddnet] @Patiga https://discord.com/channels/252358080522747904/293493549758939136/1041037290459381810, any idea? 18:12 <+bridge> [ddnet] does `The single-address property of statics` help? 18:12 <+ChillerDragon> if you have HAVE to use windows why not use at least WSL? @Chairn 18:12 <+bridge> [ddnet] its windows 7 18:12 <+ChillerDragon> wtf 18:12 <+bridge> [ddnet] mhh since its a scope var, it doesnt matter at all probably 18:12 <+ChillerDragon> this is getting better and better xd 18:12 <+bridge> [ddnet] yeah 18:12 <+ChillerDragon> why would you be using windows 7? 18:13 <+bridge> [ddnet] he is one of the 10 trolls that hate ddnet 18:13 <+bridge> [ddnet] and try everything to keep us supporting win7 18:13 <+ChillerDragon> trol 18:14 <+ChillerDragon> yea imo its cool to support win7 18:14 <+ChillerDragon> but its not cool to run win7 18:14 <+bridge> [ddnet] its cool if it works on win7, its shit to give support for outdated stuff 18:14 <+ChillerDragon> so im curious why 18:14 <+bridge> [ddnet] it creates work for us 18:14 <+ChillerDragon> oke yea dpeends on the effort i guess 18:15 <+bridge> [ddnet] yeah 18:15 <+bridge> [ddnet] just use linux with kernel 6.1 18:15 <+bridge> [ddnet] otherwise no support 18:15 <+ChillerDragon> xd 18:15 <+bridge> [ddnet] tru 18:15 <+ChillerDragon> yikes i use 6.0 18:15 <+bridge> [ddnet] same xd 18:15 <+bridge> [ddnet] 6.1 hasnt released 18:15 <+ChillerDragon> oh trol 18:15 <+bridge> [ddnet] you so mainstream guys 18:15 <+bridge> [ddnet] im hipstar 18:16 <+bridge> [ddnet] hi hipstar 18:16 <+ChillerDragon> yes? 18:16 <+bridge> [ddnet] im dad 18:16 <+ChillerDragon> how so? 18:16 <+bridge> [ddnet] i use 6.1 18:16 <+ChillerDragon> oof 18:16 <+ChillerDragon> i use 6.2 my own linux fork who is ahead of mainline 18:16 <+bridge> [ddnet] i made 6.3 18:16 <+ChillerDragon> xd 18:16 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1041038903521583224/image.png 18:16 <+bridge> [ddnet] the world shall be like this 18:17 <+bridge> [ddnet] god said 18:17 <+bridge> [ddnet] https://media.discordapp.net/attachments/342454474117218334/979686303492890654/11.gif 18:17 <+ChillerDragon> https://zillyhuhn.com/cs/.1668273326.png 18:17 <+bridge> [ddnet] ew 18:17 <+ChillerDragon> WHITE THEME GITHUB MASTERRACE 18:17 <+bridge> [ddnet] i need to turn off my room light now 18:17 <+bridge> [ddnet] thanks 18:17 <+bridge> [ddnet] xd 18:17 <+ChillerDragon> xd 18:18 <+ChillerDragon> dark theme is cool and all 18:19 <+ChillerDragon> but there are 3 OG whitetheme apps: discord, youtube, github 18:19 <+ChillerDragon> change my mind 18:19 <+ChillerDragon> heck 4 18:19 <+ChillerDragon> duck.com 18:19 <+bridge> [ddnet] i miss the good old times 18:19 <+bridge> [ddnet] https://badhtml.com/ 18:20 <+ChillerDragon> im too young for that 18:20 <+ChillerDragon> dad 18:21 <+ChillerDragon> still waitin' for @Chairn to tell me why he runs win7 18:21 <+bridge> [ddnet] cuz he wants to be spied on 18:21 <+ChillerDragon> he can also get spied on on win10 18:21 <+ChillerDragon> even better there actually 18:21 <+bridge> [ddnet] @Not Keks u know geocities? 18:21 <+bridge> [ddnet] https://neocities.org/ 18:22 <+bridge> [ddnet] ez 18:22 <+bridge> [ddnet] https://cinni.net/ 18:22 <+bridge> [ddnet] https://fauux.neocities.org/ 18:22 <+bridge> [ddnet] they all so cool 18:22 <+bridge> [ddnet] neo is the new hipster prefix it seems 18:22 <+ChillerDragon> weeb 18:22 <+bridge> [ddnet] neovim neocities neodragon 18:22 <+bridge> [ddnet] https://mebious.neocities.org/ 18:23 <+ChillerDragon> my fav site is dis: itanimulli.com 18:23 <+bridge> [ddnet] the websites i have been waiting for 18:23 <+ChillerDragon> https://itanimulli.com 18:23 <+ChillerDragon> ah fak no https 18:23 <+ChillerDragon> http://itanimulli.com xd 18:23 <+ChillerDragon> fail 18:24 <+bridge> [ddnet] xd 18:26 <+bridge> [ddnet] is that the twmap package installed via pip or manually built? 18:30 <+ChillerDragon> he gone 18:32 <+bridge> [ddnet] because old pc 18:32 <+bridge> [ddnet] pip python3.8 on win7 18:34 <+ChillerDragon> Hm rip. So win blocks installation on old hardware? Rude windows. 18:38 <+bridge> [ddnet] anyone else on windows who can try out the twmap bindings? 18:39 <+ChillerDragon> I got a win10 drive but i really do not want to boot there now sori :( 18:40 <+ChillerDragon> @Ryozuki you did switch from vscode to vim right? How did you cope with missing multi cursors? 18:40 <+bridge> [ddnet] my win10 is also bricked for some reason 18:40 <+bridge> [ddnet] i always used vim 18:40 <+bridge> [ddnet] i only used vscode temporarely 18:40 <+ChillerDragon> oh ok gigachad sory 18:40 <+bridge> [ddnet] and u can do multi cursor in vim 18:40 <+ChillerDragon> how? 18:40 <+ChillerDragon> u mean ctrl+v? 18:41 <+bridge> [ddnet] https://github.com/mg979/vim-visual-multi 18:41 <+bridge> [ddnet] https://camo.githubusercontent.com/100be83770daaa30cdd285bcd321f00badd14a40c3415066e4de5cc347e0025e/68747470733a2f2f692e696d6775722e636f6d2f677746665578712e676966 18:41 <+ChillerDragon> ah yes this! 18:41 <+ChillerDragon> i need that xd 18:41 <+ChillerDragon> with word jump and stuff 18:42 <+ChillerDragon> plugin for neovim 18:42 <+ChillerDragon> oof 18:42 <+ChillerDragon> ah vim too 18:42 <+bridge> [ddnet] vim or neovim 18:42 <+ChillerDragon> pog 18:42 <+bridge> [ddnet] but use neovim 18:42 <+bridge> [ddnet] already 18:42 <+bridge> [ddnet] bruh 18:42 <+ChillerDragon> hehe 18:42 <+bridge> [ddnet] literally drop in replacement 18:42 <+bridge> [ddnet] it will use ur vim config 18:42 <+ChillerDragon> thats what they said about vi too 18:43 <+ChillerDragon> omg vi worst editor btw 18:43 <+ChillerDragon> i rather use notepad than vi 18:43 <+ChillerDragon> or microsoft word 18:44 <+ChillerDragon> u got that cursor plugin? 18:44 <+ChillerDragon> okok ima give it a try 18:44 <+bridge> [ddnet] nah 18:44 <+bridge> [ddnet] i never needed multiple cursors 18:44 <+bridge> [ddnet] u can use vim smarter 18:45 <+ChillerDragon> ok brain 18:45 <+bridge> [ddnet] chiller 18:45 <+bridge> [ddnet] do u use markers 18:45 <+ChillerDragon> if u rename a variable how u do that? 18:45 <+ChillerDragon> no 18:45 <+ChillerDragon> i use like 4 letters in vim 18:45 <+bridge> [ddnet] i use the lsp rename if its in lot of places 18:45 <+ChillerDragon> 3 of them are arrow keys xd 18:45 <+bridge> [ddnet] otherwise i just go to the word 18:46 <+bridge> [ddnet] dw 18:46 <+bridge> [ddnet] and type 18:46 <+ChillerDragon> whats lsp 18:46 <+bridge> [ddnet] or V 18:46 <+bridge> [ddnet] and replace 18:46 <+bridge> [ddnet] language server protocol 18:46 <+bridge> [ddnet] it knows language context 18:46 <+bridge> [ddnet] so u can to variable renames 18:46 <+bridge> [ddnet] clangd is the lsp for c/cpp 18:46 <+ChillerDragon> i manually search with / 18:46 <+ChillerDragon> or use :%s/pat/sub/g 18:46 <+bridge> [ddnet] i use a mapping i have 18:46 <+bridge> [ddnet] that uses FZF 18:46 <+bridge> [ddnet] to search 18:46 <+ChillerDragon> but its so bad 18:46 <+bridge> [ddnet] and it uses ripgrep internally 18:46 <+ChillerDragon> im such a beast with vscode 18:47 <+bridge> [ddnet] https://github.com/junegunn/fzf.vim 18:47 <+bridge> [ddnet] check this 18:47 <+ChillerDragon> ctrl+d is so poggers in vscode 18:47 <+ChillerDragon> and the multi cursor vim plugin remapped it to ctrl+n this fucks my muzzle memory 18:47 <+ChillerDragon> i never needed fuzzyness in my search 18:47 <+ChillerDragon> only for file open 18:48 <+ChillerDragon> but i got my ``vim "$(fzf)"`` alias for that 18:48 <+bridge> [ddnet] i think it just cannot find some rust libraries or some libraries that is needed for rust 18:48 <+bridge> [ddnet] maybe u need some c++ redist 18:49 <+bridge> [ddnet] I would expect everything to be statically linked 18:50 <+bridge> [ddnet] not libc 18:50 <+bridge> [ddnet] if its used somewhere 18:50 <+bridge> [ddnet] i think he needs a c++ redistribuible 18:50 <+bridge> [ddnet] or smth 18:51 <+ChillerDragon> im not sure if making vim work like vscode is even the correct approach 18:51 <+bridge> [ddnet] what 18:51 <+bridge> [ddnet] u make vim work like u want 18:51 <+bridge> [ddnet] thats the point of vim 18:51 <+bridge> [ddnet] + vim keybinds 18:51 <+bridge> [ddnet] yeah, any idea of how that .pyd file is generated? 18:53 <+bridge> [ddnet] @Patiga you need to take special care to statically link msvcrt. if you haven't done that, it's probably dynamically linked 18:54 <+bridge> [ddnet] any idea on how to get more detail from that python error? it doesn't even list the file 18:54 <+bridge> [ddnet] error attribute has no info... 18:55 <+bridge> [ddnet] hm, that is unfortunate, my pyo3 guide didn't mention anything there, it mostly just talked about python version compatibility 18:55 <+bridge> [ddnet] https://pyo3.rs/v0.17.3/building_and_distribution.html#cross-compiling 18:56 <+bridge> [ddnet] hmmm, so all rust libs are statically linked? 18:56 <+bridge> [ddnet] it's windows that is probably not giving more info 18:56 <+bridge> [ddnet] i tried ldd and readelf on the twmap.pyd, but both says unknown format 18:56 <+bridge> [ddnet] can you point `file` at twmap.pyd? 18:57 <+bridge> [ddnet] pure rust libs yes 18:57 <+bridge> [ddnet] by default 18:57 <+bridge> [ddnet] but rust uses libc 18:57 <+bridge> [ddnet] iirc 18:58 <+bridge> [ddnet] rust itself 18:58 <+bridge> [ddnet] `twmap.pyd: PE32+ executable (DLL) (console) x86-64 (stripped to external PDB), for MS Windows` 18:58 <+bridge> [ddnet] you can try using some windows tools to inspect it 18:58 <+bridge> [ddnet] dumpbin but is not installed, is in visual studio... 18:58 <+bridge> [ddnet] https://stackoverflow.com/a/64620736 18:59 <+bridge> [ddnet] @Chairn https://aka.ms/vs/17/release/vc_redist.x86.exe 18:59 <+bridge> [ddnet] maybe installing this helps 18:59 <+bridge> [ddnet] https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170 18:59 <+bridge> [ddnet] > The Visual C++ Redistributable installs Microsoft C and C++ (MSVC) runtime libraries. These libraries are required by many applications built by using Microsoft C and C++ tools. If your app uses those libraries, a Microsoft Visual C++ Redistributable package must be installed on the target system before you install your app. The Redistributable package architecture must match your app's target architecture. The Redistributable version mus 18:59 <+bridge> [ddnet] already did 18:59 <+bridge> [ddnet] oh 18:59 <+bridge> [ddnet] no change 18:59 <+bridge> [ddnet] and doesnt work? 19:00 <+bridge> [ddnet] https://doc.rust-lang.org/reference/linkage.html#static-and-dynamic-c-runtimes 19:00 <+bridge> [ddnet] this seems to be the relevant compiler flag which I can enable permanently in a repository like this 19:00 <+bridge> [ddnet] https://doc.rust-lang.org/rustc/codegen-options/index.html?highlight=%2Bcrt-static#target-feature 19:00 <+bridge> [ddnet] the linux twmap packages should still work btw, since they are built in a very compatibility-focused docker, not on arch 19:01 <+bridge> [ddnet] https://www.microsoft.com/en-gb/download/details.aspx?id=48145 19:01 <+bridge> [ddnet] @Chairn and this? 19:01 <+bridge> [ddnet] am I on the right track here @heinrich5991? :) 19:02 <+bridge> [ddnet] target-feature=+crt-static 19:02 <+bridge> [ddnet] `target-feature=+crt-static` 19:02 <+bridge> [ddnet] this is what I was talking about 19:02 <+bridge> [ddnet] it's in your link, so I guess yes 19:02 <+bridge> [ddnet] 👍 19:03 <+bridge> [ddnet] I guess I activate that feature for windows only? 19:03 <+bridge> [ddnet] yes 19:03 <+bridge> [ddnet] a newer version is already installed, cannot proceed 19:03 <+bridge> [ddnet] ah ok 19:03 <+bridge> [ddnet] idk 19:03 <+bridge> [ddnet] trying this, but doesn't output anything interesting 19:03 <+bridge> [ddnet] https://github.com/lucasg/Dependencies 19:13 <+bridge> [ddnet] nvinitx.dll not found 19:14 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/1041053298041573498/image.png 19:14 <+bridge> [ddnet] kinda weird that a module depends on itself, but the path is `C:/Windows/System32` instead of `C:/Windows/system32` 19:16 <+bridge> [ddnet] oh, it contains a comma 19:19 <+bridge> [ddnet] well, even with a comma, python doesn't find it, but the dependency tool doesn't complain anymore... 19:23 <+bridge> [ddnet] @Chairn I published a new version for windows, where I explicitly turned on the static linking, could you please try it out? its version 0.4.2 19:27 <+bridge> [ddnet] same error... 19:28 <+bridge> [ddnet] darn 19:28 <+bridge> [ddnet] do you know a way to get python to be more verbose about tis error? 19:29 <+bridge> [ddnet] I don't 19:29 <+bridge> [ddnet] it's the error from the winapi, likely 19:29 <+bridge> [ddnet] given that it's translated 19:29 <+bridge> [ddnet] there is no more information available 19:30 <+bridge> [ddnet] not sure if you are already on it, but you could install rust and see if that does anything. then you could try if you can manually build it again. if that fails, then I'd blame your setup :d 19:31 <+bridge> [ddnet] but I do really want it to run on any normal setup, sucks that it doesn't yet 19:32 <+bridge> [ddnet] rust is already installed 19:32 <+bridge> [ddnet] but i don't think it tries to load a rust library 19:32 <+bridge> [ddnet] You can also use a winapi monitor to see what dll it's trying to open 19:32 <+bridge> [ddnet] how do i do that? 19:33 <+bridge> [ddnet] I honestly don't know the modern tool for it, but there used to be one literally called API Monitor 19:34 <+bridge> [ddnet] ah, with the cli, i managed to get this: 19:34 <+bridge> [ddnet] `[NOT_FOUND] gdiplus.dll :` 19:34 <+bridge> [ddnet] Most of the development tooling on windows is rotting because it's proprietary garbage 19:40 <+ChillerDragon> /usr/bin/ld.gold: error: /home/chiller/Desktop/git/ddnet/ddnet-libs/png/linux/lib64/libpng16.a(pngtrans.o): requires dynamic R_X86_64_32 reloc which may overflow at runtime; recompile with -fPIC 19:40 <+ChillerDragon> watafek 19:41 <+bridge> [ddnet] dont use bundled libs 19:42 <+bridge> [ddnet] r u shipping it? 19:42 <+bridge> [ddnet] or add -mcmodel=large to CFLAGS 19:43 <+ChillerDragon> yes ima ship dis build 19:43 <+ChillerDragon> how to create proper rls then? :( 19:43 <+bridge> [ddnet] i mean it tells u what to do 19:44 <+ChillerDragon> oke 19:44 <+ChillerDragon> why dont we do that in cmake alr? 19:44 <+bridge> [ddnet] its the libpng 19:45 <+bridge> [ddnet] tbh i guess nobody noticed yet 19:45 <+bridge> [ddnet] the official builds run on a dated linux 19:45 <+bridge> [ddnet] it probs doesnt warn xd 19:46 <+bridge> [ddnet] also i dunno if we use the gold linker tbh 19:46 <+bridge> [ddnet] who uses that xd 19:46 <+bridge> [ddnet] just ship a clang build 19:47 <+bridge> [ddnet] but to whom are u sharing btw? 19:47 <+bridge> [ddnet] if u use a modern linux it might still use a new libc requirement 19:47 <+ChillerDragon> i dont get it i tried this ``CC=clang CXX=clang++ CXXFLAGS=-fPIC CFLAGS=-fPIC cmake .. -DHEADLESS_CLIENT=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DPREFER_BUNDLED_LIBS=ON`` 19:47 <+bridge> [ddnet] u cannot really expect it to just work xd 19:47 <+ChillerDragon> idk i do a github rls for now my main use case is to dl it in github pipeline 19:48 <+bridge> [ddnet] ok 19:48 <+bridge> [ddnet] just make sure to analyse the objects dependencies 19:48 <+ChillerDragon> so i should probably do it on debian instead on arch xd 19:49 <+ChillerDragon> wat are object depdencies 19:49 <+bridge> [ddnet] its not a must have that newer libc is required.. it depends what new features in libc are used in some other libs, e.g. libstdc++ 19:49 <+bridge> [ddnet] i mean the shared object dependecies, the exported symbols basically 19:49 <+bridge> [ddnet] the symbols it needs to resolve 19:49 <+bridge> [ddnet] u know 19:50 <+ChillerDragon> no i dont know 19:50 <+bridge> [ddnet] % objdump -p DDNet git:tmp_alaiasing* 19:50 <+bridge> [ddnet] % objdump -p DDNet 19:50 <+bridge> [ddnet] look for GLIBC 19:50 <+bridge> [ddnet] it should tell ya the versions 19:50 <+ChillerDragon> i don thave DDNet 19:50 <+ChillerDragon> it didnt compile 19:50 <+bridge> [ddnet] bra after u fixed the other shit xD 19:50 <+ChillerDragon> oh wait you talk about compability 19:50 <+bridge> [ddnet] yes 19:50 <+ChillerDragon> yea i wanna get it to compile first 19:51 <+bridge> [ddnet] if u use cmake with env clean the build dir first 19:51 <+ChillerDragon> i dont get why it broke in the first place its not the first time i compile with bundled libs 19:51 <+bridge> [ddnet] else use -DCMAKE_CXX_FLAGS="..." 19:51 <+ChillerDragon> i did clean 19:51 <+bridge> [ddnet] The issue is probably the other way around, the library is compiled without fPIC and you are compiling ddnet with -fPIC 19:51 <+ChillerDragon> did not help 19:52 <+ChillerDragon> so compile with -no-fPIC ? 19:52 <+bridge> [ddnet] ah u compile ddnet? 19:52 <+ChillerDragon> yes 19:52 <+bridge> [ddnet] i said libpng bra 19:52 <+ChillerDragon> idk wat u say 19:52 <+ChillerDragon> so why is libpng bundled withwout fPIC? 19:52 <+bridge> [ddnet] i dunno maybe gcc changed defaults? 19:53 <+bridge> [ddnet] We probably disabled PIC on the official build because of that weird gnome issue where the executable didn't appear executable 19:53 <+bridge> [ddnet] maybe deen downloaded libpng from some shady place 19:53 <+ChillerDragon> watever PIC is 19:53 <+ChillerDragon> so i need to disable it rite? 19:53 <+bridge> [ddnet] download.chiller.dragon/libpng.a 19:53 <+bridge> [ddnet] position independent code 19:53 <+bridge> [ddnet] give it a try, I might be a little too deep into this bottle of wine but I thiink it sounds sane 19:54 <+ChillerDragon> but how to build ddnet w out pic 19:54 <+ChillerDragon> im about to edit cmakelist 19:54 <+bridge> [ddnet] no- 19:54 <+bridge> [ddnet] -fno-pic 😄 19:54 <+ChillerDragon> ah fno not no-f 19:55 <+bridge> [ddnet] f no pic 19:55 <+bridge> [ddnet] 19:55 <+bridge> [ddnet] sounds like a classic twitch comment 19:55 <+ChillerDragon> ye 19:55 <+ChillerDragon> da bitch didnt help 19:55 <+bridge> [ddnet] rest in peeze 19:56 <+ChillerDragon> why are bundled libs binaries in the first place? 19:56 <+bridge> [ddnet] no-pie 19:56 <+bridge> [ddnet] maybe 19:56 <+ChillerDragon> why not compile from source 19:56 <+bridge> [ddnet] also push them to linker 19:56 <+bridge> [ddnet] to be sure 19:56 <+bridge> [ddnet] okay, i give up on my python twmap binding 19:56 <+bridge> [ddnet] ill try to compile it myself 😄 19:57 <+bridge> [ddnet] `cmake .. -DCMAKE_CXX_FLAGS="-fno-pic" -DCMAKE_C_FLAGS="-fno-pic" -DCMAKE_LINKER_FLAGS="-fno-pie"` 19:57 <+bridge> [ddnet] if it doesnt work im nobo 19:57 <+ChillerDragon> yes u nobo 19:57 <+bridge> [ddnet] ah do they require capitcal letters? i dunno if gcc is strict 19:57 <+ChillerDragon> cuz udk how bash quote work 19:57 <+ChillerDragon> xd 19:57 <+bridge> [ddnet] ah totally soz 19:58 <+bridge> [ddnet] ```bash 19:58 <+bridge> [ddnet] #!/bin/bash 19:58 <+bridge> [ddnet] cmake .. -DCMAKE_CXX_FLAGS="-fno-pic" -DCMAKE_C_FLAGS="-fno-pic" -DCMAKE_LINKER_FLAGS="-fno-pie" 19:58 <+bridge> [ddnet] ``` 19:58 <+ChillerDragon> https://zillyhuhn.com/cs/.1668279388.png 19:58 <+bridge> [ddnet] ah 19:58 <+bridge> [ddnet] then LINK 19:58 <+bridge> [ddnet] not LINKER 19:58 <+ChillerDragon> u dont need da quotes 19:58 <+bridge> [ddnet] confusing namings 19:58 <+ChillerDragon> cuz no space 19:58 <+bridge> [ddnet] You can also do `CXXFLAGS="..." LDFLAGS="..." CFLAGS="..." cmake ...` 19:59 <+bridge> [ddnet] cmake will put them into the correct cmake variables 19:59 <+ChillerDragon> but dat need clean build dir 19:59 <+ChillerDragon> as he said 19:59 <+bridge> [ddnet] yeah i dunno 19:59 <+bridge> [ddnet] i had trouble in past 19:59 <+bridge> [ddnet] with env vars 19:59 <+bridge> [ddnet] but maybe cmake 3.3213131 is just too OP 19:59 <+ChillerDragon> CMAKE_LINK_FLAGS also njownw 19:59 <+ChillerDragon> it is not depending on cmake 20:00 <+ChillerDragon> thats why u nob 20:00 <+ChillerDragon> cmake does not know if u put quotes or not 20:00 <+ChillerDragon> wait 20:00 <+bridge> [ddnet] CMAKE_CXX_LINK_FLAGS 20:00 <+bridge> [ddnet] bra 20:00 <+ChillerDragon> a 20:00 <+ChillerDragon> no i bad 20:00 <+bridge> [ddnet] why do they need CXX before 20:00 <+ChillerDragon> nah ok now im confused xd 20:00 <+bridge> [ddnet] try CMAKE_CXX_LINK_FLAGS 20:00 <+bridge> [ddnet] they biggest trolls ever i swear 20:01 <+ChillerDragon> ez 20:01 <+ChillerDragon> https://zillyhuhn.com/cs/.1668279608.png 20:02 <+ChillerDragon> xxxxxxxxxxxxD 20:02 <+ChillerDragon> watafak 20:02 <+ChillerDragon> last time i had so mouche trouble buildin tw was on my mac when i was 14yo 20:03 <+bridge> [ddnet] try gcc xd 20:03 <+ChillerDragon> u mean clang? 20:03 <+ChillerDragon> i think it uses gcc by default rite? 20:03 <+bridge> [ddnet] no u already used clang 20:03 <+bridge> [ddnet] try whatever u not used 20:03 <+ChillerDragon> i cleaned my build dir 20:03 <+ChillerDragon> xd 20:04 <+ChillerDragon> neither work 20:04 <+ChillerDragon> omg this is taking waaaaaaaaaaaaaay more time than i expected i lost my patience 20:07 <+ChillerDragon> heck not even -DIPO=OFF works 20:07 <+ChillerDragon> and deend used that 20:07 <+ChillerDragon> https://github.com/ddnet/ddnet-scripts/commit/30df2cafb86a49a550690a79adce40e8e0330c45 20:08 <+bridge> [ddnet] @Patiga i manually compiled twmap-py on windows, how do i wrap the dll so that i can import it in python? 20:10 <+bridge> [ddnet] you should only need to rename it from `libtwmap.dll` to `twmap.dll` and place it into the directory where you want to import it 20:10 <+bridge> [ddnet] btw, i think it used twmap-0.9.0 rather than 0.9.1 🙂 20:10 <+bridge> [ddnet] ouch 20:10 <+bridge> [ddnet] yup 20:12 <+bridge> [ddnet] nice find, thanks for notifying 20:12 <+ChillerDragon> gg i compiled libpng without pic and now i got dis bitch ``/home/chiller/Desktop/git/ddnet/src/engine/gfx/image_loader.cpp:241: error: undefined reference to 'png_read_image'`` 20:12 <+bridge> [ddnet] `Compiling twmap v0.9.0` 20:12 <+ChillerDragon> wait -m32 is 32 bit? xd 20:12 <+bridge> [ddnet] yes 20:12 <+bridge> [ddnet] it is 20:13 <+ChillerDragon> ah shit i followed wrong tutorial 20:14 <+bridge> [ddnet] hmm, in site-packages, i create subdir and put it there, and you sure i don't need a __init__.py ? 20:15 <+bridge> [ddnet] oops 20:15 <+bridge> [ddnet] you should really only need the file 20:15 <+bridge> [ddnet] ah no 20:15 <+ChillerDragon> ok libpng fixed 20:15 <+bridge> [ddnet] it does import now 🙂 20:15 <+bridge> [ddnet] I forgot you need to change the file extension to `.pyd` 20:15 <+ChillerDragon> now vulkan bitchin 20:15 <+bridge> [ddnet] nah 20:15 <+bridge> [ddnet] it works as .dll 20:15 <+ChillerDragon> https://zillyhuhn.com/cs/.1668280434.png 20:16 <+ChillerDragon> whatever i got binary yeet on that 20:16 <+ChillerDragon> that was a mess 20:16 <+bridge> [ddnet] does it work as .dll everywhere, or only if it is specifically in the site-packages directory? 20:16 <+bridge> [ddnet] nvm, it does import but doesn't work 20:17 <+bridge> [ddnet] nice chillerdragon 20:17 <+bridge> [ddnet] AttributeError: module 'twmap' has no attribute 'Map' 20:17 <+bridge> [ddnet] now u linux hacker 20:17 <+ChillerDragon> thanks sensei 20:17 <+bridge> [ddnet] i made a `twmap` directory in site-packages and put the dll there 20:17 <+bridge> [ddnet] so import works, but when i use the module, it misses all attributes 20:18 <+ChillerDragon> @deen what is the reason for ddnet-libs being binaries btw? 20:18 <+bridge> [ddnet] could you simply try to put it into a random directory, rename it to `twmap.pyd` and import it in that directory? 20:18 <+bridge> [ddnet] I seem to have horrible stutters for the last couple versions on windows :/ 20:18 <+bridge> [ddnet] can't figure out why for the life of me 20:19 <+bridge> [ddnet] opkay, it works that way 20:19 <+bridge> [ddnet] both import and module use 20:19 <+bridge> [ddnet] nice :+1. 20:19 <+bridge> [ddnet] now, ill try to make it work from everywhere 20:20 <+bridge> [ddnet] okay, just have to put the .pyd in site-packages without a subdirectory named twmap 20:21 <+bridge> [ddnet] nice that it works at least this way, I'll get a win wm again and try to figure out how to get it to work via pip 20:26 <+bridge> [ddnet] nice 64p team cannot be disoplayed in top5 😄 20:26 <+ChillerDragon> o m g! 20:26 <+ChillerDragon> after i spend one hour buildin ddnet i relaized.. 20:27 <+ChillerDragon> ddnet can not even do 0.7 20:27 <+ChillerDragon> ok fuck this good night ima sleep now 20:30 <+bridge> [ddnet] note also that my dll is 12MB while pip .pyd was only 5MB 20:30 <+bridge> [ddnet] so my compilation seems to statically link more stuff 20:30 <+bridge> [ddnet] on pip its without symbols iirc 20:30 <+bridge> [ddnet] you can compile with `--strip` to have a similar file size 20:34 <+bridge> [ddnet] https://www.maturin.rs/distribution.html#cross-compile-to-windows 20:35 <+bridge> [ddnet] seems like I shouldn't cross compile from linux to windows 20:37 <+bridge> [ddnet] it doesn't explicitly state that a natively compiled wheel doesn't require those things to be installed, but I'd assume so since that incompatibility notice is only in the cross-compiling section 20:55 <+bridge> [ddnet] `At global scope: cc1plus.exe: note: unrecognized command-line option '-Wno-nullability-completeness' may have been intended to silence earlier diagnostics` 20:55 <+bridge> [ddnet] I get this warning whenever the compiler prints another error or warning. 20:55 <+bridge> [ddnet] Shouldn't this warning be prevented by using `add_cxx_compiler_flag_if_supported` in CMakeLists? 21:02 <+bridge> [ddnet] no, because the compiler pretends to know all `-Wno-` flags 21:02 <+bridge> [ddnet] for future and backward compatibility 22:24 <+bridge> [ddnet] How to cross compile from linux to windows? I am on arch and installed `mingw-w64-gcc` after that I tried to run `cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/mingw64.toolchain ..` inside a `build4w` folder. But it returns ```You must install Curl/SQLite3/libpng/Freetype/Ogg/Opus/Opusfile/SDL2/Vulkan libraries to compile the DDNet client```. Should do I specify that I only want to compile the server via -DCLIENT=OFF? 22:24 <+bridge> [ddnet] Would that cause any problems to the server executable? 22:27 <+bridge> [ddnet] have you initialized the git submodule? 22:27 <+bridge> [ddnet] `git submodule update --init --recursive` 22:29 <+bridge> [ddnet] ok that was it for that error :D 22:29 <+bridge> [ddnet] now it throws this one ```CMake Error in CMakeLists.txt: 22:29 <+bridge> [ddnet] IMPORTED_IMPLIB not set for imported target "GTest::gtest" configuration 22:29 <+bridge> [ddnet] "Release".``` 22:50 <+bridge> [ddnet] try `-DCMAKE_DISABLE_FIND_PACKAGE_GTest=ON` 22:52 <+bridge> [ddnet] thanks a lot that was it :D 22:58 <+bridge> [ddnet] can you show me the complete error message? 22:59 <+bridge> [ddnet] sure 23:00 <+bridge> [ddnet] https://pastebin.com/kjSTMRKS here 23:02 <+bridge> [ddnet] ty