David T. Lewis uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-dtl.656.mcz
==================== Summary ====================
Name: Kernel-dtl.656
Author: dtl
Time: 7 December 2011, 7:32:57.155 pm
UUID: ddfcad11-16e3-4649-9bda-5fa0dc8254e1
Ancestors: Kernel-dtl.655
For Squeak 4.3 release code freeze, temporarily revert previous ReferenceStream changes due to unresolved issues (see http://lists.squeakfoundation.org/pipermail/squeak-dev/2011-December/162386…). The updates will be reintroduced following the Squeak 4.3 release.
Packages affected:
Kernel-Objects
System-Object Storage
Tests-Object Storage
=============== Diff against Kernel-dtl.655 ===============
Item was changed:
----- Method: Object>>storeDataOn: (in category 'objects from disk') -----
storeDataOn: aDataStream
"Store myself on a DataStream. Answer self. This is a low-level DataStream/ReferenceStream method. See also objectToStoreOnDataStream. NOTE: This method must send 'aDataStream beginInstance:size:' and then (nextPut:/nextPutWeak:) its subobjects. readDataFrom:size: reads back what we write here."
| cntInstVars cntIndexedVars |
cntInstVars := self class instSize.
cntIndexedVars := self basicSize.
aDataStream
beginInstance: self class
size: cntInstVars + cntIndexedVars.
1 to: cntInstVars do:
[:i | aDataStream nextPut: (self instVarAt: i)].
"Write fields of a variable length object. When writing to a dummy
stream, don't bother to write the bytes"
((aDataStream byteStream class == DummyStream) and: [self class isBits]) ifFalse: [
+ 1 to: cntIndexedVars do:
+ [:i | aDataStream nextPut: (self basicAt: i)]].
+ !
- self class isWeak
- ifTrue: [
- "For weak classes (for example DependentsArray) write the referenced object only
- if referenced from elsewhere in the dumped object graph.
- This means, for instance that if we only dump a model, no dependents are stored,
- but if we store a view (i.e. a Morph), it is properly handled as a dependent after the object graph is revived."
- 1 to: cntIndexedVars do: [ :i |
- aDataStream nextPutWeak: (self basicAt: i)]]
- ifFalse: [
- 1 to: cntIndexedVars do: [ :i |
- aDataStream nextPut: (self basicAt: i)]]]!
David T. Lewis uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-dtl.656.mcz
==================== Summary ====================
Name: Kernel-dtl.656
Author: dtl
Time: 7 December 2011, 7:32:57.155 pm
UUID: ddfcad11-16e3-4649-9bda-5fa0dc8254e1
Ancestors: Kernel-dtl.655
For Squeak 4.3 release code freeze, temporarily revert previous ReferenceStream changes due to unresolved issues (see http://lists.squeakfoundation.org/pipermail/squeak-dev/2011-December/162386…). The updates will be reintroduced following the Squeak 4.3 release.
Packages affected:
Kernel-Objects
System-Object Storage
Tests-Object Storage
=============== Diff against Kernel-dtl.655 ===============
Item was changed:
----- Method: Object>>storeDataOn: (in category 'objects from disk') -----
storeDataOn: aDataStream
"Store myself on a DataStream. Answer self. This is a low-level DataStream/ReferenceStream method. See also objectToStoreOnDataStream. NOTE: This method must send 'aDataStream beginInstance:size:' and then (nextPut:/nextPutWeak:) its subobjects. readDataFrom:size: reads back what we write here."
| cntInstVars cntIndexedVars |
cntInstVars := self class instSize.
cntIndexedVars := self basicSize.
aDataStream
beginInstance: self class
size: cntInstVars + cntIndexedVars.
1 to: cntInstVars do:
[:i | aDataStream nextPut: (self instVarAt: i)].
"Write fields of a variable length object. When writing to a dummy
stream, don't bother to write the bytes"
((aDataStream byteStream class == DummyStream) and: [self class isBits]) ifFalse: [
+ 1 to: cntIndexedVars do:
+ [:i | aDataStream nextPut: (self basicAt: i)]].
+ !
- self class isWeak
- ifTrue: [
- "For weak classes (for example DependentsArray) write the referenced object only
- if referenced from elsewhere in the dumped object graph.
- This means, for instance that if we only dump a model, no dependents are stored,
- but if we store a view (i.e. a Morph), it is properly handled as a dependent after the object graph is revived."
- 1 to: cntIndexedVars do: [ :i |
- aDataStream nextPutWeak: (self basicAt: i)]]
- ifFalse: [
- 1 to: cntIndexedVars do: [ :i |
- aDataStream nextPut: (self basicAt: i)]]]!
Levente Uzonyi uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-ul.386.mcz
==================== Summary ====================
Name: Tools-ul.386
Author: ul
Time: 6 December 2011, 3:47:09.09 pm
UUID: fc4b47c7-76fd-ec44-8007-2dd1fa8f227e
Ancestors: Tools-ul.385
Fix for http://bugs.squeak.org/view.php?id=7678 .
=============== Diff against Tools-ul.385 ===============
Item was changed:
----- Method: SelectorBrowser>>quickList (in category 'as yet unclassified') -----
quickList
"Compute the selectors for the single example of receiver and args, in the very top pane"
| data result resultArray dataStrings mf dataObjects aa statements |
+ data := contents asString withBlanksTrimmed.
- data := contents asString.
- "delete t
- railing period. This should be fixed in the Parser!!"
- [data last isSeparator] whileTrue: [data := data allButLast].
- data last = $. ifTrue: [data := data allButLast]. "Eval"
mf := MethodFinder new.
data := mf cleanInputs: data. "remove common mistakes"
dataObjects := Compiler evaluate: '{', data, '}'. "#( data1 data2 result )"
statements := (Compiler new parse: 'zort ' , data in: Object notifying: nil)
body statements select: [:each | (each isKindOf: ReturnNode) not].
dataStrings := statements collect:
[:node | String streamContents:
[:strm | (node isMessage) ifTrue: [strm nextPut: $(].
node shortPrintOn: strm.
(node isMessage) ifTrue: [strm nextPut: $)].]].
dataObjects size < 2 ifTrue: [self inform: 'If you are giving an example of receiver, \args, and result, please put periods between the parts.\Otherwise just type one selector fragment' withCRs. ^#()].
dataObjects := Array with: dataObjects allButLast with: dataObjects last. "#( (data1
data2) result )"
result := mf load: dataObjects; findMessage.
(result first beginsWith: 'no single method') ifFalse: [
aa := self testObjects: dataObjects strings: dataStrings.
dataObjects := aa second. dataStrings := aa third].
resultArray := self listFromResult: result.
resultArray isEmpty ifTrue: [self inform: result first].
dataStrings size = (dataObjects first size + 1) ifTrue:
[resultArray := resultArray collect: [:expression | | newExp |
newExp := expression.
dataObjects first withIndexDo: [:lit :i |
newExp := newExp copyReplaceAll: 'data', i printString
with: (dataStrings at: i)].
newExp, ' --> ', dataStrings last]].
^ resultArray!
Levente Uzonyi uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-ul.386.mcz
==================== Summary ====================
Name: Tools-ul.386
Author: ul
Time: 6 December 2011, 3:47:09.09 pm
UUID: fc4b47c7-76fd-ec44-8007-2dd1fa8f227e
Ancestors: Tools-ul.385
Fix for http://bugs.squeak.org/view.php?id=7678 .
=============== Diff against Tools-ul.385 ===============
Item was changed:
----- Method: SelectorBrowser>>quickList (in category 'as yet unclassified') -----
quickList
"Compute the selectors for the single example of receiver and args, in the very top pane"
| data result resultArray dataStrings mf dataObjects aa statements |
+ data := contents asString withBlanksTrimmed.
- data := contents asString.
- "delete t
- railing period. This should be fixed in the Parser!!"
- [data last isSeparator] whileTrue: [data := data allButLast].
- data last = $. ifTrue: [data := data allButLast]. "Eval"
mf := MethodFinder new.
data := mf cleanInputs: data. "remove common mistakes"
dataObjects := Compiler evaluate: '{', data, '}'. "#( data1 data2 result )"
statements := (Compiler new parse: 'zort ' , data in: Object notifying: nil)
body statements select: [:each | (each isKindOf: ReturnNode) not].
dataStrings := statements collect:
[:node | String streamContents:
[:strm | (node isMessage) ifTrue: [strm nextPut: $(].
node shortPrintOn: strm.
(node isMessage) ifTrue: [strm nextPut: $)].]].
dataObjects size < 2 ifTrue: [self inform: 'If you are giving an example of receiver, \args, and result, please put periods between the parts.\Otherwise just type one selector fragment' withCRs. ^#()].
dataObjects := Array with: dataObjects allButLast with: dataObjects last. "#( (data1
data2) result )"
result := mf load: dataObjects; findMessage.
(result first beginsWith: 'no single method') ifFalse: [
aa := self testObjects: dataObjects strings: dataStrings.
dataObjects := aa second. dataStrings := aa third].
resultArray := self listFromResult: result.
resultArray isEmpty ifTrue: [self inform: result first].
dataStrings size = (dataObjects first size + 1) ifTrue:
[resultArray := resultArray collect: [:expression | | newExp |
newExp := expression.
dataObjects first withIndexDo: [:lit :i |
newExp := newExp copyReplaceAll: 'data', i printString
with: (dataStrings at: i)].
newExp, ' --> ', dataStrings last]].
^ resultArray!