Live data from Hacker News

Cross-platform Rust rewrite of the GNU coreutils

github.com

461–470 of 498 posts

Re: Cross-platform Rust rewrite of the GNU coreutils

#461
post #403
post #388

Earlier quoted context omitted.

I don't understand it either. It's as though they want to ignore the history of free software, which simply wouldn't have happened without copyleft.

Tautologically, it wouldn't have happened as it did , but free software long predates the FSF.

Sure, but the FSF and the GNU project were reactions to proprietary software becoming more common. Free software wasn't recognised as such until Stallman saw the issue and decided to act. Saying that "free software existed before the FSF" is ignoring the fact that free software would've died almost entirely without the FSF and GNU.

Re: Cross-platform Rust rewrite of the GNU coreutils

#462

Earlier quoted context omitted.

Let me re-read it. He makes several points. The first is that they're intentionally relying on undefined behavior known to cause problems sometimes out of nowhere. He says it's OK they rely on it because it's not currently causing them problems. Relying on something impossible to rely on as kbenson worded it since that's working out so far. Reminds me of a George Carlin quip about people building villages on active v…

> Next, he conflates compiler bugs with undefined behavior. Maybe Rust is just not specified for every corner case? The compiler could just do anything in such cases (e.g. what a C compiler would do -- not checking for arithmetic overflow, for example). You can then go ahead and claim it wasn't UB in Rust. But effectively it is the same, and you can't expect that Rust will specify that a compiler must check for arith…

  > Maybe Rust is just not specified for every corner case?
Even in the absence of a formal specification, if you demonstrate undefined behavior in safe code, it will be regarded as a high-severity bug and slated for correction. If it's a bug in the compiler, it will be patched. If it's a bug in the language itself, the language will be redefined to prevent that behavior in safe code and the implementation will be updated to reflect this. If these changes break existing code, then so be it: soundness fixes are an instance where the Rust developers reserve the right to break backwards compatibility. Rust takes UB seriously.

Re: Cross-platform Rust rewrite of the GNU coreutils

#463

Earlier quoted context omitted.

Sure, the primary burden of proof is on those proposing a change. However, any time you stand up and make an argument, the burden is on you to make sure it actually makes sense, and that goes for both sides.

Anything that is stated without proof can be refuted without proof. Why you think your opinion should be regarded at a higher standard than anybody else's?

...I don't. That's sort of my point. Both sides of a debate have the same responsibility to be reasonable, whatever that level of responsibility may be, whether it's a formal debate or just tossing ideas around.

Re: Cross-platform Rust rewrite of the GNU coreutils

#464

Earlier quoted context omitted.

I think the idea that "elite" developers can write bug-free C (or even just network-facing C free of security-sensitive memory safety problems) is pretty well refuted at this point. Now you can write bug-free C if you're willing to spend enormous time and money on testing: this is to a first approximation what SQLite did. But that only makes economic sense for a small minority of projects. Just putting "elite" develo…

It will be interesting to see if the formal proof/verification work that is being done by NICTA for the seL4 project will mature into something that can be used practically elsewhere in industry. https://sel4.systems/

From my understanding, NICTA's proofs are basically algorithms to show that Haskell models and C code is equivalent. They can then go on to do proofs with their Haskell models.

Re: Cross-platform Rust rewrite of the GNU coreutils

#465

Earlier quoted context omitted.

Sure, the primary burden of proof is on those proposing a change. However, any time you stand up and make an argument, the burden is on you to make sure it actually makes sense, and that goes for both sides.

This is getting a bit meta, but I disagree. It would be trivial to abuse in discussions. A: Bash would be way better for SQLite, really! B: But Bash is a terrible choice because X, Y, Z, ... A: If you make those arguments, you have to prove them.

I'm not sure I take your point. If X, Y, and Z are cogent enough to be worth a rational response, B has done their job under my principle above. A is precisely the one I would want to yell at for using specious arguments.

Re: Cross-platform Rust rewrite of the GNU coreutils

#466
post #455

Earlier quoted context omitted.

> One of the reasons golang is so successful is that there is very little magic in the syntax, and even when there is it's fairly easy to grok (an example would be the `go` keyword). Do you have a specific symbol you would like to change in Rust, and what would you like to change it to? The only example I've seen (in a child comment to yours) is effectively a complaint that Rust has lifetimes and Go doesn't, which is…

I'm definitely a Rust fanboy, but the single-quote syntax for lifetime annotations can be irritating. Several editors I've used automatically insert a second quote to match, and I am frequently unable to disable that behavior without losing all paired delimiter insertion (like for parentheses or braces). It's a minor quibble to be sure, but it's the only language symbol that bothers me when writing Rust. Not sure wha…

Rust used to have @ and ~ sigils* but they were removed for legibility reasons and difficulty typing on European keyboards.

* For heap and owner pointers respectively.

Re: Cross-platform Rust rewrite of the GNU coreutils

#467

Earlier quoted context omitted.

Every function in the C++ standard library reliably communicates allocation failure to the application without relying on aborting the whole program. If Rust can do it, C++ can do it too. Rust got itself into this trap by eschewing exceptions.

Maybe avoid using judgmental language like calling a standard allocator that aborts on oom a "trap." The Rust team made conscious design choices in full awareness of the trade-offs. Moreover, Rust actually does have thread unwinding, and even the ability to catch an unwinding thread, so it is not true that the Rust standard library could not have unwound on oom. Rust's standard library just isn't designed for writing…

If Rust isn't suitable for C's niche, Rust's proponents should stop pitching Rust as a replacement for C.

> The Rust team made conscious design choices in full awareness of the trade-offs

I don't think that anyone who isn't already predisposed to avoid exceptions would consider the tradeoff the Rust people made to be the correct one.

Re: Cross-platform Rust rewrite of the GNU coreutils

#468
post #358
post #317

Earlier quoted context omitted.

> The concept of a corporation using your code for their profit without giving back is mostly just an imagination. One of the authors of the Python requests HTTP library has called out Uber for using Python, and almost certainly using requests, and not paying any money https://lukasa.co.uk/2015/08/Funding_OSS/

There are quite a few questions open here - are they proven to use the library? - did they modify it? - you can submit changes back only if you changed anything - as it is server-side software, GPL had not changed much here, you have to provide the source of your program only to those who got delivery of that program, but that is not covering running on your servers. - none of the licenses discussed require to donate…

> as it is server-side software, GPL had not changed much here, you have to provide the source of your program only to those who got delivery of that program, but that is not covering running on your servers.

This is exactly the reason the Affero GPL was invented.

And, yes, there is no legal requirement to donate money. However it shows bad faith and it shows that "a corporation using your code for their profit without giving back" is a reality.

Re: Cross-platform Rust rewrite of the GNU coreutils

#469
post #300

Earlier quoted context omitted.

Like many other programmers, I avoid GPL'd code like the plague. The idea that you can own an idea seems ridiculous to me, and it feels unjust to sue "random corporations" for using ideas that you published. We're standing on the shoulders of giants, and I see the GPL as a tumor that's draining the world's resources. Just my two cents.

sorry, but is the "random corporaions" the tumor: they just use the code, maybe improve it, but keep that private, and the improvement is lost for the rest of the people.

Every written line of code is a liability. By maintaining an internal fork of an opensource you are actually putting a burden on your business and no longer receive the latest patches for free.

>the improvement is lost for the rest of the people. You are forgetting that businesses sell a product. You can get the improvements by buying their product.

If the business saves money because they used opensource technology this should translate into lower costs and it follows that they will reduce prices (after all they have to compete with free as in beer!) for their customers.

If you don't want them to earn money from your MIT code you can always try to erode their profits by implementing similar improvements.

Re: Cross-platform Rust rewrite of the GNU coreutils

#470

Earlier quoted context omitted.

You're giving a lot of strongly-worded advice/opinions on legal issues in this thread. Are you a lawyer? Can you point to any case-law to back up what you're saying? I'm not a lawyer, and I don't really know who's right in this thread, but I'd find any citations you have really interesting to read.

Here's an crazy thought: when lawyers are in court, one of them is always wrong. Imagine that. A lawyer being wrong. Mind blown. Is your lawyer a software engineer? If not, he doesn't know anything! He has literally no idea. He can't even comprehend software. It would melt his brain. So you ask, how can I the holder of meagre so-called "Computer Science PhD", comprehend the the holy (and unspeakable) knowledge of tho…

OT, but that one side loses doesn't mean they're wrong, just like if one side loses a battle doesn't mean they don't know how to fight. It might just mean that the other side was better; or got lucky.
Post reply on HN