luowy писал(а):
In BB, a public procedure may be exported by a dll that can be called by other languages, so it is necessary to follow this convention.
hm. that's someting i didn't thought about (linking BlackBox as a dynamic library). still, i believe that such exported procedures should be explicitly marked as `[callback]` or `[ccall]`, and for such procedures the compiler will generate save/restore code. so it's a matter of placing the right calling convention at the right place — again, something the programmer should do anyway. there are no checks if calling conventions are right (because it is impossible), so i'm willing to accept this tradeoff for dynamic exports too.