Hello.
I noticed three small discrepancies. (I think they don't deserve to be called bugs)
The first is that InterpreterSimulator should have primStringtranslatefromtotable method.
The second is that initCompactClasses in SystemTracer should be consistent with compact classes of the 2.3 release.
The third is that maxFileNameLength for Unix should be not be limited to 31. (I couldn't fileIn a file whose name is longer than 31)
OHSHIMA Yoshiki Dept. of Mathematical and Computing Sciences Tokyo Institute of Technology
'From Squeak 2.3 of January 14, 1999 on 4 February 1999 at 6:18:55 am'!
!InterpreterSimulator methodsFor: 'other primitives' stamp: 'yo 1/29/1999 21:37'! primStringtranslatefromtotable ^ self primitiveFail! !
!SystemTracer methodsFor: 'initialization' stamp: 'yo 2/4/1999 06:22'! initCompactClasses "NOTE: at present the VM counts on BlockContext and MethodContext keeping their present compact class indices." | c | c _ Array new: 31. "These classes have a short name (their index in this table. It is not their oop.) Thus their instances can use just a single word as their header in memory." c at: 1 put: CompiledMethod. c at: 2 put: Symbol. c at: 3 put: Array. c at: 4 put: PseudoContext. c at: 5 put: LargePositiveInteger. c at: 6 put: Float. c at: 7 put: MethodDictionary. c at: 8 put: Association. c at: 9 put: Point. c at: 10 put: Rectangle. c at: 11 put: String. c at: 12 put: TranslatedMethod. c at: 13 put: BlockContext. c at: 14 put: MethodContext. c at: 15 put: Color. c at: 16 put: Bitmap. compactClasses _ c. "Leave 16 to 31 for user defined compact classes."
"Attempt to correctly write contextCache image.." "compactClasses _ Smalltalk compactClassesArray"! !
!UnixFileDirectory class methodsFor: 'platform specific' stamp: 'yo 2/4/1999 06:40'! maxFileNameLength
^ 255 ! !
On Wed 03 Feb, ohshima@is.titech.ac.jp wrote:
The first is that InterpreterSimulator should have primStringtranslatefromtotable method.
Strange, I felt sure that my 2.3 image had that in anyway -but you're right, it was a fix I made from 2.3beta and had remembered to filein. I thought I'd submitted it, but obviously not!
The second is that initCompactClasses in SystemTracer should be consistent with compact classes of the 2.3 release.
Whilst it is better if it is consistent, this is not the whole problem. I've been playing with cloning (again) to do a final 2.3 version of the new CompiledMethod stuff we talked about some time ago. I found Strings that swore they were ClassOrganisers because of the changes in compact class indices! Now that causes some fun bugs, let me tell you. Making the two lists consistent will help a lot, but Dan & I seem to have concluded that stripping the ccIndex field from the class' format word during #writeBehavior: and replacing it with a corrected value would be a better, more robust answer. It will also allow the cloner to deliberately (I put 'dilbertly' first time, fraudian slip:-) change the compact classes list without hassles - which seems like something that should be the case. It turns out that the 2.3beta NCM image has Strings that believe they are compact class members and yet has a String class that thinks it is non-compact. Still works ok though, such are the wonders of our world. Oh, another bug in the cloner right now is that contexts will get cloned as the size up-to-the-SP rather than the fixed 38 words they need to be. More curious behaviour than you could want follows from that little bug!
squeak-dev@lists.squeakfoundation.org