4 ms·
I love the D language but I actually think its designers got that point wrong. Compilers are _far_ from security hardened and an attacker slipping something ev
by Reelin 6y ago
I love the D language but I actually think its designers got that point wrong.
Compilers are _far_ from security hardened and an attacker slipping something evil into the output binary is probably equally as bad anyway (you distribute it to your users after all). Ultimately you shouldn't be compiling code you don't trust without a good reason and appropriate precautions.
As a counterexample, as far as I'm aware Common Lisp makes no distinction between execution that occurs at compile time versus run time. It still seems to be doing pretty well though!
- rurban 6y agoCommon Lisp programmers know what they do. We do have the same problem in perl, where people don't get the difference of a BEGIN block to an INIT block. With C++ the template syntax is so horrible convoluted, that I doubt people get the idea of compile-time expressions. What is allowed, and what forbidden.
- guenthert 6y ago> Common Lisp makes no distinction between execution that occurs at compile time versus run time. That's not quite phrased correctly. Common Lisp very well makes such a distinction, but allows code to be executed at compile time, load time or run time. See http://www.lispworks.com/documentation/HyperSpec/Body/s_eval_w.htm#eval-when http://www.lispworks.com/documentation/HyperSpec/Body/s_eval... for detaills.