macintosh cocoa 32/64bit & 64/64bit VM goes BETA

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

macintosh cocoa 32/64bit & 64/64bit VM goes BETA

johnmci
Ok, it's time for the community to do some testing.

ESUG provided me with some funding to take the existing iPhone VM source and extend that to
build a new hosting platform using Cocoa on the macintosh and to enable the VM to run in 32 or 64 bit
mode and work with a 32 or 64bit image.

I have placed two Alpha test VM s in the experimental folder  sub-folder COCOA
found in the usual places via

http://smalltalkconsulting.com/squeak.html

There are two VM's

(a) a 32/64 bit VM that runs 32bit squeak images in 32bit (powerpc, intel) or 64bit (intel) mode.
(b) a 64/64 bit VM that runs 64bit squeak images in 64bit (intel).


The VM currently runs on 10.5.x and 10.6.x  Support for 10.4.x might happen, we will see.

Until I sort out the re-integration of the source code into the squeakvm.org SVN tree you will
find the source at isqueak.org

Issues, Oh lots. It's a fairly high mountain of material that needs to be tested.

Things that should work.

(a) access to files and directories UTF8 support only.
(b) Full screen support
(c) Sockets
(d) Basic Sound (better than in the 3.x/4.x VMs)
(e) jpegplugin2
(f) cut/copy/paste of text data (from/to) squeak and respect UTF8 chars
(g) drag and drop of files into squeak

Right now it does not:

(a) Support a internet browser as a browser plugin.
(b) The 64bit VM has no plugins at the moment.
(b2) I've not included any plugins with the 32/64bit VM.  
        Existing plugins might work if the VM is running as "Open in 32bit mode"
        someone can confirm that.

(c) No macintosh host menus, or serial port support
(d) No Areithfa Ffenestri multiple-window support
(e) No 1, 2, 4, 8, 16 bit appearance support.

Things I know about.
(a) double clicking *.images when the 5.x VM is running sometimes does not open a new VM.
(b) tossing a 32 image at the 64/64 bit VM or a 64 image at the 32/64 VM doesn't give visual feedback that it won't open the image.
(c) Full screen grabs all the screens, yes that will change

Thoughts on internal plugins. Hint we should have TEST cases so we can confirm if all this stuff works.
It would be extremely helpful if someone wanted to work on that.   No doubt someone *could* run all the
current tests for a 32bit image and see what breaks.  However you'll need to explain where and what, versus
Oh it just crashed...

        ADPCMCodecPlugin, untested.
        Squeak3D, Likely busted due to use of (int) data types in 64bit mode.
        B2DPlugin, untested.
        BitBltPlugin, untested.
        BMPReadWriterPlugin, untested.
        ZipPlugin, untested.
        DSAPrims, untested.
        SqueakFFIPrims, untested.
        FFTPlugin, untested.
        FloatArrayPlugin, untested.
        GeniePlugin, untested.
        HostWindowPlugin,  No support yet
        JPEGReaderPlugin,  untested.
        Klatt, untested.
        LargeIntegers, untested.
        Matrix2x3Plugin, untested.
        MiscPrimitivePlugin, untested.
        ObjectiveCPlugin, untested.
        RePlugin, Likely busted due to use of (int) data types in 64bit mode.
        SecurityPlugin, untested.
        SoundCodecPrims, Likely busted due to use of (int) data types in 64bit mode.
        SoundGenerationPlugin, Likely busted due to use of (int) data types in 64bit mode.
        StarSqueakPlugin, untested.
        SurfacePlugin, untested.
        UUIDPlugin untested.

Possibly Large Integers may have a problem in 64bit image mode, but we have to have some
discussion if the (unsigned int *) used by one routine is on purpose or an oversight.

64 bit images.

We need to built a 64bit Closure image. **** I've no time to do that. ***

David T Lewis provided a somewhat current Squeak.image which you'll find on the ftp site.

If you build a 64bit image you need to do that on a PowerPC, or make a copy of  your VM on macIntel
and flip the  "Open in 32-bit mode" and the "Open in Rosetta" to on. You will only see the "Open in 32bit mode" if it's a 64bit VM,
and the "Open in Rosetta on os-x for 10.5 or 10.6 (if you installed it)
Follow the obvious instructions.

No doubt some is required to take the code and build a MC change set for Pharo or Squeak Thrunk use so that
anyone can convert an existing image.

Also see
 http://bugs.squeak.org/view.php?id=5239
 http://bugs.squeak.org/view.php?id=5240

Building your own VM?

Hopefully someone will attempt this so I can see if I checked in all the changes.

32bit image VM pick SqueakPureObjc and set
#define SQ_VI_BYTES_PER_WORD 4
for a
64bit image reading VM  pick SqueakPureObjc64*64 and set
#define SQ_VI_BYTES_PER_WORD 8
in the required places.

PS You'll find that building a 32/64 VM using GNU's tool chain will give you lousy performance
when running as a 64bit VM, more on this later.

----------------------------------------------
Oh and lastly I'm looking for some paid work (smalltalk or objective-c (mac/iPhone) If anyone
requires a Smalltalk consultant, or an iPhone app built, please email me.

--
===========================================================================
John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================





Reply | Threaded
Open this post in threaded view
|

Re: macintosh cocoa 32/64bit & 64/64bit VM goes BETA

Miguel Cobá
El mié, 02-12-2009 a las 14:57 -0800, John M McIntosh escribió:
> Ok, it's time for the community to do some testing.
>
> ESUG provided me with some funding to take the existing iPhone VM source and extend that to
> build a new hosting platform using Cocoa on the macintosh and to enable the VM to run in 32 or 64 bit
> mode and work with a 32 or 64bit image.
>

Great.

> I have placed two Alpha test VM s in the experimental folder  sub-folder COCOA
> found in the usual places via
>
> http://smalltalkconsulting.com/squeak.html

The ftp url is:

ftp://ftp.smalltalkconsulting.com/experimental/COCOA/

>
> There are two VM's
>
> (a) a 32/64 bit VM that runs 32bit squeak images in 32bit (powerpc, intel) or 64bit (intel) mode.
> (b) a 64/64 bit VM that runs 64bit squeak images in 64bit (intel).
>
>
> The VM currently runs on 10.5.x and 10.6.x  Support for 10.4.x might happen, we will see.

So this is only for macs. Is that right?
When the code is integrated with the squeakvm svn code there will be any
chance of having it run on other OS (GNU/Linux is my own). Or this will
only work for Macs?

Anyway, thanks.

--
Miguel Cobá
http://miguel.leugim.com.mx


Reply | Threaded
Open this post in threaded view
|

Re: macintosh cocoa 32/64bit & 64/64bit VM goes BETA

johnmci

On 2009-12-04, at 10:24 AM, Miguel Enrique Cobá Martinez wrote:
>> The VM currently runs on 10.5.x and 10.6.x  Support for 10.4.x might happen, we will see.
>
> So this is only for macs. Is that right?

yes

> When the code is integrated with the squeakvm svn code there will be any
> chance of having it run on other OS (GNU/Linux is my own). Or this will
> only work for Macs?
>
> Anyway, thanks.

Ok, there are a number of issues on the table

(a) confirming the base VM and internal plugins work. For example sound, the jpeg2readwriter, etoys security, did not work because
it looked like people wanting to compile as 64bit didn't care if it did sound or rendered jpegs. Typically I think they
just wanted a 64bit platform for Seaside server usage.
 
(b) Making it all work on external plugins, ie for example rome and freetype2

(c) Some people have asked can you take the code base and run on Gnu/Linux using the GNU Objective-C environment?
Well the code base *is* tied to platform specific technology for the iPhone & OSX for sound, display, and sensor input.
However you can subclass override all that behaviour with code that does the right thing for sound, display, and sensor input.
I have to do that anyway to provide variations between os-x and iPhone.

But really I think the question here is reuse of the common code base, lots of that, Sockets for example is generic unix code
so yes the goal is to make the *entire* common code base 64bit clean compile-able on various unix like platforms, versus
just the minimum required to run Seaside


>
> --
> Miguel Cobá
> http://miguel.leugim.com.mx
>

--
===========================================================================
John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================