Eliot Miranda uploaded a new version of Files to project The Trunk:
http://source.squeak.org/trunk/Files-eem.184.mcz
==================== Summary ====================
Name: Files-eem.184
Author: eem
Time: 29 November 2020, 10:24:50.876717 am
UUID: 453a229c-9b4d-4acb-b8ba-c0688fc17020
Ancestors: Files-pre.183
Add a guard to FileDirectory class>>requestDropDirectory:. Every time I connect my headphone buds I get an MNU because primDropRequestFileName: answers nil. This squashes the MNU.
=============== Diff against Files-pre.183 ===============
Item was changed:
----- Method: FileDirectory class>>requestDropDirectory: (in category 'dnd requests') -----
requestDropDirectory: dropIndex
+ ^(FileStream primDropRequestFileName: dropIndex) ifNotNil:
+ [:dropFileDirdectoryName| | potentialDirectory |
+ potentialDirectory := self on: dropFileDirdectoryName.
+ potentialDirectory exists ifTrue: [potentialDirectory]]!
- | potentialDirectory |
- potentialDirectory := self on: (FileStream primDropRequestFileName: dropIndex).
- ^ potentialDirectory exists ifTrue: [potentialDirectory]
- !
Eliot Miranda uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-eem.1168.mcz
==================== Summary ====================
Name: System-eem.1168
Author: eem
Time: 7 August 2020, 9:35:47.550327 am
UUID: cedd1c81-e5bd-4b1a-b6df-845191ceab0b
Ancestors: System-mt.1167
Empty commit to remove a bogus timestamp from the version history. System-eem.1154 had aquired a date stamp far in the future.
=============== Diff against System-mt.1167 ===============
Tony Garnock-Jones uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-tonyg.1193.mcz
==================== Summary ====================
Name: System-tonyg.1193
Author: tonyg
Time: 10 November 2020, 9:57:50.481732 am
UUID: b7b2cc99-52f1-4be3-8c74-813ab33c6d23
Ancestors: System-mt.1192
Allow per-instance control over TextDiffBuilder showInsertBeforeRemove.
=============== Diff against System-mt.1192 ===============
Item was changed:
Object subclass: #TextDiffBuilder
+ instanceVariableNames: 'xLines yLines ignoreLineEndings showInsertBeforeRemove'
- instanceVariableNames: 'xLines yLines ignoreLineEndings'
classVariableNames: 'IgnoreLineEndings InsertTextAttributes NormalTextAttributes RemoveTextAttributes ShowInsertBeforeRemove'
poolDictionaries: ''
category: 'System-FilePackage'!
+ !TextDiffBuilder commentStamp: 'tonyg 11/10/2020 09:55' prior: 0!
- !TextDiffBuilder commentStamp: 'fbs 9/23/2013 08:58' prior: 0!
I implement the diff algorithm. I can show the differences between two texts. See my method comments for further information.
Instance Variables
xLines: <Array>
yLines: <Array>
ignoreLineEndings: <Boolean>
+ showInsertBeforeRemove: <Boolean> or nil
xLines
- an Array of DiffElements which is created from the first input text
yLines
- an Array of DiffElements which is created from the second input text
ignoreLineEndings
+ - a Boolean describing whether lines only differing in the line endings should be reported as a difference, or not
+
+ showInsertBeforeRemove
+ - a Boolean describing whether inserts should be processed ahead of matching removes for changed blocks, or the other way around. If nil, the system-wide preference is used (see class-side showInsertBeforeRemove).!
- - a Boolean describing whether lines only differing in the line endings should be reported as a difference, or not!
Item was changed:
----- Method: TextDiffBuilder>>patchSequenceDoIfMatch:ifInsert:ifRemove: (in category 'creating patches') -----
patchSequenceDoIfMatch: matchBlock ifInsert: insertBlock ifRemove: removeBlock
"I'm the general purpose method to iterate through the patch sequence. See my senders to learn how to use me."
| aLines bLines aBlock bBlock aLine aLineStream |
+ self showInsertBeforeRemove
- self class showInsertBeforeRemove
ifTrue: [ aLines := xLines. bLines := yLines. aBlock := insertBlock. bBlock := removeBlock ]
ifFalse: [ aLines := yLines. bLines := xLines. aBlock := removeBlock. bBlock := insertBlock ].
aLineStream := aLines readStream.
bLines do: [ :bLine |
bLine hasMatch
ifFalse: [
aBlock value: bLine string ]
ifTrue: [
[ (aLine := aLineStream next) == nil or: [ aLine == bLine match ] ]
whileFalse: [ bBlock value: aLine string ].
matchBlock value: bLine string ] ].
[ (aLine := aLineStream next) == nil ] whileFalse: [
bBlock value: aLine string ]!
Item was added:
+ ----- Method: TextDiffBuilder>>showInsertBeforeRemove (in category 'creating patches') -----
+ showInsertBeforeRemove
+ ^ showInsertBeforeRemove ifNil: [self class showInsertBeforeRemove]!
Item was added:
+ ----- Method: TextDiffBuilder>>showInsertBeforeRemove: (in category 'creating patches') -----
+ showInsertBeforeRemove: aBoolean
+ showInsertBeforeRemove := aBoolean!
Marcel Taeumel uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-mt.733.mcz
==================== Summary ====================
Name: Monticello-mt.733
Author: mt
Time: 10 November 2020, 9:21:35.608186 am
UUID: 6a90767e-6b8d-dd45-bb68-cb4ea3bd2a24
Ancestors: Monticello-mt.732
Fixes recent regression of the COPY button in the version inspector.
=============== Diff against Monticello-mt.732 ===============
Item was added:
+ ----- Method: MCRepositoryInspector>>save (in category 'actions') -----
+ save
+ self pickRepository ifNotNil:
+ [:repository |
+ (self repository = MCRepository inbox and:
+ [repository = MCRepository trunk or: [repository = MCRepository treated]]) ifTrue:
+ [self notify: 'Versions from the inbox should only be moved, not copied. Instead, use the web interface via source.squeak.org to manage inbox constributions.\\Do you want to proceed anyway?' translated withCRs].
+ repository storeVersion: self version]!
Item was changed:
----- Method: MCVersionInspector>>save (in category 'accessing') -----
save
self pickRepository ifNotNil:
+ [:ea |
+ ea storeVersion: self version]!
- [:repository |
- (self repository = MCRepository inbox and:
- [repository = MCRepository trunk or: [repository = MCRepository treated]]) ifTrue:
- [self notify: 'Versions from the inbox should only be moved, not copied. Instead, use the web interface via source.squeak.org to manage inbox constributions.\\Do you want to proceed anyway?' translated withCRs].
- repository storeVersion: self version]!
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1713.mcz
==================== Summary ====================
Name: Morphic-mt.1713
Author: mt
Time: 9 November 2020, 8:52:30.010357 am
UUID: 36a88f5c-ef4c-9943-8658-68c3485a5ed6
Ancestors: Morphic-mt.1712
Adds documentation for active globals. Thanks to Dave (dtl) for taking care!
=============== Diff against Morphic-mt.1712 ===============
Item was changed:
DynamicVariable subclass: #ActiveEventVariable
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Morphic-Worlds'!
+
+ !ActiveEventVariable commentStamp: 'mt 11/9/2020 08:50' prior: 0!
+ I refer to the event responsible for the current action. Inbetween event handling cycles my value will be last event from the previous cycle, usually a mouse event.
+
+ Please talk to me only through #currentEvent, which is understood by all objects.
+
+ For more information, see http://wiki.squeak.org/squeak/6647.!
Item was changed:
DynamicVariable subclass: #ActiveHandVariable
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Morphic-Worlds'!
+
+ !ActiveHandVariable commentStamp: 'mt 11/9/2020 08:50' prior: 0!
+ I refer to the hand that issued the event responsible for the current action. In a multi-user setup, this hand identifies which user-incarnation invoked the action. Inbetween event handling cycles, my value is equivalent to the current project's primary hand.
+
+ Please talk to me only through #currentHand, which is understood by all objects.
+
+ For more information, see http://wiki.squeak.org/squeak/6647.!
Item was changed:
DynamicVariable subclass: #ActiveWorldVariable
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'Morphic-Worlds'!
+
+ !ActiveWorldVariable commentStamp: 'mt 11/9/2020 08:49' prior: 0!
+ I refer to the world currently in control of handling some event. Usually my value is identical with the current project's world, but for embedded worlds the world will change when event handling reaches the new (inner world) and will be restored when event handling leaves it.
+
+ Please talk to me only through #currentWorld, which is understood by all objects.
+
+ For more information, see http://wiki.squeak.org/squeak/6647.!
Item was changed:
Object subclass: #WorldState
+ instanceVariableNames: 'hands viewBox canvas damageRecorder stepList lastStepTime lastStepMessage lastCycleTime commandHistory alarms lastAlarmTime remoteServer multiCanvas interCycleDelay'
- instanceVariableNames: 'hands activeHand viewBox canvas damageRecorder stepList lastStepTime lastStepMessage lastCycleTime commandHistory alarms lastAlarmTime remoteServer multiCanvas interCycleDelay'
classVariableNames: 'CanSurrenderToOS DeferredUIMessages DisableDeferredUpdates LastCycleTime MinCycleLapse'
poolDictionaries: ''
category: 'Morphic-Worlds'!
!WorldState commentStamp: 'ls 7/10/2003 19:30' prior: 0!
The state of a Morphic world. (This needs some serious commenting!!!!)
The MinCycleLapse variable holds the minimum amount of time that a morphic cycle is allowed to take. If a cycle takes less than this, then interCyclePause: will wait until the full time has been used up.!
Eliot Miranda uploaded a new version of SystemReporter to project The Trunk:
http://source.squeak.org/trunk/SystemReporter-eem.46.mcz
==================== Summary ====================
Name: SystemReporter-eem.46
Author: eem
Time: 8 November 2020, 11:13:41.091987 pm
UUID: e1bb313e-09e5-4e06-8efb-7114773e299f
Ancestors: SystemReporter-eem.45
Fix an inadvertet truncation of flag field printing, and add the description of the file-times-in-utc flag bit in the image header flags.
=============== Diff against SystemReporter-eem.45 ===============
Item was changed:
----- Method: SystemReporter>>reportVMParameters: (in category 'reporting') -----
reportVMParameters: aStream
| vmParameters isStack isCog isSpur |
self header: 'Virtual Machine Parameters' on: aStream.
vmParameters := Smalltalk vm getVMParameters.
isStack := (vmParameters at: 42 ifAbsent: [0]) ~= 0. "42 = number of stack pages available"
isCog := isStack and: [(vmParameters at: 46) ~= 0]. "46 is machine code zone size"
isSpur := isStack and: [(vmParameters at: 41) anyMask: 2r10000]. "41 is imageFormatVersion for the VM; bit 16 is the Spur bit"
(isSpur
ifFalse:
[#( 1 'size of old space'
2 'size of young+old space'
3 'size of memory'
4 'allocationCount'
5 'allocations between GCs'
6 'survivor count tenuring threshold')]
ifTrue:
[#( 1 'size of old space'
2 'used bytes in new space (used eden + used past space)'
3 'size of heap')]),
#( 7 'full GCs since startup'
8 'total milliseconds in full GCs since startup'),
(isSpur
ifFalse: [#( 9 'incremental GCs since startup'
10 'total milliseconds in incremental GCs since startup'
11 'tenures of surving objects since startup'),
{12 to: 19. 'specific to the translating VM'}]
ifTrue: [#( 9 'scavenging GCs since startup'
10 'total milliseconds in scavenging GCs since startup'
11 'tenures of surving objects since startup'),
{12 to: 15. 'reserved for future use'},
#( 16 'total microseconds in idle since startup'
17 'proportion of code zone available for use (Sista VMs only; read-write)'
18 'total milliseconds in full GC compaction since startup (a portion of parameter 8)'
19 'scavenge threshold; the effective size of eden')]),
#( 20 'utc microseconds at startup (if non-zero)'
21 'root/remembered table size (occupancy)'
22 'root/remembered table overflows since startup'
23 'bytes of extra memory to reserve for VM buffers, plugins, etc.'
24 'free memory threshold above which object memory will be shrunk'
25 'memory headroom when growing object memory'),
(isStack
ifFalse:
[#( 26 'interruptChecksEveryNms - force an ioProcessEvents every N milliseconds, in case the image is not calling getNextEvent often')]
ifTrue:
[#( 26 'heartbeat period (ms; see #58)')]),
(isSpur
ifFalse:
[#( 27 'number of times mark loop iterated for current IGC/FGC includes ALL marking'
28 'number of times sweep loop iterated for current IGC/FGC'
29 'number of times make forward loop iterated for current IGC/FGC'
30 'number of times compact move loop iterated for current IGC/FGC')]
ifTrue: [#()]),
#( 31 'number of grow memory requests'
32 'number of shrink memory requests'),
(isSpur
ifFalse:
[#( 33 'number of root table entries used for current IGC/FGC'
34 'number of allocations done before current IGC/FGC'
35 'number of survivor objects after current IGC/FGC'
36 'millisecond clock when current IGC/FGC completed'
37 'number of marked objects for Roots of the world, not including Root Table entries for current IGC/FGC'
38 'milliseconds taken by current IGC'
39 'Number of finalization signals for Weak Objects pending when current IGC/FGC completed')]
ifTrue:
[#( 33 'number of root table entries at last scavenge'
35 'number of survivor objects at last scavenge (if non-zero)'
36 'millisecond clock when current scavenge completed'
38 'milliseconds taken by current scavenge'
39 'Number of finalization signals for Weak Objects pending when current SGC/FGC completed')]),
#( 40 'VM word size - 4 or 8'),
(isStack
ifTrue:
[#(
41 'imageFormatVersion for the VM'
42 'number of stack pages available'
43 'desired number of stack pages (stored in image file header, max 65535)'
44 'size of eden, in bytes'
45 'desired size of eden, in bytes (stored in image file header)'
46 'machine code zone size, in bytes (0 in Stack VM)'
47 'desired machine code zone size (0 => default 1Mb to 2Mb depending on processor)'),
+ { 48. 'Persistent image header flags\ bit 0: implies Process has threadId as its 4th inst var\ bit 1: if set, methods that are interpreted will have the flag bit set in their header\ bit 2: if set, implies preempting a process does not put it to the back of its run queue\ bit 3: if set, implies the GUI should run on the first thread and event queues should not be accessed from other threads\ bit 4: if set, implies the new finalization scheme where WeakArrays are queued\ bit 5: if set, implies wheel events will be delivered as such and not mapped to arrow key events\ bit 6: if set, implies arithmetic primitives will fail if given arguments of different types (float vs int)\ bit 7: if set, causes times delivered from file primitives to be in UTC rather than local time.' withCRs },
- { 48. 'Persistent image header flags\ bit 0: implies Process has threadId as its 4th inst var\ bit 1: if set, methods that are interpreted will have the flag bit set in their header\ bit 2: if set, implies preempting a process does not put it to the back of its run queue\ bit 3: if set, implies the GUI should run on the first thread and event queues should not be accessed from other threads\ bit 4: if set, implies the new finalization scheme where WeakArrays are queued\ bit 5: if set, implies wheel events will be delivered as such and not mapped to arrow key events\ bit 6: if set, implies arithmetic primitives will fail if given arguments of different types (float vs int)' withCRs },
#( 49 'max size the image promises to grow the external semaphore table to'),
(isSpur
ifFalse:
[{ 50 to: 51. 'reserved for VM parameters that persist in the image (such as size of eden above)'.
52 to: 56. 'specific to Spur' }]
ifTrue:
[{ 50 to: 51. 'reserved for VM parameters that persist in the image (such as size of eden above)' },
#( 52 'root/remembered table capacity'
53 'number of old space segments'
54 'total free old space'
55 'ratio of growth and image size at or above which a GC will be performed post scavenge')]),
#( 56 'number of process switches since startup'
57 'number of ioProcessEvents calls since startup'
58 'number of forceInterruptCheck calls since startup'
59 'number of check event calls since startup'
60 'number of stack page overflows since startup'
61 'number of stack page divorces since startup'
62 'compiled code compactions since startup'),
(isCog
ifFalse:
[#()]
ifTrue:
[#( 63 'total milliseconds in compiled code compactions since startup'
64 'the number of methods that currently have jitted machine-code')]),
{ 65. 'Cog feature flags\ bit 0: set if the VM supports MULTIPLE_BYTECODE_SETS.\ bit 1: set if the VM supports read-only objects (IMMUTABILITY).\ bit 2: set if the VM has an ITIMER_HEARTBEAT\ bit 3: set if the VM supports cross-platform BIT_IDENTICAL_FLOATING_POINT arithmetic' withCRs.
66. 'the byte size of a stack page'.},
(isSpur
ifFalse:
[{ 67 to: 69. 'reserved for more Cog-related info' }]
ifTrue:
[#( 67 'the maximum allowed size of old space (if zero there is no limit)'
68 'the average number of live stack pages when scanned by scavenge/gc/become'
69 'the maximum number of live stack pages when scanned by scavenge/gc/become')]),
#( 70 'the vmProxyMajorVersion (the interpreterProxy VM_MAJOR_VERSION)'
71 'the vmProxyMinorVersion (the interpreterProxy VM_MINOR_VERSION)')]
ifFalse:
[#()])
pairsDo: [:idx :desc | | value values |
aStream nextPut: $#.
idx isInteger
ifTrue:
[value := vmParameters at: idx.
aStream
print: idx; tab: (idx < 10 ifTrue: [2] ifFalse: [1]);
nextPutAll: ((value isInteger and: [idx ~= 41])
ifTrue: [(desc includesSubstring: 'bit 0:')
+ ifTrue: [value printStringBase: 2 nDigits: value highBit]
- ifTrue: [value printStringBase: 2 nDigits: (desc at: (desc lastIndexOf: $:) - 1) digitValue + 1]
ifFalse: [value asStringWithCommas]]
ifFalse: [value printString])]
ifFalse:
[value := vmParameters at: idx first.
aStream print: idx first; next: 2 put: $.; print: idx last; tab.
values := idx collect: [:i| vmParameters at: i].
values asSet size = 1
ifTrue: [aStream print: value]
ifFalse: [values do: [:v| aStream print: v] separatedBy: [aStream nextPutAll: ', ']]].
aStream tab; nextPutAll: desc; cr]!
Marcel Taeumel uploaded a new version of MonticelloConfigurations to project The Trunk:
http://source.squeak.org/trunk/MonticelloConfigurations-mt.164.mcz
==================== Summary ====================
Name: MonticelloConfigurations-mt.164
Author: mt
Time: 7 November 2020, 2:04:21.611048 pm
UUID: 9b08ff25-120e-c744-ae89-e394b21221fc
Ancestors: MonticelloConfigurations-mt.163
Avoid clearing the image's update URL when resetting all pragma preferences -- which happens during release bundling.
Note that setting the update URL cannot be part of setting the default preferences in the ReleaseBuilder because (update) repository switching is implemented at a different stage. So just ignoring this request works fine. ... we may want to move this preference to ReleaseBuilder anyway ... maybe #updateMapName, too.
=============== Diff against MonticelloConfigurations-mt.163 ===============
Item was changed:
----- Method: MCMcmUpdater class>>defaultUpdateURL (in category 'preferences') -----
defaultUpdateURL
"The default update repository URL"
<preference: 'Update URL'
category: 'updates'
description: 'The repository URL for loading updates'
type: #String>
+ ^ DefaultUpdateURL ifNil: [
+ self notify: 'There is no update URL configured. Proceed to use Squeak''s Trunk repository.' translated.
+ 'http://source.squeak.org/trunk']!
- ^DefaultUpdateURL ifNil:['']!
Item was changed:
----- Method: MCMcmUpdater class>>defaultUpdateURL: (in category 'preferences') -----
+ defaultUpdateURL: aStringOrNil
+ "The default update repository URL. Avoid clearing this preference via 'nil'. See ReleaseBuilder class >> #switchToNewRepository:."
- defaultUpdateURL: aString
- "The default update repository URL"
+ aStringOrNil ifNotNil: [DefaultUpdateURL := aStringOrNil].!
- DefaultUpdateURL := aString!
Marcel Taeumel uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-mt.1191.mcz
==================== Summary ====================
Name: System-mt.1191
Author: mt
Time: 5 November 2020, 4:34:33.039798 pm
UUID: 0d08f4e4-d4fb-db49-ad96-1f37768ba637
Ancestors: System-mt.1190
Adds KR as "Korakurider" to the list of contributors.
=============== Diff against System-mt.1190 ===============
Item was changed:
----- Method: SystemNavigation class>>privateAuthorsRaw (in category 'class initialization') -----
(excessive size, no diff calculated)
Item was changed:
+ (PackageInfo named: 'System') postscript: 'SystemNavigation initializeAuthors...'!
- (PackageInfo named: 'System') postscript: 'SystemNavigation initializeAuthors..'!