12:40 <+bridge> [ddnet] Ownership makes me want to throw the laptop through a window 12:44 <+bridge> [ddnet] you should stop seeing it as an enemy πŸ˜› 12:45 <+bridge> [ddnet] no amount of safety is worth developing an alcohol addiction 12:45 <+bridge> [ddnet] <αΆ°Β°KonΝ§sti> there should really be a feature like show bright feet or something xd 12:45 <+bridge> [ddnet] <αΆ°Β°KonΝ§sti> I hate skins with dark feet 12:47 <+bridge> [ddnet] the crates are making me miss good old dynamic libraries 12:48 <+bridge> [ddnet] no matter what people said, they just worked, you include your headers, you link your library and it just works 12:48 <+bridge> [ddnet] is that not true of crates? 12:48 <+bridge> [ddnet] a downside of rust is compiling everything, but right now is needed for traits or smth like that 12:48 <+bridge> [ddnet] <αΆ°Β°KonΝ§sti> Ryozoozki 12:48 <+bridge> [ddnet] I've been trying to add this damn crate for the last 10 minutes now 12:48 <+bridge> [ddnet] adding a crate is rly ez 12:48 <+bridge> [ddnet] whats ur problem? 12:48 <+bridge> [ddnet] okay, that is just inexperience with the build system, lol 12:48 <+bridge> [ddnet] try getting a C++ newbie to link a library in a crossplatform manner with cmake 12:49 <+bridge> [ddnet] this took me ages 12:49 <+bridge> [ddnet] The problem is that it's really "easy" 12:49 <+bridge> [ddnet] c++ dep management is the worst 12:49 <+bridge> [ddnet] There is no way to debug this shit 12:49 <+bridge> [ddnet] It just doesn't work 12:49 <+bridge> [ddnet] what am I supposed to adjust when it just won't find the library? 12:49 <+bridge> [ddnet] did u do cargo update? 12:50 <+bridge> [ddnet] why does heinreich not have admin role 12:50 <+bridge> [ddnet] I don't know if there is a caching issue, idk if there is a linkage issue, idk if the damn crate is building 12:50 <+bridge> [ddnet] cargo update 12:50 <+bridge> [ddnet] can you give us your build output 12:50 <+bridge> [ddnet] `error[E0432]: unresolved import 'hex'` 12:51 <+bridge> [ddnet] can u show more 12:51 <+bridge> [ddnet] and your `Cargo.toml`? 12:51 <+bridge> [ddnet] can compete with C++ on the most obsecure error message of the year 12:51 <+bridge> [ddnet] `hex = "0.4.2"` in the dependencies section of every cargo.toml I could think could be relevant 12:51 <+bridge> [ddnet] how is that obscure 12:51 <+bridge> [ddnet] did u do cargo update 12:51 <+bridge> [ddnet] yes 12:52 <+bridge> [ddnet] you might need `extern crate hex` in the top level 12:52 <+bridge> [ddnet] ye 12:52 <+bridge> [ddnet] extern crate in the main file 12:52 <+bridge> [ddnet] also u usually want to just add "0.4" 12:52 <+bridge> [ddnet] so minor versions get updated 12:52 <+bridge> [ddnet] they also get updated like this @Ryozuki 12:52 <+bridge> [ddnet] it just means >=0.4.2, which is sensible 12:53 <+bridge> [ddnet] ah 12:53 <+bridge> [ddnet] @Learath2 "might" because I don't know what they updated and what not. libtw2 compiles with legacy rust2015 πŸ˜‰ 12:54 <+bridge> [ddnet] extern crate 12:54 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/718417374591713381/unknown.png 12:54 <+bridge> [ddnet] :greenthing: 12:54 <+bridge> [ddnet] I should have just split the demo file at the correct place and just inserted the damn sha by hand 12:54 <+bridge> [ddnet] would have been done 50 times by now 12:54 <+bridge> [ddnet] @Learath2 did it work 12:54 <+bridge> [ddnet] I think it did, waiting for it to compile with my puny laptop 12:55 <+bridge> [ddnet] u panic to fast 12:55 <+bridge> [ddnet] btw 12:55 <+bridge> [ddnet] patience is key to a programmer 12:55 <+bridge> [ddnet] you could also write a script that renames your `name_crc_sha.map` to `name_crc.map` 12:55 <+bridge> [ddnet] nope didn't work 12:55 <+bridge> [ddnet] Patience can only be expected when there is an actual solution to try next 12:56 <+bridge> [ddnet] without patience you wont find the solution 12:56 <+bridge> [ddnet] next step seems to be to disassemble cargo to check the fuck it's smoking 12:56 <+bridge> [ddnet] you always go to extremes lol 12:56 <+bridge> [ddnet] its rly hard to know what ur missing cuz we have nothing to see 12:57 <+bridge> [ddnet] Step1 clone libtw2, Step2 add hex to Cargo.toml, Step3 add extern crate to tools/lib.rs, Step4 compile 12:57 <+bridge> [ddnet] ok 12:57 <+bridge> [ddnet] Step5 break your keyboard in half 12:57 <+bridge> [ddnet] which cargo.toml? 12:57 <+bridge> [ddnet] the one of tools? 12:57 <+bridge> [ddnet] I have it in every single one at this point 12:57 <+bridge> [ddnet] πŸ˜„ 12:58 <+bridge> [ddnet] it should be in the one of tools/Cargo.toml 12:58 <+bridge> [ddnet] I gradually added it to more and more hoping if everything linked to it it would "just work" 12:58 <+bridge> [ddnet] wait 12:58 <+bridge> [ddnet] where do you need the hex? 12:59 <+bridge> [ddnet] ah ofc this is in a separate crate 12:59 <+bridge> [ddnet] should have added it to teehistorians lib.rs 12:59 <+bridge> [ddnet] @heinrich5991 "..." range patterns are deprecated 12:59 <+bridge> [ddnet] use ..= 12:59 <+bridge> [ddnet] aparently 12:59 <+bridge> [ddnet] xd 12:59 <+bridge> [ddnet] and so is `?` 12:59 <+bridge> [ddnet] yes, I know 13:00 <+bridge> [ddnet] is ? deprecated? 13:00 <+bridge> [ddnet] i thought it wass new 13:00 <+bridge> [ddnet] ehm, I mean `try!` 13:00 <+bridge> [ddnet] I'll do that once I feel like it and after I checked that it'll still compile with rust 1.34 13:00 <+bridge> [ddnet] @Ryozuki 13:01 <+bridge> [ddnet] They should make package managers illegal 13:01 <+bridge> [ddnet] :lol: 13:01 <+bridge> [ddnet] now I only need to get through the mess of ownership and this will work 13:02 <+bridge> [ddnet] it's impossible to please learath 13:02 <+bridge> [ddnet] πŸ₯Ί 13:02 <+bridge> [ddnet] you know what would please me? if people would stop fucking with syntax for no reason 13:02 <+bridge> [ddnet] oh shit, here we go again 13:02 <+bridge> [ddnet] xD you know what would look cool, if we moved the return type to after the declaration hehehe 13:03 <+bridge> [ddnet] that kinda makes sense though 13:03 <+bridge> [ddnet] makes it easier for grepping, e.g. 13:03 <+bridge> [ddnet] All dem C coders will feel so out of place, not like we want those nasty people in our enlightened community anyway 13:03 <+bridge> [ddnet] @Learath2 yesterday i saw ppl saying posix c is not c code 13:03 <+bridge> [ddnet] and more stuff 13:03 <+bridge> [ddnet] POSIX C is not standard C 13:04 <+bridge> [ddnet] and if its not standard C 13:04 <+bridge> [ddnet] then its hell 13:04 <+bridge> [ddnet] Eh if you don't care much for windows it's not that bad 13:04 <+bridge> [ddnet] with the awesome windows c89 compiler 13:04 <+bridge> [ddnet] 😊 13:05 <+bridge> [ddnet] Microsoft with all their infinite wisdom fucked up implementing their CRT so bad that it's posix compatibility layer is actually not even posix compliant 13:05 <+bridge> [ddnet] because they just knew better 13:05 <+bridge> [ddnet] windows should adopt posix 13:05 <+bridge> [ddnet] they should even change their filesystem 13:05 <+bridge> [ddnet] to be like unix 13:05 <+bridge> [ddnet] all these years of standardising posix spent by thousands of developers, through constant change 13:05 <+bridge> [ddnet] and adopt bash 13:05 <+bridge> [ddnet] then it would be good for me 13:05 <+bridge> [ddnet] rust works quite well on windows πŸ˜‰ 13:05 <+bridge> [ddnet] But microsoft just knew better then the thousands working on posix 13:06 <+bridge> [ddnet] including handling of non-ascii file paths 13:06 <+bridge> [ddnet] @heinrich5991 how much time did it take to make libtw2? 13:06 <+bridge> [ddnet] I also love how rust has like 50 different ways of storing an array of things 13:07 <+bridge> [ddnet] * the 50 different ways to own/reference it 13:07 <+bridge> [ddnet] very fun thinking about all this when just a damn pointer would have worked juuuust fine 13:07 <+bridge> [ddnet] @Ryozuki I don't really know. "not too long, teeworlds netcode isn't that complex" 13:08 <+bridge> [ddnet] I started with a python version, then a C version and then discussed it with matricks and went with rust 13:08 <+bridge> [ddnet] but that was many years ago 13:08 <+bridge> [ddnet] he said he was eyeing rust as a language that teeworlds might be written in if he were to write it today 13:08 <+bridge> [ddnet] ye 13:13 <+bridge> [ddnet] @Ryozuki you could ask @Patiga btw, he said he's writing another map parser right now 13:14 <+bridge> [ddnet] Okay I don't have it in me to wrestle with this anymore 13:14 <+bridge> [ddnet] can you just spoonfeed me a safeish way to get from a `std::vec::Vec` to a `[u8; 32]` 13:14 <+bridge> [ddnet] you can't really 13:14 <+bridge> [ddnet] amazing 13:15 <+bridge> [ddnet] but you could go to a `&[u8]` if that would be fine 13:15 <+bridge> [ddnet] well, you can loop over the vector 13:15 <+bridge> [ddnet] `result.copy_from_slice(&vec)` 13:15 <+bridge> [ddnet] how am I even supposed to copy the &[u8] into my [u8; 32] 13:15 <+bridge> [ddnet] should work 13:15 <+bridge> [ddnet] https://doc.rust-lang.org/std/primitive.slice.html#method.copy_from_slice 13:16 <+bridge> [ddnet] well can't really use that in an assignment 13:17 <+bridge> [ddnet] yeah I guess this'll be even uglier then anticipated 13:17 <+bridge> [ddnet] you could do `let sha256 = [0; 32]; sha256.copy_from_slice(&vec);` and then use `sha256` 13:17 <+bridge> [ddnet] doesnt `try_into` work? might include some allocation tho 13:18 <+bridge> [ddnet] oh yea, this is some new stuff 13:18 <+bridge> [ddnet] i think i used it once from slice to array 13:18 <+bridge> [ddnet] and since we only need it for 32, it might actually work 13:21 <+bridge> [ddnet] I thought I'd never say this in a million years, I miss java 13:21 <+bridge> [ddnet] How am I even supposed to get a reference to this temporary to copy from 13:22 <+bridge> [ddnet] `&` 13:23 <+bridge> [ddnet] oh great, now the Cow is an issue 13:23 <+bridge> [ddnet] obviously 13:24 <+bridge> [ddnet] I think one issue might be that you expect rust to work exactly like C 13:24 <+bridge> [ddnet] it is something new to learn, it is not exactly like C 13:25 <+bridge> [ddnet] @Ryozuki also not sure how to estimate how much time i spent on that project that far. repository is public tho if you want to try to estimate time by changed lines of code or smth https://gitlab.com/Patiga/twmap 13:25 <+bridge> [ddnet] This is why I give up on learning rust every time, it's like the language hates it's user 13:25 <+bridge> [ddnet] like every time you think you start getting a grip on it, it brings out a sledgehammer and hits you 13:25 <+bridge> [ddnet] it makes the user write obviously safe code 13:25 <+bridge> [ddnet] yeah, no thanks, I'll stick to my unsafe code with opt-in safety 13:26 <+bridge> [ddnet] as was discussed at length already, this does not seem to work (if you want safe code) 13:26 <+bridge> [ddnet] it works for me 13:26 <+bridge> [ddnet] I doubt it 13:26 <+bridge> [ddnet] I don't quite care if other people can't be assed actually following good practices in their code 13:26 <+bridge> [ddnet] well users seem to love rust 13:27 <+bridge> [ddnet] look at any large C/C++ code base, even if the company has financial incentive to keep their code secure 13:27 <+bridge> [ddnet] like google 13:27 <+bridge> [ddnet] and I wouldn't be willing to bet that I've never introduced a memory safety bug into teeworlds/ddnet 13:27 <+bridge> [ddnet] There is no way rust meets the performance requirements of things like facebooks infra 13:27 <+bridge> [ddnet] what? 13:28 <+bridge> [ddnet] what 13:28 <+bridge> [ddnet] These people are looking for 1% improvements, there is no way they would move over to rust, so there is no way we get a good test of rust at that scale 13:28 <+bridge> [ddnet] I don't know where you live, but we see people writing faster and safer code in rust 13:28 <+bridge> [ddnet] simply because they can write code that they wouldn't try otherwise 13:29 <+bridge> [ddnet] because they wouldn't believe in the thread-safety etc. of it 13:29 <+bridge> [ddnet] ye rust aims to be faster than c 13:29 <+bridge> [ddnet] see e.g. ripgrep 13:29 <+bridge> [ddnet] I see people coding slower and walking a tightrope trying to please an overbearing compiler to have some safety 13:29 <+bridge> [ddnet] https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/rust.html 13:29 <+bridge> [ddnet] I could also write C like a retard to get it to perform worse 13:30 <+bridge> [ddnet] then write C better to make it perform better 13:30 <+bridge> [ddnet] you can send programs there 13:30 <+bridge> [ddnet] I doubt it's just a lack of good programmers 13:30 <+bridge> [ddnet] It's like that one test where the guy used a better compiler to get C++ classes performing better then raw C structs 13:30 <+bridge> [ddnet] you can't be the only one that thinks "why is C performing worse on this benchmark" 13:31 <+bridge> [ddnet] There is absolutely no way you couldn't get C performing as good as rust on the exact same compiler 13:31 <+bridge> [ddnet] yes 13:31 <+bridge> [ddnet] just like with rust 13:31 <+bridge> [ddnet] There is no LLVM IR you can't reach from C 13:31 <+bridge> [ddnet] but this is irrelevant 13:31 <+bridge> [ddnet] and this is probably false 13:31 <+bridge> [ddnet] (without inline assembly) 13:31 <+bridge> [ddnet] yea, can give you an example already 13:31 <+bridge> [ddnet] Yeah you can't get some clang frontend constructs and you can't get some invariant marks 13:32 <+bridge> [ddnet] `fn a(b: &mut i32, c: &mut i32)` 13:32 <+bridge> [ddnet] this marks both parameters as unique 13:32 <+bridge> [ddnet] you can't get that in C 13:32 <+bridge> [ddnet] ah wait, you can probably, with restrict 13:32 <+bridge> [ddnet] yes 13:33 <+bridge> [ddnet] anyway, do you really believe you can reach all llvm constructs you can reach with standard rust also in standard C? 13:33 <+bridge> [ddnet] willing to bet that you can't 13:33 <+bridge> [ddnet] I do believe that yes 13:33 <+bridge> [ddnet] k, wanna bet? 13:33 <+bridge> [ddnet] I'd be very surprised if you could come up with one 13:34 <+bridge> [ddnet] Besides who cares, if it's a pain to code in a language, it's a pain 13:34 <+bridge> [ddnet] subjective 13:35 <+bridge> [ddnet] yea, just like if it's studied that 70% of bugs are memory safety bugs in C, and it's less than that in rust, then that's also an objective measurement 13:35 <+bridge> [ddnet] the programmer who never makes mistakes does not exist 13:35 <+bridge> [ddnet] so we try to reduce the impact 13:35 <+bridge> [ddnet] we have learath 13:35 <+bridge> [ddnet] the perfect dev 13:35 <+bridge> [ddnet] :monkaS: 13:36 <+bridge> [ddnet] does learath2 really claim that he has never introduced a memory safety bug into a project they contributed to? 13:36 <+bridge> [ddnet] Nope 13:36 <+bridge> [ddnet] Atleast I delivered code instead of wrestling with a compiler 13:36 <+bridge> [ddnet] yes, that's an argument that you can make 13:37 <+bridge> [ddnet] if the future shows that you can be productive in rust though, then that would probably become irrelevant 13:37 <+bridge> [ddnet] Some constructs just cant be safe, please show me how you'd code a "safe" linked list 13:37 <+bridge> [ddnet] you can confine the unsafety 13:37 <+bridge> [ddnet] that's one big point in rust 13:37 <+bridge> [ddnet] When you pull that one off, try a Rb-tree with parent pointers or a augmented interval bst 13:37 <+bridge> [ddnet] you can point at one module and say: the memory unsafety is in there 13:38 <+bridge> [ddnet] and not "it's in some module using that rb tree" 13:39 <+bridge> [ddnet] So then there are bugs in those 13:39 <+bridge> [ddnet] yes 13:39 <+bridge> [ddnet] and we know where they are. that's great 13:39 <+bridge> [ddnet] Congratulations, you moved bugs from the most abused part to most abused part 13:40 <+bridge> [ddnet] These bugs are only exploitable at the looowest levels of your code anyway 13:40 <+bridge> [ddnet] no 13:40 <+bridge> [ddnet] in C code they're exploitable anywhere 13:40 <+bridge> [ddnet] Well I'm sure firefox has a dozen of them atleast, have at it 13:40 <+bridge> [ddnet] and suppose I can find some scientific evidence that rust fares better than C, would that change your mind about it? 13:41 <+bridge> [ddnet] also, how did I manage to get into a flamewar again 😦 13:41 <+bridge> [ddnet] fares in what way? What's the point if I'm not delivering any code if it would perform better? 13:41 <+bridge> [ddnet] Code that doesn't exist is infinitely slower then any implementation 13:41 <+bridge> [ddnet] e.g. compare whether you rather want to have a rust dependency or a C dependency 13:42 <+bridge> [ddnet] say my hypothesis is: I have a C library and a Rust library performing the same task. which should I choose, given that I know nothing else about it (except maybe that it's the best one of each language) 13:42 <+bridge> [ddnet] Depends on the task the libraries are doing 13:43 <+bridge> [ddnet] implementing a network protocol 13:43 <+bridge> [ddnet] security is a goal of yours, in this scenario 13:43 <+bridge> [ddnet] I mean it's an insane scenario but sure, pick the rust one it's probably safer 13:43 <+bridge> [ddnet] k 13:43 <+bridge> [ddnet] In the real world though I'd pick the C library that has been around for 4 decades and been extensively audited 13:44 <+bridge> [ddnet] well, suppose you are a http library and want to add support for quic 13:44 <+bridge> [ddnet] there are rust libraries and there are c libraries 13:45 <+bridge> [ddnet] Depends on my performance goals, security goals, deadlines, the libraries track records, the maintainers response time, the support requirements, the space requirements 13:45 <+bridge> [ddnet] Despite how you all like to talk about me I'm not some fanatic going around deciding about things like choosing a football team to cheer on 13:46 <+bridge> [ddnet] we're not either, don't worry πŸ˜‰ 13:46 <+bridge> [ddnet] There are dozens of factors when deciding things like these, and it rarely comes down to language 13:46 <+bridge> [ddnet] but language can help decide 13:46 <+bridge> [ddnet] Yes if you remove every other factor, rust is a better choice 13:46 <+bridge> [ddnet] because we can see that rust libraries in practice have less memory safety vulnerabilites 13:47 <+bridge> [ddnet] come back to me when rust has been around for a decade and has a track record beside a couple toy projects and a PR stunt by mozilla 13:47 <+bridge> [ddnet] there are e.g. quic libraries in rust πŸ˜‰ 13:47 <+bridge> [ddnet] that's more than a toy proejct or PR stund by mozilla 13:47 <+bridge> [ddnet] there's ripgrep, although probably not security relevant 13:48 <+bridge> [ddnet] @heinrich5991 https://github.com/sharkdp/fd 13:48 <+bridge> [ddnet] fd to replace find 13:48 <+bridge> [ddnet] xd 13:48 <+bridge> [ddnet] and yes, I agree that while I still name examples of software written in rust, it's still 13:48 <+bridge> [ddnet] young 13:48 <+bridge> [ddnet] Also there is the community of the language walking around like modern day missionaries 13:49 <+bridge> [ddnet] what would the world look like if a language actually had better properties? πŸ˜‰ 13:49 <+bridge> [ddnet] Have you heard of the language with 0er then 0 cost abstractions and absolute safety 13:49 <+bridge> [ddnet] would that also look like "missionaries walking around"? 13:49 <+bridge> [ddnet] @Learath2 one day u will have to move on from C 13:50 <+bridge> [ddnet] i would love to be there and see how u react 13:50 <+bridge> [ddnet] okay, looking into the wikipedia article for rust: 13:50 <+bridge> [ddnet] > Discord - chat service targeted towards gamers that uses Rust for portions of its backend, as well as client-side video encoding 13:50 <+bridge> [ddnet] > 13:50 <+bridge> [ddnet] > Magic Pocket – Dropbox's file system that powers their Diskotech petabyte storage machines 13:50 <+bridge> [ddnet] The day clang drops C support, I'll eat my own shit 13:50 <+bridge> [ddnet] https://github.com/firecracker-microvm/firecracker?files=1 13:50 <+bridge> [ddnet] 13:50 <+bridge> [ddnet] Just as an example for high performance requirements... Aws Lambda is based on this rust software 13:51 <+bridge> [ddnet] But I do use many other languages, with compilers that don't hate you 13:51 <+bridge> [ddnet] rust compiler doesnt hate you tho 13:51 <+bridge> [ddnet] we also use other languages πŸ˜‰ 13:51 <+bridge> [ddnet] Yeah it just knows better then you on every other aspect 13:51 <+bridge> [ddnet] i use many languages 13:51 <+bridge> [ddnet] too 13:51 <+bridge> [ddnet] There are no sufficiently smart compilers, except the rust one, that's 1000iq 13:51 <+bridge> [ddnet] no 13:51 <+bridge> [ddnet] C C++ Python Javascript Typescript Golang PHP Java 13:52 <+bridge> [ddnet] among them 13:52 <+bridge> [ddnet] it makes you write obviously safe code 13:52 <+bridge> [ddnet] that makes it not very smart 13:52 <+bridge> [ddnet] because you have to write **obviously** safe code 13:52 <+bridge> [ddnet] and not just safe cdoe 13:52 <+bridge> [ddnet] it makes you want to just mark your code unsafe 13:52 <+bridge> [ddnet] πŸ™‚ πŸ”« 13:53 <+bridge> [ddnet] not what happens in practice. the safety record of popular rust libraries is better than that of popular C libraries 13:53 <+bridge> [ddnet] because it existed for about 10 seconds, cmon 13:53 <+bridge> [ddnet] the sample size is not even comparable 13:53 <+bridge> [ddnet] okay, suppose we find two similar projects, e.g. two quic libraries 13:53 <+bridge> [ddnet] 10 years = 10 seconds 13:53 <+bridge> [ddnet] they have existed for a similar time 13:53 <+bridge> [ddnet] would you think that the safety record of rust there is the same as the one in C? 13:54 <+bridge> [ddnet] A sample size of 1 is not good either 13:54 <+bridge> [ddnet] okay, then I find another, what do you want? 13:54 <+bridge> [ddnet] Besides, considering there is a class of bugs that's just IMPOSSIBLE in one language is just cheating 13:54 <+bridge> [ddnet] you make it look like you want to ignore evidence 13:54 <+bridge> [ddnet] but this is the cheating we want 13:54 <+bridge> [ddnet] At a cost we don't want 13:54 <+bridge> [ddnet] we want to get rid of memory safety 13:54 <+bridge> [ddnet] that might well be true 13:55 <+bridge> [ddnet] lol, memory safety bugs 13:55 <+bridge> [ddnet] The problem isn't me ignoring evidence, the problem is that the evidence can't possibly exist 13:55 <+bridge> [ddnet] why not? 13:55 <+bridge> [ddnet] fuzz a couple of popular C libraries and a couple of rust libraries 13:55 <+bridge> [ddnet] and see what happens 13:55 <+bridge> [ddnet] because give it 40 years maybe the rust project will also accumulate the same amount of severe bugs 13:56 <+bridge> [ddnet] okay, then what about new C projects? 13:56 <+bridge> [ddnet] Openssl has been around since before I was born 13:56 <+bridge> [ddnet] should we fuzz them instead? 13:56 <+bridge> [ddnet] I mean we can literally look at evidence 13:56 <+bridge> [ddnet] but you seem to refuse to 13:56 <+bridge> [ddnet] I don't think the evidence even exists, what is fuzzing showing issues even proving? 13:56 <+bridge> [ddnet] I'm trying to be scientific about it, but you don't seem to want it 13:57 <+bridge> [ddnet] I'm off for now, sorry 13:57 <+bridge> [ddnet] That your fuzzing methodology made to look for bugs in C programs doesn't apply well to rust programs? 13:57 <+bridge> [ddnet] Yeah as always 13:58 <+bridge> [ddnet] As long as you *believe* in something, it doesn't really matter what the methodology is 13:59 <+bridge> [ddnet] I could run Scala with valgrind and tell you it leaks much less on average then C programs on average 14:00 <+bridge> [ddnet] Not only would my methodology would be wrong, the result I get that "Scala is better than C" wouldn't even be the actual result 14:00 <+bridge> [ddnet] You can't just say "X is better than Y", in what aspect at what cost 14:02 <+bridge> [ddnet] And you can't just accuse someone of "ignoring evidence" and hop off, the only piece of evidence provided here was @Ryozuki's performance metric, which could be due to like a billion things 14:03 <+bridge> [ddnet] but sure ignore that part and just assume the guys methodology is flawless and proves the claim HE made 14:04 <+bridge> [ddnet] I want to look at evidence, but you only say that it cannot exist. 14:05 <+bridge> [ddnet] I haven't even started looking at it due to that 14:05 <+bridge> [ddnet] The sample size isn't the same, how could it? It's not like it doesn't exist because I don't want it to exist 14:06 <+bridge> [ddnet] I don't need proof that memory safety issues happen less in rust, I know that for a fact because it's how the language is built, but it comes at a price that I personally am not willing to pay 14:06 <+bridge> [ddnet] So the memory safety isn't persuading me to use rust 14:08 <+bridge> [ddnet] I doubt any performance difference could possibly exist as I think you can generate any LLVM IR rust generates with C++ or C, you could find me a construct that I can't the frontend to emit that could allow better optimisation, not like I'll just ignore it 14:09 <+bridge> [ddnet] .s/I can't/I can't get/ 14:10 <+bridge> [ddnet] I also agree that if you could not consider any other metric a library written in rust is safer then one written in C 14:11 <+bridge> [ddnet] Oh, e.g. take a look at those performance metrics, that fast execution sometimes seems to come at the cost of memory, it's not a cost that you can always bear 14:17 <+bridge> [ddnet] It's very important to use the language that's correctly suited for your context, the fortran solutions come at a small performance penalty for an incredible boost in memory usage, the haskell solutions sometimes optimise brilliantly because of the way the language is constructed, Java solutions usually come with both a performance and memory hit yet that could be what you want because you only have the JVM to run things on 14:18 <+bridge> [ddnet] I guess in a context where safety is a concern and you have very experienced rust programmers that the ownership semantics don't even phase, you could indeed use rust 14:20 <+bridge> [ddnet] What an absolute waste of time arguing with thin air, I'll go bake something, respond if you want, don't respond if you don't want w/e 14:21 <+bridge> [ddnet] there is no point in arguing with a wall 15:07 <+bridge> [ddnet] @jao here you go, you'll have to compile libtw2 though and I'm not going to maintain this at all 15:07 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/718450953925296138/0001-Add-ddnet-SHA256-extension.patch 15:09 <+bridge> [ddnet] Don't kid yourselves, both of you went into this discussion not even considering to change your minds, I was completely willing to accept any evidence, just not in the manner you hoped without even just questioning it 15:10 <+bridge> [ddnet] I finished it up because I promised I'd finish it, now I'll go bake some coffee cake 15:48 <+bridge> [ddnet] " you went into this discussion not even considering to change your minds" this is how i felt about you tbh 16:21 <+bridge> [ddnet] The trick is to put a little bit of cinnamon in your cookie dough, the cinnamaldehyde creates a serotonin response and is very volatile, it's just like taking pure happiness out of the oven 16:27 <+bridge> [ddnet] Oh and an hour in the fridge will do you wonders, especially with getting consistent results in summer 16:28 <+bridge> [ddnet] what in the fridge? the cookie dough? 16:28 <+bridge> [ddnet] yes 16:28 <+bridge> [ddnet] prevents overspreading in summer when the butter would be more runny 16:31 <+bridge> [ddnet] @deen https://github.com/ddnet/ddnet/issues/2105 any idea why this happens? 16:32 <+bridge> [ddnet] Do we optimize out the positions of tees that are outside of a radius? 16:34 <+bridge> [ddnet] yes 16:34 <+bridge> [ddnet] we do 16:35 <+bridge> [ddnet] we could say we always send at least the closest tee from any distance πŸ˜„ 16:35 <+bridge> [ddnet] or do the command server-side 16:35 <+bridge> [ddnet] Where does the client think these optimized out tees are? 16:35 <+bridge> [ddnet] nowhere 16:35 <+bridge> [ddnet] no chars for them i guess 16:36 <+bridge> [ddnet] The closest tee isn't really that cheap to find, but I guess we can 16:42 <+bridge> [ddnet] oh 16:42 <+bridge> [ddnet] fishy fishy 16:43 <+bridge> [ddnet] add it from the backdoor 16:43 <+bridge> [ddnet] where no one can notice 16:44 <+bridge> [ddnet] Yeah, very secret πŸ˜„ 17:42 <+bridge> [ddnet] :ninja: 17:57 <+bridge> [ddnet] @Learath2 it shows a lot warnings 17:57 <+bridge> [ddnet] ``thread 'main' has overflowed its stack`` 17:59 <+bridge> [ddnet] the warnings aren't learath2's fault 18:01 <+bridge> [ddnet] and the overflow? 18:01 <+bridge> [ddnet] I don't know about that one, but my first guess would be the change 18:03 <+bridge> [ddnet] but tbf I don't see any critical change 18:03 <+bridge> [ddnet] can you run it with `RUST_BACKTRACE=1`? 18:05 <+bridge> [ddnet] set that env variable (I don't know how to do it on windows, on mac/linux it's `env RUST_BACKTRACE=1 ./teehistorian2demo` 18:10 <+bridge> [ddnet] idk either 18:16 <+bridge> [ddnet] @jao https://stackoverflow.com/a/51616644 18:17 <+bridge> [ddnet] and after that? 18:17 <+bridge> [ddnet] call the program again, with the demo 18:17 <+bridge> [ddnet] `set RUST_BACKTRACE=1` 18:17 <+bridge> [ddnet] same as before 18:23 <+bridge> [ddnet] huh 18:23 <+bridge> [ddnet] which th file are you trying, maybe I can reproduce it on my computer 18:23 <+bridge> [ddnet] oh yea, that might help 18:24 <+bridge> [ddnet] c484972c-f1e8-42f6-a624-3eafb7bcb618 18:25 <+bridge> [ddnet] hm works just fine for me 18:26 <+bridge> [ddnet] oh could it be that you didn't change MAX_CLIENTS? 18:26 <+bridge> [ddnet] stack overflow is still a weird error 18:26 <+bridge> [ddnet] where do i need to change? 18:27 <+bridge> [ddnet] gamenet/src/enums.rs 18:27 <+bridge> [ddnet] set to 64? 18:27 <+bridge> [ddnet] yes 18:28 <+bridge> [ddnet] also does it work without my patch? maybe you just really have a small stack? πŸ˜„ 18:30 <+bridge> [ddnet] same error without the patch πŸ˜† 18:30 <+bridge> [ddnet] can you compile a hello world program? 18:30 <+bridge> [ddnet] what rust version do you have? 18:30 <+bridge> [ddnet] maybe one of the warnings is relevant but I didn't really see anything wrong there 18:31 <+bridge> [ddnet] 1.44.0 18:34 <+bridge> [ddnet] can you compile a hello-world-programm 18:34 <+bridge> [ddnet] can you compile a hello-world-program? 18:34 <+bridge> [ddnet] works 18:37 <+bridge> [ddnet] the plot thiccens 18:39 <+bridge> [ddnet] can you have stack canaries in rust? 18:40 <+bridge> [ddnet] Well I guess there is a stack canary that's detecting this, but it doesn't output a backtrace for some reason 18:42 <+bridge> [ddnet] hm, maybe run it with gdb and hope it also causes a crash? πŸ™‚ 18:42 <+bridge> [ddnet] do you have gdb installed? 18:44 <+bridge> [ddnet] no πŸ˜„ 18:46 <+bridge> [ddnet] I'm all out of ideas 18:51 <+bridge> [ddnet] I can compile a copy of it on ddnet.tw and you can use that, I guess not very convenient but it'd work 18:54 <+bridge> [ddnet] videorecorder should record map sounds? 18:55 <+bridge> [ddnet] I don't think that works yet 18:55 <+bridge> [ddnet] sound in general or map sounds @Learath2 ? 18:55 <+bridge> [ddnet] obs should record map sounds 18:57 <+bridge> [ddnet] sound in general 18:57 <+bridge> [ddnet] I think there was some issue getting the tracks to synchronise, but don't really remember if the guy ever figured it out 19:29 <+bridge> [ddnet] @Learath2 at least u tried 😁 19:29 <+bridge> [ddnet] β™₯️ 19:38 <+bridge> [ddnet] I have a bonus idea, try compiling the debug version, maybe its some too aggressive optimuzation on the stack size 19:38 <+bridge> [ddnet] how to? 20:20 <+Delon> Hi @deen 20:42 <+bridge> [ddnet] hi Delon 22:13 <+bridge> [ddnet] @Learath2 when fix master 4 22:13 <+bridge> [ddnet] its annoying 22:14 <+bridge> [ddnet] ur better just deleting it than keeping it running 22:43 <+bridge> [ddnet] what's wrong wit hit? 22:45 <+bridge> [ddnet] it never works 22:45 <+bridge> [ddnet] on my ovh server ive had to iptables block the master server in range 31.186.0.0/16 or else it doesnt register properly 22:45 <+bridge> [ddnet] didnt have this issue with my digitalocean server 22:45 <+bridge> [ddnet] never really tried to look into it further since doing the firewall fixed it 22:47 <+bridge> [ddnet] @ZombieToad thanks for the report, should work again 22:47 <+bridge> [ddnet] did u change something 22:47 <+bridge> [ddnet] removed some filters we had 22:48 <+bridge> [ddnet] server list just went from 240 to 380 lmao 22:48 <+bridge> [ddnet] hahah 22:48 <+bridge> [ddnet] wow 22:48 <+bridge> [ddnet] yes it did 22:48 <+bridge> [ddnet] yeah, sorry about that. had to install some filters because the dos attacks kept downing our server :/ 22:49 <+bridge> [ddnet] and I guess we forgot about them after the attacks stopped 22:49 <+bridge> [ddnet] might not wanna say it here if the attacker can read this chat lol 23:21 <+bridge> [ddnet] maybe we need to choose a better preset for the videorecorder