00:01 < bridge> can you tell me how you did it? 00:02 < bridge> build no 2800 btw!! 00:31 < bridge> i need help with cmake to build the source code 00:33 < bridge> what exactly 00:34 < bridge> apparently it din't recognize visual studio code 00:34 < bridge> even if i had it installed 00:34 < bridge> and oppened in another tab 00:35 < bridge> i looked it up and it said 00:36 < bridge> what did not recognize vscode? 00:37 < bridge> if you mean cmake. vscode does not have an integrated compiler. if youre on windows then use visual studio community 00:39 < bridge> don't! 00:39 < bridge> install compiler and cmake 00:39 < bridge> then you will be able to work with vscode 00:46 < bridge> ik msvc is bad. but its easier xdd 01:01 < bridge> on windows you can ofc use visual studio or any other IDE, you'd just want the visual studio build tools 01:02 < bridge> ??? 01:02 < bridge> don't use vscode because it doesn't come with a compiler? 01:02 < bridge> thats not what i mean xddd 01:02 < bridge> oh wait i just reread that :kek: 01:02 < bridge> cmake-gui doesnt work for vscode right? 01:03 < bridge> ? 01:03 < bridge> wdym 01:03 < bridge> @blaiszephyr get back to work 01:03 < bridge> u 01:03 < bridge> its 3 am @reitw :( 01:03 < bridge> 1 am* 01:03 < bridge> 24/24 01:03 < bridge> its 1 am @reitw :( 01:03 < bridge> 7d/7 u should be 01:04 < bridge> on windows you can ofc use vsc or any other IDE, you'd just want the visual studio build tools 01:08 < bridge> but for context to actually answer the question: to build the source code on windows you'd want 5 things, an IDE of your choice (you're not forced to use visual studio community no worries), cmake, rust, python, and most importantly the visual studio build tools for c++ 01:08 < bridge> you should probably use msys instead 01:08 < bridge> then you need 1 thing 01:08 < bridge> and some packages 01:08 < bridge> it has cmake plugin to work with 01:08 < bridge> also don't download cmake standalone even if using visu al studio, it comes with it... 01:10 < bridge> I remember it was a real hastle to setup using vscode 01:10 < bridge> huh, TiL, didnt know that actually - i just took my knowledge from when i was doing it and i remember using standalone 01:10 < bridge> nah requires literally 1 click 01:10 < bridge> you did it the silly way :greenthing: 01:11 < bridge> always! 01:12 < bridge> but for context to actually answer the question: to build the source code on windows you'd want 4 things, an IDE of your choice (you're not forced to use visual studio community no worries), rust, python, and most importantly the visual studio build tools for c++ 01:14 < bridge> ig I just haven't compiled ddnet on windows since 2019 💀 01:14 < bridge> good for you btw 01:15 < bridge> but since tw is using cmake there's nothing left to struggle with xd 01:15 < bridge> using bam was kind of adventure 01:15 < bridge> dude bam was so good 01:15 < bridge> still remember that fancy BoToX script to build tw with bam 01:15 < bridge> still is 01:16 < bridge> well in terms of, using it as a build tool for ddnet 01:17 < bridge> only if you have no need to connect it with any other cmake-based project i guess? 01:17 < bridge> i don't remember actually 01:17 < bridge> anyone has timeout on https://heinrich5991.de/teeworlds/maps/maps/ ? 01:17 < bridge> no 01:18 < bridge> no, i can access everything just fine 01:18 < bridge> seems im special then 01:18 < bridge> bruh 01:22 < bridge> ||when are we cooking ddnet 2.0 btw? if i get an ingame ping of "where accounts" one more time, im gonna recreate the definition of a genocide|| 01:22 < bridge> ||when are we cooking ddnet 2.0 btw? if i get an ingame ping of "where accounts" one more time, im gonna recreate the definition of a genocide (INGAME!)|| 01:22 < bridge> haha the edit 01:22 < bridge> :justatest: 01:39 < bridge> ZillyInsta/cfg press t enter votes.cfg 01:40 < bridge> stop using 100500 repos for one purpose xd 01:41 < bridge> Wot 01:41 < bridge> You want to share all my configs in one repo? 01:41 < bridge> That would be a mess 01:42 < bridge> i mean you could place it in zilly-insta itself 01:42 < bridge> so it would be pre-configuried server 01:46 < bridge> No I separate code and configs in my infra 01:46 < bridge> Also my code is aiming to be generic for all and my configs are personal 01:48 < bridge> So you think ddnet at 100tps would feel different? 01:48 < bridge> Do you think ddnet at 100tps would feel different? 01:52 < bridge> ofc 01:52 < bridge> you could make it as generic one but okey xd 05:43 < ChillerDragon> fred do you know/use http://mirrors.ustc.edu.cn ? 05:44 < ChillerDragon> @TsFreddie ^ 06:19 < bridge> no 06:19 < bridge> but isnt all mirrors the same 06:20 < bridge> or were you just default mirrors all the way before because you were privileged to have everything work for you by default. 06:20 < bridge> also http://mirrors.ustc.edu.cn/help/ 06:20 < bridge> just google translate + copy and paste 06:59 < ChillerDragon> looks legit to me but i would feel better if you say they are legit 07:03 < ChillerDragon> i mean can everyone get a .edu.cn domain? if not are all educational institutions trustworthy? Or could this mirror spread malware? 07:32 < bridge> good morning to all but bash devs today 07:32 < bridge> https://open.spotify.com/track/4GBJomKlZNRnODfpL299pw?si=f2a06586cbd24a07 07:32 < bridge> :Guri_vibe: 07:59 < ChillerDragon> axaxaxax 08:00 < ChillerDragon> thanks for the free music dj ryo 08:00 < bridge> hi 08:00 < ChillerDragon> Uwun 08:02 < bridge> https://youtu.be/IcPbmPM7epY?si=0TZQr86NaY9avtks 08:03 < ChillerDragon> HQ audio 08:03 < ChillerDragon> pog 08:04 < bridge> owon 08:04 < bridge> hi 08:05 < bridge> go sleep 08:05 < bridge> :owo: 08:07 < bridge> :owo: 08:38 < ChillerDragon> jopsti the cursed c++ code u know what its for? 08:38 < ChillerDragon> https://github.com/ddnet/ddnet/blob/225b729199586346be3b0549dc56742136bcdbef/src/game/server/gamecontext.cpp#L154-L155 08:39 < ChillerDragon> i am facing issues with registering rcon commands in the gamecontroller because it gets deleted on map change and the command callbacks stay registered but then point to invalid memory 08:42 < bridge> it just creates a new and fresh gamecontext 08:43 < bridge> at the existing memory 08:44 < ChillerDragon> yes but why 08:44 < ChillerDragon> to keep pointers valid? 08:44 < ChillerDragon> or is it another reason 08:45 < ChillerDragon> I think we need the same hack for gamecontrollers as well 09:02 < bridge> that is valid syntax tf? 09:02 < bridge> Gm ☕ 09:02 < ChillerDragon> average C++ code 09:05 < bridge> Yeah that's the part I dislike 09:05 < ChillerDragon> yes so u must be pro at it 09:05 < bridge> It has quite some side effects 09:06 < ChillerDragon> anyways i think the hack does not work for controllers because its not always recreating it might also be a different controller 09:06 < bridge> I'm getting CGameWorld flashbacks 09:06 < bridge> Yeah dunno. Just don't touch it xdd 09:06 < ChillerDragon> i need to fix a bug 09:06 < bridge> Yeah check If constructor is called 09:06 < ChillerDragon> i think vanilla has the bug too o.O 09:06 < bridge> Chiller check #showroom 09:06 < bridge> Ez 09:07 < bridge> Raud damit. Spill the beans 09:07 < bridge> Raus damit. Spill the beans 09:07 < bridge> Ask matricks if he can give me teeworlds repo 09:08 < bridge> ok 09:08 < bridge> Thx 09:08 < bridge> @mtrcks give jupsti tw repo pls 09:08 < bridge> Thanks 09:08 < ChillerDragon> +1 09:09 < ChillerDragon> no trol jopsti is pro allowing him to merge tw prs too would be epic 09:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1196376737286729769/image.png?ex=65b767a9&is=65a4f2a9&hm=5f4284f29ccd30d04571b36b9173d838788a77be9093f44c5becf4ddbc422735& 09:54 < bridge> damn 09:59 < bridge> @everyone 09:59 < bridge> discord.gg/sexynude join baby🍑 10:22 < bridge> when ddnet in edlang? :poggers2: 10:23 < bridge> Do you use this one library you recently shared to show these nice errs? 10:27 < bridge> Looks beautiful what's it called? 10:32 < bridge> yes 10:32 < bridge> ariadne 10:33 < bridge> https://github.com/zesterer/ariadne 10:33 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1196386599420842044/example.png?ex=65b770d9&is=65a4fbd9&hm=674fb6b07401a065097ce4e58194ecb180e5808a85a727fa05d2577b2e74bd2c& 10:33 < bridge> their example 10:33 < bridge> xD 10:35 < bridge> do u know any good books/articles about compilers, assembly and stuff? :justatest: 10:41 < bridge> xd 10:41 < bridge> dragon book 10:41 < bridge> idk 10:59 < bridge> ah its rust ;( 10:59 < bridge> ah its rust only ;( 11:50 < bridge> hellooooooooo thereeee 11:51 < bridge> my server is empty af all the time, i want to add a bot to be always present 11:52 < bridge> or maybe 3 11:58 < bridge> money money money 12:02 < bridge> Ask chiller - He loves taking about His ~~illegally scripted Bots~~ Server Bots 12:02 < bridge> illegally ? 12:03 < bridge> how can a cute tee bot be illegal ? 12:06 < bridge> where in the code, a new tee be made ? 12:10 < bridge> tee factory 12:11 < bridge> If bots in players list, then this will be illegal, I think 12:15 < ChillerDragon> @mamad_melanin have a look at ``dbg_dummies`` 12:18 < bridge> can i control the debug dummies ? 12:19 < bridge> i want to add a player to the server and control it 12:20 < bridge> your server will stay empty in the list, it your goal is to announce them as players so your server will go up in the list. that's not allowed and they have to be excluded. 12:20 < bridge> like a shop kipper or a god who chats to other players and guide them or something 😂 12:21 < bridge> your server will stay empty in the list, if your goal is to announce them as players so your server will go up in the list. that's not allowed and they have to be excluded. 12:21 < bridge> it will be awsome if i learn both sides 12:22 < bridge> https://www.teeworlds.com/?page=docs&wiki=rules/server_rules 12:22 < bridge> for start how can i add a player to server and announce it as a real player 12:23 < bridge> it will be on lan of course 12:23 < bridge> that's what we're trying to say you mustn't 12:23 < bridge> @0xfaulty also for you, since I think your max clients amount is wrong 12:24 < bridge> the players in game will see the dummy/bot but they shouldn't appear on the masterseverlist/they shouldn't be registered 12:25 < bridge> i mostly want to add them so if a player joined the server, he won't feel lonely, 12:25 < bridge> that's ok 12:25 < bridge> i don't want to rank up my server 12:25 < ChillerDragon> yes you can control dbg dummies 12:26 < ChillerDragon> might need some code adjustments i think but these are a good starting point 12:26 < bridge> thanks 12:26 < bridge> and what i need to pass when building ? 12:27 < bridge> --dbg ? 12:27 < bridge> find more player to join 😉 12:28 < bridge> ok 😉 12:57 < bridge> <0xfaulty> Why so? I have no server side bots on the map 12:58 < bridge> Ah 13:11 < bridge> i added 13:11 < bridge> ```cpp 13:11 < bridge> #define CONF_DEBUG 13:11 < bridge> ``` 13:11 < bridge> in main.cpp, is dbg_dummies are now enabled ? 13:14 < bridge> U shouldn't do that 13:14 < bridge> what is the right way 13:14 < bridge> Defines in single CPP files can lead to odr issues 13:15 < bridge> Add it to compiler flags 13:16 < bridge> If some header defines it. U can also make it work there 13:16 < bridge> But afair its in cmake 13:17 < bridge> i didn't see a define of it anywhere in the code 13:17 < bridge> how :thonk: 13:21 < bridge> Look how cmakelists did it 13:24 < bridge> Look to find where CONF_DEBUG is normally set 13:30 < bridge> i added this to my cmakelists 13:30 < bridge> add_compile_definitions(CONF_DEBUG) 13:31 < bridge> the debug dummies are weird 13:36 < bridge> it's so cool that there is characters in the game but your sv is empty :poggers2: 13:52 < bridge> ```x86asm 13:52 < bridge> %include 'functions.nasm' 13:52 < bridge> 13:52 < bridge> section .data 13:52 < bridge> msg db 'hey 😏', 0 13:52 < bridge> 13:52 < bridge> section .text 13:52 < bridge> global _start 13:52 < bridge> 13:52 < bridge> _start: 13:52 < bridge> pop rcx 13:52 < bridge> 13:52 < bridge> nextArg: 13:52 < bridge> cmp rcx, 0 13:52 < bridge> jz noArgs 13:52 < bridge> 13:52 < bridge> pop rax ;it uses rax as 1st argument. live with it 13:52 < bridge> call println ;dat's my custom function, it works currectly 13:52 < bridge> 13:52 < bridge> dec rcx 13:52 < bridge> jmp nextArg 13:52 < bridge> 13:52 < bridge> noArgs: 13:52 < bridge> call quit 13:52 < bridge> ``` 13:53 < bridge> 13:53 < bridge> anyone have idea why it couldn't work :owo: 13:53 < bridge> You don't push anything, yet you pop, how come? 13:55 < bridge> it's eeeh. it has to read program arguments 13:55 < bridge> Oh, it's not freestanding? 13:55 < bridge> ``` 13:55 < bridge> _start: 13:55 < bridge> mov rdi, [rsp] ; number of cli arguments 13:55 < bridge> lea rsi, [rsp + 8] ; first arg (*path) 13:55 < bridge> call main 13:56 < bridge> 13:56 < bridge> ; main(argc, argv) 13:56 < bridge> ; rdi, rsi 13:56 < bridge> main: 13:56 < bridge> call alloc_init 13:56 < bridge> 13:56 < bridge> lea rdx, [str_buf] 13:56 < bridge> mov rdi, 169 13:56 < bridge> mov rsi, 16 13:56 < bridge> call int_to_str 13:56 < bridge> 13:56 < bridge> lea rdi, [str_buf] 13:56 < bridge> mov rsi, rax 13:56 < bridge> call println 13:56 < bridge> 13:56 < bridge> mov rdi, rax 13:56 < bridge> call exit 13:56 < bridge> ``` 13:56 < bridge> ```x86asm 13:56 < bridge> _start: 13:56 < bridge> mov rdi, [rsp] ; number of cli arguments 13:56 < bridge> lea rsi, [rsp + 8] ; first arg (*path) 13:56 < bridge> call main 13:56 < bridge> 13:56 < bridge> ; main(argc, argv) 13:56 < bridge> ; rdi, rsi 13:56 < bridge> main: 13:56 < bridge> call alloc_init 13:56 < bridge> 13:56 < bridge> lea rdx, [str_buf] 13:56 < bridge> mov rdi, 169 13:56 < bridge> mov rsi, 16 13:57 < bridge> call int_to_str 13:57 < bridge> 13:57 < bridge> @milkeeycat 13:57 < bridge> thats how i do it 13:57 < bridge> dat.. looks much more complicated than what ive sent xd 13:57 < bridge> https://github.com/edg-l/aoc2023-nasm 13:57 < bridge> check my crate 13:57 < bridge> check my repo 13:57 < bridge> but the thing is, then i change rcx to smth else it works :pepeW: 13:57 < bridge> by then you mean "when"? 13:57 < bridge> but the thing is, when i change rcx to smth else it works :pepeW: 13:57 < bridge> yep xd 13:57 < bridge> do now that syscalls modify rcx 13:58 < bridge> oh.... 13:58 < bridge> > RCX and R11 are clobbered by the SYSCALL instruction itself. From the instruction set reference: after saving the address of the instruction following SYSCALL into RCX). RFLAGS gets stored into R11 13:58 < bridge> ```x86asm 13:58 < bridge> %include 'functions.nasm' 13:58 < bridge> 13:58 < bridge> section .data 13:58 < bridge> msg db 'hey 😏', 0 13:58 < bridge> 13:58 < bridge> section .text 13:58 < bridge> global _start 13:58 < bridge> 13:58 < bridge> _start: 13:58 < bridge> pop rcx 13:58 < bridge> 13:59 < bridge> nextArg: 13:59 < bridge> cmp rcx, 0 13:59 < bridge> jz noArgs 13:59 < bridge> 13:59 < bridge> pop rax ;it uses rax as 1st argument. live with it 13:59 < bridge> 13:59 < bridge> push rcx 13:59 < bridge> 13:59 < bridge> call println ;dat's my custom function, it works currectly 13:59 < bridge> 13:59 < bridge> pop rcx 13:59 < bridge> 13:59 < bridge> dec rcx 13:59 < bridge> jmp nextArg 13:59 < bridge> 13:59 < bridge> noArgs: 13:59 < bridge> call quit 13:59 < bridge> 13:59 < bridge> ``` now works xd 13:59 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1196438472488128642/image.png?ex=65b7a128&is=65a52c28&hm=f8a7dc857cb0a81b245872a9e3e803d925f77eb195489e084b93430fa85ba9bd& 13:59 < bridge> I'm guessing your println does a syscall ruining rcx, case closed 13:59 < bridge> do know that syscalls modify rcx 14:00 < bridge> thanks 😄 14:01 < bridge> you didnt Push rcx before using it in println ? Was that the issue ? (I Just wanna understand it) 14:02 < bridge> theorically rcx is callee saved but sycalls are special 14:02 < bridge> iirc 14:02 < bridge> nvm 14:02 < bridge> rcx is not saved 14:02 < bridge> so he had to push ye 14:02 < bridge> The registers RAX, RCX, RDX, R8, R9, R10, R11 are considered volatile (caller-saved). The registers RBX, RBP, RDI, RSI, RSP, R12, R13, R14, and R15 are considered nonvolatile (callee-saved). 14:03 < bridge> Ah sweet so i did Kind of get it :gigachad: 14:07 < bridge> chat odes "e.g. create a build subdirectory in the source code directory" mean 14:07 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1196440638082797648/image.png?ex=65b7a32c&is=65a52e2c&hm=8a3197e73ab93b93dd9bfa007980ed7c37dc776e58eb4243962618fb679d673d& 14:08 < bridge> because i don't understand it 14:12 < bridge> Create a directory called build 14:12 < bridge> And select that 14:12 < bridge> oh 14:12 < bridge> one was created 14:13 < bridge> That's fine too I guess 14:15 < bridge> is there a way to change the generator in cmake 14:15 < bridge> since i accidently chose the wrong one 14:15 < bridge> nvm i just needed to delete the cache 14:16 < bridge> hey when i tried to configure the file i got this 14:16 < bridge> ``` 14:17 < bridge> CMake Error at cmake/FindSSP.cmake:12 (message): 14:17 < bridge> could not find ssp paths 14:17 < bridge> Call Stack (most recent call first): 14:17 < bridge> CMakeLists.txt:544 (find_package) 14:17 < bridge> ``` 14:17 < bridge> as an error 14:18 < bridge> and i got a lot of 14:18 < bridge> "Could NOT find ---- (missing: ...) 14:18 < bridge> and i got a lot of 14:18 < bridge> "Could NOT find ---- (missing: ...)" 14:18 < bridge> doo i need to install everything that wasn't found? 14:31 < bridge> delete the build directory 14:32 < bridge> Have you downloaded the ddnet-libs and put them in the ddnet-libs folder? 14:33 < bridge> https://github.com/ddnet/ddnet-libs 14:34 < bridge> no din't know that they even existed 14:37 < bridge> why does it show as red? 14:37 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1196447950830841856/image.png?ex=65b7a9fc&is=65a534fc&hm=75f5295e96ec3881f88abe67ce0f49eb5a9bbe6401ff6365ba2b2b1ca933991f& 14:49 < bridge> my first issue in github. yeeey :owo: 14:50 < bridge> now I'm officially helping the community 15:01 < bridge> im not fiding the "game-client" project anywhere 15:01 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1196454132719030292/image.png?ex=65b7afbe&is=65a53abe&hm=ead836cc93f5f91a1645644dec1fac25648e6c825c0fbe97c89c7038fe4eb7f3& 15:02 < bridge> im not finding the "game-client" project anywhere 15:02 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1196454132719030292/image.png?ex=65b7afbe&is=65a53abe&hm=ead836cc93f5f91a1645644dec1fac25648e6c825c0fbe97c89c7038fe4eb7f3& 15:08 < bridge> Now fix it 😏 15:09 < bridge> Isn't it simply called ddnet 15:09 < bridge> idk im not fiding naything 15:09 < bridge> anything* 15:09 < bridge> the hard part for is not fixing it, it's the github. 15:09 < bridge> that the application 15:09 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1196456171964465232/image.png?ex=65b7b1a4&is=65a53ca4&hm=28480802e0628aebfc2d0cf098e33b55de7740d5cde288035aa0c30b5bbe615d& 15:09 < bridge> i have no idea what to doo 15:09 < bridge> the hard part for me is not fixing it, it's the github. 15:09 < bridge> Project explorer 15:10 < bridge> I see 15:10 < bridge> where 15:10 < bridge> BTW the indicator still makes sense for weak bounce 15:10 < bridge> So this isn't a 100% issue 15:10 < bridge> the only thing i see is solution explorer 15:10 < bridge> no project explorer 15:10 < bridge> I dunno. Google 15:10 < bridge> Then that 15:11 < bridge> now what? 15:11 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1196456588630831176/image.png?ex=65b7b207&is=65a53d07&hm=a5c66b63323cc1aa4835a0c045af47b1c347fafee03ebddbaab95419ae53326f& 15:11 < bridge> There is game client 15:11 < bridge> oh im blind 15:11 < bridge> Rest u gotta find out yourself 15:12 < bridge> i have this from the readme.rmd or txt 15:12 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1196456846916063232/image.png?ex=65b7b245&is=65a53d45&hm=0e0e2555a2b2036126e9515f1ea6b626cb2a80794aa3ad7ebc278b4f57df8c4f& 15:13 < bridge> it worked 15:13 < bridge> pog 15:16 < bridge> apparently when chaing the GAME_TICK_SPEED to 25 the air acceleration and the hook timer is still at normal 15:17 < bridge> because it's acting weird for me 15:21 < bridge> @learath2 https://en.wikipedia.org/wiki/Dangling_else 15:21 < bridge> did u know about this 15:26 < bridge> there is also the air controls which seem to be normal 15:26 < bridge> which is pretty weird 15:26 < bridge> Not specifically "dangling else" but I do know of shift reduce conflicts for LR parsers in general 15:35 < bridge> there is two server.h 15:35 < bridge> what is the main difference ? 15:35 < bridge> why does changing the SERVER_TICK_SPEED doesn't change some things like hook timer or air acceleration and max speed 15:38 < bridge> @learath2 do u have a ubuntu at hand 15:38 < bridge> do u know where can i find 15:38 < bridge> ld: cannot find /usr/lib64/Scrt1.o: No such file or directory 15:39 < bridge> ld: cannot find /usr/lib64/crti.o: No such file or directory 15:39 < bridge> ld: cannot find /usr/lib64/Scrt1.o: No such file or directory 15:39 < bridge> ld: cannot find /usr/lib64/crti.o: No such file or directory 15:39 < bridge> ld: cannot find /usr/lib64/Scrt1.o: No such file or directory 15:39 < bridge> ld: cannot find /usr/lib64/crti.o: No such file or directory 15:39 < bridge> in ubuntu 15:39 < bridge> i should setup a local qemu with ubuntu 15:39 < bridge> ci runs ubuntu blegh 15:39 < bridge> I do have an installation of ubuntu. If I can help ;) 15:39 < bridge> @mr.gh0s7 tell me if u find those files 15:39 < bridge> install libc-dev just in case 15:39 < bridge> k lemme reboot into Ubuntu 15:40 < bridge> Nope, soz 15:41 < bridge> is virt-manager the mostl ightweight? 15:41 < bridge> @learath2 do u know a lightweight qemu frontend 15:42 < bridge> gnome-boxes looks like the one requiring least pkgs on my gentoo 15:43 < bridge> no I don't have them 15:43 < bridge> this didn't install them 15:43 < bridge> can u check 15:44 < bridge> I'm searching if they're in a pkg rn 15:46 < bridge> @mr.gh0s7 it would be weird if they arent in ur system tbh 15:46 < bridge> its just they may be in another path 15:46 < bridge> do u have rust 15:46 < bridge> ? 15:46 < bridge> cargo install fd 15:46 < bridge> cd / 15:46 < bridge> fd Scrt1.o 15:46 < bridge> Idk, I always used virt-manager or qemu directly 15:47 < bridge> i guess virt manager it is 15:47 < bridge> yeah theyre in /usr/lib/x86_64-linux-nu 15:47 < bridge> yeah theyre in /usr/lib/x86_64-linux-gnu 15:48 < bridge> no I don't think so should I install it? 15:48 < bridge> dont worry ill just get ubuntu in qemu 15:48 < bridge> xd 15:48 < bridge> ill need it for the future anyway 15:48 < bridge> aaaa 15:49 < bridge> ;) 15:49 < bridge> you dont need a frontend 15:49 < bridge> you can use the built in gtk or sdl windowing 15:49 < bridge> it is the most lightweight 15:50 < bridge> I had ubuntu for a UE5 debbugging session. 15:50 < bridge> I use antiX btw 15:50 < bridge> just start it on the command line 15:51 < bridge> @learath2 why does virt manager pull in pulseaudio 15:51 < bridge> whats the difference between CServer class and IServer class ? 15:51 < bridge> ok ill use qemu from cli 15:53 < bridge> i use windows 15:54 < bridge> i feel like a stranger here 15:54 < bridge> IServer is a interface 15:54 < bridge> u can instantiate a interface directly because its "abstract" 15:55 < bridge> so CServer implements the IServer interface, like a contract 15:55 < bridge> u cant instantiate a interface directly because its "abstract" 15:55 < bridge> i meant cant, was a typo 15:56 < bridge> I was making myself a portfolio website, then I remembered I have nothing to put in one 15:57 < bridge> u do 15:58 < bridge> just in ddnet 15:58 < bridge> you did lot of things 15:58 < bridge> list them 15:58 < bridge> in my case it would be 15:58 < bridge> tbh I don't know what I would put in one either 15:58 < bridge> - Telegun 15:58 < bridge> - Some commands 15:58 < bridge> - Moderate rcon command 15:58 < bridge> - Some fixed here and there 15:58 < bridge> with more detail ofc 15:58 < bridge> Split ddnet into like 10 projects? That's smart 😄 15:58 < bridge> yes 15:58 < bridge> I actually have a massive ddnet pr coming up 15:58 < bridge> alright so seem like the air accel doesn't get affected by SERVER_TICK_SPEED 15:59 < bridge> so you need to change that acordingly 15:59 < bridge> weird 15:59 < bridge> @learath2 make small projects 15:59 < bridge> also you can "half make" interesting projects 15:59 < bridge> like my ryoOS 15:59 < bridge> Ryooos 15:59 < bridge> just showing a bootable OS amazes ppl 16:00 < bridge> dont feel guilty, 80% of ppl dont know how to make even the shit os i did 16:00 < bridge> xd 16:00 < bridge> so its worth it 16:00 < bridge> (percentage invented by me not scientifically accurate, if anyone says no % please) 16:01 < bridge> And the 15% that know how will put you down about it being not that hard yet can't do it themselves 16:02 < bridge> xd 16:02 < bridge> honestly its pretty fun 16:02 < bridge> https://os.phil-opp.com/ 16:02 < bridge> here btw 16:02 < bridge> making the memory allocator was fun 16:02 < bridge> and handling double faults 16:02 < bridge> I messed around with an efi bootloader once upon a time 16:02 < bridge> and learning about triple faults 16:03 < bridge> Then I found refind, it's so good that I didn't mess around with it more 16:03 < bridge> but im waiting for the next version of this tutorial cuz rust now is way better for freestanding 16:04 < bridge> @learath2 does qemu use emptyy space with qcow2 16:04 < bridge> or only used space counts as used 16:05 < bridge> ok looks like it grows and doesnt occupy unused 16:05 < bridge> ❯ qemu-img create -f qcow2 disk.qcow 25G 16:05 < bridge> Formatting 'disk.qcow', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=26843545600 lazy_refcounts=off refcount_bits=16 16:05 < bridge> xd 16:10 < bridge> `qemu-system-x86_64 -enable-kvm -drive file=disk.qcow,format=qcow2 -cdrom ubuntu-22.04.3-live-server-amd64.iso -m 8G -vga qxl` 16:10 < bridge> does this look ok 16:11 < bridge> omg ubuntu has a keyboard identifier 16:11 < bridge> it asks u to press keys 16:11 < bridge> lol 16:11 < bridge> it detected spanish 16:12 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1196471894497579139/image.png?ex=65b7c049&is=65a54b49&hm=ffa3e2564ada2728d1fe4257ebb9d2ca10d04a0a72de203ab6cae86078357591& 16:12 < bridge> so fancy 16:12 < bridge> its been long since i used such new installer 16:15 < bridge> Cool space age tech 16:22 < bridge> is there even a way to change something so that the whole physic system goes at half speed 16:22 < bridge> for my own server 16:26 < bridge> chillerdragon: the key word is message filters 16:26 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1196475614484496454/image.png?ex=65b7c3bf&is=65a54ebf&hm=b0f4c81f855850b8d366f280b8fc2a069d927ec89c0b73f5ca9ccdbf7e433626& 16:27 < bridge> safe rust also guarantees that, I think 16:28 < bridge> can you create an issue? there was a race issue on windows IIRC 16:28 < bridge> I already did, you are about to get there on the backlog 16:33 < bridge> what do you want to do? it's behind cloudflare. so fetching frequently might annoy cloudflare 16:33 < bridge> `/lib/x86_64-linux-gnu/Scrt1.o` 16:33 < bridge> its here in ubuntu 16:33 < bridge> cuz ubuntu is special 16:34 < bridge> ChillerDragon: copyright year doesn't have any legal meaning. you can just remove it 16:37 < bridge> it's good so that everyone only uses the interface and no one looks into the hidden class details 16:37 < bridge> all functions are `extern` by default, dunno why they were marked like that 16:39 < bridge> save the password hashed, not in clear-text 16:41 < bridge> i read the username and passwords from the file and set them to players who are logedin 16:42 < bridge> I'm betting on windows.h 16:42 < bridge> you can pass `warn::Ignore` if you don't like the parameter 16:43 < bridge> I knew it 😄 16:45 < bridge> no. if you have an integer that's not 0, it can be 1, 2, 3, 4, 5, … 16:45 < bridge> so == 1 is not the opposite of == 0 16:50 < bridge> Do u scroll through all the messages since u were online last time? :justatest: 16:52 < bridge> I did \o/ ^^ 16:52 < bridge> did you install `build-essentials`? 16:53 < bridge> yup, thanks 🙂 16:53 < bridge> its build-essential 16:53 < bridge> and it was just in another path 16:54 < bridge> ```rust 16:54 < bridge> #[cfg(target_os = "linux")] 16:54 < bridge> { 16:54 < bridge> let (scrt1, crti, crtn) = { 16:54 < bridge> if file_exists("/usr/lib64/Scrt1.o") { 16:54 < bridge> ( 16:54 < bridge> "/usr/lib64/Scrt1.o", 16:54 < bridge> "/usr/lib64/crti.o", 16:54 < bridge> "/usr/lib64/crtn.o", 16:54 < bridge> ) 16:54 < bridge> } else { 16:54 < bridge> ( 16:54 < bridge> "/lib/x86_64-linux-gnu/Scrt1.o", 16:54 < bridge> "/lib/x86_64-linux-gnu/crti.o", 16:54 < bridge> "/lib/x86_64-linux-gnu/crtn.o", 16:54 < bridge> ) 16:54 < bridge> } 16:54 < bridge> }; 16:54 < bridge> 16:54 < bridge> &[ 16:54 < bridge> "-pie", 16:54 < bridge> "--hash-style=gnu", 16:55 < bridge> "--eh-frame-hdr", 16:55 < bridge> "--dynamic-linker", 16:55 < bridge> "/lib64/ld-linux-x86-64.so.2", 16:55 < bridge> "-m", 16:55 < bridge> "elf_x86_64", 16:55 < bridge> scrt1, 16:55 < bridge> crti, 16:55 < bridge> "-o", 16:55 < bridge> &output_filename.display().to_string(), 16:55 < bridge> you should at least hash the password before saving it to a file. we have the `sha256()` function you could use for that 16:55 < bridge> save the hash, not the password itself 16:55 < bridge> when you want to check whether the password is correct, hash it and compre it to the hash in the fil 16:55 < bridge> when you want to check whether the password is correct, hash it and compre it to the hash in the file 16:55 < bridge> yes. I did some more tests yesterday to make things clear for myself. 16:55 < bridge> In C you can compare pointers to booleans (ints can get you a warning as they do not get interpreted as booleans unless casted or the pointer is null), while on cpp you can't (or that's what I could get from my very limited amount of tests). 16:55 < bridge> Idk for some reason I though every int could magically be a boolean + didn't know that was a pointer. 16:55 < bridge> I just confused some stuff + said something clearly wrong ^^' 16:56 < bridge> in c and cpp u can do if(ptr) 16:56 < bridge> in C it wont work either if u do if(ptr == 1) to check for non-nullability 16:56 < bridge> ptr is not null if it is not 0 16:56 < bridge> yes ofc. that's what I've always done ig. But again, for some reason I though it was the same as ptr == number. which is clearly not 16:56 < bridge> in a binary operation 16:56 < bridge> such as the comparision 16:56 < bridge> x == y 16:57 < bridge> value types are coerced, to a type of one of boths 16:57 < bridge> either typeof(x) or typeof(y) 16:57 < bridge> iitcv 16:57 < bridge> so it will not be coerced to a boolean 16:57 < bridge> iirc 16:58 < bridge> if you want to do the thing you had in mind, you can do 16:58 < bridge> `if((bool)pointer == 1)` 16:58 < bridge> but it'd be pretty unreadable, so don't ^^ 16:58 < bridge> yeah that's why I said "unless casted or the pointer is null", but that's a bit stupid or unreadable as you said 16:59 < bridge> Y not `if(!!pointer)` or `if(pointer)`? 17:21 < bridge> I wanna do a discord status bot for online players and stuff that's frequently updated. 17:22 < bridge> currently not running into any issues, yet. 17:22 < bridge> frequency is like 8 or 16 seconds 17:22 < bridge> every minute is definitely okay, every 5 seconds or so is probably still okay 17:22 < bridge> that's okay 17:23 < bridge> k, thanks for the feedback 17:24 < bridge> also tried locally with a frequency of one second but at some point discord starts to throttle/rate limit my message updates so it's pointless. 17:25 < bridge> every second is probably a bit excessive 17:29 < bridge> i was just wondering why this even implemented that way 17:30 < bridge> what is your proposed alternative? 17:30 < bridge> if it's used for logging only then - just log warn! 17:31 < bridge> the idea was that I also want to use it for tests, and perhaps in the dissector 17:31 < bridge> in tests, I panic 17:31 < bridge> in debug builds, I log 17:31 < bridge> in production builds, I ignore 17:31 < bridge> the dissector thing didn't happen though 17:32 < bridge> debug_assert? 17:34 < bridge> that doesn't seem to solve the problem 17:35 < bridge> I guess I could provide a configuration for the crate instead of a function parameter 17:35 < bridge> since the last use case (wireshark dissector) didn't manifest so far 17:37 < bridge> (it doesn't allow me to distinguish between debug builds and tests) 17:39 < bridge> some fancy macro with #[cfg(...)] debug_assert on panic/ignore case and warn on logging case 17:40 < bridge> as you said 17:41 < bridge> I don't understand your solution 17:42 < bridge> can you make it more obvious for me? 17:43 < bridge> also, I'm gone for now. I'll read your answers though 18:00 < bridge> ```rust 18:00 < bridge> macro_rules! warn_if { 18:00 < bridge> ($cond:expr, $($args: tt)*) => { 18:00 < bridge> if cfg!(feature = "warn_debug_assert") { 18:00 < bridge> debug_assert!($cond, $($args)*); 18:00 < bridge> } 18:00 < bridge> else { 18:00 < bridge> if !$cond { 18:00 < bridge> println!($($args)*); // log::warn!($($args)*); 18:00 < bridge> } 18:00 < bridge> } 18:00 < bridge> } 18:00 < bridge> } 18:00 < bridge> 18:00 < bridge> fn main() { 18:00 < bridge> warn_if!("ddnet" == "5991", "{} is {}", "something", "wrong"); 18:00 < bridge> }``` 18:00 < bridge> something like this 18:00 < bridge> warn_if -> warn_assert* 18:02 < bridge> a programming language with localized errors 😏 18:03 < bridge> i want that for edlang 18:24 < bridge> Watafak why do people use it? Do you have some source for that? 18:47 < bridge> i think cpp has that 18:47 < bridge> or msvc idk 18:56 < bridge> https://en.wikipedia.org/wiki/Spaced_repetition 18:56 < bridge> interesting 19:04 < bridge> @learath2 19:04 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1196515178863415366/GDt6Z8KWMAA4W29.png?ex=65b7e898&is=65a57398&hm=c9d567b829a1aa01ef85de5c269ab4bbf99f9bf612a096d8269b833fc9ae5dcb& 19:06 < bridge> fstd is a 4star programmer. He is the end boss of C 19:06 < bridge> xd 19:16 < bridge> "well, I'm young" 20:00 < bridge> what do you think about pre-commit hooks? 20:09 < bridge> Cool 20:10 < bridge> I had one on my main pc that wouldn't let me commit if I don't fix style 20:11 < bridge> cant it just run prettier itself before commit? xd 20:19 < bridge> i just found out you need an account to play on kog 20:22 < bridge> i always play on those which doesnt requite account 20:40 < ws-client> hi 22:19 < bridge> use anki 🙂 22:20 < bridge> yea, that makes it hard to test. e.g. hard to test that the warnings are emitted, but also even just adding these cfgs for tests (and probably not all tests) 22:21 < bridge> msvc has localized errors, indeed 22:54 < bridge> i don't understand honestly