Marcel Taeumel uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-mt.1380.mcz ==================== Summary ==================== Name: Kernel-mt.1380 Author: mt Time: 9 March 2021, 11:40:18.855529 am UUID: cef64cd0-d892-584e-8bce-6f5dac0202fc Ancestors: Kernel-eem.1379 Make sure that special object no. 38 is FullBlockClosure. See discussion at http://forum.world.st/Smalltalk-specialObjectsArray-at-38-tp5125148p5125164.html =============== Diff against Kernel-eem.1379 =============== Item was added: + ----- Method: FullBlockClosure class>>initialize (in category 'class initialization') ----- + initialize + "Also see SmalltalkImage >> #recreateSpecialObjectsArray." + + (Smalltalk specialObjectsArray at: 38) + ifNil: [Smalltalk specialObjectsArray at: 38 put: self].! |
Hi Marcel,
why do we need a redundant #initialize method for this? Wouldn't it have been enough to trigger #recreateSpecialObjectsArray in a postscript? Duplication hurts :-)
Best, Christoph Von: Squeak-dev <[hidden email]> im Auftrag von [hidden email] <[hidden email]>
Gesendet: Dienstag, 9. März 2021 11:40:22 An: [hidden email]; [hidden email] Betreff: [squeak-dev] The Trunk: Kernel-mt.1380.mcz Marcel Taeumel uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-mt.1380.mcz ==================== Summary ==================== Name: Kernel-mt.1380 Author: mt Time: 9 March 2021, 11:40:18.855529 am UUID: cef64cd0-d892-584e-8bce-6f5dac0202fc Ancestors: Kernel-eem.1379 Make sure that special object no. 38 is FullBlockClosure. See discussion at http://forum.world.st/Smalltalk-specialObjectsArray-at-38-tp5125148p5125164.html =============== Diff against Kernel-eem.1379 =============== Item was added: + ----- Method: FullBlockClosure class>>initialize (in category 'class initialization') ----- + initialize + "Also see SmalltalkImage >> #recreateSpecialObjectsArray." + + (Smalltalk specialObjectsArray at: 38) + ifNil: [Smalltalk specialObjectsArray at: 38 put: self].!
Carpe Squeak!
|
Hi Christoph. > Duplication hurts :-) Now think again about modularity and global state. ;-) Take the slot for "Alien" as an example, which I replaced in "FFI-Callbacks". Projects are free to switch between compatible classes as the VM will happily produce the new instances. While this may not be true for all slots in the special-objects array, it is still true for many of them. So, #recreateSpecialObjectsArray may be the actual issue here. Best, Marcel
|
Hi Marcel,
that's a fair point. :-) How can we get rid of Alien in #recreateSpecialObjects? Would it be okay to move it into something like "Alien initialize"? Or should #recreateSpecialObjects provide hooks/arguments to keep control of this central array? Von: Squeak-dev <[hidden email]> im Auftrag von Taeumel, Marcel
Gesendet: Dienstag, 9. März 2021 12:47:11 An: squeak-dev Betreff: Re: [squeak-dev] The Trunk: Kernel-mt.1380.mcz
Hi Christoph.
> Duplication hurts :-)
Now think again about modularity and global state. ;-) Take the slot for "Alien" as an example, which I replaced in "FFI-Callbacks". Projects are free to switch between compatible
classes as the VM will happily produce the new instances. While this may not be true for all slots in the special-objects array, it is still true for many of them. So, #recreateSpecialObjectsArray
may be the actual issue here.
Best,
Marcel
Carpe Squeak!
|
Free forum by Nabble | Edit this page |