lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


I'm a bit late, but just wanted to mention that when LTCG and the default 1 MiB
stack size is used with some MSVC versions (details below) to compile a 64-bit
Lua, the cstack.lua test fails at the simple recursion. Looks like the
generated code from this option uses up more stack space and the default
LUAI_MAXCSTACK value of 2000 is too high for it. I'm guessing LTCG is not used
often enough that it should be taken into consideration for the default value,
right?

I compiled all Lua files with the following command:
cl.exe /nologo /MD /c /O2 /GL

Linked all obj files to a DLL:
link.exe /nologo /LTCG /DLL /OUT:lua54.dll

And then linked the standalone interpreter:
link.exe /nologo /LTCG /OUT:lua.exe lua54.lib

MSVC from Visual Studio 15.9.21 (cl.exe 19.16.27038, link.exe 14.16.27038.0)
testing simple recursion: 1931

MSVC from Visual Studio 16.6.0 (cl.exe 19.26.28805, link.exe 14.26.28805.0)
testing simple recursion: 1822

Older versions (14 and 10) generate code that passes the test with the 2000
value. I thought this may be interesting to someone who changes compiler
versions and uses LTCG.

Oh, and the other (basic) tests are all OK of course.

Thanks for the new Lua version.

This is my first email to the list, I hope it works correctly. My apologies if
something got messed up.