[M3devel] more crashers

jay.krell at cornell.edu jay.krell at cornell.edu
Mon Aug 17 10:10:33 CEST 2009


Ps a few things

We should see about reducing stack usage.

We should see about eliminating recursion on the machine stack.  
Recursion is ok but use a heap allocated data structure.

We should experiment to see what some behaviors are specifically  
default stack sizes, if the stack size is actually changable, and how  
small it can actually be made on the various platforms. For  
*hypothetical* example if other than solaris rounds stack size up to  
64k boundary then default should be increased to 64k. It depends what  
behaviors exist.

I find the machine stack to the extent that I am familiar with it's  
implementations, broken. It is fast but it has two severe problems vs  
heap.

1 you generally have to somehow guess at its maximum size which is  
approx impossible and approx never done

2 generally no code deals with stack exhaustion, with good reason, it  
is difficult/impossible/not portable.

Compare that to malloc where it is generally limited only by address  
space, everyone knows what failure looks like, and you can easily  
detect and react to failure, portably.

It would be cool if alloca could return
Null for out of stack but that doesn't nearly solve the problem. (yes  
I understand, alloca is not used for the vast majority of stack  
allocation, and isn't even portable)

  - Jay (phone)

On Aug 16, 2009, at 9:01 PM, Jay K <jay.krell at cornell.edu> wrote:

>
> visobliq was stack overflow.
> Raising the default from 4K to 16K didn't fix, but 32K did.
>
> - Jay
>
> ----------------------------------------
>> From: jay.krell at cornell.edu
>> To: hosking at cs.purdue.edu
>> CC: m3devel at elegosoft.com
>> Subject: RE: [M3devel] more crashers
>> Date: Sun, 16 Aug 2009 20:32:31 +0000
>>
>>
>> m3browser:
>>
>> It is specific to my config file m3-sys/cminstall/src/config-no- 
>> install/cm3.cfg that reachs back into the source tree. It won't  
>> happen with what most people do. I have to do that M3Predefines or  
>> such work so that all the uses of m3quake besides cm3 are much more  
>> like cm3.
>>
>>
>> visobliq:
>> not the same thing
>> Does not occur on Linux/x86 or Linux/sparc.
>> They do print
>> Syntax error just before: -helvetica-bold-\*R-\*240-\*\")  
>> (LabelFo ...
>> ill-formed character escape sequence
>> Error detected (file file generated by Visual Obliq) (line 18, char  
>> 10)
>> VideoVBT.Start Jv ServerFailure:errno=0
>>
>> but then gui comes up.
>> I'll have to finish my Solaris reinstall and get dbx.
>>
>>
>> - Jay
>>
>>
>> ----------------------------------------
>>> From: jay.krell at cornell.edu
>



More information about the M3devel mailing list