On Sunday, 11 February 2018 at 15:11:55 UTC, psychoticRabbit
wrote:
On Wednesday, 7 February 2018 at 20:30:54 UTC, Dmitry Olshansky
wrote:
Other languages like Rust or C# (or Java) have bounds check.
Plus we probably lose it in release mode, which is the mode
where lurking bugs are discovered usually days after
development ;) Some of these languages would prevent it on the
VM level/compiler level, leaving no way to shoot yourself in
the foot.
We all really need to get away from this idea that *we* should
stop *others* from shooting themselves in the foot. People are
free to do it, if they want. Who has the right to take that
choice away from me?
Your customers if you have any. Brcause they is inevitably you
one day.
So let's NOT be like those other languages that just want to
control what you do.
Then pick assembly of sorts.
C ABI is a stright-jacket that ensures e.g. that your callstack
is laid out correctly so that a ‘ret’ will bring you back to the
call site not somewhere else. Do I need to mention libc’s
machinations done “for compatibility”.
Who the fuck were these guys to steal the pleasure of misaligned
stacks and wrong push/pop order? Or register save missed?
The reality is we are programming on top of increasingly complex
run-times that solve low-level problems to certain extents. That
includes C (even w/o libc) and pretty much any other high-level
language.
-boundscheck=off
D rocks!