On 4/3/2011 2:39 AM, Ulrik Mikaelsson wrote:
If you're looking for uncommonly used language-features that could
easily be otherwise solved, go ahead and remove asm instead. I'll
guess it's about as uncommon as octal literals (or maybe even more),
have simple other solution (just compile it separately and link), and
has much greater impact on the language and the compiler.

I've done assembler the old fashioned way - a separate .asm file assembled with masm and linked in - for years. Having the inline assembler is an ENORMOUS productivity improvement. Just a few off the top of my head:

1. MASM's syntax changes unpredictably from version to version. I'd get a lot of grief from customers with "this doesn't assemble with *my* version of MASM", or "I don't have MASM".

2. Different assemblers have utterly different syntax - see MASM and GAS.

3. MASM can't read struct declarations, meaning you now have parallel declarations that manually must be synced.

4. MASM doesn't understand C++ or D name mangling.

5. Can't mix MASM files and D code in the same function.

6. Can't access D manifest constants from MASM.

7. D takes care of local variable stack addressing modes for you.

8. I can't fix MASM bugs.

9. And Adam's comments.

Reply via email to