Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.847.mcz
==================== Summary ====================
Name: Kernel-eem.847
Author: eem
Time: 2 May 2014, 5:45:56.76 pm
UUID: 61cf122b-e7e3-4c10-9d8b-17df1509d656
Ancestors: Kernel-eem.846
Fix class reshaping losing the correct methodClassAssociation
in instance side methods.
=============== Diff against Kernel-eem.846 ===============
Item was changed:
----- Method: Behavior>>compileAllFrom: (in category 'compiling') -----
compileAllFrom: oldClass
"Compile all the methods in the receiver's method dictionary.
This validates sourceCode and variable references and forces
all methods to use the current bytecode set"
+ | envBinding binding |
- | binding |
"ar 7/10/1999: Use oldClass selectors not self selectors"
oldClass selectorsDo: [:sel | self recompile: sel from: oldClass].
"Ensure that we share a common binding after recompilation.
+ This is so that ClassBuilder reshapes avoid creating new bindings
+ for every method when recompiling a large class hierarchy.
+ eem 5/2/2014 17:43: Further, if we're not yet in the environment
+ (because we're about to be mutated into oldClass), use oldClass's
+ binding, so as not to end up with the wrong binding post recompile."
- This is so that ClassBuilder reshapes avoid creating new bindings
- for every method when recompiling a large class hierarchy."
binding := self binding.
+ (self name = oldClass name
+ and: [(envBinding := self environment bindingOf: self name) ~= binding
+ and: [envBinding = oldClass binding]]) ifTrue:
+ [binding := envBinding].
self methodsDo:[:m|
m methodClassAssociation == binding
ifFalse:[m methodClassAssociation: binding]].
!
Changes to Trunk (http://source.squeak.org/trunk.html) in the last 24 hours:
http://lists.squeakfoundation.org/pipermail/packages/2014-May/007006.html
Name: Collections-nice.566
Ancestors: Collections-topa.565
Let NullStream understand protocol for Character writing.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2014-May/007007.html
Name: KernelTests-nice.266
Ancestors: KernelTests-dtl.265
Get rid of a useless shouldnt:raise:
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2014-May/007008.html
Name: CollectionsTests-eem.216
Ancestors: CollectionsTests-topa.215
Add tests that expect unsurprising behaviour from
([Read|Write]Stream on:...from:...to:...) contents
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2014-May/007009.html
Name: Collections-eem.567
Ancestors: Collections-nice.566
Fix ([Read|Write]Stream on:...from:...to:...) contents. The old code
would always copy from 1 to the end, not from whatever the
from: argument was.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2014-May/007010.html
Name: Kernel-cmm.845
Ancestors: Kernel-cwp.844
- #flush after printing error information, and before image immediately exits, otherwise it won't always get written.
- Add accessor for #negativeInfinity so I don't have to create new Float via Float infinity negated when all I want to do is compare.
- #asBytesDescription for Float too because this is a very useful printing method for even things other than byte counts (and we should think of a better name for it too).
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2014-May/007011.html
Name: Environments-cmm.51
Ancestors: Environments-cwp.50
- Environment preamble, repair your 'Instances' dictionary, make Environments consistently named with Symbols.
- EnvironmentInfo, ensure incoming Strings for your name are coerced to Symbols.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2014-May/007012.html
Name: Kernel-eem.846
Ancestors: Kernel-cmm.845
Fix whichMethodsStoreInto: for pool variables.
Any kind soul who wants to do the same for
whichSelectorsStoreInto: et al is encouraged
to do so. The test case is looking for reads or writes
of a pool variable.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2014-May/007013.html
Name: System-eem.671
Ancestors: System-cwp.670
Fix allStoresInto:from: for pool variables and hence fix
browsing assignments... to a pool variable in classes that
use the pool.
=============================================
Eliot Miranda uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-eem.671.mcz
==================== Summary ====================
Name: System-eem.671
Author: eem
Time: 2 May 2014, 4:07:33.923 pm
UUID: 89a11af6-9ef1-4bda-a42f-933a8ce17bb0
Ancestors: System-cwp.670
Fix allStoresInto:from: for pool variables and hence fix
browsing assignments... to a pool variable in classes that
use the pool.
=============== Diff against System-cwp.670 ===============
Item was changed:
----- Method: SystemNavigation>>allStoresInto:from: (in category 'query') -----
allStoresInto: varName from: aClass
"Answer a sequence of MewthodReferences for all the receiver's methods
or any methods of a subclass/superclass that assign to the instance variable name."
"self new allStoresInto: 'contents' from: Collection."
| result |
result := OrderedCollection new.
+ (aClass theNonMetaClass inheritsFrom: SharedPool) ifTrue:
+ [self allBehaviorsDo:
+ [:class|
+ (class theNonMetaClass sharedPools includes: aClass theNonMetaClass) ifTrue:
+ [(class whichMethodsStoreInto: varName) do:
+ [:eachMethod|
+ result add: eachMethod methodReference]]]].
aClass withAllSubAndSuperclassesDo:
[ : class |
(class whichMethodsStoreInto: varName) do:
[ : eachMethod |
result add: eachMethod methodReference ] ].
^result!
Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.846.mcz
==================== Summary ====================
Name: Kernel-eem.846
Author: eem
Time: 2 May 2014, 4:04:03.262 pm
UUID: b9c690a8-8a32-44bc-b553-2a2bceedae70
Ancestors: Kernel-cmm.845
Fix whichMethodsStoreInto: for pool variables.
Any kind soul who wants to do the same for
whichSelectorsStoreInto: et al is encouraged
to do so. The test case is looking for reads or writes
of a pool variable.
=============== Diff against Kernel-cmm.845 ===============
Item was removed:
- ----- Method: Class>>whichMethodsStoreInto: (in category 'testing') -----
- whichMethodsStoreInto: varName
- "Answer a collection of CompiledMethod whose methods access the argument, varName, as a named class variable. Or let super try with a named instance variable."
- | ref |
- ref := self classPool
- associationAt: varName
- ifAbsent: [ ^ super whichMethodsStoreInto: varName ].
- ^self methodDict values select: [:eachMethod | eachMethod writesRef: ref ]!
Item was added:
+ ----- Method: ClassDescription>>whichMethodsStoreInto: (in category 'testing') -----
+ whichMethodsStoreInto: varName
+ "Answer a collection of CompiledMethod whose methods access the argument, varName,
+ as a named class or pool variable. Or let super try with a named instance variable."
+ ^(self bindingOf: varName)
+ ifNil: [super whichMethodsStoreInto: varName]
+ ifNotNil: [:ref| self methodDict values select: [:eachMethod| eachMethod writesRef: ref]]!
Item was removed:
- ----- Method: Metaclass>>whichMethodsStoreInto: (in category 'testing') -----
- whichMethodsStoreInto: varName
- "Answer a collection of CompiledMethod which store into the argument, varName, as a named class variable. Or let super try with a named instance variable."
- | ref |
- ref := self classPool
- associationAt: varName
- ifAbsent: [ ^ super whichMethodsStoreInto: varName ].
- ^self methodDict values select: [:eachMethod | eachMethod writesRef: ref ]!
Chris Muller uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-cmm.845.mcz
==================== Summary ====================
Name: Kernel-cmm.845
Author: cmm
Time: 2 May 2014, 2:23:45.137 pm
UUID: b0fee9bf-c59e-4560-9a57-eddd2e055838
Ancestors: Kernel-cwp.844
- #flush after printing error information, and before image immediately exits, otherwise it won't always get written.
- Add accessor for #negativeInfinity so I don't have to create new Float via Float infinity negated when all I want to do is compare.
- #asBytesDescription for Float too because this is a very useful printing method for even things other than byte counts (and we should think of a better name for it too).
=============== Diff against Kernel-cwp.844 ===============
Item was changed:
----- Method: Error>>printVerboseOn: (in category 'printing') -----
printVerboseOn: aStream
aStream
+ nextPutAll: 'vvvvvvvvvvvvvvvvvv ' , self description , ' vvvvvvvvvvvvvvvvvv' ;
+ cr ;
+ nextPutAll: 'The time is ', DateAndTime now asString ;
+ cr.
- " setToEnd ;"
- nextPutAll: 'vvvvvvvvvvvvvvvvvv ' , self description , ' vvvvvvvvvvvvvvvvvv' ;
- cr ;
- nextPutAll: 'The time is ', DateAndTime now asString ;
- cr.
"Allow applications to optionally print extra details without overriding a base package."
(self respondsTo: #printDetailsOn:) ifTrue: [ self printDetailsOn: aStream ].
aStream
+ nextPutAll: self signalerContext longStack ;
+ cr ;
+ nextPutAll: '^^^^^^^^^^^^^^^^^^ ' , self description , ' ^^^^^^^^^^^^^^^^^^' ;
+ cr ;
+ flush!
- nextPutAll: self signalerContext longStack ;
- cr ;
- nextPutAll: '^^^^^^^^^^^^^^^^^^ ' , self description , ' ^^^^^^^^^^^^^^^^^^' ;
- cr!
Item was added:
+ ----- Method: Float class>>negativeInfinity (in category 'constants') -----
+ negativeInfinity
+ "Answer the value used to represent a negative infinity."
+ ^ NegativeInfinity!
Item was added:
+ ----- Method: Float>>asBytesDescription (in category 'printing') -----
+ asBytesDescription
+ ^ self asInteger asBytesDescription!