08:28 < bridge> :justatest: 09:19 < bridge> https://github.com/tc39/proposal-structs bruh 12:04 < bridge> hello everyone, I have a problem I was banned until October 19, although I don't have cheats, my nickname is yrasik, my friend also has such a problem, his nickname is Hard, I don't really know Russian and English, please explain if there are mistakes 12:05 < bridge> If you think you was banned by a mistake make a ticket in #✉-create-a-ticket "Ban appeal" 12:06 < bridge> $deepl 12:06 < bridge> Hi! Most of us communicate in English. If you’re having trouble with English, use to help you out. 12:06 < bridge> translator ^ 12:33 < bridge> firefox is enablign v3 manifest 12:33 < bridge> disabling ublock 12:33 < bridge> i recommend chrome users read this https://support.mozilla.org/en-US/kb/switching-chrome-firefox 12:33 < bridge> chrome is enablign v3 manifest 12:34 < bridge> I switch as soon as I see ads 12:37 < bridge> I recommend not to use chrome anymore 12:37 < bridge> that's how google gets you 12:38 < bridge> I use chromium, and I switch to brave or vivaldi as soon as I see ads xd 12:38 < bridge> that simple 12:39 < bridge> Btw for all firefox enjoyers: 12:39 < bridge> https://www.mozilla.org/en-US/security/advisories/mfsa2024-51/ 12:39 < bridge> 12:39 < bridge> Update firefox 12:49 < bridge> done 13:14 < bridge> nice 13:14 < bridge> i upgraded and now it says i don't have internet 13:15 < bridge> damn 13:16 < bridge> Well no internet, no security problems 13:16 < bridge> I'd call it a fix 13:16 < bridge> no errors in console or anything xdd 13:16 < bridge> like wtf? 13:16 < bridge> it just cut me off 13:16 < bridge> imagine i had no package manager! 13:16 < bridge> i would be stranded 13:17 < bridge> https://tenor.com/view/but-you-didnt-have-to-cut-me-off-wouter-de-backer-gotye-kimbra-somebody-that-i-used-to-know-song-gif-18632751 13:19 < bridge> rolling back to 130.0-1 works 13:22 < bridge> fu firefox 13:22 < bridge> didnt firefox had a security breach 13:22 < bridge> oka what browser to use 13:23 < bridge> sadly i can't browse to search for browsers 13:23 < bridge> since i don't have a browser 13:23 < bridge> https://www.youtube.com/watch?v=2RmUMmUj3u8 13:24 < bridge> can someone give me the link for the arch wiki browsers page? 13:24 < bridge> Ez, exactly the one I posted actually 13:24 < bridge> https://wiki.archlinux.org/title/List_of_applications/Internet 13:24 < bridge> okay nice i curl 13:26 < bridge> Is it possible to return a variable which is borrowed and variable which borrows it? 0_o something like 13:26 < bridge> ```rust 13:26 < bridge> let _ = { 13:26 < bridge> let foo = Foo {}; 13:26 < bridge> let bar = &foo; 13:26 < bridge> 13:26 < bridge> (foo, bar) 13:26 < bridge> }; 13:26 < bridge> ``` 13:27 < bridge> watafak is this formatting 13:27 < bridge> Is it possible to return a variable which is borrowed and variable which borrows it? something like 13:27 < bridge> ```rust 13:27 < bridge> let _ = { 13:27 < bridge> let foo = Foo {}; 13:27 < bridge> let bar = &foo; 13:27 < bridge> 13:27 < bridge> (foo, bar) 13:27 < bridge> }; 13:27 < bridge> ``` 13:27 < bridge> no 13:28 < bridge> is there a scenario where you'd need this? 13:28 < bridge> no xd 13:29 < bridge> can u send me a screenshot :justatest: 13:30 < bridge> just use chrome/chromium ig 13:30 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1296072793557041162/image0.png?ex=6710f559&is=670fa3d9&hm=715ea40ff45159c4b6d01a6becd7c0fbdf92d08d5017a5bd8d6ebd6db0b4100d& 13:31 < bridge> they won't support mv2, probably 13:32 < bridge> Well see, brave claims they try to keep the required extensions running 13:32 < bridge> We'll see, brave claims they try to keep the required extensions running 13:32 < bridge> yes, various options using external crates 13:33 < bridge> does chromium still support ublock? 13:33 < bridge> no 13:34 < bridge> was this not just about chrome? 13:34 < bridge> seems like i can still install it on chromium 13:34 < bridge> seems like i can still install it on chromium. no idea if it works tho 13:34 < bridge> How should that work in a safe way? 13:35 < bridge> e.g. https://docs.rs/yoke/0.7.4/yoke/ 13:35 < bridge> but that crate is on the more complicated side 13:35 < bridge> basically, the insight is that this isn't unsafe when the borrowed thing is behind a pointer 13:35 < bridge> ```rs 13:35 < bridge> struct A { 13:35 < bridge> buf: String, 13:35 < bridge> slice: &str, 13:35 < bridge> } 13:35 < bridge> ``` 13:36 < bridge> it's not a problem if the `slice` points into `buf` — moving it around causes no problems because the data `slice` points to is boxed 13:36 < bridge> But mutability sounds like a problem here 13:37 < bridge> yea. these crates will not allow you to modify `buf` without also setting `slice` to a new value 13:37 < bridge> Ah ok, then it makes sense yeah 13:40 < bridge> I also found https://docs.rs/ouroboros/0.18.4/ouroboros/ and https://docs.rs/self_cell/1.0.4/self_cell/ 14:03 < bridge> TIL, neat crate 14:06 < bridge> yup 🙂 14:06 < bridge> @milkeeycat https://bernsteinbear.com/blog/type-inference/ 14:06 < bridge> new blog post 14:07 < bridge> @learath2 I vaguely remember you asking me to ask you for the source of the finish server? 14:07 < bridge> it's not in OCaml, les gooooooooo 14:10 < bridge> https://darcs.net/ 14:10 < bridge> im getting into ocaml 14:10 < bridge> https://ocaml.org/ 14:10 < bridge> ill use it for advent of code 14:19 < bridge> What is a finish server? 14:19 < bridge> Something for ddnet? 14:20 < bridge> stores (community, player name, map name) tuples so that communities can have the "finished" flag in the server browser 14:22 < bridge> ah ok 14:31 < bridge> ocaml partial application seems cool 14:32 < bridge> ```ocaml 14:32 < bridge> utop # let sum2 a b = a * b;; 14:32 < bridge> val sum2 : int -> int -> int = 14:32 < bridge> ─( 14:31:39 )─< command 14 >──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 14:32 < bridge> utop # let sum_with_2 = sum2 2;; 14:32 < bridge> val sum_with_2 : int -> int = 14:32 < bridge> ─( 14:31:44 )─< command 15 >──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── 14:32 < bridge> utop # sum_with_2 4;; 14:32 < bridge> - : int = 8 14:32 < bridge> ``` 14:33 < bridge> (tbh i guess this is my first dive into a functional lang that isnt erlang) 14:33 < bridge> erlang synax is so ugly 14:34 < bridge> ah, looks similar to haskell 14:36 < bridge> i guess, havent rly tried haskell yet 14:36 < bridge> im more interested in ocaml cuz it has llvm bindings and its used a lot in compile dev 14:36 < bridge> im more interested in ocaml cuz it has officialllvm bindings and its used a lot in compile dev 14:36 < bridge> im more interested in ocaml cuz it has officia lllvm bindings and its used a lot in compile dev 14:38 < bridge> ah 🙂 14:39 < bridge> I only know the original rust compiler was written in ocaml 14:39 < bridge> anything else? 🙂 14:43 < bridge> https://github.com/MilkeeyCat/meraki/blob/e4bb8846e8b1e8a82be01f22741cd39852a43f8b/src/passes/macro_expansion.rs#L35-L55 Rust pros, is there a better way to handle opened shared objects? At first I just wanted to make a hashmap which would contain all function from every library but that doesn't really work :justatest: 14:44 < bridge> https://github.com/MilkeeyCat/meraki/blob/e4bb8846e8b1e8a82be01f22741cd39852a43f8b/src/passes/macro_expansion.rs#L35-L55 Rust pros, is there a better way to handle opened shared objects? At first I just wanted to make a hashmap which would contain all functions from every library but that doesn't really work :justatest: 14:45 < bridge> what are you trying to do? 14:45 < bridge> have a vector of what? 14:45 < bridge> https://flint.cs.yale.edu/cs421/case-for-ml.html 14:47 < bridge> this is a article on why ocaml is good for the compiler dev use case 14:48 < bridge> Basically I need a function which would find a C function from all provided shared objects, if that makes sense xd 14:49 < bridge> I don't know about 7, 11 and 12, but I think haskell ticks the rest of the boxes 14:50 < bridge> you want to open dynamic linked libraries from a list of file paths and check whether they have a specific symbol? what should the result be? a list of callable functions? 14:50 < bridge> it has to return only 1 function 14:51 < bridge> what is the input and what is the output? 14:51 < bridge> input is a list of file paths and a function name? 14:51 < bridge> output is that function from one of these libraries? 14:51 < bridge> @milkeeycat if u want a rust solution u can use this https://crates.io/crates/libloading 14:51 < bridge> i used this lib its quite good 14:52 < bridge> we haven't even gotten to the problem statement yet ^^ @ryozuki 14:52 < bridge> I use it already :lol: 14:52 < bridge> just wanted to mention it xd 14:54 < bridge> > In my opinion, the only language that can rival OCaml is Haskell. But OCaml has better performance and it allows mutability in critical parts of your code where it can benefit the performance. 14:54 < bridge> @heinrich5991 a reddit comment i found 14:55 < bridge> seems like haskell and ocaml compete a bit 14:56 < bridge> @milkeeycat what are the inputs and outputs you want to have? 14:59 < bridge> there has to be a function `new` function takes an array of paths and returns Self, and I need a method which will find a function from paths provided in `new` 15:00 < bridge> https://github.com/MilkeeyCat/meraki/blob/12e7f66a6594543b23f8d2b683941cb95e694e50/src/passes/macro_expansion.rs#L18-L25 here, it takes a vec of paths 15:00 < bridge> and that's how I look for a function by name 15:04 < bridge> if you want to return the function, you'll have to also return the library and tie their lifetime together 15:04 < bridge> maybe it's easier to call the function instead of returning it? 15:06 < bridge> Hey rust guyz: 15:06 < bridge> If I call clone on a Vec. Does rust make any assumption about the capacity of the new vector? 15:06 < bridge> rust doesn't give you any guarantees about the capacity 15:06 < bridge> in this case 15:07 < bridge> I'd guess it's the minimum necessary, in practice 15:07 < bridge> So I should better do shrink_to_fit if storage is important? 15:07 < bridge> Yeah that is kinda the question 😄 15:08 < bridge> if you're going to freeze it from now on, maybe it'd be better to get a `Box<[u8]>` instead. that has minimum capacity 15:08 < bridge> if you don't need to modify the old or the old one, then it should maybe be in a `Arc<[u8]>` so you don't have to keep two copies of it at all 15:08 < bridge> i think the cloned is shrinked to fit but no guarantee 15:08 < bridge> Nope, I move the vec over an external API. And they defs don't shrink it 15:10 < bridge> Well I'll test it out anyway, but still interest to know 15:11 < bridge> testing won't help if it's not guaranteed — a guaranteed version would be `Vec::from(Box::from(slice))` 15:12 < bridge> I mean a call to `shrink_to_fit` will most likely fit it or not 15:12 < bridge> yes 15:12 < bridge> that's guaranteed 15:13 < bridge> looking at the source code, the current `Vec::clone` generates the minimum necessary capacity 15:14 < bridge> tja did not help, so it didn't shrink it further at least on my PC D: 15:14 < bridge> I hate chinese fonts 😬 15:14 < bridge> https://github.com/rust-lang/rust/blob/d829780c4e4ef11f5e09c1c5ed9684c12aad7236/library/alloc/src/slice.rs#L136 15:17 < bridge> Ok thx, I'll continue my journey to lower memory consumption bcs of chinese fonts in different ways then xD 15:25 < bridge> @learath2 are u using tokio and any lock in the finish server? 15:26 < bridge> remember that if u hold a lock across .awaits you should use the tokio locks otherwise u should use the std locks 15:29 < bridge> I'd recommend not holding locks accrros await 15:29 < bridge> I'd recommend not holding locks across await 15:30 < bridge> Btw rust warns about this anyway 15:30 < bridge> Even false positive xD 15:30 < bridge> does it? 15:30 < bridge> Yep 15:31 < bridge> You have to scope all locks with {}. 15:31 < bridge> 15:31 < bridge> Else the warning doesn't go away 15:31 < bridge> you shouldn't hold a lock across an await, probably 15:31 < bridge> because `await` sounds like "takes a long time" but locks shouldn't be held for a long time 15:32 < bridge> https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=ce0226eb62e68487a8b13786c480599c 15:32 < bridge> am i confusing things?= 15:32 < bridge> no warnings 15:32 < bridge> yeah, but just in case tokio provides async locks 15:32 < bridge> that future is no longer `Send` 15:32 < bridge> oh 15:33 < bridge> but tokio generally requires futures to be `Send` 15:34 < bridge> ic 15:38 < bridge> You aren't locking anything btw xd 15:38 < bridge> xd 15:38 < bridge> true 15:38 < bridge> lol 15:39 < bridge> i need coffee 15:39 < bridge> still no warn 15:40 < bridge> omg coffee is a good idea 15:43 < bridge> Click on tools, clippy 15:45 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1296106710188167229/image.png?ex=671114f0&is=670fc370&hm=3e453578b37b4be0e77c2033ed9f40022568f2a88ea87e729bfd36ff2aa25c0b& 15:45 < bridge> https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=1b734f56709aa8ec9ea2091c220d2734 15:45 < bridge> u right 15:45 < bridge> please paste text as text ^^ 15:45 < bridge> images are annoying (IMO) and not searchable 15:46 < bridge> well bbut the image gets the point faster 15:46 < bridge> i pasted the playground link 15:46 < bridge> for text gurus 15:47 < bridge> ``` 15:47 < bridge> warning: this `MutexGuard` is held across an await point 15:47 < bridge> --> src/lib.rs:5:9 15:47 < bridge> | 15:47 < bridge> 5 | let x = a.read().unwrap(); 15:47 < bridge> | ^ 15:47 < bridge> | 15:47 < bridge> = help: consider using an async-aware `Mutex` type or ensuring the `MutexGuard` is dropped before calling `await` 15:47 < bridge> note: these are all the await points this lock is held through 15:47 < bridge> --> src/lib.rs:6:14 15:47 < bridge> | 15:47 < bridge> 6 | hello2().await; 15:47 < bridge> | ^^^^^ 15:47 < bridge> = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock 15:48 < bridge> = note: `#[warn(clippy::await_holding_lock)]` on by default 15:48 < bridge> ``` 15:48 < bridge> this is what the text would look like. is that worse than the picture? 15:48 < bridge> the pic has the code on the side 15:48 < bridge> xd 15:48 < bridge> xd 15:50 < bridge> https://without.boats/blog/unpin-cell/ 16:15 < bridge> https://github.com/spiraldb/vortex 16:48 < bridge> Aha, yes, I'll do it when I get home. I work/study outside for the last couple days because I kept getting distracted at home 16:51 < bridge> sounds like a very good idea 🙂 16:51 < bridge> sorry for distracting you 16:52 < bridge> Axum, so yes, I'm using tokio. No I don't need to hold any locks across any awaits. I'll leave handling that sort of synchronization to the db which is almost the only place I'd need to hold a lock across an await anyway 16:57 < bridge> Also I forgot to give y'all extremely useful english words today. ,`pugnacious` = `belligerent` = `combative` 16:57 < bridge> Also I forgot to give y'all extremely useful english words today. `pugnacious` = `belligerent` = `combative` 16:57 < bridge> I knew belligerent 16:58 < bridge> I think it appeard in harry potter? 16:59 < bridge> It also appears a lot in the context of occupation of countries 16:59 < bridge> Let me give you a different one, `opprobrium` = `censure` 17:00 < bridge> I only learned censure a year ago or so 17:32 < bridge> censor 17:32 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1277560661320142858/Heinorich.png?ex=6710d915&is=670f8795&hm=ed05e87497298b2eec261e9e341499c0fa9dea72ec106e11c7ec40b2b955052f& 17:32 < bridge> you're alive! 17:32 < bridge> Ofc 17:32 < bridge> i thought you got sent to the shadow realms 17:32 < bridge> hmm, i've been there 17:32 < bridge> ChillerDragon is there xD 17:32 < bridge> but back 17:32 < bridge> :kekw: 17:33 < bridge> oh wait is the bridge still locked? 17:33 < bridge> ig 17:33 < bridge> Or he rq 17:33 < bridge> Chillerdragon: 17:33 < bridge> he has shit to do 17:33 < bridge> like avoid paying taxes? 17:34 < bridge> I aint allowed to say anything 17:34 < bridge> just 17:34 < bridge> he'll come by if he needs to 17:35 < bridge> @melone 17:35 < bridge> How are you 17:36 < bridge> super tired, i just went shopping and spent 40€ on 2 days worth of food, it's ridiculous 17:36 < bridge> but that may be more fitting for #off-topic 17:36 < bridge> oof 17:36 < bridge> Maybe consider stealing next time 17:36 < bridge> https://tenor.com/view/hungry-gif-465465431283888215 17:39 < bridge> i should've, i literally only bought bread, milk, water, cereal and babyfood 19:04 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1296156843235741697/GaBQtT_W4AAYgrC.png?ex=671143a0&is=670ff220&hm=5e16144d3a215f19a76fd1792632b0d237edcd4299525c7971321fe664da03df& 19:06 < bridge> ``` 19:06 < bridge> File .text Size Crate 19:06 < bridge> 2.1% 30.7% 14.5MiB [Unknown] 19:06 < bridge> 0.8% 12.3% 5.8MiB std 19:06 < bridge> 0.4% 5.3% 2.5MiB ffmpeg_sys_next 19:06 < bridge> 0.2% 2.8% 1.3MiB cranelift_codegen 19:06 < bridge> 0.2% 2.8% 1.3MiB tokio 19:06 < bridge> 0.2% 2.2% 1.1MiB naga 19:06 < bridge> 0.1% 2.2% 1.0MiB wasmparser 19:06 < bridge> 0.1% 1.8% 887.9KiB client_ui 19:06 < bridge> 0.1% 1.8% 871.2KiB hashbrown 19:06 < bridge> 0.1% 1.8% 849.3KiB client_containers 19:06 < bridge> 0.1% 1.5% 730.9KiB rayon_core 19:06 < bridge> 0.1% 1.2% 579.2KiB egui 19:06 < bridge> 0.1% 1.1% 555.8KiB rustls 19:06 < bridge> 0.1% 1.0% 471.6KiB game_config 19:06 < bridge> 0.1% 0.9% 431.0KiB ddnet_playground 19:06 < bridge> 0.1% 0.9% 420.8KiB winit 19:06 < bridge> 0.1% 0.8% 390.7KiB serde_json 19:06 < bridge> 0.1% 0.8% 385.4KiB editor 19:06 < bridge> 0.1% 0.7% 358.2KiB regalloc2 19:06 < bridge> 0.0% 0.7% 352.6KiB zstd_sys 19:06 < bridge> 1.6% 22.9% 10.8MiB And 311 more crates. Use -n N to show more. 19:06 < bridge> 6.8% 100.0% 47.2MiB .text section size 19:07 < bridge> ``` 19:07 < bridge> 19:07 < bridge> LTO, codegen-units = 1, strip, panic = "abort". 19:07 < bridge> 19:07 < bridge> Still the exec is around 60MiB 19:07 < bridge> So insane xD 19:08 < bridge> Maybe std could be lowered by compiling the crates for it. But 5MiB also doesn't make any diff then anymore xD 19:09 < bridge> how does nix fix security issues? 19:10 < bridge> what is "unknown"? 19:10 < bridge> Well I'd like to know too xD 19:10 < bridge> 😄 19:11 < bridge> xd 19:11 < bridge> Tool is cargo bloat btw 19:11 < bridge> > This repository has been archived by the owner on Oct 14, 2024. It is now read-only. 19:11 < bridge> the day before yesterday 19:11 < bridge> nice 19:12 < bridge> They dont, its left up to you to maintain 😄 19:13 < bridge> I guess you need to track https://github.com/NixOS/nixpkgs/labels/1.severity%3A%20security 19:28 < bridge> me who uses nixOS and codes in rust™️:gigachad: 19:30 < bridge> pls help compiling clion mingw windows x64 ```====================[ Build | game-client | Debug ]============================= 19:30 < bridge> "C:\Program Files\JetBrains\CLion 2024.2.2\bin\cmake\win\x64\bin\cmake.exe" --build C:\Users\ggdddz\Desktop\projects\ddnet\cmake-build-debug --target game-client -j 14 19:30 < bridge> [0/2] Generating debug/libddnet_engine_shared.a 19:30 < bridge> Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.08s 19:30 < bridge> [2/2] Linking CXX executable DDNet.exe 19:30 < bridge> FAILED: DDNet.exe 19:30 < bridge> C:\Windows\system32\cmd.exe /C "cd . && C:\mingw64\bin\c++.exe -g -mwindows @CMakeFiles\game-client.rsp -o DDNet.exe -Wl,--out-implib,libDDNet.dll.a -Wl,--major-image-version,0,--minor-image-version,0 && cd ." 19:30 < bridge> C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find debug/libddnet_engine_shared.a: No such file or directory 19:30 < bridge> collect2.exe: error: ld returned 1 exit status 19:30 < bridge> ninja: build stopped: subcommand failed. 19:30 < bridge> ``` 19:30 < bridge> when starting game-client 19:30 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1296163299704045690/image.png?ex=671149a4&is=670ff824&hm=816aa990f92027cbf0a978c136a041039da81c0e2af5db4e06b1e0b025b679d0& 19:30 < bridge> pls help compiling src clion mingw windows x64 ```====================[ Build | game-client | Debug ]============================= 19:30 < bridge> "C:\Program Files\JetBrains\CLion 2024.2.2\bin\cmake\win\x64\bin\cmake.exe" --build C:\Users\ggdddz\Desktop\projects\ddnet\cmake-build-debug --target game-client -j 14 19:30 < bridge> [0/2] Generating debug/libddnet_engine_shared.a 19:30 < bridge> Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.08s 19:30 < bridge> [2/2] Linking CXX executable DDNet.exe 19:30 < bridge> FAILED: DDNet.exe 19:30 < bridge> C:\Windows\system32\cmd.exe /C "cd . && C:\mingw64\bin\c++.exe -g -mwindows @CMakeFiles\game-client.rsp -o DDNet.exe -Wl,--out-implib,libDDNet.dll.a -Wl,--major-image-version,0,--minor-image-version,0 && cd ." 19:30 < bridge> C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find debug/libddnet_engine_shared.a: No such file or directory 19:30 < bridge> collect2.exe: error: ld returned 1 exit status 19:30 < bridge> ninja: build stopped: subcommand failed. 19:31 < bridge> ``` 19:31 < bridge> when starting game-client 19:31 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1296163299704045690/image.png?ex=671149a4&is=670ff824&hm=816aa990f92027cbf0a978c136a041039da81c0e2af5db4e06b1e0b025b679d0& 19:31 < bridge> debug/libddnet_engine_shared.a dont creating 19:31 < bridge> but 19:31 < bridge> creating libddnet_engine.rlib 19:31 < bridge> change your rust toolchain to use msvc 19:31 < bridge> 19:31 < bridge> rustup set defeault-host x86_64-pc-windows-msvc 19:31 < bridge> change your rust toolchain to use msvc 19:31 < bridge> 19:31 < bridge> rustup set default-host x86_64-pc-windows-msvc 19:31 < bridge> ok wait 19:34 < bridge> @heinrich5991 any idea on how to solve #7660 ? - i can't find any documentation towards this and i'm not in any way proficient in cmake 19:34 < bridge> https://github.com/ddnet/ddnet/issues/7660 19:37 < bridge> change your rust toolchain to use msvc 19:37 < bridge> 19:37 < bridge> rustup default stable-x86_64-pc-windows-msvc 19:37 < bridge> im back 19:38 < bridge> C:\Windows\system32\cmd.exe /C "cd . && C:\mingw64\bin\c++.exe -g -mwindows @CMakeFiles\game-client.rsp -o DDNet.exe -Wl,--out-implib,libDDNet.dll.a -Wl,--major-image-version,0,--minor-image-version,0 && cd ." 19:38 < bridge> C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/14.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find debug/libddnet_engine_shared.a: No such file or directory 19:38 < bridge> collect2.exe: error: ld returned 1 exit status 19:38 < bridge> ninja: build stopped: subcommand failed. 19:38 < bridge> dont helped 19:38 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1296165421027954759/image.png?ex=67114b9d&is=670ffa1d&hm=414c29dd647a72a3a69c4d88b8d1bf1bd17c2ccaf7b25b250138312104e0436b& 19:44 < bridge> @blaiszephyr sry for ping 19:45 < bridge> `rustup default stable-x86_64-pc-windows-msvc` 19:45 < bridge> 19:45 < bridge> and then click on the hammer to rebuild the project 19:47 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1296167526329221150/image.png?ex=67114d93&is=670ffc13&hm=8c2fc42d39fb45642b12d54b4018351cc60e44072a2c6d9c1b73119c7cde12aa& 19:47 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1296167526543392839/image.png?ex=67114d93&is=670ffc13&hm=a367628f12a1652279e475df85ffd9bea53db828a4b581f429fe85aee4c8e602& 19:48 < bridge> You need `rustup default stable-x86_64-pc-windows-gnu` if you use mingw/GNU 19:50 < bridge> THX 19:51 < bridge> u best 19:54 < bridge> it'll have to wait another day, I get dysfunctional on days before exams, far too much anxiety to think of anything else 20:13 < bridge> > `#include 20:13 < bridge> > #include 20:13 < bridge> > #include 20:13 < bridge> > using namespace std; 20:13 < bridge> > 20:13 < bridge> > int main ( ) { 20:13 < bridge> > 20:13 < bridge> > const int minValue = 1; 20:13 < bridge> > const int maxValue = 6; 20:13 < bridge> > 20:13 < bridge> > srand(time(0)); 20:13 < bridge> > short first = (rand() % (maxValue - minValue + 1)) + minValue; 20:13 < bridge> > short second = (rand() % (maxValue - minValue + 1)) + minValue; 20:13 < bridge> > 20:13 < bridge> > cout << first << ", " << second; 20:13 < bridge> > return 0; 20:13 < bridge> > }` 20:14 < bridge> > 20:14 < bridge> > cool dice 20:14 < bridge> please use 3x ` to create a code block 20:14 < bridge> 20:14 < bridge> ``` 20:14 < bridge> this is a codeblock 20:14 < bridge> 20:14 < bridge> #include 20:14 < bridge> 20:14 < bridge> int main () { return 0; }; 20:14 < bridge> ``` 20:14 < bridge> on top 3x ` and below 3x 20:14 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1296174483345903756/image.png?ex=6711540e&is=6710028e&hm=d4c734cea44feb83d1bba485d08ae41f3c1b840aec92e7d9369afbd35325ea4f& 20:14 < bridge> or use // 20:15 < bridge> nvm 20:16 < bridge> alright thanks 20:16 < bridge> ! 20:23 < bridge> xdx 21:01 < bridge> no idea. first step would be to figure out how one checks the current rust toolchain (using rustup, probably) and how one checks the current C++ toolchain (in cmake, probably) 21:01 < bridge> if you find the answers to this, you can comment them on the isuse 21:03 < bridge> a couple of problems: 21:03 < bridge> 1) this has slightly higher probability for 1 than 6 21:03 < bridge> 2) it can only generate new random numbers every second 21:58 < bridge> Use \`\`\` code \`\`\` 21:59 < bridge> https://discord.com/channels/252358080522747904/293493549758939136/1296174361891307571 21:59 < bridge> that's what I'm repeating 22:00 < bridge> but more visually with backtocks instead of 3x ` 22:00 < bridge> backticks 22:00 < bridge> you can escape backticks with a backslash 22:02 < bridge> there is an image that I did not look at, tho, which is also very visual :() 23:49 < bridge> <01000111g> Can someone add an alias for /grenade in /practice mode? /rocket would be good, as most people call it rocket 23:52 < bridge> ```c++ 23:52 < bridge> #include 23:52 < bridge> #include 23:52 < bridge> 23:52 < bridge> int main(void) 23:52 < bridge> { 23:52 < bridge> std::random_device rd; 23:52 < bridge> std::mt19937 g(rd()); 23:52 < bridge> std::uniform_int_distribution dist(1, 6); 23:52 < bridge> 23:52 < bridge> std::cout << dist(g) << ", " << dist(g) << std::endl; 23:52 < bridge> return 0; 23:52 < bridge> } 23:52 < bridge> ``` 23:55 < bridge> or `std::minstd_rand` instead of `std::mt19937` doesn't really matter much honestly which generator you use