Minor curiosity... I was wondering about the limits on the number of instance variables and class variables (particularly the latter regarding large FFI enumerations), so I produced a script to experiment with. Results: * Class Variables seem to have no practical limit. Although running 6C experiment a second time locks the image for about 3 minutes, but eventually completes. * Instance Variables limit is 255 or 256. This not clear since 256 works, but the error message** for 257 says the limit is 255. ** Error: genStorePopInstVarLong: index index 256 is out of range 0 to 255 cheers -ben Here is the fun script... "================================================" "The experiment has two parameters (select by changing the #at: index): _RANGE - Range of variables assigned. Note variables are declared starting from 0001. _TYPE - (i)instance variable or (C)lass variable" _RANGE := { 1->9. "1. code validation" 201->256. "2. instance variables limit" 201->257. "3. instance variables Error: genStorePopInstVarLong: index index 256 is out of range 0 to 255" 201->299. "4. class variables keep going" 901->999. "5. class variables go extreme" 9901->9999. "6. class variables go ultra extreme" } at: 1. _TYPE := { 'i'. "1. instance variables" 'C' "2. class variables" } at: 1. "Choose experiment parameters above" start := _RANGE key. end := _RANGE value. "DECLARE VARIABLES" vars := ''. 1 to: end do: [:n| vars := vars, _TYPE, (n printPaddedWith: $0 to: 4), ' ' ]. vars. Object subclass: #Test instanceVariableNames: ((_TYPE = 'i') ifTrue: [vars] ifFalse: [ '' ]) classVariableNames: ((_TYPE = 'C') ifTrue: [vars] ifFalse: [ '' ]) poolDictionaries: '' package: 'aaaa'. "First run needs to execute above separately to create the class referred below" "ASSIGN VARIABLES" body := ' '. start to: end do: [ :n| body := body , _TYPE, (n printPaddedWith: $0 to: 4), ':=' , n printString , '. ' ]. body. #Test asClass compile: 'assign ' , body. "INSPECT VARIABLES" body := ' ^{'. start to: end do: [ :n| body := body , _TYPE, (n printPaddedWith: $0 to: 4) , '. ' ]. body. Test compile: 'inspect ' , body , '} inspect'. Test new assign ; inspect.