> 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...