Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 4e791b82c5a20d1c1468daa02b01f9774e0ed062
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/4e791b82c5a20d1c14…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2021-04-18 (Sun, 18 Apr 2021)
Changed paths:
M platforms/unix/plugins/CameraPlugin/sqCamera-linux.c
M src/plugins/CameraPlugin/CameraPlugin.c
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.2956
CameraPlugin: add primAcknowledgeFrame for simple use of the
primSetCameraBuffers interface. Tweak format conversion in some of the
linux format conversion functions.
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2956.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2956
Author: eem
Time: 18 April 2021, 4:31:24.673307 pm
UUID: e051588b-16be-45e6-b68e-c95c85a3db6f
Ancestors: VMMaker.oscog-eem.2955
CameraPlugin: add primAcknowledgeFrame for simple use of the primSetCameraBuffers interface.
=============== Diff against VMMaker.oscog-eem.2955 ===============
Item was added:
+ ----- Method: CameraPlugin>>primAcknowledgeFrame (in category 'primitives') -----
+ primAcknowledgeFrame
+ "Acknowledge the receipt of one or more buffered frames, installed via primSetCameraBuffers.
+ Answer the number of times a buffer was filled since the last invocation. This is a version of
+ primGetFrame that does not need to supply a buffer to receiver the result."
+ <export: true>
+ | cameraNum result |
+
+ cameraNum := interpreterProxy stackValue: 0.
+ (interpreterProxy isIntegerObject: cameraNum) ifFalse:
+ [^interpreterProxy primitiveFailFor: PrimErrBadArgument].
+
+ result := self Camera: cameraNum Get: 0 Frame: 0.
+ result < 0 ifTrue:
+ [^interpreterProxy primitiveFailFor: result negated].
+
+ interpreterProxy methodReturnInteger: result!
Item was changed:
----- Method: CameraPlugin>>primOpenCamera (in category 'primitives') -----
primOpenCamera
+ "Open a camera. Takes one argument, the index of the device to open.
+ CameraOpen should choose the default size for the device if both desiredFrameWidth
+ and desiredFrameHeight are zero, and the closest to the non-zero value(s) if either or both
+ of desiredFrameWidth and desiredFrameHeight are non-zero."
- "Open a camera. Takes one argument, the index of the device to open."
<export: true>
| cameraNum desiredFrameWidth desiredFrameHeight ok |
cameraNum := interpreterProxy stackIntegerValue: 2.
desiredFrameWidth := interpreterProxy stackIntegerValue: 1.
desiredFrameHeight := interpreterProxy stackIntegerValue: 0.
interpreterProxy failed ifTrue: [^0].
ok := self CameraOpen: cameraNum _: desiredFrameWidth _: desiredFrameHeight.
ok <= 0 ifTrue:
[interpreterProxy success: false.
^0].
interpreterProxy methodReturnReceiver!
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Hi,
I've added the Cuis "VectorEnginePlugin" to Squeak 4.19.6 for OpenIndiana.
(for cuis smalltalk http://cuis-smalltalk.org/ which uses the Squeak VM).
The package is at:
http://pkg.openindiana.org/hipster/en/search.shtml?token=squeak-4&action=Se…
This is delivered as a patch (no change to the upstream subversion repository),
where the following generated VectorEnginePlugin.c is used:
/* Smalltalk from Cuis 5.0 with VMMaker 4.19.5 translated as C source on 17 April 2021 8:50:35.484957 pm */
/* Automatically generated by PluginMaker (VMMaker) from VectorEnginePlugin */
The VectorEnginePlugin compiles OK for both 32bit and 64bit on OpenIndiana,
but only the 32bit plugin is tested with the Cuis5.0-4567-v3.image.
The plugin loads file and rendering/resizing SVG (Scalable Vector Graphics)
is much faster with the plugin loaded (although that the SVG package also
works without plugin, which is nice as a fallback method).
Perhaps it could be considered to add the VectorEnginePlugin to the
subversion repository and/or to the git opensmalltalk repo as well ?
Regards,
David Stes
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQEcBAEBCAAGBQJgfIn/AAoJENdFDkXGiciz0fcH/RMGhj2WrMSh9pLsHF2J5cI4
m91ktJXmvxHaJtHp5ehJt7jPk/47AQqe8r9Uzp6TFqT9PX7gNc+0ZYwk1LJ3NOGg
9ng2U+oLa4Kn2Lx8el/RjwYUcb26FyEhGuHan8fsiMtsC4wm28ls3jBzxp0Lz1Ax
6pZf9o8DpsfTXyKI+Kqz/dEsG+wVwCa3jN2TmujXpLzMNNWJ7lC6n1uwTu5NUu6v
2aUDuVGs7Be1y+LCskhN9tha0+Ren9Aip1+DakW9nQzSpP6NeO4lvmCPgiqHCPvB
VJQPvdvFU0KSHqrsHWHUV0vMcyB2eapaKj5xT1DVWYufpIK+UBXDdO4G2HoMWL8=
=Pgkr
-----END PGP SIGNATURE-----
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2955.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2955
Author: eem
Time: 15 April 2021, 12:16:07.352617 pm
UUID: 78e7e549-0939-41bc-bea3-d2e5d0625870
Ancestors: VMMaker.oscog-eem.2954
Settle on Global Incremental GC for the name of the
Spur incremental collector/compactor.
=============== Diff against VMMaker.oscog-eem.2954 ===============
Item was changed:
CogClass subclass: #SpurMemoryManager
(excessive size, no diff calculated)
Item was changed:
----- Method: SpurMemoryManager>>incrementalGC (in category 'gc - global') -----
incrementalGC
+ "The selector incrementalGC refers to the V3 incremental collector, which is the collector for young objects, equivalent in function to the scavenger.
+ The Spur incremental collector is called the global incremental garbage collector or globalIGC for short."
self shouldNotImplement!
Item was changed:
----- Method: SpurMemoryManager>>markObjects: (in category 'gc - global') -----
markObjects: objectsShouldBeUnmarkedAndUnmarkedClassesShouldBeExpunged
<inline: #never> "for profiling"
"Mark all accessible objects. objectsShouldBeUnmarkedAndUnmarkedClassesShouldBeExpunged
is true if all objects are unmarked and/or if unmarked classes shoud be removed from the class table."
"If the incremental collector is running mark bits may be set; stop it and clear them if necessary."
self cCode: '' inSmalltalk: [coInterpreter transcript nextPutAll: 'marking...'; flush].
self runLeakCheckerFor: GCModeFull.
+ self shutDownGlobalIncrementalGC: objectsShouldBeUnmarkedAndUnmarkedClassesShouldBeExpunged.
- self shutDownIncrementalGC: objectsShouldBeUnmarkedAndUnmarkedClassesShouldBeExpunged.
self initializeUnscannedEphemerons.
self initializeMarkStack.
self initializeWeaklingStack.
marking := true.
self markAccessibleObjectsAndFireEphemerons.
self expungeDuplicateAndUnmarkedClasses: objectsShouldBeUnmarkedAndUnmarkedClassesShouldBeExpunged.
self nilUnmarkedWeaklingSlots.
marking := false!
Item was added:
+ ----- Method: SpurMemoryManager>>shutDownGlobalIncrementalGC: (in category 'gc - incremental') -----
+ shutDownGlobalIncrementalGC: objectsShouldBeUnmarked
+ "If the incremental collector is running mark bits may be set; stop it and clear them if necessary."
+ self flag: 'need to implement the global inc GC first...'.
+ objectsShouldBeUnmarked ifTrue:
+ [self assert: self allObjectsUnmarked]!
Item was removed:
- ----- Method: SpurMemoryManager>>shutDownIncrementalGC: (in category 'gc - incremental') -----
- shutDownIncrementalGC: objectsShouldBeUnmarked
- "If the incremental collector is running mark bits may be set; stop it and clear them if necessary."
- self flag: 'need to implement the inc GC first...'.
- objectsShouldBeUnmarked ifTrue:
- [self assert: self allObjectsUnmarked]!
Item was changed:
----- Method: SpurMemoryManager>>tenuringIncrementalGC (in category 'plugin support') -----
tenuringIncrementalGC
+ "Do an incremental GC that tenures all surviving young objects to old space.
+ The selector tenuringIncrementalGC refers to the V3 incremental collector, which is the collector for young objects, equivalent in function to the scavenger.
+ The Spur incremental collector is called the global incremental garbage collector or globalIGC for short."
- "Do an incremental GC that tenures all surviving young objects to old space."
<api>
self flushNewSpace!
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: e76dab1ddc52fd8aad790903ac8f0cb001c6a622
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/e76dab1ddc52fd8aad…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2021-04-14 (Wed, 14 Apr 2021)
Changed paths:
M platforms/iOS/plugins/CameraPlugin/AVFoundationVideoGrabber.m
Log Message:
-----------
Mac camera plugin. Add missing AVCaptureSessionPreset960x540.
Make sure that h1 is larger than h2 always. Comment the 1920x1080 preset (it's
available in 10.15; we build for 10.13).
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: b6f0ec4a8ddafea69470e3cf1114a517a6ad82be
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/b6f0ec4a8ddafea694…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2021-04-13 (Tue, 13 Apr 2021)
Changed paths:
M README.md
M spur64src/vm/cogit.h
M spur64src/vm/cogitARMv8.c
M spur64src/vm/cogitX64SysV.c
M spur64src/vm/cogitX64WIN64.c
M spur64src/vm/cointerp.c
M spur64src/vm/cointerp.h
M spur64src/vm/cointerpmt.c
M spur64src/vm/cointerpmt.h
M spur64src/vm/gcc3x-cointerp.c
M spur64src/vm/gcc3x-cointerpmt.c
M spurlowcode64src/vm/cogit.h
M spurlowcode64src/vm/cogitARMv8.c
M spurlowcode64src/vm/cogitX64SysV.c
M spurlowcode64src/vm/cogitX64WIN64.c
M spurlowcode64src/vm/cointerp.c
M spurlowcode64src/vm/cointerp.h
M spurlowcode64src/vm/gcc3x-cointerp.c
M spurlowcodesrc/vm/cogit.h
M spurlowcodesrc/vm/cogitARMv5.c
M spurlowcodesrc/vm/cogitIA32.c
M spurlowcodesrc/vm/cogitMIPSEL.c
M spurlowcodesrc/vm/cointerp.c
M spurlowcodesrc/vm/cointerp.h
M spurlowcodesrc/vm/gcc3x-cointerp.c
M spurlowcodestack64src/vm/gcc3x-interp.c
M spurlowcodestack64src/vm/interp.c
M spurlowcodestacksrc/vm/gcc3x-interp.c
M spurlowcodestacksrc/vm/interp.c
M spursista64src/vm/cogit.h
M spursista64src/vm/cogitARMv8.c
M spursista64src/vm/cogitX64SysV.c
M spursista64src/vm/cogitX64WIN64.c
M spursista64src/vm/cointerp.c
M spursista64src/vm/cointerp.h
M spursista64src/vm/gcc3x-cointerp.c
M spursistasrc/vm/cogit.h
M spursistasrc/vm/cogitARMv5.c
M spursistasrc/vm/cogitIA32.c
M spursistasrc/vm/cogitMIPSEL.c
M spursistasrc/vm/cointerp.c
M spursistasrc/vm/cointerp.h
M spursistasrc/vm/gcc3x-cointerp.c
M spursrc/vm/cogit.h
M spursrc/vm/cogitARMv5.c
M spursrc/vm/cogitIA32.c
M spursrc/vm/cogitMIPSEL.c
M spursrc/vm/cointerp.c
M spursrc/vm/cointerp.h
M spursrc/vm/cointerpmt.c
M spursrc/vm/cointerpmt.h
M spursrc/vm/gcc3x-cointerp.c
M spursrc/vm/gcc3x-cointerpmt.c
M spurstack64src/vm/gcc3x-interp.c
M spurstack64src/vm/interp.c
M spurstack64src/vm/validImage.c
M spurstacksrc/vm/gcc3x-interp.c
M spurstacksrc/vm/interp.c
M spurstacksrc/vm/validImage.c
M src/vm/cogit.h
M src/vm/cogitARMv5.c
M src/vm/cogitIA32.c
M src/vm/cogitMIPSEL.c
M src/vm/cointerp.c
M src/vm/cointerp.h
M src/vm/gcc3x-cointerp.c
M stacksrc/vm/gcc3x-interp.c
M stacksrc/vm/interp.c
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.2952
All debug printing routines must use <export: true> to be accessible on win32.
No longer waste time generating the Newspeak configurations. Update README.md.
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.2953.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.2953
Author: eem
Time: 13 April 2021, 6:44:22.159805 pm
UUID: 9f3d924e-9226-4242-9b6f-3dad93c7a837
Ancestors: VMMaker.oscog-eem.2952
...and fix an edge case.
=============== Diff against VMMaker.oscog-eem.2952 ===============
Item was changed:
----- Method: CogMethodZone>>whereIsMaybeCodeThing: (in category 'debug printing') -----
whereIsMaybeCodeThing: anOop
+ <export: true> "useful for VM debugging; use export: so it will be accessible on win32"
+ <api>
- <export: true> "useful for VM debugging; use export: not api, so it will be accessible on win32"
<returnTypeC: #'char *'>
(self oop: anOop isGreaterThanOrEqualTo: cogit cogCodeBase andLessThan: limitAddress) ifTrue:
[(self oop: anOop isLessThan: cogit minCogMethodAddress) ifTrue:
[^' is in generated runtime'].
(self oop: anOop isLessThan: mzFreeStart) ifTrue:
[^' is in generated methods'].
(self oop: anOop isLessThan: youngReferrers) ifTrue:
[^' is in code zone'].
^' is in young referrers'].
^nil!