Marcel Taeumel uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-mt.331.mcz
==================== Summary ====================
Name: EToys-mt.331
Author: mt
Time: 28 May 2018, 10:49:36.21837 am
UUID: ed4a189e-f34e-4e4b-ad4e-e3b1bb678628
Ancestors: EToys-kfr.330
Appendix to Kernel-mt.1172 (uniclasses)
=============== Diff against EToys-kfr.330 ===============
Item was changed:
----- Method: Player class>>environment (in category 'organization') -----
environment
+ "If there are uniclasses of Player that do not have their custom environment set, create a new one on the fly. Can be removed in the future. See Class >> #newSubclass or the flag #uniclasses."
+
+ ^ (self isUniClass and: [super environment == Environment default])
+ ifTrue: [self newEnvironment]
-
- ^ self isUniClass
- ifTrue: [(Environment withName: 'EtoysUserDefinedTempEnvironment')
- at: self name asSymbol put: self;
- importSelf;
- yourself]
ifFalse: [super environment]!
Item was changed:
----- Method: ReleaseBuilderSqueakland class>>clearCaches (in category 'scripts') -----
clearCaches
ObjectScanner new. "clear ObjectScanner's class pool"
ExternalSettings registerClient: ServerDirectory.
+ #('Morphic-UserObjects' 'EToy-UserObjects' 'Morphic-Imported'), {Object categoryForUniclasses}
- #('Morphic-UserObjects' 'EToy-UserObjects' 'Morphic-Imported' 'UserObjects')
do: [:each | SystemOrganization removeSystemCategory: each].
super clearCaches.!
Marcel Taeumel uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-mt.816.mcz
==================== Summary ====================
Name: Tools-mt.816
Author: mt
Time: 27 May 2018, 1:29:43.342902 pm
UUID: 2cf67d46-e4f6-724f-af58-3c5bf46ef91e
Ancestors: Tools-mt.815
For clarity, only use one environment per system code browser. There is code in Browser etc. that relies on that fact.
=============== Diff against Tools-mt.815 ===============
Item was changed:
----- Method: Browser>>environment (in category 'accessing') -----
environment
+ ^ environment ifNil: [Environment default]!
- ^ environment ifNil: [super environment]!
Karl Ramberg uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-kfr.330.mcz
==================== Summary ====================
Name: EToys-kfr.330
Author: kfr
Time: 26 May 2018, 11:55:21.200868 am
UUID: 6d9d29a4-708f-e540-a815-584b7d42115e
Ancestors: EToys-mt.329
Player had a send to deprecated Smalltalk>>removeKey:ifAbsent:
=============== Diff against EToys-mt.329 ===============
Item was changed:
----- Method: Player class>>freeUnreferencedSubclasses (in category 'housekeeping') -----
freeUnreferencedSubclasses
"Player classes may hold in their class instance variables references
to instances of themselves that are housekeepingwise unreachable. This
method allows such loops to be garbage collected. This is done in three
steps:
1. Remove user-created subclasses from the 'subclasses' set and from
Smalltalk. Only remove classes whose name begins with 'Player' and which
have no references.
2. Do a full garbage collection.
3. Enumerate all Metaclasses and find those whose soleInstance's
superclass is this class. Reset the subclasses set to this set of
classes, and add back to Smalltalk."
"Player freeUnreferencedSubclasses"
| oldFree candidatesForRemoval class |
oldFree := Smalltalk garbageCollect.
candidatesForRemoval := self subclasses asOrderedCollection select:
[:aClass | (aClass name beginsWith: 'Player') and: [aClass name
endsWithDigit]].
"Break all system links and then perform garbage collection."
candidatesForRemoval do:
[:c | self removeSubclass: c. "Break downward subclass pointers."
+ Smalltalk globals removeKey: c name ifAbsent: []. "Break binding of global
- Smalltalk removeKey: c name ifAbsent: []. "Break binding of global
name"].
candidatesForRemoval := nil.
Smalltalk garbageCollect. "Now this should reclaim all unused
subclasses"
"Now reconstruct system links to subclasses with valid references."
"First restore any global references via associations"
(Association allSubInstances select:
[:assn | (assn key isSymbol)
and: [(assn key beginsWith: 'Player')
and: [assn key endsWithDigit]]])
do: [:assn | class := assn value.
(class isKindOf: self class) ifTrue:
[self addSubclass: class.
Smalltalk add: assn]].
"Then restore any further direct references, creating new
associations."
(Metaclass allInstances select:
[:m | (m soleInstance name beginsWith: 'Player')
and: [m soleInstance name endsWithDigit]])
do: [:m | class := m soleInstance.
((class isKindOf: self class) and: [(Smalltalk includesKey: class
name) not]) ifTrue:
[self addSubclass: class.
Smalltalk at: class name put: class]].
SystemOrganization removeMissingClasses.
^ Smalltalk garbageCollect - oldFree
!
Marcel Taeumel uploaded a new version of ReleaseBuilder to project The Trunk:
http://source.squeak.org/trunk/ReleaseBuilder-mt.184.mcz
==================== Summary ====================
Name: ReleaseBuilder-mt.184
Author: mt
Time: 25 May 2018, 10:06:40.125844 am
UUID: 93aa5eff-5938-ca4c-97f2-1cfff9337924
Ancestors: ReleaseBuilder-mt.183
Updates the commit-message file-out code to be used as helper for writing the release notes.
Just call "ReleaseBuilder fileOutChangesBetweenReleases" and look for a new "*.md" file in your working directory.
=============== Diff against ReleaseBuilder-mt.183 ===============
Item was changed:
----- Method: ReleaseBuilder class>>changesBetweenReleases (in category 'scripts - support') -----
changesBetweenReleases
| repos configs result |
+ repos :=#(51) collect: [:ea |
- repos :=#(41 42 43 44 45 50) collect: [:ea |
(MCHttpRepository
location: 'http://source.squeak.org/squeak', ea
user: 'squeak'
password: 'squeak')].
configs := repos collect: [:ea | ea description -> (self firstConfigurationIn: ea map: 'update')].
configs := configs, {(self buildRepository description -> self buildConfiguration)}.
result := OrderedDictionary new.
configs overlappingPairsDo: [:c1 :c2 |
result
at: c2 key
put: (self changesBetween: c1 value and: c2 value)].
^ result
!