Chris Muller uploaded a new version of Kernel to project The Inbox: http://source.squeak.org/inbox/Kernel-cmm.1198.mcz
==================== Summary ====================
Name: Kernel-cmm.1198 Author: cmm Time: 23 November 2018, 11:12:47.414703 pm UUID: fe228ca8-2ec7-4432-b3d9-76da98be4475 Ancestors: Kernel-eem.1197
- Suggestion that #basicClass should be inlined while #class should be a message send, so that Proxy's can be supported. - If so, then #xxxClass can be banished. - With #xxxClass banished, the Squeak code that called it can be written normally, simply as "class".
=============== Diff against Kernel-eem.1197 ===============
Item was added: + ----- Method: Object>>basicClass (in category 'class membership') ----- + basicClass + "Primitive. Answer the object which is the receiver's class. Essential. See + Object documentation whatIsAPrimitive." + + <primitive: 111> + self primitiveFailed!
Item was changed: ----- Method: Object>>class (in category 'class membership') ----- class + "Answer the object which is the receiver's class. Essential." - "Primitive. Answer the object which is the receiver's class. Essential. See - Object documentation whatIsAPrimitive."
+ ^ self basicClass! - <primitive: 111> - self primitiveFailed!
Item was changed: ----- Method: Object>>storeDataOn: (in category 'objects from disk') ----- storeDataOn: aDataStream "Store myself on a DataStream. Answer self. This is a low-level DataStream/ReferenceStream method. See also objectToStoreOnDataStream. NOTE: This method must send 'aDataStream beginInstance:size:' and then (nextPut:/nextPutWeak:) its subobjects. readDataFrom:size: reads back what we write here." | cntInstVars cntIndexedVars |
cntInstVars := self class instSize. cntIndexedVars := self basicSize. aDataStream + beginInstance: self class - beginInstance: self xxxClass size: cntInstVars + cntIndexedVars. 1 to: cntInstVars do: [:i | aDataStream nextPut: (self instVarAt: i)].
"Write fields of a variable length object. When writing to a dummy stream, don't bother to write the bytes" ((aDataStream byteStream class == DummyStream) and: [self class isBits]) ifFalse: [ 1 to: cntIndexedVars do: [:i | aDataStream nextPut: (self basicAt: i)]]. !
Item was removed: - ----- Method: Object>>xxxClass (in category 'class membership') ----- - xxxClass - "For subclasses of nil, such as ObjectOut" - ^ self class!