Still most modern languages are moving away from inline assembly. Even Microsoft has dropped inline assembly support for the 64bit version of Visual C++, pointing developers to MASM.
People will always complain no matter what. Just use the official assembler for the target platform. Personally the last time I used inline assembly I was still target MS-DOS, long time ago and actually it is one of the features I don't like in D. -- Paulo "Walter Bright" <newshou...@digitalmars.com> wrote in message news:i98ub5$2bk...@digitalmars.com... > Yeah, and I've done that. It doesn't work out as well as you say, nor is > it that easy. Problems: > > 1. You have to reimplement it for every platform and every memory model. > 2. For some systems, like Windows, there are a wide variety of assemblers. > They all use slightly different syntax. Distributing an asm file means an > *unending* stream of complaints from people who don't have an assembler or > have a different one than yours. > 3. Getting all the boilerplate segment declarations right is a nuisance. > 4. Name mangling. > 5. Next your asm code all breaks when you want to recompile your app as a > shared library. > 6. Asm files are a nightmare on OSX. > > A language should be there to solve problems, not create them :-) > > Paulo Pinto wrote: >> Easy, just implement a small assembly funtion. >> >> Not everything has to be in the language. >> >> "Walter Bright" <newshou...@digitalmars.com> wrote in message >> news:i984lr$od...@digitalmars.com... >>> Walter Bright wrote: >>>> It's hard to see how to implement, say, a storage allocator with no >>>> pointer arithmetic. >>> Here's another one. Try implementing va_arg without pointer arithmetic. >>