When we load something from an mcz it goes through the MCMethodDefinition>>#asMethodAddition method.
That used to just have a literal 'true' as the parameter for the logSource: part (in 5.3 images) but it got changed a while back to defer to 'SystemChangeNotifier uniqueInstance isBroadcasting'. I think that is incorrect and that it really ought to take into account the acceptsLoggingOfCompilation setting; interestingly, that is how the MCMethodDefinition>>#load handles things.
The immediate issue is wanting to be able to load mczs in a no-source server image, though it looks like there's a bit of work to do to factor out places where code is inadvisably expecting sources to be both available and held in a positionable stream.
Does anyone see a reason to not change MCMethodDefinition>>#asMethodAddition to be a bit more like MCMethodDefinition>>#load in this matter?
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: HALT: No-Op
Hi tim,
The objective of the change was to not let the Squot tests spam the changes file every time they are run. So as long as that can still be fulfilled reasonably, I have no objections.
Apparently I also made the change in MCMethodDefinition>>#load and already used acceptsLoggingOfCompilation there... I cannot recall a reason to use it there but not in the other method.
Kind regards, Jakob
Am Do., 13. Apr. 2023 um 03:11 Uhr schrieb tim Rowledge tim@rowledge.org:
When we load something from an mcz it goes through the MCMethodDefinition>>#asMethodAddition method.
That used to just have a literal 'true' as the parameter for the logSource: part (in 5.3 images) but it got changed a while back to defer to 'SystemChangeNotifier uniqueInstance isBroadcasting'. I think that is incorrect and that it really ought to take into account the acceptsLoggingOfCompilation setting; interestingly, that is how the MCMethodDefinition>>#load handles things.
The immediate issue is wanting to be able to load mczs in a no-source server image, though it looks like there's a bit of work to do to factor out places where code is inadvisably expecting sources to be both available and held in a positionable stream.
Does anyone see a reason to not change MCMethodDefinition>>#asMethodAddition to be a bit more like MCMethodDefinition>>#load in this matter?
tim
tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Strange OpCodes: HALT: No-Op
Excellent; glad you remember some of it!
The system notification stuff really could, like so many classes, benefit from some commentary to help us use it properly.
On 2023-04-14, at 9:43 AM, Jakob Reschke jakres+squeak@gmail.com wrote:
Hi tim,
The objective of the change was to not let the Squot tests spam the changes file every time they are run. So as long as that can still be fulfilled reasonably, I have no objections.
Apparently I also made the change in MCMethodDefinition>>#load and already used acceptsLoggingOfCompilation there... I cannot recall a reason to use it there but not in the other method.
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim bicycle - a double headed corn cutter
squeak-dev@lists.squeakfoundation.org