00:17 < bridge> https://tenor.com/view/imnota-cat-fubuki-gif-18573529 01:14 < bridge> should I use underscores or hyphens in crates.io crate names for libtw2: `libtw2-gamenet-ddnet` vs `libtw2_gamenet_ddnet` (https://github.com/heinrich5991/libtw2/issues/53#issuecomment-1930996865) 01:15 < bridge> seems to be inconsistent across existing crates so i would just go with whatever you're using internally 01:19 < bridge> I am trying to reach 0 open issues by ChillerDragon on ddnet/ddnet 01:22 < bridge> Trolling on gh is underrated. I feel I’m the only one who uses memes in prs. Even full time employees do that in Vulkan repos. 01:26 < bridge> Use the same style you used for libtw2 Huffman release. So if one wants to install something from libtw2 it’s always the same schema. Also matching the python package 05:41 < ws-client> @robyt3 https://github.com/ddnet/ddnet/pull/7937#discussion_r1480448905 https://zillyhuhn.com/cs/.1707280845.png 05:41 < ws-client> ah you mean gfx_fullscreen and gfx_borderless got it 08:23 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1204688852690935852/kowdmkjsp1hc1.png?ex=65d5a4ec&is=65c32fec&hm=e27ab1568e1df94fd2438a4869f1c9c5806d82e54fe8067f62c9db2715ffaa91& 09:06 < bridge> lmfao 09:08 < ws-client> https://tube.zillyhuhn.com/videos/users/chiller/ddnet_ui_hotreloading.mp4 09:09 < ws-client> finally got some kind of try and error ui setup 09:09 < bridge> Ahgg i thought youre a terminal enjoyers 09:10 < bridge> *unfriends* 09:11 < ws-client> the clip contains a terminal no? I have been procrastinating to learn tw ui code for too long already i need to learn how to align fakin buttons in the editor 09:19 < bridge> Nice, what did u use? 09:20 < bridge> Or is that just a very fast closing and starting client on ur super fast NASA pc 09:20 < ws-client> no dis ma laptop 09:20 < ws-client> i use dlopen 09:20 < bridge> Pro 09:21 < ws-client> https://github.com/ChillerDragon/ddnet/commit/95695caadde37c4201c01c5c8d08f2068d3cfd8b 09:21 < ws-client> here da code if some1 cares 09:30 < bridge> That looks surprisingly easy 09:34 < ws-client> Yes 09:35 < ws-client> come to C @Jupstar ✪ 09:36 < bridge> omg is it live DDNet UI editing ?! 09:36 < ws-client> yes 09:37 < bridge> is it public or something ? 09:41 < bridge> Sadly I'm not as genius as you 09:43 < ws-client> @diariesvexar here u go https://github.com/ChillerDragon/ddnet_hotui 09:44 < bridge> ❤️ ❤️ ❤️ 09:54 < bridge> ``` 09:54 < bridge> Run scripts/fix_style.py --dry-run 09:54 < bridge> src/engine/client/client.cpp:3894:50: error: code should be clang-formatted [-Wclang-format-violations] 09:54 < bridge> Graphics()->GetCurrentVideoMode(s_aMode, Index); 09:54 < bridge> ``` 09:54 < bridge> is it because of that little space at end of line right ? 09:54 < ws-client> ``scripts/fix_style.py && git diff`` 09:54 < ws-client> tells you what changed 09:55 < bridge> scripts/fix_style.py && git diff 09:55 < bridge> Found no clang-format 10 10:00 < bridge> gotta install it 10:01 < bridge> oh got it 10:03 < ws-client> what distro are you on @diariesvexar ? 10:03 < bridge> I noticed that it's not for windows 10:04 < ws-client> oh windows user 10:04 < bridge> windows 11 64 bit's distro 😄 10:04 < ws-client> then my ui hotreloading does not work for you either i guess 10:04 < bridge> yeah i should test that on my ubuntu 10:24 < bridge> bro can you rename it to `ddnet_hui` ? 10:26 < ws-client> -.- 10:27 < bridge> dont ask why :kek: 10:27 < ws-client> are you hungarian? 10:27 < bridge> ru 10:27 < ws-client> ah wait no 10:27 < ws-client> russian 10:27 < ws-client> confused langs 10:27 < ws-client> thats DICK in russian 10:27 < ws-client> axaxaxax 10:27 < ws-client> idi nahui 10:28 < bridge> :lol: 10:28 < ws-client> csgo russian 101 10:28 < ws-client> in hungarian its kuki 10:28 < ws-client> pronounced "cookie" 10:28 < ws-client> also troll 11:26 < bridge> chillerspammer 11:29 < bridge> ку, сегодня тг раздает Telegram Premium на 1 месяц бесплатно, забрать можешь в этом тг боте: @RussiaThePremium_bot. Можешь не благодарить) 11:31 < bridge> Sus 11:36 < bridge> morning 11:47 < bridge> good morning 12:03 < bridge> Guten Morgen 12:03 < bridge> one of those days 12:03 < bridge> U on phone? 12:03 < bridge> not personally 12:04 < bridge> go to mobile discord and answer to a message, dont release the animation but instead go left and right a few times, the arrow will spin :o 12:05 < bridge> android? 12:05 < bridge> probably them knowing the animation for replying is pretty cool and when people check it out in detail they wanna let people know "we're watching you" 12:05 < bridge> yea but its probably the same on ios 12:05 < bridge> i cant get it to work 12:06 < bridge> unless i misunderstood 12:06 < bridge> Just swipe left and right on a message 3 times without releasing 12:07 < bridge> cant do it 12:07 < bridge> Apple sux 12:07 < bridge> crying 12:07 < bridge> https://tenor.com/view/fart-whatever-bear-vulgar-funny-gif-18107836 12:25 < ws-client> @ryozuki you closed this as completed but linked no pr how do i use the tele tracer? https://github.com/ddnet/ddnet/issues/2415 12:26 < bridge> so funny 12:26 < ws-client> ? 12:26 < bridge> its from the merge to discussions 12:26 < ws-client> how should i know that? 12:27 < ws-client> because its locked? 12:27 < bridge> and before closing a issue had no distinction from done or closed 12:27 < ws-client> is the discussion still open? 12:27 < bridge> idk 12:27 < bridge> im busy 12:27 < ws-client> so the feature does not exist? 12:28 < ws-client> So from what i understood i think https://github.com/ddnet/ddnet/issues/2415 should be reopend 13:07 < bridge> :heartw: 13:07 < bridge> love you guys 13:11 < bridge> love you too fred no homo 13:12 < bridge> :owo: 13:13 < bridge> :owo: 13:46 < bridge> :owo: 14:15 < bridge> what happened to my custom things in ddnet??? after the update my custom cursor in menu is not showing nor is my custom hammer sound? 14:18 < bridge> Did you put then into config directory? 14:18 < bridge> Did you replace files@ 14:18 < bridge> I replaced the sound and the cursor is in \AppData\Roaming\Teeworlds\assets 14:18 < bridge> Did you replace files? 14:19 < bridge> Did you select them? 14:19 < bridge> Then they should still be there 14:19 < bridge> Did you select them ingame? 14:19 < bridge> the cursor is default and the sound is back to default 14:20 < bridge> yo for all 14:20 < bridge> Look if the files are still in appdata 14:20 < bridge> the cursor is still there 14:20 < bridge> who know where my kog? 14:20 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1204778694112055387/Base_Profile_Screenshot_2024.02.07_-_16.19.14.70.png?ex=65d5f898&is=65c38398&hm=ca362d2027f95f7fa320f3a1d7f0d16892ad0221f52fee1bb01c666bac5a3483& 14:20 < bridge> Then select it in game 14:20 < bridge> Next update adds it back 14:20 < bridge> Then u can have community tabs 14:21 < bridge> like kog was removed? 14:21 < bridge> select it in game? 14:21 < bridge> In settings assets 14:21 < bridge> In client 14:21 < bridge> Check the filters on the right 14:21 < bridge> should it be in extras? 14:21 < bridge> i try but nothing 14:21 < bridge> Look at communities on the right side 14:22 < bridge> In appdata is there a ddnet Dir too? 14:22 < bridge> if you are on steam use the nightly build beta 14:22 < bridge> only teeworlds 14:22 < bridge> yep i used steam 14:23 < bridge> Then this should be correct. There should be a game directory 14:23 < bridge> Inside that u put ur cursor game png 14:23 < bridge> right click ddnet in library -> properties -> betas -> select nightly 14:24 < bridge> I'm confused it should not be in assets? 14:24 < bridge> love u 14:24 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1204779802213617725/image.png?ex=65d5f9a0&is=65c384a0&hm=d7198d88737844d3bdec03ef0c4349dd0815370a818136599aac1d5b2d798781& 14:25 < bridge> then favorite the kog community and it will show up on top again 14:25 < bridge> Inside assets there is game. 14:25 < bridge> 14:25 < bridge> But do it that way: go on client-> settings-> assets and press on game then press open directory 14:25 < bridge> yes I'm there 14:25 < bridge> Then the client opens the correct directory for you 14:25 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1204780040282447932/image.png?ex=65d5f9d9&is=65c384d9&hm=cbb9b0ba8b60e690f95a46486ecae19473e83ca990b1f0f55446a2f0b5dcbf77& 14:26 < bridge> GUI cursor must not be in assets 14:26 < bridge> so that has changed 14:26 < bridge> No 14:26 < bridge> then where do I need to put it if not assets? before it was in assets and it worked 14:26 < bridge> It always has been in config Dir directly 14:27 < bridge> That's not true 14:27 < bridge> Then u overwritten the one in data Dir or smth 14:27 < bridge> Just put in appdata/teeworlss 14:27 < bridge> Directly 14:27 < bridge> yeah that doesn't work either 14:28 < bridge> or do I need to restart game for it to work? 14:28 < bridge> Yes 14:28 < bridge> For GUI cursor yes 14:28 < bridge> what about the sound? 14:28 < bridge> Sound must be appdata/teeworlds/audio 14:29 < bridge> Also restart 14:29 < bridge> that may be the problem 14:30 < bridge> there is no audio file 14:33 < bridge> audio file is in steam folder if I move it into appdata it won't get replaced again? 14:48 < bridge> Yes 15:24 < bridge> It's actually seriously annoying that you can't have templates outside headers. How do larger modern C++ projects even handle this? Just mix implementation and interface? 15:25 < bridge> Yes 15:26 < bridge> One of the many reasons templates suck xd 15:26 < bridge> U can also predefine which template types u support 15:26 < bridge> Then u can't implement them in a cpp file 15:27 < bridge> Okay, so the options are still the same as they were since C++03, excellent 15:28 < bridge> ill keep my mouth shut 15:28 < bridge> :owo: 15:29 < bridge> Use modules 15:29 < bridge> You should, made Voxel disappear 15:30 < bridge> That still mixes the implementation and the interface 15:30 < bridge> What a nasty language, the more of it's supposed good features you use the less elegant it becomes 15:30 < bridge> How it should be 15:31 < bridge> As* 15:31 < bridge> I respectfully disagree but refrain from debating as you get way too heated 15:31 < bridge> Writing more code sucks 15:32 < bridge> We see us again after u written a big project 15:32 < bridge> No comment 15:32 < bridge> I have the feeling you heating up right now :lol: 15:32 < bridge> No comment 15:33 < bridge> :ferrisBased: 15:33 < bridge> just found out these ferris emotes 15:33 < bridge> Rust suffers from the same issue of mixing implementation and interface 15:33 < bridge> :ferrisBigBrain: 15:33 < bridge> i like it 15:34 < bridge> c++ headers is double work 15:34 < bridge> also mismatched sigs give bad compile errors 15:34 < bridge> I don't, I won't say my reasons though 15:34 < bridge> i wanna try more zig 15:34 < bridge> can be a good lang to take ideas for edlang 15:35 < bridge> This is a compiler shortcoming, due to the way C/C++ standards define TUs 15:36 < bridge> @learath2 tell me a feature u wanna see in edlang 15:36 < bridge> that is not C style strings 15:36 < bridge> No global variables 15:36 < bridge> and if possible reasonably easy xD 15:36 < bridge> That includes memory allocators 15:36 < bridge> kek 15:37 < bridge> std::future :troll: 15:37 < bridge> Hm, reasonably easy kinda shoots down most of what I would want from a language, but I guess Result/Option would be nice to have 15:38 < bridge> ok tell me it anyway 15:38 < bridge> Forced hierarchy 15:38 < bridge> result option is a thing for sure because i will add ADTs 15:38 < bridge> Coroutines 15:38 < bridge> Breaking it requires unsafe 15:38 < bridge> Const eval 15:38 < bridge> what does it entail 15:38 < bridge> tokio? xD 15:38 < bridge> a runtime in the lang? 15:38 < bridge> like go? 15:39 < bridge> No, keep it simple, let the user handle that part. You just need to provide a pretty interface through which one can suspend and resume execution 15:40 < bridge> well im too in the start to do coroutines 15:40 < bridge> erorrs in question are just function does not match definition 15:40 < bridge> i dont even have allocation or strings 15:40 < bridge> pretty straightforward 15:40 < bridge> declaration 15:40 < bridge> aame 15:40 < bridge> r u drunk? 15:40 < bridge> Hm, how about first class functions instead? 15:41 < bridge> function definition signature doesn’t match its declaration. 15:41 < bridge> idk man, for some reason i always feel c++ errors are so verbose its insane 15:41 < bridge> i say this from experience 15:41 < bridge> my experience 15:41 < bridge> specially coding in llvm 15:41 < bridge> If you wanna see truely insane errors, you need templates 15:41 < bridge> yea u just gotta get used to them 15:41 < bridge> rust errors are so nicely formatted 15:41 < bridge> it sux when u go to another compiler and it gives u a different error for the same thing tho 15:42 < bridge> msvc will phrase things outlandishly differently 15:42 < bridge> and then ur like oohhhh that’s what it meant xd 15:43 < bridge> ``` 15:43 < bridge> vk/core.hpp:26:14: note: candidate: ‘template requires (range) && (is_convertible_v)()))>::type, std::indirectly_readable_traits)()))>::type> >::__iter_traits 26 | bool CheckValidationLayers(R WantedLayers) 15:43 < bridge> ``` 15:43 < bridge> Look at this mess, if only it went back to the original declaration and returned that to me this would be readable 15:43 < bridge> these are the real ones 15:43 < bridge> xdd 15:43 < bridge> or when it tells you T is ineligible and you actually have to find T across 20 lines of error output 15:43 < bridge> this is clearly a rust win and u cant tell me otherwise 15:43 < bridge> `template requires(std::is_convertible_v, const char *>)` like this is the real template declaration 15:44 < bridge> :ferrisAware: 15:44 < bridge> ez lex tbh 15:44 < bridge> It just had to remember the pre-evaluation version and return that 15:44 < bridge> cpp is what happens in my brain. 15:44 < bridge> @learath2 does the standard force to use __ for names? 15:44 < bridge> even if namespaced? 15:44 < bridge> reserved keywords 15:44 < bridge> std::__detail 15:44 < bridge> why __ 15:45 < bridge> it polutes names so much 15:45 < bridge> I don't even remember anymore 15:45 < bridge> std::ranges::__cust_access 15:45 < bridge> implementation details 15:45 < bridge> not api 15:45 < bridge> it doesnt matter 15:45 < bridge> oh wait 15:45 < bridge> i guess u cant hide it nicely like rust pub, pub(crate) ? 15:45 < bridge> Back in my day __ guaranteed that no one would overwrite it, but you aren't even supposed to put stuff in the `std::` namespace 15:46 < bridge> not really 15:46 < bridge> just private members and headers for private api 15:46 < bridge> I guess it's that yeah, just used as a way to scare people so they don't use the STL internals 😄 15:47 < bridge> yes, thats exactly what pub and pub(crate) do!! 15:47 < bridge> xd 15:47 < bridge> congratulations 15:48 < bridge> thanks 15:48 < bridge> next time dont say "not really" 15:48 < bridge> if u dont know rust 15:48 < bridge> not really was in agreement with you 15:48 < bridge> wot 15:48 < bridge> i guess you cant __ 15:48 < bridge> not really 15:48 < bridge> ok double negation sux 15:48 < bridge> its confusing xd 15:48 < bridge> english L 17:08 < bridge> Blockworlds is there. fokko not yet 17:30 < bridge> they already mentioned me 😄 17:30 < bridge> they already contacted me 😄 17:33 < bridge> via state machine transform? 17:34 < bridge> yes, not many other ways to handle this anyway 17:34 < bridge> @learath2 did u search for jobs yet 17:34 < bridge> I've been keeping an eye out but honestly nothing really seems to excite me 17:35 < bridge> come to barcelona and i can recommend u to a rust job maybe 17:35 < bridge> kek 17:35 < bridge> let's found a startup 17:36 < bridge> `auto AvailableExtensions = UTIL_VK_ENUMERATE_HELPER([](auto c, auto d){ return vkEnumerateInstanceExtensionProperties(nullptr, c, d); }, VkExtensionProperties);` 17:36 < bridge> I think there is something in this line that offends every single one of you 17:36 < bridge> no 17:37 < bridge> I guess it lacks nasty nested namespaces everywhere 17:37 < bridge> i am happy you code vk 17:37 < bridge> when 17:37 < bridge> i dunno, today? 17:37 < bridge> Reconsider your stance, that's a macro that wraps a template 17:37 < bridge> the world of startsups is more about charisma than technical skill to secure funding 17:37 < bridge> mh ok, c macros suck, true 17:37 < bridge> we all socially inept 17:38 < bridge> but the fact it's vulkan makes overweights it 17:38 < bridge> but the fact it's vulkan overweights it 17:38 < bridge> I can pretend to not be completely inept for 30 minutes at a time, up to 4 times a day 17:38 < bridge> i utterly dislike lambdas syntax in c++ 17:38 < bridge> or closures 17:38 < bridge> whathever u call that 17:38 < bridge> kk 17:38 < bridge> also auto 17:38 < bridge> well startups are certainly slaves work. but if u have good skill it's probably the only way to work with ppl on a equal level 17:38 < bridge> i think using auto therei s bad practice 17:39 < bridge> in companies u always low hierarchy slave 17:39 < bridge> 😀 17:39 < bridge> it should be used only on left side of assigments of a cast 17:39 < bridge> 😬 17:39 < bridge> imho 17:39 < bridge> I did not want to write `std::vector` 😛 17:39 < bridge> it's the opposite of rust always xd 17:39 < bridge> explicit binds vs implicit 17:40 < bridge> Oh, I could just write `std::vector` 17:40 < bridge> auto is like `let` in 90% of all cases 17:40 < bridge> or do u often type the type of the var in rust? 17:40 < bridge> I'm a type enjoyer but C++ types get insane :/ 17:40 < bridge> yeah but the auto in the closure hides the arg type 17:40 < bridge> so idk the arg type 17:41 < bridge> but i guess ur right idk 17:41 < bridge> yeah, and somehow they name things extra large 17:41 < bridge> don't rust closures also hide this? 17:41 < bridge> yeah 17:41 < bridge> well true, in rust u'd not need to write auto in this case 17:41 < bridge> it would simply know the type from usage of the closure 17:42 < bridge> hello i got a bump buffer 17:42 < bridge> 17:42 < bridge> c++ hold my beer: `std::pmr::monotonic_buffer_resource` 17:42 < bridge> auto kinda implies that this closure is a template? 17:42 < bridge> 17:42 < bridge> what happens if u pass two different typed arguments to the same parameter? 17:42 < bridge> does it create 2 different lambdas? 17:43 < bridge> or does it simply not compile 17:43 < bridge> https://tenor.com/view/sepples-cpp-cplusplus-bjarne-stroustrup-gif-25570450 17:44 < bridge> if it doesnt compile => it's basically like rust 17:44 < bridge> if it compiles => wtf xD 17:46 < bridge> @learath2 i want a anime where the MC codes in rust and the evil is a c++ coder 17:46 < bridge> and the c++ coder uses windows with visual studio 17:46 < bridge> and promotoes closed source 17:46 < bridge> it would be a best seller 17:46 < bridge> the MC uses programming socks 17:47 < bridge> :justatest: 17:48 < bridge> It compiles, it'll create a new lambda 17:49 < bridge> interesting _D 17:49 < bridge> interesting 😄 17:50 < bridge> tis time to pick a physical device 17:50 < bridge> since when r u even coding vk 17:51 < bridge> that's beyond epic 17:51 < bridge> I started a couple days ago, I was messing around with C++20, and thought what better way to learn modern C++ than to also learn vk with it 😄 17:52 < bridge> do u use the cpp headers? 17:52 < bridge> ig uess not 17:52 < bridge> i guess not 17:52 < bridge> I'm just using the C API 17:53 < bridge> vk has a C++ API? 17:54 < bridge> It wraps the C one iirc, but yeah 17:54 < bridge> it also has a rust api a.k.a ash 17:54 < bridge> uh, nice 17:55 < bridge> official? 17:55 < bridge> no 17:55 < bridge> the cpp headers might be official tho 17:55 < bridge> i mean what does official mean 17:55 < bridge> The cpp ones are official indeed, from Khronos 😄 17:55 < bridge> the spec exists only for c api 17:57 < bridge> vulkan is royalty free, everyone can create their own headers and call it official xddd 17:57 < bridge> I'm veeery roughly following vulkan-tutorial.com 17:57 < bridge> "namespace vk::raii 17:57 < bridge> There is an additional header named vulkan_raii.hpp generated. That header holds raii-compliant wrapper classes for the handle types. That is, for e.g. the handle type VkInstance, there's a raii-compliant wrapper vk::raii::Instance. Please have a look at the samples using those classes in the directory RAII_Samples." 17:57 < bridge> this sounds interesating 17:57 < bridge> https://github.com/KhronosGroup/Vulkan-Hpp 17:57 < bridge> i do that too in ddpg, esp for memory management it's nice 17:58 < bridge> @learath2 https://github.com/KhronosGroup/Vulkan-Hpp?tab=readme-ov-file#designated-initializers 17:58 < bridge> 17:58 < bridge> they even start to use c++20 features 17:58 < bridge> ez 17:59 < bridge> ```cpp 17:59 < bridge> VkInstanceCreateInfo CreateInfo{ 17:59 < bridge> .sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, 17:59 < bridge> .pApplicationInfo = &AppInfo, 17:59 < bridge> .enabledLayerCount = static_cast(WantedLayers.size()), 17:59 < bridge> .ppEnabledLayerNames = WantedLayers.size() ? WantedLayers.data() : nullptr, 17:59 < bridge> .enabledExtensionCount = GLFWRequiredExtensionCount, 17:59 < bridge> .ppEnabledExtensionNames = GLFWRequiredExtensions, 17:59 < bridge> }; 17:59 < bridge> ``` 17:59 < bridge> metoo 17:59 < bridge> ez 18:00 < bridge> C had designated initializers since 99 :wechat_cool_guy: 18:01 < bridge> elitest 18:01 < bridge> 18:01 < bridge> but the `.` before the name kinda sucks xd 18:01 < bridge> does it collide with other language features else? 18:02 < bridge> Yes, otherwise it'd be an assigment expression iirc 18:02 < bridge> ah i c 18:02 < bridge> well in rust it's nicer, since u can also leave the assignment away, if the name of the local var matches the one of the struct member 18:02 < bridge> 18:02 < bridge> but in rust u always have to type the name of the struct, that's smth that annoys me too 18:03 < bridge> typescript wins in this case xd 20:51 < bridge> https://rustpython.github.io/ 20:52 < bridge> this allows pyson on wasm 20:52 < bridge> do they have a story for C extension modules written for cpython? 20:53 < bridge> it doesnt strive to be compatible with cpython 20:53 < bridge> > Full Python 3 environment entirely in Rust (not CPython bindings), with a clean implementation and no compatiblity hacks. 20:53 < bridge> most of python's usefulness stems from its wide array of third-party libraries 20:54 < bridge> like numpy etc. 20:54 < bridge> idk tbh 20:54 < bridge> i just shared the project 20:54 < bridge> xD 20:54 < bridge> i never used it 20:54 < bridge> ^^ 20:54 < bridge> pypy got a bigger boost when numpy compatibility was done IIRC 20:55 < bridge> nice, pysoron interpreter to wasm to have pysthoun plugin system inside wasm inside rust