The Trunk: Kernel-mt.1380.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Kernel-mt.1380.mcz

commits-2
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].!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Kernel-mt.1380.mcz

Christoph Thiede

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!
Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Kernel-mt.1380.mcz

marcel.taeumel
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 <[hidden email]>:

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].!




Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Kernel-mt.1380.mcz

Christoph Thiede

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 <[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

Am 09.03.2021 12:42:36 schrieb Thiede, Christoph <[hidden email]>:

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!