[Pharo12] commentSourcePointer and Metaclass

MD
Marcus Denker
Thu, May 4, 2023 1:51 PM

Hi,

up to Pharo11, the commentSourcePointer that is used to read and write the class comments was in ClassOrganization.

In Pharo 12, we moved the commentSourcePointer to Class, Metaclass therefore has no empty commentSourcePointer anymore
via it’s organizer.

PR is merged… these are of course more steps then you would think

Started in Pharo11:

Pharo 12:

and DONE. Moving ivars around in these classes is of course not easy, it can only be done with creating a PR by editing
the code directly and then can be bootstapped, but you could not do that from a running image.

(this explains why the commentSourcePointer was in ClassOrganization to start with, when it was introduced, this was
the only place to put without major hassle)

  • the code is now much simpler to understand (Metaclass forwards all methods related to comments to #instanceSide)

  • it saves (a little bit) of memory
    (Smalltalk globals allClasses size * 8)  bytes

  • is just one step to move merge ClassOrganization with ClassDescription, which will be a bit more relevant in terms of memory

    Marcus

Hi, up to Pharo11, the commentSourcePointer that is used to read and write the class comments was in ClassOrganization. In Pharo 12, we moved the commentSourcePointer to Class, Metaclass therefore has no empty commentSourcePointer anymore via it’s organizer. PR is merged… these are of course more steps then you would think Started in Pharo11: - ix-tests-commentSourcePointer #11441 https://github.com/pharo-project/pharo/pull/11441 - Add commentSourcePointer to ClassDescription #11326 https://github.com/pharo-project/pharo/pull/11326 Pharo 12: - Set-CommentSourcepointer-ClassDescription #13171 https://github.com/pharo-project/pharo/pull/13171 - remove commentSourcePointer from ClassOrganization #13176 https://github.com/pharo-project/pharo/pull/13176 - CommentSourcePointer-move-methods-down #13640 https://github.com/pharo-project/pharo/pull/13640 - move commentSourcePointer from ClassDescription to Class #13643 https://github.com/pharo-project/pharo/pull/13643 - fix BehaviorTest>>#testInstSize #13648 https://github.com/pharo-project/pharo/pull/13648 and DONE. Moving ivars around in these classes is of course not easy, it can only be done with creating a PR by editing the code directly and then can be bootstapped, but you could not do that from a running image. (this explains why the commentSourcePointer was in ClassOrganization to start with, when it was introduced, this was the only place to put without major hassle) - the code is now much simpler to understand (Metaclass forwards all methods related to comments to #instanceSide) - it saves (a little bit) of memory (Smalltalk globals allClasses size * 8) bytes - is just one step to move merge ClassOrganization with ClassDescription, which will be a bit more relevant in terms of memory Marcus