> Isn't the inline pragma Sure. But I was more confused about the other statement:
> Many compilers do not support link time optimisations, at least not by > default, and even if they do, Nim doesn’t make use of such features yet gcc and clang support LTO well, and Nim makes use of it of course. For gcc I have $ cat nim.cfg path:"$projectdir" nimcache:"/tmp/$projectdir" gcc.options.speed = "-march=native -O3 -flto -fstrict-aliasing" and it works out of the box. For clang we need the gold linker to make LTO work. Inline pragma copies the C function into all the involved C files, to ensure that inlinening works over module boundaries even without LTO enabled for the C compiler. But I still have to read the post more carefully, maybe I misunderstand something...