Implementation limits in Squeak and other STs

Les Tyrrell tyrrell at canis.uiuc.edu
Sat Feb 5 23:43:01 UTC 2000


Dan Ingalls wrote:
> 
> >Posting a picture of the thread of [Q] Comparison of SmallTalk Dialects
> >Is this it?
> 
> Thanks, but no, this isn't it (this one quickly degenerated into a discussion of 36rSMALLTALK).  My recollection was that this was about a year or 18 months ago.  If nothing shows up, I'll be happy to start one of our own, and various people can fill in the blanks for other Smalltalks.
> 
> Thanks again
> 
>         - Dan
> 
> >> A while ago someone posted a summary of limitations for various Smalltalk implementations, including Squeak (like max # temps and literals in a method, max size of Strings, Arrays, etc. and max usable address space.  I would appreciate a private (or public) reply with a pointer to this info.




Sometime around July 23, 1998 Richard Harmon posted this message with
the subject line "ANSI 3.6 Implementation Limits?".  There was a response,
but on a different subject heading.  I haven't found any additional information
that may have been provided. -les

-----------

What are the Squeak implementation limits listed below with ??? and did I
list any incorrect values for those I filled in specified by the proposed
Smalltalk ANSI standard:

3.6 Implementation Limits
        The portability of a conforming program may be dependent upon the
limits of numerous parameters of a conforming Smalltalk language
implementation. For certain parameters, the standard defines a lower limit
for all conforming implementations. Other lower limits are left unspecified
by the standard. All such specified limits are minimally acceptable lower
bounds. Implementation are discouraged from  imposing any unnecessary
restrictions on any implementation parameters.
        The values of the following implementation parameters are
implementation defined and must be documented by conforming implementations:

Parameter                                       Upper bound
--------------------------                      -----------
Length of identifiers                                   ???
Length of binary selectors                                2
Total length of keyword selectors                       ???
        (including colons)
Number of named instance variables per object           254
        (including inherited)
Number of class variables per class                     ???
Number of variables per pool                            ???
Number of methods per behavior                          ???
Number of arguments per method or block                  15
Number of temporary variables per method or block        31
Float precision                                          17
ScaledDecimal precision                                 N/A
Total number instance variables	                        ???


Also, I think there is an anomaly in the following method:

CompiledMethod>>needsFrameSize: newFrameSize
     . . .
     (self numTemps + newFrameSize) >= LargeFrame ifTrue: [
     31             + 3             >= 32
		
          ^self error: 'Cannot compile--stack including temps is too deep'
     ].
     . . .

> From what I can tell, the maximum number of temporary variables is 31 and
the newFrameSize is 3.  Thus I think LargeFrame should be 34 or the maximum
number of temporary variables should be 29.



--
Richard A. Harmon          "The only good zombie is a dead zombie"
harmonra at webname.com           E. G. McCarthy





More information about the Squeak-dev mailing list