On 08/04/14 11:40, Oliver Kowalke wrote:
2014-04-08 11:27 GMT+02:00 Andrey Semashev
: Also, as a side note, many opensource projects with asm code limit themselves with just one assembler (I'd say yasm is one of the most popular ones). This isn't really a problem as long as the required tool is available and free for all target platforms. I think it is ok if Boost.Context limits the set of supported assemblers, although I'm not sure that supporting only masm on Windows is a good idea. I'd prefer an open alternative, even if it is not the standard one shipped with VS. Otherwise Boost.Context becomes vendor-locked on that particular platform. yasm is really good in this respect - it is widely available, lightweight and opensource.
I'm not against to support GNU as on Windows - but I don't want to be forced to support the assembler tools coming along with all the toolsets (sun, xlc, pathscale, pgi, ...) on the variation of architecture, ABI, binary-format etc.
In the future I might provide an implementation for GNU as on Windows but at the moment I have not the time.
So for x86 we have: Linux/Mac 32-bit GAS Linux/Mac 64-bit GAS Windows 32-bit GAS Windows 32-bit MASM Windows 64-bit GAS Windows 64-bit MASM That's 6 versions of the code. Possibly Windows GAS and Linux/Mac GAS can be the same in certain situations, further reducing the number of combinations. Is 6 really much worse than 4 versions?