On Monday, 12 February 2018 at 06:28:15 UTC, Dmitry Olshansky
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
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.
"D is in a conflicted position regarding the bounds checking
conundrum. The language is trying to offer at the same time the
safety and convenience of modern languages and the ultimate
unmuffled performance sought by system-level programmers. The
bounds checking issue implies a choice between the two, and D
allows you to make that choice instead of making it for you."
[ Andrei Alexandrescu - The D Programming Language, 2010]