David T. Lewis uploaded a new version of 60Deprecated to project The Trunk:
http://source.squeak.org/trunk/60Deprecated-dtl.8.mcz
==================== Summary ====================
Name: 60Deprecated-dtl.8
Author: dtl
Time: 20 November 2017, 11:04:58.602687 am
UUID: f7039fea-1e69-407d-8672-330f60f7eac6
Ancestors: 60Deprecated-mt.7
UndefinedObject>>suspend was removed in Kernel-dtl.1124. Move it to 60Deprecated to adhere to normal deprecation procedures.
=============== Diff against 60Deprecated-mt.7 ===============
Item was added:
+ ----- Method: UndefinedObject>>suspend (in category '*60Deprecated') -----
+ suspend
+ "Kills off processes that didn't terminate properly"
+ "Display reverse; reverse." "<-- So we can catch the suspend bug"
+ Processor terminateActive!
David T. Lewis uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-dtl.1369.mcz
==================== Summary ====================
Name: Morphic-dtl.1369
Author: dtl
Time: 20 November 2017, 8:37:22.350027 am
UUID: 31d4ec2b-70bb-4e81-8d00-cb186a2fb85c
Ancestors: Morphic-dtl.1368
Replace references to World with project current world.
Note: These two method were updated previously but one each reference to World was missed.
=============== Diff against Morphic-dtl.1368 ===============
Item was changed:
----- Method: MorphicProject>>storeSegment (in category 'file in/out') -----
storeSegment
"Store my project out on the disk as an ImageSegment. Keep the outPointers in memory. Name it <project name>.seg. *** Caller must be holding (Project alInstances) to keep subprojects from going out. ***"
+ | currentWorld is sizeHint |
+ currentWorld := Project current world.
+ (currentWorld == world) ifTrue: [^ false].
- | is sizeHint |
- (Project current world == world) ifTrue: [^ false].
"self inform: 'Can''t send the current world out'."
world isInMemory ifFalse: [^ false]. "already done"
world ifNil: [^ false]. world presenter ifNil: [^ false].
ScrapBook default emptyScrapBook.
+ currentWorld checkCurrentHandForObjectToPaste.
- World checkCurrentHandForObjectToPaste.
world releaseSqueakPages.
sizeHint := self projectParameters at: #segmentSize ifAbsent: [0].
is := ImageSegment
copyFromRootsLocalFileFor: {world presenter. world} "world, and all Players"
sizeHint: sizeHint.
is state = #tooBig ifTrue: [^ false].
is segment size < 2000 ifTrue: ["debugging"
Transcript show: self name, ' only ', is segment size printString,
'bytes in Segment.'; cr].
self projectParameters at: #segmentSize put: is segment size.
is extract; writeToFile: self name.
^ true!
Item was changed:
----- Method: MorphicProject>>storeSegmentNoFile (in category 'file in/out') -----
storeSegmentNoFile
"For testing. Make an ImageSegment. Keep the outPointers in memory. Also useful if you want to enumerate the objects in the segment afterwards (allObjectsDo:)"
+ | is currentWorld |
+ currentWorld := Project current world.
+ (currentWorld == world) ifTrue: [^ self]. " inform: 'Can''t send the current world out'."
- | is |
- (Project current world == world) ifTrue: [^ self]. " inform: 'Can''t send the current world out'."
world isInMemory ifFalse: [^ self]. "already done"
world ifNil: [^ self]. world presenter ifNil: [^ self].
"Do this on project enter"
+ currentWorld flapTabs do: [:ft | ft referent adaptToWorld: World].
- World flapTabs do: [:ft | ft referent adaptToWorld: World].
"Hack to keep the Menu flap from pointing at my project"
"Preferences setPreference: #useGlobalFlaps toValue: false."
"Utilities globalFlapTabsIfAny do:
[:aFlapTab | Utilities removeFlapTab: aFlapTab keepInList: false].
Utilities clobberFlapTabList. "
"project world deleteAllFlapArtifacts."
"self currentWorld deleteAllFlapArtifacts. "
ScrapBook default emptyScrapBook.
+ currentWorld checkCurrentHandForObjectToPaste2.
- World checkCurrentHandForObjectToPaste2.
is := ImageSegment
copyFromRootsLocalFileFor: {world presenter. world} "world, and all Players"
sizeHint: 0.
is segment size < 800 ifTrue: ["debugging"
Transcript show: self name, ' did not get enough objects'; cr. ^ Beeper beep].
is extract.
"is instVarAt: 2 put: is segment clone." "different memory"!
tim Rowledge uploaded a new version of SUnitGUI to project The Trunk:
http://source.squeak.org/trunk/SUnitGUI-tpr.69.mcz
==================== Summary ====================
Name: SUnitGUI-tpr.69
Author: tpr
Time: 19 November 2017, 3:37:59.182697 pm
UUID: d152c829-9818-4d11-ac05-d325d65a4c80
Ancestors: SUnitGUI-tpr.68
Drop the use of the abominable instVarAt*
=============== Diff against SUnitGUI-tpr.68 ===============
Item was changed:
----- Method: TestRunner>>runErrors (in category 'actions') -----
runErrors
+ self result resetErrors.
- self result instVarNamed: 'errors' put: OrderedCollection new.
self runSuite: self suiteErrors.!
Item was changed:
----- Method: TestRunner>>runFailures (in category 'actions') -----
runFailures
+ self result resetFailures.
- self result instVarNamed: 'failures' put: Set new.
self runSuite: self suiteFailures.!
tim Rowledge uploaded a new version of SUnit to project The Trunk:
http://source.squeak.org/trunk/SUnit-tpr.111.mcz
==================== Summary ====================
Name: SUnit-tpr.111
Author: tpr
Time: 19 November 2017, 3:34:08.562731 pm
UUID: baceabbf-0a9c-447c-9e41-e832bb103264
Ancestors: SUnit-tpr.110
Provide a clean way to reset the error and failures lists for retrying the problematic test. I hate usage of instVarAt*
=============== Diff against SUnit-tpr.110 ===============
Item was added:
+ ----- Method: TestResult>>resetErrors (in category 'initialization') -----
+ resetErrors
+ "clear the errors list ready to re-run those tests"
+
+ errors := OrderedCollection new!
Item was added:
+ ----- Method: TestResult>>resetFailures (in category 'initialization') -----
+ resetFailures
+ "clear the failures list ready to re-run those tests"
+
+ failures := Set new!
David T. Lewis uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-dtl.1124.mcz
==================== Summary ====================
Name: Kernel-dtl.1124
Author: dtl
Time: 18 November 2017, 5:44:53.215977 pm
UUID: 290e3cd7-ffe5-442e-9095-0217cc0b8be3
Ancestors: Kernel-dtl.1123
UndefinedObject>>suspend was presumably implemented for debugging process scheduling issues a long time ago. It serves no useful purpose now, and is dangerous because it will hang the image if evaluated. Remove it.
=============== Diff against Kernel-dtl.1123 ===============
Item was removed:
- ----- Method: UndefinedObject>>suspend (in category 'dependents access') -----
- suspend
- "Kills off processes that didn't terminate properly"
- "Display reverse; reverse." "<-- So we can catch the suspend bug"
- Processor terminateActive!
David T. Lewis uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-dtl.1368.mcz
==================== Summary ====================
Name: Morphic-dtl.1368
Author: dtl
Time: 17 November 2017, 10:55:24.391819 pm
UUID: b943fc05-ae9e-4f37-bb38-8c2cd541d239
Ancestors: Morphic-dtl.1367
Remove unnecessary references to global World.
=============== Diff against Morphic-dtl.1367 ===============
Item was changed:
----- Method: MorphHierarchy class>>openOrDelete (in category 'opening') -----
openOrDelete
| oldMorph |
+ oldMorph := Project current world submorphs
- oldMorph := World submorphs
detect: [:each | each hasProperty: #morphHierarchy]
ifNone: [| newMorph |
newMorph := self new asMorph.
newMorph bottomLeft: ActiveHand position.
newMorph openInWorld.
newMorph isFullOnScreen
ifFalse: [newMorph goHome].
^ self].
""
oldMorph delete!
Item was changed:
----- Method: MorphHierarchy>>roots (in category 'accessing') -----
roots
+ "Answer the roots for the Object Hierarchy, that means answer the world"
+ ^ {MorphListItemWrapper with: Project current world}!
- "Answer the roots for the Object Hierarchy, that means answer the World"
- ^ {MorphListItemWrapper with: World}!
Item was changed:
----- Method: MorphHierarchy>>selected: (in category 'accessing') -----
selected: aMorphListItemWrapper
"Change the selected object"
| newSelection |
aMorphListItemWrapper isNil
ifTrue: [^ self].
newSelection := aMorphListItemWrapper withoutListWrapper.
+ newSelection == Project current world selectedObject
- newSelection == World selectedObject
ifTrue: [newSelection removeHalo]
ifFalse: [newSelection addHalo].
self changed: #selected!
Item was changed:
----- Method: PasteUpMorph>>useRoundedCorners (in category 'accessing') -----
useRoundedCorners
"Somewhat special cased because we do have to fill Display for this"
super useRoundedCorners.
+ self == self world ifTrue:[Display bits primFill: 0]. "done so that we *don't* get a flash"!
- self == World ifTrue:[Display bits primFill: 0]. "done so that we *don't* get a flash"!
Item was changed:
----- Method: WorldState>>doDeferredUpdatingFor: (in category 'update cycle') -----
doDeferredUpdatingFor: aWorld
"If this platform supports deferred updates, then make my canvas be the Display (or a rectangular portion of it), set the Display to deferred update mode, and answer true. Otherwise, do nothing and answer false. One can set the class variable DisableDeferredUpdates to true to completely disable the deferred updating feature."
| properDisplay |
PasteUpMorph disableDeferredUpdates ifTrue: [^ false].
(Display deferUpdates: true) ifNil: [^ false]. "deferred updates not supported"
remoteServer ifNotNil:[
self assuredCanvas.
^true].
properDisplay := canvas notNil and: [canvas form == Display].
+ aWorld == Project current world ifTrue: [ "this world fills the entire Display"
- aWorld == World ifTrue: [ "this world fills the entire Display"
properDisplay ifFalse: [
aWorld viewBox: Display boundingBox. "do first since it may clear canvas"
self canvas: (Display getCanvas copyClipRect: Display boundingBox).
]
].
^ true
!
David T. Lewis uploaded a new version of ToolBuilder-Morphic to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-Morphic-dtl.200.mcz
==================== Summary ====================
Name: ToolBuilder-Morphic-dtl.200
Author: dtl
Time: 17 November 2017, 10:42:36.113609 pm
UUID: 21f6df34-3b79-4800-b36f-6d605c3c580c
Ancestors: ToolBuilder-Morphic-dtl.199
A MenuMorph does not have a world, so we must use use the Project current world idiom rather than self world.
=============== Diff against ToolBuilder-Morphic-dtl.199 ===============
Item was changed:
----- Method: MenuMorph>>openAsTool (in category '*ToolBuilder-Morphic-opening') -----
openAsTool
+ self popUpInWorld: Project current world.!
- self popUpInWorld: self world.!
David T. Lewis uploaded a new version of MorphicTests to project The Trunk:
http://source.squeak.org/trunk/MorphicTests-dtl.44.mcz
==================== Summary ====================
Name: MorphicTests-dtl.44
Author: dtl
Time: 17 November 2017, 10:00:40.18563 pm
UUID: 74a707eb-bd44-445f-9737-a977ef236a35
Ancestors: MorphicTests-dtl.43
Remove unnecessary reference to global World.
=============== Diff against MorphicTests-dtl.43 ===============
Item was changed:
----- Method: WorldStateTest>>testDeferredUIQueueTimeout (in category 'tests') -----
testDeferredUIQueueTimeout
"Ensure that the World's deferredUIMessage will take no more time than
specified by WorldState's deferredExecutionTimeLimit"
| firstWasRun secondWasRun thirdWasRun |
firstWasRun := secondWasRun := thirdWasRun := false.
WorldState addDeferredUIMessage:[
firstWasRun := true.
(Delay forMilliseconds: WorldState deferredExecutionTimeLimit + 50) wait.
].
WorldState addDeferredUIMessage:[
secondWasRun := true.
].
WorldState addDeferredUIMessage:[
thirdWasRun := true.
].
self deny: firstWasRun.
self deny: secondWasRun.
self deny: thirdWasRun.
+ Project current world doOneCycleNow.
- World doOneCycleNow.
self assert: firstWasRun.
self deny: secondWasRun.
self deny: thirdWasRun.
+ Project current world doOneCycleNow.
- World doOneCycleNow.
self assert: firstWasRun.
self assert: secondWasRun.
self assert: thirdWasRun.
!