[squeak-dev] The Trunk: Kernel-mt.1437.mcz
marcel.taeumel at hpi.de
Tue Jan 11 11:41:41 UTC 2022
Hi Christoph --
> [...] with this preference enabled [...]
You mean "disabled", I suppose. I fixed that code loading via MethodAddition in Monticellop-mt.765.
Am 10.01.2022 17:58:10 schrieb christoph.thiede at student.hpi.uni-potsdam.de <christoph.thiede at student.hpi.uni-potsdam.de>:
Hi Marcel, Tim, all,
with this preference enabled, I would have expected that I would be able to perform all common code management operations in an image that has no access to the changes file. However, here are some things that still fail under this circumstance:
* load/merge a Monticello version - MethodAddition>>#createCompiledMethod does not honor AcceptsLoggingOfCompilation, and neither does MCMethodDefinition>>#asMethodAddition.
* re-classifying methods in a browser (or renaming a category)
See also all senders to #logMethodSource:forMethodWithNode:inCategory:withStamp:notifying:. I wonder whether this method should check AcceptsLoggingOfCompilation itself, or whether we need to make all senders aware of that preference. It would be really great to be able to open multiple instances of an image in parallel for throwaway experiments. :-)
Sent from Squeak Inbox Talk [https://github.com/hpi-swa-lab/squeak-inbox-talk]
On 2022-01-03T18:44:06+01:00, christoph.thiede at student.hpi.uni-potsdam.de wrote:
> Fantastic! I'm already looking forward to make use of this in my TelegramSmalltalkBot! :-)
> Until then, I wonder whether we should write method changes to the #source attribute of the compiled method in question so that you do not loose your temp names after accepting when the change file is unavailable. See CompiledMethod >> #getSourceFor:in:. What do you think? :-)
> Sent from Squeak Inbox Talk
> On 2021-12-26T07:21:46+00:00, commits at source.squeak.org wrote:
> > Marcel Taeumel uploaded a new version of Kernel to project The Trunk:
> > http://source.squeak.org/trunk/Kernel-mt.1437.mcz
> > ==================== Summary ====================
> > Name: Kernel-mt.1437
> > Author: mt
> > Time: 26 December 2021, 8:21:42.050619 am
> > UUID: 28086a0b-8543-4f44-9c9f-7e63d3028f7f
> > Ancestors: Kernel-ct.1436
> > Makes #acceptsLoggingOfCompilation a preference that can be disabled. See commentary #logCompiledSources. Classes can still override this preference but should follow a "super acceptsLoggingOfCompilation and: [...]" pattern.
> > Thanks to Tim (tpr) for figuring out the mechanics and testing it throughout the year!
> > =============== Diff against Kernel-ct.1436 ===============
> > Item was changed:
> > Behavior subclass: #ClassDescription
> > ????instanceVariableNames: 'instanceVariables organization'
> > + ????classVariableNames: 'AcceptsLoggingOfCompilation TraitImpl'
> > - ????classVariableNames: 'TraitImpl'
> > ????poolDictionaries: ''
> > ????category: 'Kernel-Classes'!
> > !ClassDescription commentStamp: '<historical>' prior: 0!
> > I add a number of facilities to basic Behaviors:
> > ????Named instance variables
> > ????Category organization for methods
> > ????The notion of a name of this class (implemented as subclass responsibility)
> > ????The maintenance of a ChangeSet, and logging changes on a file
> > ????Most of the mechanism for fileOut.
> > ????
> > I am an abstract class, in particular, my facilities are intended for inheritance by two subclasses, Class and Metaclass.
> > The slots 'organization' and 'methodDict' should ONLY be accessed by message in order for things to work during ImageSegment>>discoverActiveClasses (q.v.).!
> > Item was added:
> > + ----- Method: ClassDescription class>>logCompiledSources (in category 'compiling') -----
> > + logCompiledSources
> > + ????<preference: 'Log compilations to changes file'
> > + ????????category: 'general'
> > + ????????description: 'If enabled, the code being compiled will get logged to the changes file. Disabling allows loading code with no changes file in use. See also #warnIfNoChangesFile and #warnIfNoSourcesFile and #readDocumentAtStartup. You can configure a silent image/DoItFirst for, e.g., server environments.'
> > + ????????type: #Boolean>
> > +
> > + ????^ AcceptsLoggingOfCompilation ifNil: [true]!
> > Item was added:
> > + ----- Method: ClassDescription class>>logCompiledSources: (in category 'compiling') -----
> > + logCompiledSources: aBoolean
> > + ????^ AcceptsLoggingOfCompilation := aBoolean!
> > Item was changed:
> > ----- Method: ClassDescription>>acceptsLoggingOfCompilation (in category 'compiling') -----
> > acceptsLoggingOfCompilation
> > ????"weird name is so that it will come lexically before #compile, so that a clean build can make it through. 7/7/96 sw"
> > + ????^AcceptsLoggingOfCompilation ifNil: [true]!
> > - ????^ true!
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220103/35319af7/attachment.html>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Squeak-dev