calcopiritus 1d ago • 100%
Not really "leech off", it's just standard use. How many companies do you think uses Linux? How many of them contribute back to the Linux foundation?
Using an open source project without giving back is not only the norm, it is also perfectly legal.
calcopiritus 3d ago • 100%
The thing about UB is that many optimizations are possible precisely because the spec specified it as UB. And the spec did so in order to make these optimizations possible.
Codebases are not 6 lines long, they are hundreds of thousands. Without optimizations like those, many CPU cycles would be lost to unnecessary code being executed.
If you write C/C++, it is because you either hate yourself or the application's performance is important, and these optimizations are needed.
The reason rust is so impressive nowadays is that you can write high performing code without risking accidentally doing UB. And if you are going to write code that might result in UB, you have to explicitly state so with unsafe
. But for C/C++, there's no saving. If you want your compiler to optimize code in those languages, you are going to have loaded guns pointing at your feet all the time.
calcopiritus 3d ago • 100%
I recently came across a rust book on how pointers aren't just ints, because of UB.
fn main() {
a = &1
b = &2
a++
if a == b {
*a = 3
print(b)
}
}
This may either: not print anything, print 3 or print 2.
Depending on the compiler, since b isn't changed at all, it might optimize the print for print(2)
instead of print(b)
. Even though everyone can agree that it should either not print anything or 3, but never 2.
calcopiritus 3d ago • 100%
If you want to use instructions from an extension (for example SIMD), you either: provide 2 versions of the function, or just won't run in some CPUs. It would be weird for someone that doesn't know about that to compile it for x86 and then have it not run on another x86 machine. I don't think compilers use those instructions if you don't tell them too.
Anyway, the SIMD the compilers will do is nowhere near the amount that it's possible. If you manually use SIMD intrinsics/inline SIMD assembly, chances are that it will be faster than what the compiler would do. Especially because you are reducing the % of CPUs your program can run on.
calcopiritus 3d ago • 100%
They should be paid though
calcopiritus 3d ago • 100%
Spaniard here. Not only does my company not pay me for lunch time. It also demands it to be at least 30 minutes long. How is it even legal to force my unpaid time to be a minimum amount?
calcopiritus 4d ago • 100%
5:30 h/day? My man living the dream
calcopiritus 5d ago • 100%
So the top exports are: medicines and medicines. Got it
calcopiritus 1w ago • 100%
I don't know why you are being so rude. I thought it was the rust community that was known for being toxic?
It's not my opinion on what the unsafe
keyword means. That's its purpose. Nobody ever wants to write unsafe code on purpose. The unsafe
keyword was created to allow safe programs to be created in rust that wouldn't be accepted by the strict rust compilers.
In a Venn diagram, there are 2 circles: safe programs (1) and programs that are deemed safe by the rust compiler (2).
Circle 2 is smaller than circle 1 and entirely contained inside it. However, there is no reason to not let people write programs from circle 1 that aren't in circle 2. The unsafe
keyword exists to enable programmers to write those programs in rust. However, it comes with a warning, now the programmer is the one responsible for making the program inside circle 1.
calcopiritus 1w ago • 50%
A crate having the unsafe
keyword doesn't make the crate unsafe. The unsafe
keyword just tells the compiler: "I know that what I'm trying to do may lead to memory safety issues, but I, as the programmer guarantee you that the codeblock as a whole is safe, so turn off some of your checks".
Using the unsafe
keyword in rust is no much different than using a C library in rust.
calcopiritus 1w ago • 89%
This entire post is so ignorant it can be summed up in a one paragraph analogy:
"Why do everyone love screwdrivers so much? I drove in nails perfectly with my hammer, but the screwdrivers are so bad at it! Who even designed them? What a horrible design!"
calcopiritus 1w ago • 100%
They are not equivalent situations. More like:
Person A promises to kill 10 people. Person B promises to kill 20 people.
Only one of them will do it, and you choose who. If you refuse to choose, person B will do it. What do you do?
calcopiritus 2w ago • 100%
Not related to your question at all, but:
I don't recommend editing the source code from cargo's files. Instead, the correct way to modify a dependency would be making a fork and using it as a gift dependency (or path dependency, which is even easier).
calcopiritus 2w ago • 60%
My comment only mentions me and all women. How exactly am I giving cover to men that rape? I raped nobody. The question I'm asking is what I've done wrong.
I don't know what trump and racism has anything to do with this.
calcopiritus 2w ago • 75%
So how exactly am I complicit for some dude raping someone? Just because I have a penis? And are all women completely exempt or are all women also complicit?
calcopiritus 2w ago • 100%
The windows key is awesome though. It's basically an "OS key", since windows is not the only one that can use it, so the OS can have many hotkeys, all of them using the OS key, and it shouldn't conflict with any program's hotkeys. If any program uses the OS key for their default hotkey, that's their problem.
calcopiritus 3w ago • 100%
Windows 11 is little more than a reskin of windows 10, and they still fucked it up.
Rounded corners are mandatory (Why? I really preferred squared ones). But developers can choose to have their windows square. Why only the developers? Let the user decide how a windows looks like!
And don't get me started on the start menu. It was a complete massacre. Tiles are gone (am I the only one that liked them?). Instead, now we pin apps to the start menu. Fine I guess, except for the fact that half of the fucking menu is taken up by fucking recomendations. If I remove every single recommendation, instead of having my space back for more pinned programs I get this message: "oh you like this precious white space? If you turned on some recommendations it would show something". No, i don't want recommendations, I want my start menu space back. Which btw in windows 10 used to be resizable to whatever size I wanted.
Oh and lets not forget about the volume mixer. Which some genius decided that it was better to keep it 10 clicks away from the user in the settings, instead of conveniently at one click in the taskbar. Which they also made the sound settings their own special taskbar element, instead of another taskbar program. So now if I want to replace their shitty sound settings with the ones I like (trumpet btw), now I would have 2 sound settings in the taskbar, while in win10 I only had 1.
And whose Idea was to join the sound settings and internet settings in the same taskbar button visually? Which is also not the same button functionally. You see, if you press the left side of the button it opens the sound settings, but the right side opens the internet settings. How much do Microsoft UI people get paid?
I guess we got dark notepad, that's nice.
calcopiritus 3w ago • 100%
Logistical problems are still financial problems though. That's my point. Hire enough people/develop the appropriate automation and the issue is no more.
We have the technology to solve this, the problem is the money.
In fact, you could just buy enough batteries and the problem will also go away. Still a financial problem, not a technology one.
EDIT: just to clarify, if at some point energy prices go negative, it means that it is cheaper to buy energy usage than a solution. Unless the energy company is dumb enough to just lose money for the lazyness of considering other options.
calcopiritus 3w ago • 100%
It should be illegal for companies with a legal budget over X€ to have illegal clauses on their terms and conditions.
calcopiritus 3w ago • 83%
It is a financial problem. Technically you can just cover the solar panels. But that's not good financially.
I want to do basically this: ```rust struct MyStruct < T> { data: T } impl < T> for MyStruct < T> { fn foo() { println!("Generic") } } impl for MyStruct < u32> { fn foo() { println!("u32") } } ``` I have tried doing ```rust impl < T: !u32> for MyStruct < T> { ... } ``` But it doesn't seem to work. I've also tried various things with traits but none of them seem to work. Is this even possible? EDIT: Fixed formatting