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....
=============== 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
http://www.hpi.de/ ________________________________ Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von commits@source.squeak.org commits@source.squeak.org Gesendet: Dienstag, 9. März 2021 11:40:22 An: squeak-dev@lists.squeakfoundation.org; packages@lists.squeakfoundation.org 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....
=============== 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 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 Am 09.03.2021 12:42:36 schrieb Thiede, Christoph christoph.thiede@student.hpi.uni-potsdam.de: 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 [http://www.hpi.de/] Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von commits@source.squeak.org commits@source.squeak.org Gesendet: Dienstag, 9. März 2021 11:40:22 An: squeak-dev@lists.squeakfoundation.org; packages@lists.squeakfoundation.org 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 [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.... [http://forum.world.st/Smalltalk-specialObjectsArray-at-38-tp5125148p5125164....]
=============== 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,
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?
The method comment states that external packages should use addGCRoot() instead. Why doesn't Alien do so?
Best, Christoph ________________________________ Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org 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
Am 09.03.2021 12:42:36 schrieb Thiede, Christoph christoph.thiede@student.hpi.uni-potsdam.de:
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
http://www.hpi.de/ ________________________________ Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von commits@source.squeak.org commits@source.squeak.org Gesendet: Dienstag, 9. März 2021 11:40:22 An: squeak-dev@lists.squeakfoundation.org; packages@lists.squeakfoundation.org 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....
=============== 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].!
squeak-dev@lists.squeakfoundation.org