Christoph Thiede uploaded a new version of System to project The Trunk: http://source.squeak.org/trunk/System-ct.1440.mcz
==================== Summary ====================
Name: System-ct.1440 Author: ct Time: 14 December 2023, 7:45:04.435383 pm UUID: e579f97c-91ca-7c46-bb06-600afc385095 Ancestors: System-mt.1439
Caches source files during, #changedMethodsDo:, which significantly speeded up the changes menu in the docking bar for me.
=============== Diff against System-mt.1439 ===============
Item was changed: ----- Method: ChangeSet>>changedMethodsDo: (in category 'method changes') ----- changedMethodsDo: block
self flag: #environmentsMissing. + CurrentReadOnlySourceFiles cacheDuring: [ + changeRecords keysAndValuesDo: [:className :classRecord | + (Smalltalk classNamed: className) ifNotNil: [:class | + classRecord methodChanges keysAndValuesDo: [:selector :methodRecord | + | method category sourcePointer dateAndTime | + (class includesSelector: selector) + ifTrue: [ + method := class compiledMethodAt: selector. + category := class organization categoryOfElement: selector. + sourcePointer := method sourcePointer. + dateAndTime := method timeStamp] + ifFalse: [ "Method was removed. Try to reconstruct information." + methodRecord methodInfoFromRemoval ifNotNil: [:spec | + sourcePointer := spec first. + category := spec second. + method := CompiledMethod toReturnSelfTrailerBytes: + (CompiledMethodTrailer new sourcePointer: sourcePointer). + method methodClass: class; selector: selector. + dateAndTime := spec size > 2 ifTrue: [spec third]]]. + method ifNotNil: [ + dateAndTime := [TimeStamp fromMethodTimeStamp: dateAndTime] + ifError: [TimeStamp epoch]. + block + cull: method + cull: methodRecord changeType + cull: dateAndTime + cull: category]]]]].! - changeRecords keysAndValuesDo: [:className :classRecord | - (Smalltalk classNamed: className) ifNotNil: [:class | - classRecord methodChanges keysAndValuesDo: [:selector :methodRecord | - | method category sourcePointer dateAndTime | - (class includesSelector: selector) - ifTrue: [ - method := class compiledMethodAt: selector. - category := class organization categoryOfElement: selector. - sourcePointer := method sourcePointer. - dateAndTime := method timeStamp] - ifFalse: [ "Method was removed. Try to reconstruct information." - methodRecord methodInfoFromRemoval ifNotNil: [:spec | - sourcePointer := spec first. - category := spec second. - method := CompiledMethod toReturnSelfTrailerBytes: - (CompiledMethodTrailer new sourcePointer: sourcePointer). - method methodClass: class; selector: selector. - dateAndTime := spec size > 2 ifTrue: [spec third]]]. - method ifNotNil: [ - dateAndTime := [TimeStamp fromMethodTimeStamp: dateAndTime] - ifError: [TimeStamp epoch]. - block - cull: method - cull: methodRecord changeType - cull: dateAndTime - cull: category]]]].!
packages@lists.squeakfoundation.org