From: Arseny S. <am...@ic...> - 2002-03-23 09:34:20
|
Hi, Friday, March 08, 2002, 8:06:10 PM, you wrote: Joerg-Cyril> o (queens 21.0s0) still crashes. I investigated the stack handling in win32. It seems that all works ok, so hash table handling code just eats too much program stack. Thus, it is not a crash, but a nice stack overflow handling. To increase maximal hashtable size you may relink lisp with other stack size instead of current 3145728 (it's set in Makefile by editbin utility when building in MSVC). This memory doesn't being allocated at once but only when it's needed through exception mechanism, so I find it safe to change 3M value to, say, 16M (16777216). Maybe we should ask Sam to change Makefile.in ? I'm not a unix expert and cannot say what stack size available on FreeBSD version. But the following function (defun a(x) (print x) (+ x (a (+ x 1)))) being called as (a 1) counts until 3287 in win NT and approx. until 15000 in FreeBSD. I wonder whether it's because of another aligment or because of greater stack limit. It's interesting, what will print linux version of clisp. Question to honorable Sam: You recently maked weak-hash-tables, may be you know, why hash tables are so program-stack hungry ? Max. HT size seems roughly proportional to program stack size, i.e. for 1.5M stack max HT is 55000, for 3M stack max HT size is 123000. -- Best regards, Arseny mailto:am...@ic... |