00:14 < bridge_> i ask whether std string is preferred over c string in new ddnet code, i’m told yes, so i use it and roby says why using std string 00:14 < bridge_> Xddd 00:16 < bridge_> will this change ddnet at any point 00:16 < bridge_> ? Lol 00:17 < bridge_> 🧠 00:17 < bridge_> i mean in any way 00:17 < bridge_> if this update is added into the rendering engine 00:18 < bridge_> if you’re running wayland and have vsync off, sure 00:18 < bridge_> what 00:18 < bridge_> what 00:18 < bridge_> ok cool 04:21 < bridge_> unsure if programs using vulkan will have to explicitly opt into using this present mode. if i know vulkan, which I don’t, I’d say ddnet devs would have to do *something* for it to work ootb. not much 04:22 < bridge_> but vsync off should probably be adequate in a perfect workd 04:22 < bridge_> ld 04:22 < bridge_> -fuse_ld 04:22 < bridge_> :justatest: 04:22 < bridge_> theyre in your walls 04:37 < bridge_> but yeah the present mode isn’t new just mesa’s wayland implementation 05:03 < bridge_> ryo i asked earlier but would gentoo be a good pick for me as someone who’s only ever used arch long-term 05:03 < bridge_> i still haven’t decided what to put on my new pc. not finished yet 05:03 < bridge_> i guess i should ping so u don’t miss it again. sorry if this wakes you @ryozuki 05:03 < bridge_> i just don’t really know the benefits of using it 07:51 < bridge_> Code wise no. But Wayland users can finally play without forced vsync 08:30 < bridge_> pov: wayland users immediately after not having to play with mars rover input delay 08:30 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144519129513074718/aua.mp4 09:01 < bridge_> people have different opinions. We use c-strings exclusively in DDNet afaik 09:07 < bridge_> 1. bragging rights against arch users, they cant win against gentoo :BASED: 09:07 < bridge_> 2. USE flags are awesome, and u can only rly do that due to compiling everything, you get to decide whats included when compiling a package, this allows fine tuning 09:07 < bridge_> 3. u also fine tune ur own kernel, cant beat that 09:07 < bridge_> 4. u can choose to opt out of systemd 09:07 < bridge_> imho if u have a good cpu, go for it 09:08 < bridge_> im scared 09:09 < bridge_> is my cpu gonna catch fire from compiling? :justatest: 09:09 < bridge_> no 09:09 < bridge_> i say good cpu so u dont wait an eternity 09:09 < bridge_> u sure? 09:09 < bridge_> well if u dont have a proper cooling setup idk 09:09 < bridge_> i went through this summer just fine 09:10 < bridge_> my 5800x is hot tho 09:10 < bridge_> :justatest: :justatest: 09:10 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144529210921189497/image.png 09:10 < bridge_> ok that cpu is slow 09:10 < bridge_> 2ghz right 09:10 < bridge_> xd 09:10 < bridge_> 2 of em 09:10 < bridge_> 2.5ghz xd 09:10 < bridge_> yeah u got 2 but 09:11 < bridge_> my 5800x is faster 09:11 < bridge_> ik xdd 09:11 < bridge_> 16 cores at 3.8ghz, 4.7 at turbo 09:11 < bridge_> .... 09:11 < bridge_> that equates to $9999 09:11 < bridge_> not rly 09:11 < bridge_> 211€ 09:11 < bridge_> rn 09:11 < bridge_> pretty nice value 09:11 < bridge_> ok 09:12 < bridge_> how long does it take you to compile ddnet on release with make -j$(nproc) ? 09:12 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144529600081318009/image.png 09:12 < bridge_> my i5 m520 2.67ghz 2 cores is better 09:12 < bridge_> its rly cheap 09:13 < bridge_> i use ninja 09:13 < bridge_> ah 09:13 < bridge_> which is like that cmd but a bit better 09:13 < bridge_> iirc it takes 20 seconds 09:13 < bridge_> on clean release 09:13 < bridge_> waaat 09:13 < bridge_> i compile in the morning 09:13 < bridge_> i test in the night 09:14 < bridge_> so compiling is the same as building in vscode right 09:14 < bridge_> you can build in vscode wtf? 09:14 < bridge_> sorry 09:14 < bridge_> visual studio 09:14 < bridge_> ah yea 09:14 < bridge_> intuitive naming ik 09:15 < bridge_> those are worlds apart xdd 09:15 < bridge_> Is that a joke? What kind of CPU do you have where building DDNet takes hours? 😄 09:16 < bridge_> just a joke. takes like 5-10 min for a complete release buiold 09:16 < bridge_> just a joke. takes like 5-10 min for a complete release build 09:16 < bridge_> That sounds wrong too, it should be much faster 09:16 < bridge_> so i start the build then i go eat and then come back xd 09:16 < bridge_> k lemme time it 09:16 < bridge_> What CPU do you have? 09:16 < bridge_> . 09:17 < bridge_> 23.107s 09:17 < bridge_> it takes me 09:17 < bridge_> FFR 09:17 < bridge_> let me try clang 09:18 < bridge_> 21.016s 09:18 < bridge_> clang is faster 09:19 < bridge_> @jupeyy_keks whats ur rust question 09:19 < bridge_> he said this @deen 09:20 < bridge_> @teero777 whats ur ram 09:20 < bridge_> i still have yet to test 09:20 < bridge_> 32 gigs ddr3 09:20 < bridge_> ddr3 09:20 < bridge_> im on an old server pc 09:20 < bridge_> u live a decade ago 09:20 < bridge_> ddr ace 3 09:20 < bridge_> .......... 09:21 < bridge_> Yeah, that's from 2007, sounds fine, my bad 😄 09:22 < bridge_> k maybe i overestimated a little bit. 09:22 < bridge_> cmake takes 22 sec. make with 8 cores takes 3:42 sec 09:23 < bridge_> i dunno if ninja is faster 09:23 < bridge_> that's not a from-scratch build probably, but fine anyway 09:23 < bridge_> my server is better :justatest: 09:23 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144532569682083910/image.png 09:23 < bridge_> just git clone and compile 09:24 < bridge_> not reading allat 09:24 < bridge_> what is something you dislike about it? xdd 09:25 < bridge_> nice question 09:25 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144532890751881286/image.png 09:25 < bridge_> @jupeyy_keks slow compile times is the main dislike 09:25 < bridge_> hmm 09:26 < bridge_> faster than my server which builds the official ddnet releases. It takes 7 min from scratch 😄 09:26 < bridge_> whish more nightly stuff got in to stable 09:26 < bridge_> but also rust needs to be aware of possible feature bloat 09:26 < bridge_> which is c++ bane 09:26 < bridge_> ahah if you have slow compile times with rust then i wont even be able compile in my lifetime xd 09:26 < bridge_> i mean 09:26 < bridge_> rust is not that far off c++ 09:26 < bridge_> but i mean on big projects 09:27 < bridge_> ddnet 21s compile includes rust btw 09:27 < bridge_> how many of those 21 secs are lost because of rust? 09:27 < bridge_> how many of those 21 secs are there because of rust? 09:28 < bridge_> this is probs my thing, together with backward compability 09:28 < bridge_> 09:28 < bridge_> would be nice if they simply do breaking changes if it's a clear improvement over old behavior... 09:28 < bridge_> 09:28 < bridge_> Software simply is never perfect 😄 09:28 < bridge_> im gonna continue writing my image splitter 09:28 < bridge_> rust takes 5s 09:28 < bridge_> :o 09:28 < bridge_> remove rust to improve compile times! 09:29 < bridge_> @deen do u use ccache? 09:29 < bridge_> ryu compiling rust: 09:29 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144534001747497091/maneuver.png 09:30 < bridge_> no 09:30 < bridge_> How do you clean the Rust part btw when building DDNet? `ninja clean` doesn't seem to work? 09:31 < bridge_> i remove all 09:31 < bridge_> folder 09:31 < bridge_> but its true it depends if rust cached the dep download 09:31 < bridge_> it may change 09:31 < bridge_> my result is without download 09:32 < bridge_> aka cached deps downloads, but deps get compiled 09:32 < bridge_> my ddnet rust version is pretty slow in compiling xD 09:32 < bridge_> 09:32 < bridge_> On a skylike i7 (4 cores) it takes around: 09:32 < bridge_> 2 minutes lmao 09:32 < bridge_> 09:32 < bridge_> wasm modules are heavy, but on the other hand u can do hot reloading.. that's cool, and your wasm modules ofc don't trigger a recompile in the actual software 09:35 < bridge_> The libddnet_engine_shared.a is Rust? It's blocking the build for a while actually, interesting 09:35 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144535432944685096/Screenshot_2023-08-25_at_09.34.45.png 09:35 < bridge_> Other huge files: editor.cpp, graphics_threaded.cpp 😄 09:36 < bridge_> vulkan should be the biggest code wise.. but i guess it never really blocks anyhting until linking ^^ 09:36 < bridge_> i think #7023 is nerfing editor.cpp by a lot 09:36 < bridge_> https://github.com/ddnet/ddnet/pull/7023 09:40 < bridge_> @ryozuki do you have stats about top10 slowest package compiling in your gentoo setup? 😄 09:40 < bridge_> Where is `g_pData->m_aSprites[SPRITE_EXAMPLE].m_pSet->m_Gridx` defined? I tried searching m_Gridx but I didn't get any definitions. 09:41 < bridge_> llvm 30 mins, firefox 14 mins 09:41 < bridge_> nodejs 11 mins 09:43 < bridge_> src/game/generated/client_data.h 09:43 < bridge_> or you mean the python code that generates it? 09:43 < bridge_> @_voxeldoesart 09:43 < bridge_> class SpriteSet in datasrc/content.py 09:44 < bridge_> Ahh 09:44 < bridge_> Just need to borrow things to make my slicer as accurate as possible 10:04 < bridge_> did u install debian 12 from scratch 10:04 < bridge_> or upgrade 10:08 < bridge_> what are you running on that server that would take up 64gbs of ram :monkaStop: 10:09 < bridge_> upgrade 10:09 < bridge_> ddnet servers 10:10 < bridge_> when give ddnet github CI 10:11 < bridge_> I would have but ci is insecure 10:11 < bridge_> wild fred appears 10:11 < bridge_> hi 10:11 < bridge_> u not at work? 10:12 < bridge_> i am 10:12 < bridge_> anything else wouldn't be you 😉 10:12 < bridge_> :justatest: it's 4pm on a friday 11:20 < bridge_> man, I'm too lazy to update this 11:20 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144561900588380231/image.png 11:31 < bridge_> I've seen that too. But for me it only affected old versions 11:31 < bridge_> Which makes the warning completely useless xd 11:31 < bridge_> :brownbear: 11:32 < bridge_> i'm hungry 11:32 < bridge_> In Germany supermarket there is asia week currently xd 12:16 < bridge_> Hungy 12:46 < bridge_> I tried. didn't like it 12:47 < bridge_> First time in my life i tried mochi. I don't really like sweets, but generally the mango creame was good xd 13:15 < bridge_> does data_sizes mean sizes of compressed or decompressed data_items in .map files? :thonk: 13:17 < bridge_> if you're referring to this: https://github.com/heinrich5991/libtw2/blob/2f487851a1ef959c3f6c101f1f11ac47e2760600/doc/datafile.md 13:17 < bridge_> then `_data_sizes` are the uncompressed ones 13:17 < bridge_> PR welcome 13:17 < bridge_> thanks 🙂 13:35 < bridge_> Was pretty confused at 1st to not see syslog file on deb12 13:35 < bridge_> But they removed the package for a good reason 13:35 < bridge_> Just, fuck systemd 13:44 < bridge_> Aha, a connoisseur 14:13 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144605422817394869/IMG_20230825_201224_856.jpg 14:14 < bridge_> tf 14:21 < bridge_> ? 15:09 < bridge_> it sfollowing me 15:09 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144619513397117078/rust_pepega.mp4 15:09 < bridge_> its following me 15:09 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144619513397117078/rust_pepega.mp4 15:31 < bridge_> Coz rust good :gigachad: 16:00 < bridge_> he sounds fucking annoying to have a conversation with 16:01 < bridge_> i like watching his stuff from time to time, he's a big time rust enjoyer 😄 16:02 < bridge_> rust fan 16:02 < bridge_> vs javascript enjoyer 16:02 < bridge_> rust is an awesome language i wanna get into more, so im just bingewatching random stuff while playing lol 16:05 < bridge_> how is it awesome 16:05 < bridge_> I like it because it allows me to write fast code without memory unsafeties 16:06 < bridge_> i guess that makes sense 16:08 < bridge_> Js garbage 16:09 < bridge_> nuh uh :gigachad: 16:10 < bridge_> Uh huh 16:18 < bridge_> I wanna learn typescript one day 🙂 16:19 < bridge_> U better dont 😦 16:20 < bridge_> Spicy js 16:25 < bridge_> :justatest: 16:26 < bridge_> You can learn it in one day 16:26 < bridge_> doubt 16:27 < bridge_> There're few basic types: number, string, boolean. Use type instead of interfaces 16:27 < bridge_> Dats it :santatrollet: 16:30 < bridge_> ur opinions are killing me 16:33 < bridge_> Its hard to realize that js bad when ure js andy 16:33 < bridge_> I think this starts to fall under the "no lazy negativity" rule, please don't do that 16:34 < bridge_> I can do not lazy 16:34 < bridge_> not lazy is okay 16:34 < bridge_> i'd say typescript feels more like (idiomatic) rust than it feels like cpp 16:34 < bridge_> But it wasn't negativity 16:35 < bridge_> > Js garbage 16:35 < bridge_> > js bad 16:35 < bridge_> > Its hard to realize […] when ure js andy 16:35 < bridge_> im using typescript btw 16:35 < bridge_> not js 16:36 < bridge_> I cant say what i think about programming language? 16:36 < bridge_> you can't make lazy negative statements, yes 16:36 < bridge_> you can make non-lazy negative statements, lazy positive statements or non-lazy positive statements 16:36 < bridge_> Ok, ill make a research in this field 16:36 < bridge_> the last one wasn't about a programming language btw 16:37 < bridge_> javascript contains of the two worst things: 16:37 < bridge_> java 16:37 < bridge_> script 16:37 < bridge_> why script worst 16:37 < bridge_> scriptlanguages are boring 16:39 < bridge_> https://techcrunch.com/2023/08/23/cloudnordic-azero-cloud-host-ransomware/?guccounter=1 16:39 < bridge_> 16:40 < bridge_> scary 16:51 < bridge_> Oh yeah, it's all coming together. 16:51 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144645105312088114/image.png 17:04 < bridge_> guys new crash dropped 17:05 < bridge_> crashed by saving replay demo while ingame 17:05 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144648850733277325/DDNet_win64-steam_crash_log_2023-08-25_15-58-06_12772_c48d724889c6de248b11be5a0099bdee498f24ec.RTP 17:32 < bridge_> What can I do to fix this on windows? 17:32 < bridge_> ``` 17:32 < bridge_> [build] CMake Error at cmake/FindSSP.cmake:12 (message): 17:32 < bridge_> [build] could not find ssp paths 17:32 < bridge_> ``` 17:33 < bridge_> install ssp on your mingw installation 17:34 < bridge_> ok doesnt exists xd 17:34 < bridge_> but there is a cmake flag to disable it 17:35 < bridge_> ah ok that works 😄 why is the dll not in the repository like with the other dependencies? 17:36 < bridge_> compiler stuff isn't usually in ddnet-libs 17:36 < bridge_> It's in `ddnet-libs` 17:36 < bridge_> maybe it even exists, but can't be found 17:36 < bridge_> What is it used for btw? 17:36 < bridge_> mhh only the dll tho 17:37 < bridge_> is that enough? i guess if the compiler doesnt care xd 17:37 < bridge_> That's all that `FindSSP.cmake` is doing 17:37 < bridge_> I think it's only a transitive dependency from something else 17:38 < bridge_> It's just needed because the client wouldn't launch otherwise 17:38 < bridge_> https://wiki.osdev.org/Stack_Smashing_Protector 17:38 < bridge_> Ah, so it became necessary after enabling the stronger stack protection again 17:39 < bridge_> i guess it's also shipped with mingw? 17:39 < bridge_> i guess our cmake file simply assumes to find it in ddnet-libs 17:40 < bridge_> instead of trying global paths first 17:41 < bridge_> It's not in my MSYS2 17:41 < bridge_> my mingw installation might also just be broken, there are 3 versions (one from haskell, perl and a normal one). Not sure if I ever compiled anything with them 17:49 < bridge_> I tried using the visual c++ compiler instead but now get a linkage error 17:49 < bridge_> ``` 17:49 < bridge_> [build] LINK Pass 1: command "D:/Programs/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.26.28801/bin/Hostx86/x64/link.exe /nologo @CMakeFiles/game-client.dir/objects1.rsp /out:DDNet.exe /implib:DDNet.lib /pdb:D:/Programming/ddnet/build/DDNet.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:windows /SAFESEH:NO /ENTRY:mainCRTStartup ../ddnet-libs/freetype/windows/lib64/freetype.lib ../ddnet-libs/png/windows/lib64/libpng16-1 17:49 < bridge_> [build] ddnet_engine_shared.lib(cxx.o) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in backend_base.cpp.obj 17:49 < bridge_> [build] ddnet_engine_shared.lib(cxx.o) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MT_StaticRelease' doesn't match value 'MTd_StaticDebug' in backend_base.cpp.obj 17:49 < bridge_> [build] LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library 17:49 < bridge_> [build] DDNet.exe : fatal error LNK1319: 2 mismatches detected 17:49 < bridge_> ``` 17:49 < bridge_> Maybe there is a difference between the amd64_x86 and x86_amd64 versions? I think I'm just gonna give up xd 17:51 < bridge_> Should be the same as this, although the original message was deleted: https://discord.com/channels/252358080522747904/293493549758939136/1137805843618877510 17:52 < bridge_> > Can you try with debug/release mode instead (whatever one you are not currently using). 17:57 < bridge_> Ah yeah makes sense, somehow only the release mode compilers are selectable (they are named `Visual Studio Community 2019 Release - x86_amd64` etc), not sure if they can still compile in debug mode but at least selecting it in cmake doesnt work 18:03 < bridge_> Seems to work now, but still doesnt compile 18:03 < bridge_> ``` 18:03 < bridge_> [build] D:/Programming/ddnet/src/game/server/scoreworker.cpp(19): error C2280: 'CScorePlayerResult::::(void)': attempting to reference a deleted function 18:03 < bridge_> [build] D:\Programming\ddnet\src\game\server\scoreworker.h(59): note: compiler has generated 'CScorePlayerResult::::' here 18:03 < bridge_> [build] D:\Programming\ddnet\src\game\server\scoreworker.h(59): note: 'CScorePlayerResult::::(void)': function was implicitly deleted because 'CScorePlayerResult::' has a variant data member 'CScorePlayerResult::::m_Info' with a non-trivial default constructor 18:03 < bridge_> [build] D:\Programming\ddnet\src\game\server\scoreworker.h(52): note: see declaration of 'CScorePlayerResult::::m_Info' 18:03 < bridge_> ``` 18:03 < bridge_> Seems not to be a problem with my setup this time though 18:06 < bridge_> Was easy to fix at least, I will create a PR 18:51 < bridge_> I'm almost done! 18:51 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144675457686581329/image.png 19:12 < bridge_> I have a tiny list for how I want to do things with this: 19:12 < bridge_> - Organize each run of the code into its own folder (ex. `Sliced1/*.png`, `Sliced2/*.png`) 19:12 < bridge_> - Somehow manage to input specific folders to slice up (ex. Convert the folder `FolderName` into a sliced package of a similar name) 19:12 < bridge_> - Package into a zip file somehow? 19:16 < bridge_> what are USE flags 19:17 < bridge_> https://wiki.gentoo.org/wiki/USE_flag 19:24 < bridge_> 😃 19:37 < bridge_> @heinrich5991 Progress going great! Should I upload this to its own repository on Github so it can be reviewed properly? (Minus the already split images) 19:37 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144687113820979271/image.png 19:39 < bridge_> looks good 🙂 yes 19:40 < bridge_> Alright setting everything up right now. Currently writing a README and everything like that 19:47 < bridge_> hi guys I don't understand where I went wrong, I wanted to add irc chat, and I don't understand why it doesn't work. 19:47 < bridge_> ``` 19:47 < bridge_> static CListBox s_Chat; 19:47 < bridge_> static int SelectedChat = 0; 19:47 < bridge_> 19:47 < bridge_> s_Chat.DoHeader(&Chat, pChan->m_Topic.c_str()[0] ? pChan->m_Topic.c_str() : "", 12.0f); 19:47 < bridge_> s_Chat.DoStart(12.0f, pChan->m_Buffer.size(), 1, 6, SelectedChat); 19:47 < bridge_> 19:47 < bridge_> for(size_t i = 0; i < pChan->m_Buffer.size(); i++) 19:47 < bridge_> { 19:47 < bridge_> CListboxItem Item = s_Chat.DoNextItem(&pChan->m_Buffer[i], SelectedChat == i); 19:47 < bridge_> 19:47 < bridge_> if(Item.m_Visible) 19:47 < bridge_> { 19:47 < bridge_> SLabelProperties Props; 19:47 < bridge_> Props.m_MaxWidth = 300.0f; 19:47 < bridge_> Props.m_EnableWidthCheck = true; 19:47 < bridge_> UI()->DoLabelScaled(&Item.m_Rect, pChan->m_Buffer[i].c_str(), 50.0f, TEXTALIGN_LEFT, Props); 19:47 < bridge_> TextRender()->TextColor(1, 1, 1, 1, 1); 19:47 < bridge_> } 19:47 < bridge_> } 19:47 < bridge_> 19:47 < bridge_> SelectedChat = s_Chat.DoEnd(); 19:47 < bridge_> ``` 19:47 < bridge_> Where did I do wrong, why when you shift a message to a new line in IRC chat, and you write a new message, it appears where it was shifted and not after the shift. 19:51 < bridge_> You are using font size `50.0f` for the messages, which is way to large 19:51 < bridge_> The row height of the listbox is set to `12.0f` so you can use at most font size `12.0f` as well 19:52 < bridge_> This also doesn't look like current DDNet code. We don't have `DoLabelScaled` anymore 19:52 < bridge_> what does irc mean? 19:52 < bridge_> And we also don't have any `TextColor(1, 1, 1, 1, 1)` function 19:52 < bridge_> https://en.wikipedia.org/wiki/Internet_Relay_Chat 19:53 < bridge_> v 16.9 dunno 19:53 < bridge_> xd 19:54 < bridge_> Well, first upgrade to 17.2, various UI bugs have been fixed in those versions 20:13 < bridge_> Oz vs O3 makes 4.3MByte improvement in rust 20:13 < bridge_> (11MB vs 15.3MB) 20:13 < bridge_> 20:13 < bridge_> that's quite remarkable.. power of static linking xd 20:14 < bridge_> (note i don't really care. just wanted to know bcs we lately talked about it xd) 20:17 < bridge_> `panic = "abort"` another 0.8MB 20:17 < bridge_> :justatest: 20:18 < bridge_> https://github.com/VoxelDoesCode/ddnet-image-slicer 20:18 < bridge_> again this is very beta and is lacking a lot of the QoL features but it works! 20:19 < bridge_> i miiiight have used the ddnet code for how the images are handled because i wanted this to be as accurate as possible to the game 20:21 < bridge_> :justatest: 20:21 < bridge_> @ryozuki i dont even have to ask: 20:21 < bridge_> did you know 20:21 < bridge_> https://github.com/RazrFalcon/cargo-bloat 20:21 < bridge_> xd 20:21 < bridge_> i gave credit! 20:21 < bridge_> ```Teeworlds Copyright (C) 2007-2014 Magnus Auvinen 20:21 < bridge_> DDRace Copyright (C) 2010-2011 Shereef Marzouk 20:21 < bridge_> DDNet Copyright (C) 2013-2022 Dennis Felsing``` 20:22 < bridge_> sorry this is like my first time ever managing something like this- 20:22 < bridge_> my nds client retains the copyrights on the cpp files too i think 20:22 < bridge_> Copyright :cammostripes: 20:22 < bridge_> :justatest: half of this shit isnt even my code 20:23 < bridge_> stackoverflow 20:23 < bridge_> i literally stole content.py and datatypes.py from the game 20:23 < bridge_> :troll: 20:23 < bridge_> borrowed* 20:23 < bridge_> true 20:23 < bridge_> @robyt3 do you like `void CMapView::OffsetEditor(vec2 Offset)` and `vec2 CMapView::GetEditorOffset() const` or `vec2 &CMapView::EditorOffset()` and `const vec2 &CMapView::EditorOffset() const` better? In the second one it seems a bit redundant to have getters/setters but the first on might lead to slightly less readable code (really not a lot though) 20:26 < bridge_> I prefer the first style. I don't think we use the second style anywhere, if I understand this correctly you would use `EditorOffset() = vec2(1, 2)` to set the variable, which looks weird to me 20:28 < bridge_> btw @robyt3 I think getters/setters should be avoided and rather variables exposed directly 20:29 < bridge_> because they don't seem to add value if there's a getter and setter anyway 20:29 < bridge_> vec2 fn() const isn’t same as const vec2 fn() 20:30 < bridge_> o I misread 20:30 < bridge_> ``` 20:30 < bridge_> File .text Size Crate 20:30 < bridge_> 8.4% 16.8% 1.8MiB std 20:30 < bridge_> 7.6% 15.2% 1.6MiB cranelift_codegen 20:30 < bridge_> 2.0% 4.1% 454.9KiB wast 20:31 < bridge_> 1.7% 3.4% 376.8KiB ddnet_playground 20:31 < bridge_> 1.7% 3.3% 369.0KiB regalloc2 20:31 < bridge_> 1.6% 3.2% 355.5KiB tokio 20:31 < bridge_> 1.5% 3.1% 344.8KiB hashbrown 20:31 < bridge_> 1.5% 3.0% 332.2KiB wayland_client 20:31 < bridge_> 1.4% 2.7% 302.9KiB winit 20:31 < bridge_> 1.3% 2.6% 286.9KiB wasmparser 20:31 < bridge_> 1.2% 2.4% 270.4KiB graphics 20:31 < bridge_> 1.1% 2.3% 253.1KiB rustls 20:31 < bridge_> 1.1% 2.2% 247.4KiB quinn_proto 20:31 < bridge_> 1.0% 2.0% 217.2KiB egui 20:31 < bridge_> 1.0% 1.9% 213.8KiB network 20:31 < bridge_> 0.9% 1.9% 209.4KiB rayon_core 20:31 < bridge_> 0.8% 1.5% 169.9KiB ring 20:31 < bridge_> 0.7% 1.5% 166.2KiB tiny_skia 20:31 < bridge_> 0.6% 1.3% 143.6KiB wasmer_types 20:31 < bridge_> 0.6% 1.2% 131.1KiB base_fs 20:31 < bridge_> ``` 20:31 < bridge_> 20:31 < bridge_> wasm so big 20:31 < bridge_> 20:31 < bridge_> the compiler, the parser & regalloc2 alone top 5 xd 20:32 < bridge_> My main argument is still this: https://github.com/ddnet/ddnet/issues/5497#issuecomment-1172656516 20:32 < bridge_> It's easier to change the implementation later if you already have a getter/setter 20:32 < bridge_> For example, adding validation, adding listeners etc. 20:33 < bridge_> At least for the editor I consider it worth it 20:33 < bridge_> They do loke nicer because of the naming convetions 20:33 < bridge_> I would add then when we add validation 20:33 < bridge_> because otherwise they're just dead code, essentially 20:34 < bridge_> the downside of setters/getters is that the code flow is obfuscated 20:34 < bridge_> you don't know if more stuff happens 20:34 < bridge_> and it's annoying to implement them xD 20:36 < bridge_> generally, I think one should write less code if possible 20:36 < bridge_> @heinrich5991 What do you think about the proposed changes in #7008? I would handle errors the same as empty strings, so it doesn't make the usage inconvenient 20:36 < bridge_> https://github.com/ddnet/ddnet/pull/7008 20:37 < bridge_> generally I don't like hiding errors 20:37 < bridge_> haven't reviewed 20:37 < bridge_> sorry, just a knee-jerk reaction 20:39 < bridge_> We still check for errors/empty strings when calling `GetDataString` when it's useful, e.g. when loading an image the filename cannot be empty. It's just that there doesn't seem to be a use case for storing empty strings. 20:40 < bridge_> For example, if loading the map author string fails it can just stay empty, the map shouldn't become unreadable because of this 20:51 < bridge_> map can just become unreadable. we set the standards, maps will adhere to them 21:45 < bridge_> any knows btw? 21:45 < bridge_> anyone knows btw? 21:45 < bridge_> i dont think its steam vulkan this time 23:06 < bridge_> cannot find debug/libddnet_engine_shared.a 23:06 < bridge_> what's up with this again 23:06 < bridge_> rust something 23:11 < bridge_> have you selected the correct rust toolchain 23:11 < bridge_> unlikely 23:12 < bridge_> i just installed thru msys pacman 23:12 < bridge_> rustup show ply 23:12 < bridge_> rustup show pls 23:12 < bridge_> `rustup show` pls 23:12 < bridge_> don't have rustup p sure 23:13 < bridge_> rustup is bad for toolchains on windows when using msys 23:13 < bridge_> different abi 23:13 < bridge_> are you compiling with msvc? 23:13 < bridge_> no 23:13 < bridge_> mingw 23:13 < bridge_> rustup can select gnu toolchain btw 23:13 < bridge_> idk how to make it do that 23:13 < bridge_> and it usually works when i get it thru msys 23:13 < bridge_> so i don't bother 23:14 < bridge_> can you check what you have in build/debug? 23:14 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144741677509120191/image.png 23:14 < bridge_> lol wait why is it a .lib 23:14 < bridge_> tomfoolery 23:15 < bridge_> sounds like you have the wrong toolchain selected? not sure 23:15 < bridge_> yea 23:15 < bridge_> had the same issue with mingw, but with visual c++ it worked 23:15 < bridge_> unfortunately im doing this on boonies internet so it'll be a second before i can check 23:15 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144741905175945256/image.png 23:15 < bridge_> im not switching compilers for one silly thing like this 23:16 < bridge_> they both work for me usually 23:16 < bridge_> i just havent used this laptop to compile ddnet in a while 23:17 < bridge_> not what i was suggesting, but I thought it might help figure out the cause 23:17 < bridge_> sure 23:17 < bridge_> if i had rustip 23:17 < bridge_> if i had rustup 23:17 < bridge_> but i only have rust thru msys 23:18 < bridge_> tommorow im going to try and package the split images into zip files 23:18 < bridge_> nice 23:18 < bridge_> have u decided on a file hierarchy 23:18 < bridge_> how that'd work 23:19 < bridge_> yeah kinda 23:19 < bridge_> well i don't think u can have it loose like kinda makes me think 23:19 < bridge_> the tool and the client both need to be on the same page 23:19 < bridge_> https://github.com/VoxelDoesCode/ddnet-image-slicer 23:19 < bridge_> i saw the repo 23:19 < bridge_> i think i skimmed the readme 23:20 < bridge_> xd 23:21 < bridge_> i despise this step 23:21 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1144743492216705105/image.png 23:22 < bridge_> takes forever on msys for some reason 23:22 < bridge_> why can't you just take that total estimated size measurement and subtract it from the available space on the logical volume the msys folder's on 23:22 < bridge_> shouldn't take that long 23:23 < bridge_> that's probably what it does? 23:23 < bridge_> well i've been here for 5 minute 23:23 < bridge_> s 23:23 < bridge_> and a probe like that should take no time at all 23:23 < bridge_> needs to decompress all the archives for that 23:23 < bridge_> is that what it does in this step 23:23 < bridge_> i feel like it does that per-package 23:25 < bridge_> i also don't remember this step taking that long on arch. they may have to do something fundamentally different cuz of api/fs differences 23:25 < bridge_> but i can't think of what 23:39 < bridge_> unrelated, this string kerfuffle has me wondering if maybe ddnet should just make its own string type 23:39 < bridge_> simple c string wrapper using str_* under the hood but with converters to/from c strings and std strings and whatnot 23:40 < bridge_> none of the drawbacks presented with std string but also makes it mostly as easy to use 23:41 < bridge_> sorta like how there's that RAII-type lock guard thing alongside the non-obj oriented lock stuff. just provide a more cpp friendly way to do it 23:41 < bridge_> That's just `std::string` with extra steps 23:41 < bridge_> i suppose 23:41 < bridge_> then why don't you want me using std string 23:42 < bridge_> In the case were I commented it didn't make sense 23:42 < bridge_> You just pass an extension and store it. To pass it you use a `const char *`, to store it you use a char array. 23:43 < bridge_> For `std::set` it makes sense because you otherwise need to do the char allocation manually 23:43 < bridge_> sure it did, it made it way easier to write. just cuz it has builtin sort fns for std::set doesn't mean that's the only reason to use it 23:44 < bridge_> why is the raii lock provided if it's just std::lock_guard with extra steps? how is it different 23:45 < bridge_> The point is that we want to avoid heap allocations from either `std::string` or using `malloc(DynamicStringLength + 1)` 23:45 < bridge_> In cases where performance is relevant 23:46 < bridge_> And the file callback is going to be called very often 23:46 < bridge_> we should make a smallstring 23:46 < bridge_> a container that when string is <256 lives on stack 23:46 < bridge_> otherwise moves to heap 23:46 < bridge_> llvm does this 23:46 < bridge_> fair enough 23:47 < bridge_> https://llvm.org/doxygen/classllvm_1_1SmallVector.html 23:47 < bridge_> that's dope 23:47 < bridge_> There are reasons to have a string of dynamic length and in that case `std::string` is superior because its a RAII wrapper 23:47 < bridge_> rust has this too btw 23:47 < bridge_> as a crate 23:47 < bridge_> There are reasons to have a string of dynamic length and in that case `std::string` is superior because it's a RAII wrapper 23:47 < bridge_> For filenames you don't really need a `std::string`, because they can all be at most `IO_MAX_PATH_LENGTH` long (in our system) 23:56 < bridge_> i remembered that i check file size so that i can differentiate empty files from those which are too big to load, i think. 23:56 < bridge_> @learath2 @heinrich5991 idk if u have seen but its big 23:56 < bridge_> https://factorio.com/blog/post/fff-373 23:56 < bridge_> and there's no way to do that if i remove the initial check @robyt3 23:56 < bridge_> damn your large embed 23:56 < bridge_> its ok its factorio 23:56 < bridge_> new expansion 23:56 < bridge_> unprecedented 23:56 < bridge_> lol 23:56 < bridge_> factorio is a perfected game 23:58 < bridge_> how dare you interrupt my stream of consciousness 23:59 < bridge_> u know its good when the biggest modder of factorio joined the team 23:59 < bridge_> and made this 23:59 < bridge_> curious, can a repo manager make it so draft PRs either don't trigger CI runs, or if they do they must be trigggered manually? 23:59 < bridge_> seems pointless 23:59 < bridge_> curious, can a repo manager make it so draft PRs either don't trigger CI runs, or if they do they must be trigggered manually by the pr author?