[Vm-dev] Reviving the Android VM

Esteban Lorenzano estebanlm at gmail.com
Wed Jun 21 07:03:55 UTC 2017


I guess the most advanced ARM vm now are the ARMv6 and ARMv7 builds from osvm, but for Android you need several other things. 
Some other work besides the original has been done to adapt the vm to android which you can take a look too, notably the work by Santiago (which is based on work from JB), that can be found here: https://github.com/sbragagnolo/pharo-vm <https://github.com/sbragagnolo/pharo-vm> (but is based in old pharo-vm, before we re-joined with osvm). 

Also, no VM for android has solved what is the most important piece missing to do something for real on Android: the VM needs to be an “idle VM” (a vm that goes idle when not used), so it can be run as android wants, not killing the battery of the portable :)
Also, IMO it would be nice to incorporate the work from Ronnie (I think is here: https://github.com/ronsaldo/opensmalltalk-vm <https://github.com/ronsaldo/opensmalltalk-vm>) to strip out the display from VM (Display initialisation should be a decision of the image, after all), which would put us closer to have an “embeddable vm”, and that can lead to very cool applications in the mobile world. 

yes, I didn’t help here, just added more complexity… but well, I’m trying to add elements to analyse ;)


> On 21 Jun 2017, at 05:22, Michael Rueger <lists at andience.co.nz> wrote:
> Hi Ryan,
>> The Newspeak ARMv7 builds are configured for running on Linux (Debian armhf), not Android. Android would require building with a different toolchain and using different settings for the floating point ABI (-mfloat-abi=softfp)(Eliot, 
> thank you for the insight!
> Yes, that is why I started to pull the build directly into AndroidStudio and building with the CMake toolchain. Google still supports the .mk based builds, but they are on their way out. Also the newer NDKs seem to work quite differently from older ones, so most of the builds I found based on old -sometimes really old- NKD versions just won't build anymore.
>> this difference will affect the JIT if you pass any floats from generated code to runtime functions, perhaps the primitive for sin calls directly to libm's sin?). That would still only produce a VM that isn't connected to the UI or other Android APIs; I expect getting this hooked up properly is a far bigger task than getting a working JIT.
> Yes, that is the tricky part. As I mentioned, I got the VM  basically working, but as it is crashing when running on a background thread I'm stuck. By working I mean it is running, even making display callbacks into Android. But as it is blocking the UI thread, it's not very useful...
>>    I'm also pretty sure that this VM is missing the event-driven features of Andreas' VM and it would be great to have
>>    that folded back in.
> Dmitry's VM seems to be event-driven, still need to try to get that to build.
> Cheers
> Michael

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20170621/196b2ee6/attachment.html>

More information about the Vm-dev mailing list