Eliot Miranda uploaded a new version of System to project The Trunk:
http://source.squeak.org/trunk/System-eem.929.mcz
==================== Summary ====================
Name: System-eem.929
Author: eem
Time: 9 March 2017, 4:50:33.064607 pm
UUID: b8dd7f95-bd11-48b9-b669-3595d5464a40
Ancestors: System-jr.928
Add scavenge threshold and time spent in compaction to vmParameterAt:'s comment.
=============== Diff against System-jr.928 ===============
Item was changed:
----- Method: SmalltalkImage>>vmParameterAt: (in category 'system attributes') -----
vmParameterAt: parameterIndex
"parameterIndex is a positive integer corresponding to one of the VM's internal parameter/metric registers.
Answer with the current value of that register. Fail if parameterIndex has no corresponding register.
VM parameters are numbered as follows:
1 byte size of old-space (read-only)
2 byte size of young-space (read-only)
3 byte size of object memory (read-only)
4 allocationCount (read-only; nil in Cog VMs)
5 allocations between GCs (read-write; nil in Cog VMs)
6 survivor count tenuring threshold (read-write)
7 full GCs since startup (read-only)
8 total milliseconds in full GCs since startup (read-only)
9 incremental GCs since startup (read-only; scavenging GCs on Spur)
10 total milliseconds in incremental/scavenging GCs since startup (read-only)
11 tenures of surving objects since startup (read-only)
+ 12-17 specific to the translating VM (nil in Cog VMs)
+ 18 total milliseconds in full GC compaction since startup (a portion of parameter 8)
+ 19 scavenge threshold; the effective size of eden
- 12-19 specific to the translating VM (nil in Cog VMs)
20 utc microseconds at VM start-up (actually at time initialization, which precedes image load) (newer Cog VMs only).
21 root (remembered) table size (read-only)
22 root (remembered) table overflows since startup (read-only)
23 bytes of extra memory to reserve for VM buffers, plugins, etc.
24 memory threshold above which to shrink object memory (read-write)
25 ammount to grow by when growing object memory (read-write)
26 interruptChecksEveryNms - force an ioProcessEvents every N milliseconds (read-write)
27 number of times mark loop iterated for current IGC/FGC (read-only) includes ALL marking
28 number of times sweep loop iterated for current IGC/FGC (read-only)
29 number of times make forward loop iterated for current IGC/FGC (read-only)
30 number of times compact move loop iterated for current IGC/FGC (read-only)
31 number of grow memory requests (read-only)
32 number of shrink memory requests (read-only)
33 number of root table entries used for current IGC/FGC (read-only)
34 number of allocations done before current IGC/FGC (read-only)
35 number of survivor objects after current IGC/FGC (read-only)
36 millisecond clock when current IGC/FGC completed (read-only)
37 number of marked objects for Roots of the world, not including Root Table entries for current IGC/FGC (read-only)
38 milliseconds taken by current IGC (read-only)
39 Number of finalization signals for Weak Objects pending when current IGC/FGC completed (read-only)
40 BytesPerWord for this image
41 imageFormatVersion for the VM
42 number of stack pages in use (Cog Stack VM only, otherwise nil)
43 desired number of stack pages (stored in image file header, max 65535; Cog VMs only, otherwise nil)
44 size of eden, in bytes (Cog VMs only, otherwise nil)
45 desired size of eden, in bytes (stored in image file header; Cog VMs only, otherwise nil)
46 size of machine code zone, in bytes (stored in image file header; Cog JIT VM only, otherwise nil)
47 desired size of machine code zone, in bytes (applies at startup only, stored in image file header; Cog JIT VM only)
48 various properties of the Cog VM as an integer encoding an array of bit flags.
Bit 0: tells the VM that the image's Process class has threadId as its 5th inst var (after nextLink, suspendedContext, priority & myList)
Bit 1: on Cog JIT VMs asks the VM to set the flag bit in interpreted methods
Bit 2: if set, preempting a process puts it to the head of its run queue, not the back,
i.e. preempting a process by a higher priority one will not cause the preempted process to yield
to others at the same priority.
Bit 3: in a muilt-threaded VM, if set, the Window system will only be accessed from the first VM thread
Bit 4: in a Spur vm, if set, causes weaklings and ephemerons to be queued individually for finalization
49 the size of the external semaphore table (read-write; Cog VMs only)
50-51 reserved for VM parameters that persist in the image (such as eden above)
52 root (remembered) table maximum size (read-only)
53 the number of oldSpace segments (Spur only, otherwise nil)
54 total size of free old space (Spur only, otherwise nil)
55 ratio of growth and image size at or above which a GC will be performed post scavenge (Spur only, otherwise nil)
56 number of process switches since startup (read-only)
57 number of ioProcessEvents calls since startup (read-only)
58 number of forceInterruptCheck (Cog VMs) or quickCheckInterruptCalls (non-Cog VMs) calls since startup (read-only)
59 number of check event calls since startup (read-only)
60 number of stack page overflows since startup (read-only; Cog VMs only)
61 number of stack page divorces since startup (read-only; Cog VMs only)
62 number of machine code zone compactions since startup (read-only; Cog VMs only)
63 milliseconds taken by machine code zone compactions since startup (read-only; Cog VMs only)
64 current number of machine code methods (read-only; Cog VMs only)
65 In newer Cog VMs a set of flags describing VM features,
if non-zero bit 0 implies multiple bytecode set support;
if non-zero bit 0 implies read-only object support
(read-only; Cog VMs only; nil in older Cog VMs, a boolean answering multiple bytecode support in not so old Cog VMs)
66 the byte size of a stack page in the stack zone (read-only; Cog VMs only)
67 the maximum allowed size of old space in bytes, 0 implies no internal limit (Spur VMs only).
68 - 69 reserved for more Cog-related info
70 the value of VM_PROXY_MAJOR (the interpreterProxy major version number)
71 the value of VM_PROXY_MINOR (the interpreterProxy minor version number)"
<primitive: 254>
self primitiveFailed!
Eliot Miranda uploaded a new version of SystemReporter to project The Trunk:
http://source.squeak.org/trunk/SystemReporter-eem.32.mcz
==================== Summary ====================
Name: SystemReporter-eem.32
Author: eem
Time: 9 March 2017, 4:48:44.424639 pm
UUID: 235dddfa-cca6-491f-8add-a527c027a6df
Ancestors: SystemReporter-cmm.31
Add scavenge threshold and time spent in compaction to the system reporter's vm parameters subsection.
=============== Diff against SystemReporter-cmm.31 ===============
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 'size of new 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'}]
- 10 'total milliseconds in incremental GCs since startup')]
ifTrue: [#( 9 'scavenging GCs since startup'
+ 10 'total milliseconds in scavenging GCs since startup'
+ 11 'tenures of surving objects since startup'),
+ {12 to: 17. 'reserved for future use'},
+ #( 18 'total milliseconds in full GC compaction since startup (a portion of parameter 8)'
+ 19 'scavenge threshold; the effective size of eden')]),
- 10 'total milliseconds in scavenging GCs since startup')]),
- #( 11 'tenures of surving objects since startup'),
- {12 to: 19. 'specific to the translating VM'},
#( 20 'utc microseconds at startup (if non-zero)'
21 'root table size'
22 'root 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)'
48 'various header flags. See getCogVMFlags.'
49 'max size the image promises to grow the external semaphore table to'),
(isSpur
ifFalse:
[{ 50 to: 54. 'reserved for VM parameters that persist in the image (such as size of eden above)'.
55 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 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 'whether the VM supports MULTIPLE_BYTECODE_SETS or not.'
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: [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]!
Eliot Miranda uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-eem.1062.mcz
==================== Summary ====================
Name: Kernel-eem.1062
Author: eem
Time: 9 March 2017, 12:34:12.792744 pm
UUID: 6376b349-df2b-4eab-8e2c-8695002a1bcb
Ancestors: Kernel-jr.1061
Eliminate obsolete millisecond delay primitive.
=============== Diff against Kernel-jr.1061 ===============
Item was removed:
- ----- Method: Delay class>>primSignal:atMilliseconds: (in category 'primitives') -----
- primSignal: aSemaphore atMilliseconds: aSmallInteger
- "Signal the semaphore when the millisecond clock reaches the value of the second argument. Fail if the first argument is neither a Semaphore nor nil. Essential. See Object documentation whatIsAPrimitive."
- <primitive: 136>
- ^self primitiveFailed!
Item was changed:
----- Method: Delay class>>shutDown (in category 'snapshotting') -----
shutDown
"Suspend the active delay, if any, before snapshotting. It will be reactived when the snapshot is resumed."
"Details: This prevents a timer interrupt from waking up the active delay in the midst snapshoting, since the active delay will be restarted when resuming the snapshot and we don't want to process the delay twice."
AccessProtect wait.
+ self primSignal: nil atUTCMicroseconds: 0.
- self primSignal: nil atMilliseconds: 0.
self saveResumptionTimes.
+ DelaySuspended := true!
- DelaySuspended := true.!
Eliot Miranda uploaded a new version of EToys to project The Trunk:
http://source.squeak.org/trunk/EToys-eem.282.mcz
==================== Summary ====================
Name: EToys-eem.282
Author: eem
Time: 9 March 2017, 12:30:22.106007 pm
UUID: 162d6d8b-6e28-44c3-9728-a34d99ba4e48
Ancestors: EToys-dtl.281
Remove usage of obsolete primSignal:atMilliseconds:
=============== Diff against EToys-dtl.281 ===============
Item was changed:
----- Method: Delay class>>stopTimerInterruptWatcher (in category '*Etoys-Squeakland-timer process') -----
stopTimerInterruptWatcher
"Reset the class variables that keep track of active Delays and re-start the timer interrupt watcher process. Any currently scheduled delays are forgotten."
"Delay startTimerInterruptWatcher"
+ self primSignal: nil atUTCMicroseconds: 0.
+ TimingSemaphore ifNotNil:
+ [TimingSemaphore terminateProcess]!
- self primSignal: nil atMilliseconds: 0.
- TimingSemaphore ifNotNil:[TimingSemaphore terminateProcess].!
David T. Lewis uploaded a new version of MorphicExtras to project The Trunk:
http://source.squeak.org/trunk/MorphicExtras-jl.196.mcz
==================== Summary ====================
Name: MorphicExtras-jl.196
Author: jl
Time: 1 September 2016, 3:59:47.545565 pm
UUID: f54f2528-43a4-cf49-beb9-42b4ab57aebf
Ancestors: MorphicExtras-tfel.195
added Kedama (Particles) to default flap
=============== Diff against MorphicExtras-tfel.195 ===============
Item was changed:
----- Method: Flaps class>>defaultsQuadsDefiningPlugInSuppliesFlap (in category 'predefined flaps') -----
defaultsQuadsDefiningPlugInSuppliesFlap
"Answer a list of quads which define the objects to appear in the default Supplies flap used in the Plug-in image"
+ "PartsBin reconstructAllPartsIcons"
+
^ #(
(ObjectsTool newStandAlone 'Object Catalog' 'A tool that lets you browse the catalog of available objects')
"(AllScriptsTool allScriptsToolForActiveWorld 'All Scripts' 'Stop, Step, and Go buttons for controlling all your scripts at once. The tool can also be "opened up" to control each script in your project individually.')"
(TrashCanMorph new 'Trash' 'A tool for discarding objects')
(GrabPatchMorph new 'Grab Patch' 'Allows you to create a new Sketch by grabbing a rectangular patch from the screen')
(LassoPatchMorph new 'Lasso' 'Allows you to create a new Sketch by lassoing an area from the screen')
(StickyPadMorph newStandAlone 'Sticky Pad' 'Each time you obtain one of these pastel, translucent, borderless rectangles, it will be a different color from the previous time.')
"(PaintInvokingMorph new 'Paint' 'Drop this into an area to start making a fresh painting there')"
(TextMorph boldAuthoringPrototype 'Text' 'Text that you can edit into anything you desire.')
(RecordingControlsMorph authoringPrototype 'Sound' 'A device for making sound recordings.')
(RectangleMorph authoringPrototype 'Rectangle' 'A rectangle')
(RectangleMorph roundRectPrototype 'RoundRect' 'A rectangle with rounded corners')
(EllipseMorph authoringPrototype 'Ellipse' 'An ellipse or circle')
(StarMorph authoringPrototype 'Star' 'A star')
(CurveMorph authoringPrototype 'Curve' 'A curve')
(PolygonMorph authoringPrototype 'Polygon' 'A straight-sided figure with any number of sides')
(ScriptableButton authoringPrototype 'Button' 'A Scriptable button')
(BookMorph nextPageButton 'NextPage' 'A button that takes you to the next page')
(BookMorph previousPageButton 'PreviousPage' 'A button that takes you to the previous page')
"(ScriptingSystem prototypicalHolder 'Holder' 'A place for storing alternative pictures in an animation, etc.')"
(PasteUpMorph authoringPrototype 'Playfield' 'A place for assembling parts or for staging animations')
(SimpleSliderMorph authoringPrototype 'Slider' 'A slider for showing and setting numeric values.')
(JoystickMorph authoringPrototype 'Joystick' 'A joystick-like control')
(BookMorph authoringPrototype 'Book' 'A multi-paged structure')
"(ClockMorph authoringPrototype 'Clock' 'A simple digital clock')"
+ (KedamaMorph authoringPrototype 'Particles' 'A Kedama World with pre-made components')
(RandomNumberTile new 'Random' 'A random-number tile for use with tile scripting')) asOrderedCollection!