Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3314.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.3314
Author: eem
Time: 24 March 2023, 7:10:55.31396 pm
UUID: 29de1155-fded-4f58-a753-e8a4b3c06538
Ancestors: VMMaker.oscog-eem.3313
Fix a typo and provide a support method for SpurImagePreener.
=============== Diff against VMMaker.oscog-eem.3313 ===============
Item was changed:
----- Method: SpurGenerationScavenger>>initializeRememberedSet (in category 'initialization') -----
initializeRememberedSet
| obj |
obj := manager rememberedSetObj.
obj = manager nilObject
ifTrue:
[obj := manager allocatePinnedSlots: 1024.
manager rememberedSetObj: obj]
ifFalse: "The Spur32to64BitBootstrap failed to set the type of rememberedSetObj to 64-bit indexability.
+ This is unimportant except for simulation; rememberedSet is declared as sqInt *, but to have
- This is unimportant except for simulation; rememberedSet is declared as sqInt *, but in to have
firstIndexableField: below answer a suitable type the format must be wordIndexableFormat."
[manager setFormatOf: obj to: manager wordIndexableFormat].
self assert: (manager formatOf: obj) = manager wordIndexableFormat.
self assert: (manager isPinned: obj).
rememberedSet := manager firstIndexableField: obj.
rememberedSetSize := 0.
rememberedSetLimit := manager numSlotsOf: obj.
self setRememberedSetRedZone!
Item was added:
+ ----- Method: SpurMemoryManager>>objStackPageSlots (in category 'obj stacks') -----
+ objStackPageSlots
+ ^ObjStackPageSlots!
Hi list,
we're on a bit of an adventure to try and find the minimum size of a Squeak
image that can still run a stdio REPL. After narrowing it down to around
6MB, we noticed that SpaceTally reported ~3MB of objects (as opposed to the
6MB that were saved on-disk).
After a further deep-dive (in which SqueakJS and later the VM simulator
were of immense help), we found that there were 60 objects of class index
19, which took up 3MB of space in the .image file. After some digging, we
eventually found out that class index 19 are from
SpurMemoryManager>>sixtyFourBitLongsClassIndexPun. As we understand it the
"pun" objects are internal clones of the built-in classes (such as
WeakArray, Array, ...), to prevent them from being found by a user.
We even managed to locate one of the larger class-index=19 objects with the
help of Tom (WoC): the hiddenRootsObj contains in its 4099's slot the
RememberedSet, which in our image was just over 1MB in size.
Now, we're wondering whether we can get closer to our goal of getting to
the smallest possible on-disk image size (don't ask why, at this point it's
more of a challenge...). Does the RememberedSet need to be persisted or
could we (easily?) nil it before saving to disk? Are there other low
hanging fruits in terms of VM-internal objects that could be freed during
snapshot generation?
Best,
Jens (jl) and Tom (tobe)
PS: A not-so-clean version of the minification process can be found here
https://github.com/hpi-swa-lab/cloud-squeak
We're in the process of cleaning it up and might send out a proper
announcement once it's pretty.
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 314e5d96bcf71baa216419d0a9cc577876818bba
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/314e5d96bcf71baa21…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2023-03-23 (Thu, 23 Mar 2023)
Changed paths:
M platforms/iOS/plugins/ClipboardExtendedPlugin/sqMacExtendedClipboard.m
M platforms/win32/plugins/ClipboardExtendedPlugin/sqWin32ExtendedClipboard.c
M src/plugins/BitBltPlugin/BitBltPlugin.c
M src/plugins/ClipboardExtendedPlugin/ClipboardExtendedPlugin.c
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.3313
Have the copyBits primitives answer #'bad receiver' if loadBitBltFrom:warping:
fails. Speed up noSource/noHalftone setup there-in.
Fix the ClipboardExtendedPlugin on Mac & Win32 so that multiple invocations of
addClipboardData:dataFormat: allow different formats to be pasted at once.
Regenerate the unchanged src/plugins/ClipboardExtendedPlugin/ClipboardExtendedPlugin.c
so that the image can check the version number to see if the new support exists.
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 9624ac8c6bbd13070814a7fe5d3e21fe10faa701
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/9624ac8c6bbd130708…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2023-03-22 (Wed, 22 Mar 2023)
Changed paths:
M platforms/win32/plugins/ClipboardExtendedPlugin/sqWin32ExtendedClipboard.c
Log Message:
-----------
For Windows, fixes some issues in the ClipboardExtended plugin platform code. Every OpenClipboard must have a CloseClipboard or we would lock out other applications.
Branch: refs/heads/virtend
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: f20a00030009a45b8b94a443b5c99eae865270ad
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/f20a00030009a45b8b…
Author: Marcel Taeumel <marcel.taeumel(a)hpi.de>
Date: 2023-03-22 (Wed, 22 Mar 2023)
Changed paths:
A .github/workflows.ignore/extra-arm.yml
A .github/workflows.ignore/extra.yml
A .github/workflows.ignore/linux-arm.yml
A .github/workflows.ignore/linux.yml
A .github/workflows.ignore/macos-arm.yml
A .github/workflows.ignore/macos.yml
A .github/workflows.ignore/win.yml
R .github/workflows/extra-arm.yml
R .github/workflows/extra.yml
R .github/workflows/linux-arm.yml
R .github/workflows/linux.yml
R .github/workflows/macos-arm.yml
R .github/workflows/macos.yml
R .github/workflows/win.yml
Log Message:
-----------
Disable all CI workflows for "virtend" branch.
Branch: refs/heads/virtend
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 41bf62f9aadce6b3c808e573938349609a639236
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/41bf62f9aadce6b3c8…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2023-03-21 (Tue, 21 Mar 2023)
Changed paths:
M building/win32x86/HowToBuild
M building/win64x64/HowToBuild
Log Message:
-----------
Merge pull request #657 from LinqLover/docs/HowToBuild/win-cygwin-path
Revise docs on HowToBuild on Windows: cygwin tools must be in PATH [ci skip]
Commit: ce219e01621a9a31c293bd802bf77bfc8538bca3
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/ce219e01621a9a31c2…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2023-03-21 (Tue, 21 Mar 2023)
Changed paths:
M platforms/iOS/plugins/ClipboardExtendedPlugin/sqMacExtendedClipboard.m
M platforms/win32/plugins/ClipboardExtendedPlugin/sqWin32ExtendedClipboard.c
Log Message:
-----------
ClipboardExtendedPlugin:
Make sure the ioAddClipboardData fails on macos if setData:forType: fails
and/or raises an exception. Avoid crashing the VM if setData:forType:
raises an exception.
Fix a bug in the scanline width calculation for importing bitmaps on
Windows for depths below 8.
Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/b73339e14e17...ce…