Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.947.mcz
==================== Summary ====================
Name: Kernel-eem.947
Author: eem
Time: 25 August 2015, 4:04:50.097 pm
UUID: 1fd40c5c-0559-47a0-9a1d-1f634d652a28
Ancestors: Kernel-ul.946
Provide an accessor for Compiledmethod's max num literals. Recategorize the frame size accessors under accessing to join it.
=============== Diff against Kernel-ul.946 ===============
Item was changed:
+ ----- Method: CompiledMethod class>>fullFrameSize (in category 'constants') -----
- ----- Method: CompiledMethod class>>fullFrameSize (in category 'class initialization') -----
fullFrameSize "CompiledMethod fullFrameSize"
^ LargeFrame!
Item was added:
+ ----- Method: CompiledMethod class>>maxNumLiterals (in category 'constants') -----
+ maxNumLiterals
+ "The current header format and the VM's interpretation of it allows for a maximum of 32767 literals."
+ ^32767!
Item was changed:
+ ----- Method: CompiledMethod class>>smallFrameSize (in category 'constants') -----
- ----- Method: CompiledMethod class>>smallFrameSize (in category 'class initialization') -----
smallFrameSize
^ SmallFrame!
Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.947.mcz
==================== Summary ====================
Name: Kernel-eem.947
Author: eem
Time: 25 August 2015, 4:04:50.097 pm
UUID: 1fd40c5c-0559-47a0-9a1d-1f634d652a28
Ancestors: Kernel-ul.946
Provide an accessor for Compiledmethod's max num literals. Recategorize the frame size accessors under accessing to join it.
=============== Diff against Kernel-ul.946 ===============
Item was changed:
+ ----- Method: CompiledMethod class>>fullFrameSize (in category 'constants') -----
- ----- Method: CompiledMethod class>>fullFrameSize (in category 'class initialization') -----
fullFrameSize "CompiledMethod fullFrameSize"
^ LargeFrame!
Item was added:
+ ----- Method: CompiledMethod class>>maxNumLiterals (in category 'constants') -----
+ maxNumLiterals
+ "The current header format and the VM's interpretation of it allows for a maximum of 32767 literals."
+ ^32767!
Item was changed:
+ ----- Method: CompiledMethod class>>smallFrameSize (in category 'constants') -----
- ----- Method: CompiledMethod class>>smallFrameSize (in category 'class initialization') -----
smallFrameSize
^ SmallFrame!
Eliot Miranda uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-eem.760.mcz
==================== Summary ====================
Name: System-eem.760
Author: eem
Time: 25 August 2015, 10:47:43.942 am
UUID: 82cc4d4b-562e-4fc6-b8d5-eddb3376678f
Ancestors: System-mt.759
Remove all but the hasNewFinalization vestiges of the "new" (now obsolete) finalization mechanism. Removing the method requires restarting the finalization method, which we'll do in a preamble.
=============== Diff against System-mt.759 ===============
Item was changed:
----- Method: WeakArray class>>finalizationProcess (in category '*System-Finalization') -----
finalizationProcess
- | initialized |
- initialized := false.
[FinalizationSemaphore wait.
+ FinalizationLock
+ critical:
+ [FinalizationDependents do:
+ [ :weakDependent |
+ weakDependent ifNotNil:
+ [weakDependent finalizeValues]]]
- initialized ifFalse: ["check VM capability once at image startup time"
- WeakFinalizationList initTestPair.
- Smalltalk garbageCollect.
- WeakFinalizationList checkTestPair.
- initialized := true].
- FinalizationLock critical:
- [FinalizationDependents do:
- [ :weakDependent |
- weakDependent ifNotNil:
- [weakDependent finalizeValues]]]
ifError:
+ [:msg :rcvr | rcvr error: msg]] repeat!
- [:msg :rcvr | rcvr error: msg]] repeat!
Item was changed:
Object subclass: #WeakFinalizationList
instanceVariableNames: 'first'
+ classVariableNames: ''
- classVariableNames: 'HasNewFinalization TestItem TestList'
poolDictionaries: ''
category: 'System-Finalization'!
!WeakFinalizationList commentStamp: 'Igor.Stasenko 9/22/2010 21:09' prior: 0!
IMPORTANT!!!!!!
This class is a special object, recognized by VM.
Its only purpose is to
a) identify a special kind of objects who usually having a weak references but
also having an instance of me held by first non-weak fixed slot (instance variable).
b) a 'first' instance variable points to the head of a list of items, reported by VM which has weak references which became garbage during last garbage collection
At my class side, there are some public behavior, which is used by finalization process to detect if VM supports new finalization scheme or should use the old one.
Weak registry using #hasNewFinalization for switching to correct finalization logic,
depending on VM it currently runs on.
!
Item was removed:
- ----- Method: WeakFinalizationList class>>checkTestPair (in category 'vm capability test') -----
- checkTestPair
- HasNewFinalization := TestList swapWithNil notNil.!
Item was changed:
----- Method: WeakFinalizationList class>>hasNewFinalization (in category 'vm capability test') -----
hasNewFinalization
+ ^false!
- ^ HasNewFinalization == true!
Item was removed:
- ----- Method: WeakFinalizationList class>>initTestPair (in category 'vm capability test') -----
- initTestPair
- TestItem := WeakFinalizerItem new list: TestList object: Object new.
- !
Item was removed:
- ----- Method: WeakFinalizationList class>>initialize (in category 'class initialization') -----
- initialize
- TestList := self new.!
Item was changed:
----- Method: WeakRegistry>>finalizeValues (in category '*System-Finalization') -----
finalizeValues
"Finalize any values, which happen to stocked in our list, due to some weak references become garbage"
-
- | finalizer |
- WeakFinalizationList hasNewFinalization ifFalse: [
- self protected: [
- valueDictionary finalizeValues.
- finalizer := executors.
- executors := nil ].
- finalizer ifNotNil: [
- finalizer do: [ :each | each finalizeValues ] ].
- ^ self ].
+ | finalizer |
+ self protected:
+ [valueDictionary finalizeValues.
+ finalizer := executors.
+ executors := nil ].
+ finalizer ifNotNil: [finalizer do: [ :each | each finalizeValues]]!
- finalizer := self protected: [ list swapWithNil ].
-
- "We don't need to protect a following loop from concurrent access,
- because at the moment we're finalizing values,
- only we can access this list of finalizers, because valueDictionary already see them
- as an unused slots, because they're associated with key == nil"
-
- [ finalizer notNil ] whileTrue: [
- | next |
- next := finalizer next.
- finalizer finalizeValues.
- finalizer := next ].
- !
Item was changed:
----- Method: WeakRegistry>>installFinalizer (in category 'initialize-release') -----
installFinalizer
+ valueDictionary finalizer:
+ [:executor|
+ (executors ifNil: [executors := OrderedCollection new]) add: executor]!
- valueDictionary finalizer: [ :executor |
- WeakFinalizationList hasNewFinalization
- ifTrue: [ executor finalizeValues ]
- ifFalse: [
- (executors ifNil: [ executors := OrderedCollection new ]) add: executor ] ]!
Eliot Miranda uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-eem.760.mcz
==================== Summary ====================
Name: System-eem.760
Author: eem
Time: 25 August 2015, 10:47:43.942 am
UUID: 82cc4d4b-562e-4fc6-b8d5-eddb3376678f
Ancestors: System-mt.759
Remove all but the hasNewFinalization vestiges of the "new" (now obsolete) finalization mechanism. Removing the method requires restarting the finalization method, which we'll do in a preamble.
=============== Diff against System-mt.759 ===============
Item was changed:
----- Method: WeakArray class>>finalizationProcess (in category '*System-Finalization') -----
finalizationProcess
- | initialized |
- initialized := false.
[FinalizationSemaphore wait.
+ FinalizationLock
+ critical:
+ [FinalizationDependents do:
+ [ :weakDependent |
+ weakDependent ifNotNil:
+ [weakDependent finalizeValues]]]
- initialized ifFalse: ["check VM capability once at image startup time"
- WeakFinalizationList initTestPair.
- Smalltalk garbageCollect.
- WeakFinalizationList checkTestPair.
- initialized := true].
- FinalizationLock critical:
- [FinalizationDependents do:
- [ :weakDependent |
- weakDependent ifNotNil:
- [weakDependent finalizeValues]]]
ifError:
+ [:msg :rcvr | rcvr error: msg]] repeat!
- [:msg :rcvr | rcvr error: msg]] repeat!
Item was changed:
Object subclass: #WeakFinalizationList
instanceVariableNames: 'first'
+ classVariableNames: ''
- classVariableNames: 'HasNewFinalization TestItem TestList'
poolDictionaries: ''
category: 'System-Finalization'!
!WeakFinalizationList commentStamp: 'Igor.Stasenko 9/22/2010 21:09' prior: 0!
IMPORTANT!!!!!!
This class is a special object, recognized by VM.
Its only purpose is to
a) identify a special kind of objects who usually having a weak references but
also having an instance of me held by first non-weak fixed slot (instance variable).
b) a 'first' instance variable points to the head of a list of items, reported by VM which has weak references which became garbage during last garbage collection
At my class side, there are some public behavior, which is used by finalization process to detect if VM supports new finalization scheme or should use the old one.
Weak registry using #hasNewFinalization for switching to correct finalization logic,
depending on VM it currently runs on.
!
Item was removed:
- ----- Method: WeakFinalizationList class>>checkTestPair (in category 'vm capability test') -----
- checkTestPair
- HasNewFinalization := TestList swapWithNil notNil.!
Item was changed:
----- Method: WeakFinalizationList class>>hasNewFinalization (in category 'vm capability test') -----
hasNewFinalization
+ ^false!
- ^ HasNewFinalization == true!
Item was removed:
- ----- Method: WeakFinalizationList class>>initTestPair (in category 'vm capability test') -----
- initTestPair
- TestItem := WeakFinalizerItem new list: TestList object: Object new.
- !
Item was removed:
- ----- Method: WeakFinalizationList class>>initialize (in category 'class initialization') -----
- initialize
- TestList := self new.!
Item was changed:
----- Method: WeakRegistry>>finalizeValues (in category '*System-Finalization') -----
finalizeValues
"Finalize any values, which happen to stocked in our list, due to some weak references become garbage"
-
- | finalizer |
- WeakFinalizationList hasNewFinalization ifFalse: [
- self protected: [
- valueDictionary finalizeValues.
- finalizer := executors.
- executors := nil ].
- finalizer ifNotNil: [
- finalizer do: [ :each | each finalizeValues ] ].
- ^ self ].
+ | finalizer |
+ self protected:
+ [valueDictionary finalizeValues.
+ finalizer := executors.
+ executors := nil ].
+ finalizer ifNotNil: [finalizer do: [ :each | each finalizeValues]]!
- finalizer := self protected: [ list swapWithNil ].
-
- "We don't need to protect a following loop from concurrent access,
- because at the moment we're finalizing values,
- only we can access this list of finalizers, because valueDictionary already see them
- as an unused slots, because they're associated with key == nil"
-
- [ finalizer notNil ] whileTrue: [
- | next |
- next := finalizer next.
- finalizer finalizeValues.
- finalizer := next ].
- !
Item was changed:
----- Method: WeakRegistry>>installFinalizer (in category 'initialize-release') -----
installFinalizer
+ valueDictionary finalizer:
+ [:executor|
+ (executors ifNil: [executors := OrderedCollection new]) add: executor]!
- valueDictionary finalizer: [ :executor |
- WeakFinalizationList hasNewFinalization
- ifTrue: [ executor finalizeValues ]
- ifFalse: [
- (executors ifNil: [ executors := OrderedCollection new ]) add: executor ] ]!
Chris Muller uploaded a new version of Installer-Core to project The Trunk:
http://source.squeak.org/trunk/Installer-Core-cmm.400.mcz
==================== Summary ====================
Name: Installer-Core-cmm.400
Author: cmm
Time: 25 August 2015, 11:06:20.165 am
UUID: 28706d1b-7c7a-46f9-be11-a9abdf855614
Ancestors: Installer-Core-cmm.399
Original squeaksource.com does not allow dash characters in project id's.
=============== Diff against Installer-Core-cmm.399 ===============
Item was changed:
----- Method: Installer>>maInstaller (in category 'package-definitions') -----
maInstaller
"Select from a family of related packages for application development."
+ ^ { #ss -> 'MaInstaller'.
- ^ { #ss -> 'Ma-Installer'.
'Ma-Installer-Core' }!
Chris Muller uploaded a new version of Installer-Core to project The Trunk:
http://source.squeak.org/trunk/Installer-Core-cmm.400.mcz
==================== Summary ====================
Name: Installer-Core-cmm.400
Author: cmm
Time: 25 August 2015, 11:06:20.165 am
UUID: 28706d1b-7c7a-46f9-be11-a9abdf855614
Ancestors: Installer-Core-cmm.399
Original squeaksource.com does not allow dash characters in project id's.
=============== Diff against Installer-Core-cmm.399 ===============
Item was changed:
----- Method: Installer>>maInstaller (in category 'package-definitions') -----
maInstaller
"Select from a family of related packages for application development."
+ ^ { #ss -> 'MaInstaller'.
- ^ { #ss -> 'Ma-Installer'.
'Ma-Installer-Core' }!