[Ecls-list] [Maxima] segmentation fault with Maxima/ECL

Claus Brod claus.brod at googlemail.com
Thu Sep 25 06:10:15 UTC 2008


I'm not very familiar with the GCC toolset, but when using the Microsoft
compiler on Windows systems, the default stack size can be set as a linker
option. As an example, /STACK:0x200000 will establish a stack size of 2 MB;
the default stack size is 1 MB, which indeed is not a lot. See
http://msdn.microsoft.com/en-us/library/8cxs58a6(VS.80).aspx for details.

However, when the Windows version of ECL spawns threads ("processes") at
runtime, it will do this by calling CreateThread() without explicitly
specifying a stack size for the thread. As a result, the new thread will
inherit the default stack size of the application which it is embedded in.
So if you increase the app's default stack size to 50 MB and then create 100
threads, this would reserve 50*100 = 5000 MB of virtual stack memory!

So at least on the Windows platform, I'd suggest to make the thread
("process") stack size configurable first, and then (maybe) to change the
default stack size of the application (in this case, ecl.exe).

Claus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20080925/b649d11e/attachment.html>


More information about the ecl-devel mailing list