Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 555e1b510e5b40049dba86cf4cf7a6a126906cb5
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/555e1b510e5b40049d…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2017-08-31 (Thu, 31 Aug 2017)
Changed paths:
M nsspur64src/vm/cogit.h
M nsspur64src/vm/cointerp.c
M nsspur64src/vm/cointerp.h
M nsspur64src/vm/gcc3x-cointerp.c
M nsspursrc/vm/cogit.h
M nsspursrc/vm/cointerp.c
M nsspursrc/vm/cointerp.h
M nsspursrc/vm/gcc3x-cointerp.c
M nsspurstack64src/vm/gcc3x-interp.c
M nsspurstack64src/vm/interp.c
M nsspurstacksrc/vm/gcc3x-interp.c
M nsspurstacksrc/vm/interp.c
M platforms/win32/plugins/FT2Plugin/Makefile.plugin
M spur64src/vm/cogit.h
M spur64src/vm/cointerp.c
M spur64src/vm/cointerp.h
M spur64src/vm/gcc3x-cointerp.c
M spurlowcode64src/vm/cogit.h
M spurlowcode64src/vm/cointerp.c
M spurlowcode64src/vm/cointerp.h
M spurlowcode64src/vm/gcc3x-cointerp.c
M spurlowcodesrc/vm/cogit.h
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/cointerp.c
M spursista64src/vm/cointerp.h
M spursista64src/vm/gcc3x-cointerp.c
M spursistasrc/vm/cogit.h
M spursistasrc/vm/cointerp.c
M spursistasrc/vm/cointerp.h
M spursistasrc/vm/gcc3x-cointerp.c
M spursrc/vm/cogit.h
M spursrc/vm/cointerp.c
M spursrc/vm/cointerp.h
M spursrc/vm/gcc3x-cointerp.c
M spurstack64src/vm/gcc3x-interp.c
M spurstack64src/vm/interp.c
M spurstacksrc/vm/gcc3x-interp.c
M spurstacksrc/vm/interp.c
M src/plugins/SoundPlugin/SoundPlugin.c
Log Message:
-----------
CogVM source as per VMMaker.oscog-eem.2266
Spur:
Simplify cleverSwapHeaders:and:copyHashFlag: via xor.
Fix the type of currentAllocatedBytes given the Slang changes below.
Slang:
Fix a regression caused by the Slang fixes in VMMaker.oscog-eem.2243.
Since inferTypesForImplicitlyTypedVariablesIn: no longer sets the types of
locals as it goes along (which was incorrect) we can no longer default the types
of untyped variables to sqInt for the purposes of returnTypeForSend:in:ifNil:.
To allow returnTypeForSend:in:ifNil: to answer nil for arithmetic on untyped
expressions typeForArithmetic:in: uses TParseNode>>typeOrNilFrom:in: instead of
CCodeGenerator>>typeFor:in: to avoid the defaulting. returnTypeForSend:in:ifNil:
has been refactored to use the more direct TParseNode>>typeFrom:in: instead of
CCodeGenerator>>typeFor:in: for clarity.
The regression caused Slang to fail to infer the types of remembered1/2 &
hash1/2 in cleverSwapHeaders:and:copyHashFlag:. The new code correctly
infers the types of remembered & hashBits as sqLong.
Plugins:
Eliminate a couple of warnings in the SoundPlugin by using 0 instead of NULL.
Fix paths in the win32 FT2Plugin makefile.
Commit: 1102de6e73c378a5f647f35b131ed0a1609bc0dc
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/1102de6e73c378a5f6…
Author: Eliot Miranda <eliot.miranda(a)gmail.com>
Date: 2017-08-31 (Thu, 31 Aug 2017)
Changed paths:
M .appveyor.yml
M build.win32x86/squeak.cog.spur/plugins.ext
M build.win32x86/squeak.cog.v3/plugins.ext
M build.win32x86/squeak.sista.spur/plugins.ext
M build.win32x86/squeak.stack.spur/plugins.ext
M build.win32x86/squeak.stack.v3/plugins.ext
M build.win64x64/squeak.cog.spur/plugins.ext
M build.win64x64/squeak.stack.spur/plugins.ext
M platforms/Cross/plugins/SqueakSSL/SqueakSSL.h
M platforms/iOS/plugins/SqueakSSL/sqMacSSL.c
M platforms/win32/plugins/SqueakSSL/sqWin32SSL.c
M third-party/libpng.spec.win
Log Message:
-----------
Merge branch 'Cog' of https://github.com/OpenSmalltalk/opensmalltalk-vm into Cog
(CogVM source as per VMMaker.oscog-eem.2266)
Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/7aaf2d605d03...11…
Hi Torsten, Hi Esteban,
> On Aug 28, 2017, at 9:17 AM, Torsten Bergmann <astares(a)gmx.de> wrote:
>
> As some of you are aware of Spur added memory pinning and in Pharo 6.1 (#60510) as well as Pharo 7
> we currently have
>
> Object>>pin
> Object>>unpin
> Object>>isPinned
>
> and also Object>>setPinned:.
>
> Object pinning is explained by Eliot here [1].
>
> I would propose two changes (at least for Pharo but ideally also for Squeak):
>
> 1. IMHO #setPinned: should be moved to a private protocol
> 2. Provide a #pinDuring: aBlock method like:
>
> pinDuring: aBlock
> [ self pin.
> aBlock value ] ensure: [ self unpin ]
>
> so we can ensure that a pinned object is unpinned after an operation.
>
> What do you think?
>
> Also I wonder why FFICallbackTests>>#testCqsortWithByteArray is sending #pin but not
> #unpin afterwards. Maybe that is the reason why there is a flag in this method that it
> is crashing on Windows.
This test is news to me. Neither the test nor the class is in FFI-Tests at source.squeak.org, which is where the package lives. Why is it missing?
>
> Bye
> T.
>
> [1] http://lists.squeakfoundation.org/pipermail/squeak-dev/2017-August/195129.h…
Hi Torsten, Hi All,
re pinDuring:
> On Aug 28, 2017, at 9:17 AM, Torsten Bergmann <astares(a)gmx.de> wrote:
>
> As some of you are aware of Spur added memory pinning and in Pharo 6.1 (#60510) as well as Pharo 7
> we currently have
>
> Object>>pin
> Object>>unpin
> Object>>isPinned
>
> and also Object>>setPinned:.
>
> Object pinning is explained by Eliot here [1].
>
> I would propose two changes (at least for Pharo but ideally also for Squeak):
>
> 1. IMHO #setPinned: should be moved to a private protocol
> 2. Provide a #pinDuring: aBlock method like:
>
> pinDuring: aBlock
> [ self pin.
> aBlock value ] ensure: [ self unpin ]
>
> so we can ensure that a pinned object is unpinned after an operation.
From an implementation perspective, I suspect this is unnecessary. There are two reasons, one to do with collecting pinned objects and the other to do with compaction.
Pinning an object forces it into oldSpace if it was not there already, but does not prevent it being garbage collected. So any un references pinned object in oldSpace will be collected at the next full GC.
It is possible (but in implemented) to move not large objects back to newSpace but the forwarder left in oldSpace will prevent its collection until the next full GC so trying to move an object back into newSpace is pointless. Conclusion, there is no point unpinning for garbage collectability.
The compactor does a good job of moving unpinned objects around pinned objects, typically leaving very small gaps before pinned objects. [One can observe how much free space exists in an image file to get an idea of how much free space this causes. It's low]. The number of uncollectable pinned objects in an application, which will be objects that are long-lived that have been passed through the FFI, is likely to be small. Conclusion there is little to be gained in avoiding fragmentation by unpinning long-lived objects pinned on an FFI call.
In summary, collectible ones objects will be collected anyway, and the few long-lived pinned objects should not cause significant fragmentation. So pinDuring: is unlikely to provide any benefit. Simply pin and leave it to the GC and its compactor to clean up afterwards.
> What do you think?
>
> Also I wonder why FFICallbackTests>>#testCqsortWithByteArray is sending #pin but not
> #unpin afterwards. Maybe that is the reason why there is a flag in this method that it
> is crashing on Windows.
>
> Bye
> T.
>
> [1] http://lists.squeakfoundation.org/pipermail/squeak-dev/2017-August/195129.h…
Branch: refs/heads/Cog
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 6474d573fb3c9ad6c703a599a532bf6e471ccc2b
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/6474d573fb3c9ad6c7…
Author: Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>
Date: 2017-08-29 (Tue, 29 Aug 2017)
Changed paths:
M .appveyor.yml
M build.win32x86/squeak.cog.spur/plugins.ext
M build.win32x86/squeak.cog.v3/plugins.ext
M build.win32x86/squeak.sista.spur/plugins.ext
M build.win32x86/squeak.stack.spur/plugins.ext
M build.win32x86/squeak.stack.v3/plugins.ext
Log Message:
-----------
Compile SqueakSSL for Squeak VM on windows 32bits
Note: use the mingw64-%MINGW_ARCH%-openssl package provided by cygwin for cross compilation to mingw target
contrarily to pharo-vm which recompile openssl from source
Note2: the plugin does not compile yet on win64, types have to be reviewed (int does not match sqInt for example)
Commit: baa70862014d3bb510f2edf7465e857c645be0e4
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/baa70862014d3bb510…
Author: Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>
Date: 2017-08-29 (Tue, 29 Aug 2017)
Changed paths:
M build.win64x64/squeak.cog.spur/plugins.ext
M build.win64x64/squeak.stack.spur/plugins.ext
M platforms/Cross/plugins/SqueakSSL/SqueakSSL.h
Log Message:
-----------
Fix a SqueakSSL prototype for LLP64 and thus compile on win64 Squeak VM
Commit: 7aaf2d605d0378ab8cf843d9a737a76ed196a55a
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/7aaf2d605d0378ab8c…
Author: Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>
Date: 2017-08-30 (Wed, 30 Aug 2017)
Changed paths:
M .appveyor.yml
M build.win32x86/squeak.cog.spur/plugins.ext
M build.win32x86/squeak.cog.v3/plugins.ext
M build.win32x86/squeak.sista.spur/plugins.ext
M build.win32x86/squeak.stack.spur/plugins.ext
M build.win32x86/squeak.stack.v3/plugins.ext
M build.win64x64/squeak.cog.spur/plugins.ext
M build.win64x64/squeak.stack.spur/plugins.ext
M platforms/Cross/plugins/SqueakSSL/SqueakSSL.h
Log Message:
-----------
Merge pull request #149 from OpenSmalltalk/CompileSqueakSSLOnWindows
Compile SqueakSSL plugin on windows
Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/7dff21160652...7a…
Branch: refs/heads/CompileSqueakSSLOnWindows
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: baa70862014d3bb510f2edf7465e857c645be0e4
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/baa70862014d3bb510…
Author: Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>
Date: 2017-08-29 (Tue, 29 Aug 2017)
Changed paths:
M build.win64x64/squeak.cog.spur/plugins.ext
M build.win64x64/squeak.stack.spur/plugins.ext
M platforms/Cross/plugins/SqueakSSL/SqueakSSL.h
Log Message:
-----------
Fix a SqueakSSL prototype for LLP64 and thus compile on win64 Squeak VM
Branch: refs/heads/CompileSqueakSSLOnWindows
Home: https://github.com/OpenSmalltalk/opensmalltalk-vm
Commit: 6474d573fb3c9ad6c703a599a532bf6e471ccc2b
https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/6474d573fb3c9ad6c7…
Author: Nicolas Cellier <nicolas.cellier.aka.nice(a)gmail.com>
Date: 2017-08-29 (Tue, 29 Aug 2017)
Changed paths:
M .appveyor.yml
M build.win32x86/squeak.cog.spur/plugins.ext
M build.win32x86/squeak.cog.v3/plugins.ext
M build.win32x86/squeak.sista.spur/plugins.ext
M build.win32x86/squeak.stack.spur/plugins.ext
M build.win32x86/squeak.stack.v3/plugins.ext
Log Message:
-----------
Compile SqueakSSL for Squeak VM on windows 32bits
Note: use the mingw64-%MINGW_ARCH%-openssl package provided by cygwin for cross compilation to mingw target
contrarily to pharo-vm which recompile openssl from source
Note2: the plugin does not compile yet on win64, types have to be reviewed (int does not match sqInt for example)
> On 29.08.2017, at 20:30, Tobias Pape <Das.Linux(a)gmx.de> wrote:
>
>
>> On 29.08.2017, at 20:19, Bob Arning <arning315(a)comcast.net> wrote:
>>
>> Some more exploring
>>
>> - downloaded cog_macos32x86_squeak.cog.v3_201608171728.tar.gz, started it and pointed it to a 4.2 image. Squeak stayed up, but the desktop never appeared.
>>
>> - downloaded Squeak-4.6-All-in-One.zip and it runs, but warns it can't write the changes file (see attachment). Not sure how to deal with this or how to make this into a VM I can use for other images.
>
> When you download and unpack an all-in-one or a VM and want to run it
> _first, before you run it_ move the .app somewhere else (Desktop, /Applications), does not matter.
> But move it.
>
> Moving _after_ opening does not help, move it first.
>
> Apple in 10.12 tried to make some things more secure, and that is why you see the problems with not being able to write to the changes file.
>
For the record:
http://krypted.com/mac-security/app-translocation-services-os-x-10-12/http://lapcatsoftware.com/articles/app-translocation.html
Best regards
-Tobias
> Best regards
> -Tobias
>
>>
>> On 8/29/17 1:36 PM, tim Rowledge wrote:
>>>> On 29-08-2017, at 6:51 AM, Bob Arning <arning315(a)comcast.net>
>>>> wrote:
>>>> ---------------
>>>> Cog[Spur] VM
>>>>
>>>> If I drop a 5.1 image on this VM, it works (at least a few that I just tried). If I drop a 4.2 or 4.5 image on the same VM, nothing happens. I
>>>>
>>> Spur would seem to be the key here. For a 4.x image you want the v3 vm rather than Spur.
>>>
>>> We don’t seem to be doing a terribly good job of informing users when something like this happens; a clear notifier or log entry that the image format didn’t match and a note about what that means (a URL to swiki?) would be nice. We have some image version checking in checkImageVersionFromstartingAt() that at least looks like it ought to be working out if the image format is correct and exiting cleanly if not, but I don’t know what happens to plain ‘print()’ statements on macOS. Hmm, ok, try loading a 4.3 image in a spur vm - the console does actually show an exit from there with error 1, so it does work but boy is it failing to be helpful. How many people even know there is a console and to filter for ‘squeak’?
>>>
>>> Is it practical to add a UI aspect to ioExitWithErrorCode()?
>>>
>>>
>>> tim
>>> --
>>> tim Rowledge;
>>> tim(a)rowledge.org; http://www.rowledge.org/tim
>>>
>>> Useful random insult:- Hid behind the door when they passed out brains.
>>>
>>>
>>
>> <Screen Shot 2017-08-29 at 2.13.40 PM.png>
>
Hello,
noticed that Date today evaluate to 27 August -4652. This is due to the
fact that for VM version mentioned in the subject line 2415386*86400 is no
longer 208689350400. This is a VM marked as stable by the Squeak web site.
regards,
Vaidotas