Implementation limits in Squeak and other STs

Dan Ingalls Dan.Ingalls at disney.com
Sun Feb 6 06:17:56 UTC 2000


Les Tyrrell <tyrrell at canis.uiuc.edu> wrote...
>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

Les (and Richard, and all) -

Yes, this is the one I had in mind.  Thank you!

I have filled in his blanks, and explained about frameSize.

I also think it sould be nice to add max size of strings, symbols, and Arrays (including ability to ask size and subscript the last item ;-), max file size (incl ability to ask size, and set position), and max image size in bytes.  There are some unverified values for some of these in the class comment of Interpreter.  A couple of people have expressed an interest in verifying these.
>-----------
>
>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                                   ???
   unlimited
>Length of binary selectors                                2
   no, its unlimited
>Total length of keyword selectors                       ???
>        (including colons)
   unlimited
>Number of named instance variables per object           254
>        (including inherited)
>Number of class variables per class                     ???
   unlimited
>Number of variables per pool                            ???
   unlimited
>Number of methods per behavior                          ???
   unlimited
>Number of arguments per method or block                  15
>Number of temporary variables per method or block        31
   no, it's really around 56
   The max context size is 56 indexable fields (*),
   and this is the sum of arguments, temps and stack.
>Float precision                                          17
>ScaledDecimal precision                                 N/A
>Total number instance variables	                        ???
   I don't know what this means.

	- Dan

(*) OK, what is a non-power of two doing here?  56 indexable fields, plus the other 6 named fields in BlockContext and MethodContext, adds to 62 words which is the largest an object can be and still have a compact header.  Almost all methods (both statically and dynamically) require only 16 words or less of combined stack and temps, and for these Squeak allocates a context of size 16 instead of the full 56.






More information about the Squeak-dev mailing list