[Pkg] The Trunk: System-fbs.598.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Sep 26 19:29:04 UTC 2013

Frank Shearar uploaded a new version of System to project The Trunk:

==================== Summary ====================

Name: System-fbs.598
Author: fbs
Time: 26 September 2013, 8:28:58.617 pm
UUID: 28a7c515-1da1-234f-a59c-8e5a4e23a6dd
Ancestors: System-fbs.597

An AbstractEvent's #environment is not an Environment.

If an AbstractEvent doesn't have an explicit Environment, it returns Smalltalk globals.

The preamble starts the RecentMessages' event collection.

=============== Diff against System-fbs.597 ===============

Item was changed:
  (PackageInfo named: 'System') preamble: '"Prepare for removing the recent-message-tracking from Utilities."
+ SystemChangeNotifier uniqueInstance noMoreNotificationsFor: Utilities.
+ RecentMessages startUp.'!
- SystemChangeNotifier uniqueInstance noMoreNotificationsFor: Utilities.'!

Item was changed:
  Object subclass: #AbstractEvent
  	instanceVariableNames: 'item itemKind environment'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'System-Change Notification'!
+ !AbstractEvent commentStamp: 'fbs 9/26/2013 17:49' prior: 0!
+ An AbstractEvent is used by the system change notification framework to indicate that something happened with code - a class was recategorised, a method was added, and so on.
+ My environment instance variable is a Dictionary containing all the relevant information for an event - selector, class, and so on. It is not an Environment instance!!!

Item was added:
+ ----- Method: AbstractEvent class>>environmentKind (in category 'item kinds') -----
+ environmentKind
+ 	^#environment!

Item was added:
+ ----- Method: AbstractEvent>>itemEnvironment (in category 'accessing') -----
+ itemEnvironment
+ 	^ environment at: self class environmentKind ifAbsent: [Smalltalk globals].!

Item was added:
+ ----- Method: AbstractEvent>>itemEnvironment: (in category 'accessing') -----
+ itemEnvironment: anEnvironment
+ 	^self environmentAt: self class environmentKind put: anEnvironment.!

Item was changed:
  ----- Method: RecentMessages>>event: (in category 'change logging') -----
  event: anEvent
  	"Hook for SystemChangeNotifier"
  	(anEvent isCommented and: [anEvent itemKind = SystemChangeNotifier classKind])
  		ifTrue: [self recordSelector: #Comment forClass: anEvent item inEnvironment: anEvent environment].
  	((anEvent isAdded or: [anEvent isModified]) and: [anEvent itemKind = SystemChangeNotifier methodKind])
  		ifTrue: [
  			anEvent itemRequestor
+ 				ifNotNil: [self recordSelector: anEvent itemSelector forClass: anEvent itemClass inEnvironment: anEvent itemEnvironment].
- 				ifNotNil: [self recordSelector: anEvent itemSelector forClass: anEvent itemClass inEnvironment: anEvent environment].
  			InMidstOfFileinNotification signal
  				ifFalse: [Utilities changed: #recentMethodSubmissions]].!

More information about the Packages mailing list