David T. Lewis uploaded a new version of Chronology-Core to project The Trunk:
http://source.squeak.org/trunk/Chronology-Core-dtl.33.mcz
==================== Summary ====================
Name: Chronology-Core-dtl.33
Author: dtl
Time: 22 January 2019, 12:04:12.747583 pm
UUID: 002bc836-c58b-49e4-9a33-37d54449e32c
Ancestors: Chronology-Core-ul.23
Restore Duration>>wait which was introduced in Chronology-Core-mt.11 and accidently removed in recent updates.
=============== Diff against Chronology-Core-ul.23 ===============
Item was added:
+ ----- Method: Duration>>wait (in category 'squeak protocol') -----
+ wait
+ "Convert this duration in a delay and wait once. Return the created delay so that the client can wait on it again if needed.
+
+ Do-it: 3 minutes wait"
+
+ | delay |
+ delay := self asDelay.
+ delay wait.
+ ^ delay!
Marcel Taeumel uploaded a new version of ReleaseBuilder to project The Trunk:
http://source.squeak.org/trunk/ReleaseBuilder-mt.194.mcz
==================== Summary ====================
Name: ReleaseBuilder-mt.194
Author: mt
Time: 22 January 2019, 1:54:52.748809 pm
UUID: d8d38edc-1fc5-7442-b1aa-cd69c2047a6b
Ancestors: ReleaseBuilder-mt.193
Addition to Kernel-mt.1211
1) Adds hook to ReleaseBuilder to manage/prepare processes.
2) Adds special save-and-quit to ReleaseBuilder, which restarts the UI process.
Note: We still have to adapt our Travis/smalltalkCI script to make use of UI-process restart. See the discussion about wrong source pointers: http://forum.world.st/Re-Wrong-method-source-pointer-in-Squeak5-2-tp5093412…
=============== Diff against ReleaseBuilder-mt.193 ===============
Item was added:
+ ----- Method: ReleaseBuilder class>>prepareProcesses (in category 'preparing') -----
+ prepareProcesses
+ "Re-start running processes if necessary. Call this at late as possible in the release process. Only required to processes that are not reset at image #startUp."
+
+ Delay startTimerEventLoop.!
Item was added:
+ ----- Method: ReleaseBuilder class>>saveAndQuit (in category 'saving') -----
+ saveAndQuit
+
+ Smalltalk condenseChanges.
+ Smalltalk snapshot: true "Important to sync changes and image!!" andQuit: false.
+
+ "Finally, we have to make sure that all method activations are up to date."
+ self prepareProcesses.
+
+ "Start new UI process; terminate current one."
+ self assert: Processor activeProcess == Project current uiProcess.
+ Project current
+ addDeferredUIMessage: [Smalltalk snapshot: true andQuit: true];
+ spawnNewProcessIfThisIsUI: Processor activeProcess.
+ Processor activeProcess terminate.!
Item was changed:
----- Method: ReleaseBuilder class>>saveAsNewRelease (in category 'saving') -----
saveAsNewRelease
"Use this to create a new release image to be used in the automated release artifact building process on http://www.github.com/squeak-smalltalk/squeak-app."
| fileName |
self setNewSystemVersion: self versionString.
self assert: self versionString = SystemVersion current version.
fileName := ('squeak-{1}.{2}{3}' format: {
SystemVersion current majorVersionNumber.
SystemVersion current minorVersionNumber.
self releaseLocally ifTrue: ['-offline'] ifFalse: ['']}).
Smalltalk saveAs: fileName.
"Update the image state."
self
prepareSourceCode;
prepareEnvironment;
switchToNewRepository: self releaseRepository;
addAdditionalRepositories.
+ self saveAndQuit.!
- Smalltalk condenseChanges.
- Smalltalk snapshot: true "Important!!" andQuit: true.!
Item was changed:
----- Method: ReleaseBuilder class>>saveAsNewTrunk (in category 'saving') -----
saveAsNewTrunk
"Use this to create a new release image to be used in the automated release artifact building process on http://www.github.com/squeak-smalltalk/squeak-app."
| fileName |
fileName := ('squeak-trunk{1}' format: {
self releaseLocally ifTrue: ['-offline'] ifFalse: ['']}).
Smalltalk saveAs: fileName.
self
prepareSourceCode;
prepareEnvironment;
switchToNewRepository: self buildRepository.
+ self saveAndQuit.!
- Smalltalk condenseChanges.
- Smalltalk snapshot: true "Important!!" andQuit: true.!
Marcel Taeumel uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-mt.1211.mcz
==================== Summary ====================
Name: Kernel-mt.1211
Author: mt
Time: 22 January 2019, 1:51:49.258809 pm
UUID: 2bc71a1e-02c1-824a-ae49-4db30171e2f9
Ancestors: Kernel-eem.1210
1) Restart timer-interrupt watcher process during system-wide clean-up.
2) Extract idle-process into own method because that's what we usually do: EventSensor (interrupt watcher), EventSensor (event tickler), WeakArray (finalization), etc.
=============== Diff against Kernel-eem.1210 ===============
Item was added:
+ ----- Method: Delay class>>cleanUp (in category 'class initialization') -----
+ cleanUp
+
+ self initialize.!
Item was added:
+ ----- Method: ProcessorScheduler class>>installIdleProcess (in category 'background process') -----
+ installIdleProcess
+ "Install a background process of the lowest possible priority that is always runnable."
+ "Details: The virtual machine requires that there is aways some runnable process that
+ can be scheduled; this background process ensures that this is the case."
+
+ BackgroundProcess ifNotNil: [BackgroundProcess terminate].
+ BackgroundProcess := [self idleProcess] newProcess.
+ BackgroundProcess priority: SystemRockBottomPriority.
+ BackgroundProcess resume.!
Item was changed:
----- Method: ProcessorScheduler class>>startUp: (in category 'background process') -----
startUp: resuming
- "Install a background process of the lowest possible priority that is always runnable."
- "Details: The virtual machine requires that there is aways some runnable process that
- can be scheduled; this background process ensures that this is the case."
+ Smalltalk processPreemptionYields ifTrue: [
+ Smalltalk processPreemptionYields: false].
+
+ resuming ifTrue: [
+ Smalltalk installLowSpaceWatcher.
+ self installIdleProcess].!
- Smalltalk processPreemptionYields ifTrue:
- [Smalltalk processPreemptionYields: false].
- resuming ifTrue:
- [Smalltalk installLowSpaceWatcher.
- BackgroundProcess ifNotNil:
- [BackgroundProcess terminate].
- (BackgroundProcess := [self idleProcess] newProcess)
- priority: SystemRockBottomPriority;
- resume]!
Levente Uzonyi uploaded a new version of Chronology-Tests to project The Trunk:
http://source.squeak.org/trunk/Chronology-Tests-ul.15.mcz
==================== Summary ====================
Name: Chronology-Tests-ul.15
Author: ul
Time: 14 January 2019, 1:18:04.380862 pm
UUID: 31a3ca9d-4c54-4034-9d36-9967644e2d87
Ancestors: Chronology-Tests-dtl.14
- updated DateAndTimeTest >> #testPrecision to be aware of Time's ClockPolicy
=============== Diff against Chronology-Tests-dtl.14 ===============
Item was changed:
----- Method: DateAndTimeTest>>testPrecision (in category 'Tests') -----
testPrecision
"Verify that the clock is returning a value with accuracy of better than 1 second. For now it seems sufficient to get two values and verify they are not the same."
+ | originalClockPolicy |
+ originalClockPolicy := Time clockPolicy.
+ [
+ #(
+ "#acceptPlatformTime is not listed here, because it doesn't guarantee monotoncity."
+ monotonicAllowDuplicates <=
+ monotonicForceMicrosecondIncrement <
+ monotonicForceNanosecondIncrement <
+ ) pairsDo: [ :clockPolicy :comparator |
+ | first second |
+ Time clockPolicy: clockPolicy.
+ first := DateAndTime now.
+ second := DateAndTime now.
+ self
+ assert: (first perform: comparator with: second)
+ description: ('Clock policy {1} didn''t compare with {2}' format: { clockPolicy. comparator }) ] ]
+ ensure: [ Time clockPolicy: originalClockPolicy ]
- self
- assert: (DateAndTime now ~= DateAndTime now)
!