3 ms·
Because that's fundamentally incompatible with a competently-designed compiled language. Consider: fn immutable foo() long: asm(long x:"rax") "mov rax 7"
by a1369209993 6y ago
Because that's fundamentally incompatible with a competently-designed compiled language. Consider:
fn immutable foo() long:
asm(long x:"rax") "mov rax 7"
return x
Now try cross-compiling that from a 32-bit ARM machine.
Aside: D is kind of weird in this regard because most of it is designed to work as a interpreted language as well as a compiled one. To the extent the D is good, it's not compiled[0]; to extent that it's compiled[0], it's not good.
0: in the language design sense, not the language implementation sense.
- BeKindAndLearn 6y agoPretty much all languages with turing-complete compile-time expressions only expose a subset. This comfortably lands in the "not in that subset" category.
- a1369209993 6y ago> [...] and Lisp do-- allowing full use of the programming language at compile time. If you only expose a subset, you very specifically don't have the full use of the programming language.
- BeKindAndLearn 6y agoNow you're just being pedantic. Also, leaving out the "D" just before your quote is plain disingenuous. That contextualizes the discussion and clearly establishes we don't mean being able to directly run ASM operations and syscalls willy-nilly at compile time.