Skip to content

Commit

Permalink
Updated images
Browse files Browse the repository at this point in the history
  • Loading branch information
jvuletich committed Sep 1, 2024
1 parent 48894b9 commit 998f2a8
Show file tree
Hide file tree
Showing 7 changed files with 144 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31816,4 +31816,73 @@ Smalltalk garbageCollect.!

----End fileIn of C:\Users\Juan Vuletich\Cuis-Smalltalk\Cuis-Smalltalk-Dev\CuisImage\32BitsImage\CoreUpdates\6664-ReleaseCanvasStateOnSnapshot-JuanVuletich-2024Aug30-14h26m-jmv.001.cs.st----!

----QUIT----(30 August 2024 15:45:50) Cuis7.1-6664-32.image priorSource: 1429890!
----QUIT----(30 August 2024 15:45:50) Cuis7.1-6664-32.image priorSource: 1429890!

----STARTUP---- (1 September 2024 16:43:18) as C:\Users\Juan Vuletich\Cuis-Smalltalk\Cuis-Smalltalk-Dev\CuisImage\32BitsImage\Cuis7.1-6664-32.image!


'From Cuis7.1 [latest update: #6664] on 1 September 2024 at 4:26:08 pm'!
!Debugger methodsFor: 'private' stamp: 'jmv 9/1/2024 16:11:41' prior: 50376862!
resumeProcess
| mustTerminateActive worldIfMustRedisplay |
worldIfMustRedisplay := self runningWorld.
savedCursor
ifNotNil: [savedCursor activateCursor].
mustTerminateActive := false.
interruptedProcess isTerminated ifFalse: [
interruptedProcessUI notNil ifTrue: [
interruptedProcessUI isConsistentWithTarget
ifTrue: [
(interruptedProcess name withoutPrefix: 'Formerly: ') ifNotNil: [ :originalName |
interruptedProcess
name: originalName;
priority: interruptedProcess priority + 1 ].
UISupervisor isUIProcessRunning
ifTrue: [ mustTerminateActive := true]
ifFalse: [ UISupervisor stopUIProcess].
UISupervisor uiProcess: interruptedProcess.
UISupervisor ui mainCanvas unpinAndFreeMemory ]
ifFalse: [
"The Display has changed size while running the debugger.
The interupted process would use an invalid canvas, corrupting the Display,
and likely crashing the system. Don't resume the process. Just keep the current UI process running."
interruptedProcess terminate.
interruptedProcess := nil.
interruptedProcessUI unpinAndFreeMemory.
interruptedProcessUI := nil ]].
interruptedProcess ifNotNil: [ :p |
interruptedProcessUI ifNotNil: [ :canvas |
canvas beMainCanvasOfWorld ].
p resolvePendingQuickReturns; resume ]].
interruptedProcess := nil.
interruptedProcessUI := nil.
contextStackIndex := 0.
contextStack := nil.
contextStackTop := nil.
receiverInspector := nil.
contextVariablesInspector := nil.
worldIfMustRedisplay ifNotNil: [ :w |
[UISupervisor whenUIinSafeState: [ w invalidateBounds ]]
forkAt: Processor userSchedulingPriority-1 ].
"restart low space handler"
Smalltalk installLowSpaceWatcher.
"If this process was the UI process, and we just resumed the old one,
then terminate us and never return to caller."
mustTerminateActive
ifTrue: [ Processor terminateActive ].! !
!WorldMorph methodsFor: 'canvas' stamp: 'jmv 9/1/2024 16:14:59' prior: 50377189!
mainCanvas: aMorphicCanvas
"Set the main canvas"

canvas == aMorphicCanvas ifFalse: [
(Preferences at: #saveReleaseOptionsInWorldMenu) ifFalse: [
aMorphicCanvas pinArrays ].
canvas := aMorphicCanvas.
].
damageRecorder := DamageRecorder new.
damageRecorder recordInvalidRect: self localBounds for: nil.
waitDelay := Delay forMilliseconds: 50.! !

----End fileIn of C:\Users\Juan Vuletich\Cuis-Smalltalk\Cuis-Smalltalk-Dev\CuisImage\32BitsImage\CoreUpdates\6665-Debugger-resume-fixRecentBreackage-JuanVuletich-2024Sep01-16h25m-jmv.001.cs.st----!

----QUIT----(1 September 2024 16:43:21) Cuis7.1-6665-32.image priorSource: 1467352!
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -31817,4 +31817,73 @@ Smalltalk garbageCollect.!

----End fileIn of C:\Users\Juan Vuletich\Cuis-Smalltalk\Cuis-Smalltalk-Dev\CoreUpdates\6664-ReleaseCanvasStateOnSnapshot-JuanVuletich-2024Aug30-14h26m-jmv.001.cs.st----!

----QUIT----(30 August 2024 15:39:39) Cuis7.1-6664.image priorSource: 1423376!
----QUIT----(30 August 2024 15:39:39) Cuis7.1-6664.image priorSource: 1423376!

----STARTUP---- (1 September 2024 16:42:32) as C:\Users\Juan Vuletich\Cuis-Smalltalk\Cuis-Smalltalk-Dev\CuisImage\Cuis7.1-6664.image!


'From Cuis7.1 [latest update: #6664] on 1 September 2024 at 4:26:08 pm'!
!Debugger methodsFor: 'private' stamp: 'jmv 9/1/2024 16:11:41' prior: 50376657!
resumeProcess
| mustTerminateActive worldIfMustRedisplay |
worldIfMustRedisplay := self runningWorld.
savedCursor
ifNotNil: [savedCursor activateCursor].
mustTerminateActive := false.
interruptedProcess isTerminated ifFalse: [
interruptedProcessUI notNil ifTrue: [
interruptedProcessUI isConsistentWithTarget
ifTrue: [
(interruptedProcess name withoutPrefix: 'Formerly: ') ifNotNil: [ :originalName |
interruptedProcess
name: originalName;
priority: interruptedProcess priority + 1 ].
UISupervisor isUIProcessRunning
ifTrue: [ mustTerminateActive := true]
ifFalse: [ UISupervisor stopUIProcess].
UISupervisor uiProcess: interruptedProcess.
UISupervisor ui mainCanvas unpinAndFreeMemory ]
ifFalse: [
"The Display has changed size while running the debugger.
The interupted process would use an invalid canvas, corrupting the Display,
and likely crashing the system. Don't resume the process. Just keep the current UI process running."
interruptedProcess terminate.
interruptedProcess := nil.
interruptedProcessUI unpinAndFreeMemory.
interruptedProcessUI := nil ]].
interruptedProcess ifNotNil: [ :p |
interruptedProcessUI ifNotNil: [ :canvas |
canvas beMainCanvasOfWorld ].
p resolvePendingQuickReturns; resume ]].
interruptedProcess := nil.
interruptedProcessUI := nil.
contextStackIndex := 0.
contextStack := nil.
contextStackTop := nil.
receiverInspector := nil.
contextVariablesInspector := nil.
worldIfMustRedisplay ifNotNil: [ :w |
[UISupervisor whenUIinSafeState: [ w invalidateBounds ]]
forkAt: Processor userSchedulingPriority-1 ].
"restart low space handler"
Smalltalk installLowSpaceWatcher.
"If this process was the UI process, and we just resumed the old one,
then terminate us and never return to caller."
mustTerminateActive
ifTrue: [ Processor terminateActive ].! !
!WorldMorph methodsFor: 'canvas' stamp: 'jmv 9/1/2024 16:14:59' prior: 50376980!
mainCanvas: aMorphicCanvas
"Set the main canvas"

canvas == aMorphicCanvas ifFalse: [
(Preferences at: #saveReleaseOptionsInWorldMenu) ifFalse: [
aMorphicCanvas pinArrays ].
canvas := aMorphicCanvas.
].
damageRecorder := DamageRecorder new.
damageRecorder recordInvalidRect: self localBounds for: nil.
waitDelay := Delay forMilliseconds: 50.! !

----End fileIn of C:\Users\Juan Vuletich\Cuis-Smalltalk\Cuis-Smalltalk-Dev\CoreUpdates\6665-Debugger-resume-fixRecentBreackage-JuanVuletich-2024Sep01-16h25m-jmv.001.cs.st----!

----QUIT----(1 September 2024 16:42:42) Cuis7.1-6665.image priorSource: 1460610!
Binary file not shown.
4 changes: 2 additions & 2 deletions Documentation/CodeRecoveryInCuis.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Code Recovery in Cuis

Smalltalk systems store source code in two files, the Sources file (named, for example 'Cuis7.0.sources') and the Changes file (for example, 'Cuis7.1-6664.changes'). The Sources file is not modified after creation, and new and modified code is appended to the Changes file. Both these files are used (for instance) by the Smalltalk Browser, when exploring the source code for the system.
Smalltalk systems store source code in two files, the Sources file (named, for example 'Cuis7.0.sources') and the Changes file (for example, 'Cuis7.1-6665.changes'). The Sources file is not modified after creation, and new and modified code is appended to the Changes file. Both these files are used (for instance) by the Smalltalk Browser, when exploring the source code for the system.

Cuis saves an additional type of files, UserChanges (named, for example, Cuis7.1-6664.user.002.changes), in the -UserFiles/UserChanges folder. These files are numbered, and they are created anew each time the Cuis system is started. These files are not used by the system to retrive code, they only exist to aid programmers. They will only include our work, and will conveniently use a different file for each programming session. They are not deleted automatically, and the user is free to delete them when desired.
Cuis saves an additional type of files, UserChanges (named, for example, Cuis7.1-6665.user.002.changes), in the -UserFiles/UserChanges folder. These files are numbered, and they are created anew each time the Cuis system is started. These files are not used by the system to retrive code, they only exist to aid programmers. They will only include our work, and will conveniently use a different file for each programming session. They are not deleted automatically, and the user is free to delete them when desired.

To recover our code, the [recent changes] button in FileList will open a ChangeList on the selected file. This tool lets you review your work. For this, you can compare the various versions of methods in the file with their in-memory counterpart, filter them according to several criteria, load them as desired, etc.
2 changes: 1 addition & 1 deletion RunCuisOnLinux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ else # all-in-one bundle

BINDIR="${ROOT}/CuisVM.app/Contents/Linux-${CPU}/"
IMAGEDIR="${ROOT}/CuisImage/"
IMAGE="${IMAGEDIR}Cuis7.1-6664.image"
IMAGE="${IMAGEDIR}Cuis7.1-6665.image"
fi

VM="${BINDIR}${APP}"
Expand Down
2 changes: 1 addition & 1 deletion RunCuisOnWindows.bat
Original file line number Diff line number Diff line change
@@ -1 +1 @@
START /B .\CuisVM.app\Contents\Windows-x86_64\Squeak.exe "CuisImage\Cuis7.1-6664.image" -u
START /B .\CuisVM.app\Contents\Windows-x86_64\Squeak.exe "CuisImage\Cuis7.1-6665.image" -u

0 comments on commit 998f2a8

Please sign in to comment.