Squeak Implementation Limits - a beginning....

Dwight Hughes dwighth at ipa.net
Wed Feb 9 05:03:29 UTC 2000


Below are the Squeak implementation limits I have found or Dan has
posted, along with several larger scale limits I would love to see
filled in from actual testing rather than assumptions. I have used the
ANSI table format (more or less) for Squeak's limits. Note that I have
also included some limits for Dolphin Smalltalk and for VisualWorks 3.0.

Are there other meaningful limits that need to be added? 

Comments and contributions welcome.

-- Dwight

---------------------------------------------------------------------

Squeak 2.7 Implementation Limits
---------------------------------------------------------------------
Parameter                                                 Upper bound
--------------------------                                -----------
Length of identifiers                                       unlimited
Length of binary selectors                                  unlimited
Total length of keyword selectors                           unlimited
    (including colons)
Number of named instance variables per object                     254
    (including inherited)
Number of class instance variables per class                      254
    (including inherited - 11 already used by
    system, 243 available for use)
Number of class variables per class                         unlimited
Number of variables per pool                                unlimited
Number of literals per method                                     255
Number of methods per behavior                              unlimited
Number of arguments per method or block                            15
Number of temporary variables per method or block                  56
    (actually named temps + hidden temps + args + stack
    -- the practical maximum number of temps is ~54)
Bytes of code in a block                                        1,024
    (bytes of compiled code - not source code)
Number of indexable elements in byte-type objects         ___________
Number of indexable elements in word-type objects         ___________
Object size in bytes                                      ___________
Number of objects in image                                ___________
Image size in bytes                                       ___________
Maximum .changes file size in bytes                       ___________
Maximum .sources file size in bytes                       ___________

Float precision                                                    17
ScaledDecimal precision                                           N/A
Maximum SmallInteger:                                   1,073,741,823
Minimum SmallInteger:                                  -1,073,741,824
---------------------------------------------------------------------

Dolphin Smalltalk Limits (from Dolphin Wiki):
---------------------------------------------------------------------
Parameter                                                 Upper bound
--------------------------                                -----------
Method Literals                                                65,536 
Method Temporaries                                                255
Named Instance Variables                                          256
named + indexed Instance Variables                      1,073,741,823
Number of Objects                                           8,388,608 
    (default limit imposed by max virtual
    memory reserved for object table on
    startup - can be changed from image)
Maximum SmallInteger                                    1,073,741,823
Minimum SmallInteger                                   -1,073,741,824
---------------------------------------------------------------------

VisualWorks 3.0 Limits:
---------------------------------------------------------------------
Parameter                                                 Upper bound
--------------------------                                -----------
named instance variables                                          256
method variables                                                  255
    (args + temps variables + temps for optimized loops + ...)
method literals                                                   256
block nesting levels                                              256
block variables                                                   255
    (block args and temps + args and temps from outer scopes
    which the block refers to)
method branches (jumps)    1023
    (forward and backward)
Maximum SmallInteger                                      536,870,911
Minimum SmallInteger                                     -536,870,912 
---------------------------------------------------------------------





More information about the Squeak-dev mailing list