CLIM mail archive


Re: forwarded message from

At  8:14 AM 11/4/93 -0500, Daniel Cerys wrote:
>------- Start of forwarded message -------
>To: clim-request@BBN.COM
>Subject: problems with the scroll size of panes
>Date: Thu, 4 Nov 1993 13:13:50 +0100
>I have the following problem: I am using CLIM 1.O on a Mac.
>I use the framework command and use  several different types of 
>panes. Some of the panes that I need to have get continously filled by a 
>scrollable output. I need to and to inspect some information in these 
>scrollable panes. Unfortunately I have a breakdown with a stack 
>overflow error message, after a certain amount of output in those 
>scollable panes. I have a lot of hardware memory, so I could increase 
>the easyly the memory for the application. So hardware memory is no 
>problem, but I do not know how to extend the buffers for those panes: 
>Is there a possibility to globally (for the whole framework) or 
>locally for a pane to increase the amount of stack or scroll buffer 
>attributed to a pane? Does any-one knows how this could be done?
>Guenter Albers
>------- End of forwarded message -------

I'm assuming that your message is a stack overflow message from MCL and not
from some part of CLIM that maintains its own stack. MCL's stack overflow
error looks like:

> Error: Stack overflow.
> While executing: FOO
> Type Command-. to abort.
See the Restarts. menu item for further choices.
1 > 

MCL's default stack is pretty large, so a stack overflow usually indicates
infinite recursion or code that recursively descends the CDR of a long list.
If the problem is the latter, you may be able to work around it by increasing
MCL's stack size.

When MCL starts up it allocates a bounded percentage of its memory for stack.
You can change the percentage and the upper and lower bounds two ways:

Method #1
Use ResEdit to edit (a copy of) your MCL application. Open the "LSIZ" resource
and change the "Minimum stack size", "Maximum stack size" and/or "Stack allocation
percentage". The easiest way to get what you want is to set the minimum and
maximum to the same number. You can use the Finder's "Get Info..." command to
increase the amount of memory allocated for MCL. If you make the stack very
large, you'll need to increase the total size as well.

Method #2
The other way is to save a new MCL application from inside of MCL.
The following form saves with the default values. You can increase the
minimum to force the stack to be larger. Changing the amount of memory
allocated for MCL with this method is done via the :size keyword. Its
value is a list whose first element is the preferred size and whose
second element is the minimum size. You'll definitely need larger size
values than in the form below for running MCL with CLIM installed.

(save-application "MCL with big stack"
  :init-file "Init"
  :size (list (ash 3072 10) (ash 2048 10))
  :memory-options '(:mac-heap-minimum (ash 32 10)
                    :mac-heap-maximum (ash 180 10)
                    :mac-heap-percentage 6))

Main Index | Thread Index