Hacker Newsnew | past | comments | ask | show | jobs | submit | random_'s commentslogin

Moreover, i imagine a lot of these bots are built on top of an SDK instead of directly working with API calls, so would be just a matter of changing the SDK internals.


interesting. I hope it's not too late to ask: could you expand a little bit, in particular, what do you mean by "over very general dataflow graphs"?


> The source of this bug is LLVM [2] which Rust relies on for optimisations and machine code generation.

So basically rustc_codegen_gcc and cranelift can compile code that don't with LLVM and then introduce (or solve) new bugs?


Note that it's entirely feasible that GCC would do the same in this specific case. This wasn't necessarily a "bug" in LLVM per se, because this is the specified behavior in C and C++, and LLVM was simply implementing those semantics. The fix here was just to allow languages to opt-out of this behavior. Since GCC is also primarily a C/C++ backend, you'd have the same problem unless they offer a similar opt-out.

But in general, yes, if this was unintended behavior of LLVM, then we would expect alternative backends to exhibit differing behavior.


What you're talking about was a bug in LLVM. The paper says:

>Infinite loops and recursions are Undefined Behaviour in C and C++, therefore the compiler can assume that a loop always terminates.

... which is wrong - only C++ requires loops to terminate. C allows non-terminating loops (with some specific requirements), and LLVM was already known to miscompile C in this same way until it was fixed in LLVM 12 with the `mustprogress` attribute.

https://bugs.llvm.org/show_bug.cgi?id=965

https://stackoverflow.com/questions/59925618/how-do-i-make-a...

Then this:

>While LLVM does not require loops to terminate and should compile Rust loops correctly, its code contained assumptions that only hold for C/C++, thus miscompiling Rust code.

... is implied to be a different LLVM bug after the first one was already fixed, ie despite using `mustprogress` LLVM had additional miscompilations for Rust code because of "assumptions that only hold for C/C++". I can't tell which one in table 4.2 it is, though; none of them see to match.


Ah, thank you, I was assuming that C++ inherited this from C.


What's NPA?



But I wonder if it's not always intentional as maybe ad blockers kill some of paywalls some times?


The irony is that someone paid for a 3 letters domain + infrastructure to keep this running for free.


Amazing app, I hope it will last for a long time.


Very cool!! On the last update 0.10 -> 0.11, I had to make quite a few changes on my app, but this time it compiled out of the box!


12ft.io is actually down for me now:

This Deployment has been disabled.

Your connection is working correctly.

Vercel is working correctly.

402: PAYMENT_REQUIRED Code: DEPLOYMENT_DISABLED


Vet is probably a very good example of economies of scale. I remember a vet in my town in Brazil complaining how hard it is if he get ill (or take vacations i presume), that he will lose his customers and how much he regretted not becoming a state employee.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: