Got network sockets working in Android Cog

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

Got network sockets working in Android Cog

Dimitry Golubovsky
 
Hi,

I got network sockets to work in my Android port of CogVM with
PharoCore-13137 image.

I made changes to the logic of aioPoll so that it just checks on all
handles once and returns if no I/O operations are ready without any
looping, otherwise calls all relevant I/O handlers and returns.
aioPoll is called as part of ioProcessEvents.

I am able to open Monticello repos, download packages, merge, see diffs etc.

Socket tests mostly succeeded, 2 failed. One for https (I did not
investigate yet how to use SSL in Android NDK, so no surprise it does
not work); another is NetNameResolverTest>>testLocalHostName (also
failed on PC as I just checked so there is something non-related to
Android).

I am trying to run the "Software update" item on Pharo. It seems to
progress, but very slowly (partly because Squeaksource is very slow
from the US). Not sure how long it may take, but I'll try to get it to
complete ;)

Anyway, this is another step towards release.

I have currently these plugins compiled in:

                BitBltSimulation "BitBltPlugin"
                BalloonEnginePlugin "B2DPlugin"
                FileCopyPlugin
                FilePlugin
                FloatArrayPlugin
                FloatMathPlugin
                JoystickTabletPlugin
                JPEGReaderPlugin
                RePlugin
                SecurityPlugin
                JPEGReadWriter2Plugin
                SocketPlugin
                MiscPrimitivePlugin
                DeflatePlugin  "ZipPlugin"

The plugin choice was mostly arbitrary, beyond those really necessary
(Balloon Engine, Socket, etc.)

What other plugins are worth adding and testing before I start
preparing for the release?

Thanks.

--
Dimitry Golubovsky

Anywhere on the Web
Reply | Threaded
Open this post in threaded view
|

Re: Got network sockets working in Android Cog

David T. Lewis
 
On Tue, Aug 30, 2011 at 12:08:49AM -0400, Dimitry Golubovsky wrote:

>  
> Hi,
>
> I got network sockets to work in my Android port of CogVM with
> PharoCore-13137 image.
>
> I made changes to the logic of aioPoll so that it just checks on all
> handles once and returns if no I/O operations are ready without any
> looping, otherwise calls all relevant I/O handlers and returns.
> aioPoll is called as part of ioProcessEvents.
>
> I am able to open Monticello repos, download packages, merge, see diffs etc.
>
> Socket tests mostly succeeded, 2 failed. One for https (I did not
> investigate yet how to use SSL in Android NDK, so no surprise it does
> not work); another is NetNameResolverTest>>testLocalHostName (also
> failed on PC as I just checked so there is something non-related to
> Android).
>
> I am trying to run the "Software update" item on Pharo. It seems to
> progress, but very slowly (partly because Squeaksource is very slow
> from the US). Not sure how long it may take, but I'll try to get it to
> complete ;)
>
> Anyway, this is another step towards release.
>
> I have currently these plugins compiled in:
>
> BitBltSimulation "BitBltPlugin"
> BalloonEnginePlugin "B2DPlugin"
> FileCopyPlugin
> FilePlugin
> FloatArrayPlugin
> FloatMathPlugin
> JoystickTabletPlugin
> JPEGReaderPlugin
> RePlugin
> SecurityPlugin
> JPEGReadWriter2Plugin
> SocketPlugin
> MiscPrimitivePlugin
> DeflatePlugin  "ZipPlugin"
>
> The plugin choice was mostly arbitrary, beyond those really necessary
> (Balloon Engine, Socket, etc.)
>
> What other plugins are worth adding and testing before I start
> preparing for the release?
>
> Thanks.

Dimitry,

Very impressive, congratulations!

If LargeIntegersPlugin works on Android, you should include that,
UUIDPlugin would be good to have, but not really important.

Bert, you have done work with touch input and multitouch, were
there any plugins required to support this?

Just for reference, here are the plugins that Ian included in
a recent standard Unix VM:

  # Automatically generated makefile include for internal plugins
  INTERNAL_PLUGINS = ADPCMCodecPlugin AsynchFilePlugin BMPReadWriterPlugin
  B2DPlugin BitBltPlugin CroquetPlugin DSAPrims ZipPlugin DropPlugin
  FFTPlugin FT2Plugin FilePlugin FloatArrayPlugin FloatMathPlugin
  GeniePlugin JPEGReadWriter2Plugin JPEGReaderPlugin JoystickTabletPlugin
  Klatt LargeIntegers LocalePlugin Matrix2x3Plugin MiscPrimitivePlugin
  RePlugin SecurityPlugin SerialPlugin SlangTestSupportPlugin SocketPlugin
  SoundCodecPrims SoundGenerationPlugin SoundPlugin StarSqueakPlugin SurfacePlugin
 
  # Automatically generated makefile include for external plugins
  EXTERNAL_PLUGINS = B3DAcceleratorPlugin Squeak3D ClipboardExtendedPlugin
  DBusPlugin SqueakFFIPrims FileCopyPlugin GStreamerPlugin HostWindowPlugin
  KedamaPlugin KedamaPlugin2 MIDIPlugin Mpeg3Plugin RomePlugin UUIDPlugin
  AioPlugin UnixOSProcessPlugin XDisplayControlPlugin

Dave


Reply | Threaded
Open this post in threaded view
|

Re: Got network sockets working in Android Cog

Bert Freudenberg


On 30.08.2011, at 14:03, David T. Lewis wrote:

>
> On Tue, Aug 30, 2011 at 12:08:49AM -0400, Dimitry Golubovsky wrote:
>>
>> Hi,
>>
>> I got network sockets to work in my Android port of CogVM with
>> PharoCore-13137 image

Nice!

> Bert, you have done work with touch input and multitouch, were
> there any plugins required to support this?

No plugin. The VM just emits a Complex event (see Cross/vm/sq.h and iOS/vm/iPhone/Classes/sqSqueakIPhoneApplication+events.m).

This is modeled very closely on what iOS uses natively. We may want to find a more cross-platform interface, but I have no idea how touch events look in Android.

- Bert -