Julia: Official build for Android

Created on 27 Aug 2015  路  10Comments  路  Source: JuliaLang/julia

The build needs not be official.. But keeping the issue here might be ok, to list milestones (to get a proof-of-concept build out):

https://groups.google.com/forum/#!topic/julia-users/E5dUg0NhsnQ
"your other questions should probably be turned into a Julia issue, to collect milestones and issues that need to get resolved in order to get Julia to Android && IOS (&& Windows Phone)."

I do not care to much about non-Android for now, can come later.

It seems with GNURoot: https://play.google.com/store/apps/details?id=champion.gnuroot&hl=en

installing Julia may/should work already.. (note on different arch. below), I haven't checked.

I assume @unix will work (and @linux?) except that some of the standard library might make assumptions like wget available. Then those should just be bundled with?

Android's memory management is different.. Your program can be thrown out.. Ignore at first? Could your Android specific Julia made app support that on its own? It's usually the apps responsibility and I'm just not sure the infrastructure ("Julia"), should have that responsibility. Similar with screen rotation? For now also ignore or handle elsewhere (GNURoot?). I could go with starting up landscape (or portrait, maybe just chooseable in the beginning) and not worry about bundling programmer friendly virtual keyboard at first (at least I bought a BlueTooth keyboard)?

As normal Julia programs are distributed as source code, only julia itself should need to support different CPUs? Fat binary (eventually, but not at first, two separate builds and what about apps that would be made, that need to bundle julia with?)? Worry about distributing applications later and GUI stuff.

Android is mostly on ARM (seems supported, see the makefile..) and ARM seems supported on general Linux. Andoid is also on x86 (even easier..), but also MIPS (64- and 32-bit..) but I know of no [popular] MIPS devices.. There might be one 32-bit one.. The only one I know of is for Firefox OS, but I guess you could install Android on it (supported option?).

I'm not pushing for Juno or anything like that. This is just to start and get the REPL. Eventually a bundle would be nice, but Juno (with LT) seems to be on the way out, and the developer switching to Atom from LT.

Anything else I haven't thought of?

speculative

Most helpful comment

Hi everyone. Just want to share something. I have installed Kali Linux on my Samsung Galaxy Tab A and have installed the recent version of julia (v0.6.2) on it . Its working.

All 10 comments

I think rather than big plan ahead, a somewhat working proof of concept would be more useful. If you have time and the device to do so it will be much appreciated. Tight integration with the platform (UI, power, etc) can be done later.

Agreed. This is not really actionable.

On fim 27.谩g煤 2015 13:24, Oscar Blumberg wrote:

I think rather than big plan ahead,

Right, I was thinking the first milestone would be just something - a
proof-of-concept, a first milestone - that is actionable.

It was suggested that milestones be put here. It's probably best not to
have on the mailing list as a long discussion.

a somewhat working proof of concept

that would be great, and I may do that. I'm not asking this should (too
much) take time from others to _actually build_. I/you would run into
some hurdles, if trying this, along the way. I do not forsee anything
big. I just wanted it all out in the open. Maybe I'm not forseeing
something bad that, that you experts know.

would be more useful. If you have time and the device to do so it will
be much appreciated. Tight integration with the platform (UI, power,
etc) can be done later.

I have an ARM tablet.. not x86.. but like I said, it seems to me that
ARM support is kind of stable. At least I would not care about the math
stuff (numerical accuracy), to start with just getting somthing to work,
even excluding floating point..

Let's not pull out the issue locking sledgehammer unless we desperately need to. (Or extreme necroposting on a closed issue happens.)

Pall, I think the next forward step will be to attack some of the open ARM issues--there are quite a few things that need to be resolved there, not just numerical issues. It even has its own issue label! https://github.com/JuliaLang/julia/labels/arm (You are probably aware of this, but hey, never hurts to link.)

I'm not sure targeting Android directly will ever be something that the core language does, but there's room for third-party development to make a usable environment on that platform.

With a little effort (and a little chroot magic to install a conventional Linux environment) an Android ARM tablet can be used to help research and knock down broader ARM issues, as I've done with my Nexus 9--I highly recommend trying that route if you want to push Julia on ARM forward.

If you do decide to start working on embedding this into an Androidy environment, a link to your repository would be appropriate to leave here; a mailing list post would be an even better recruiting tool, I'm sure.

I agree. We need a PR that takes the first step and reports how far it gets.

ARM support is in much better shape now, a guy did run Julia on his smartphone months ago (Ubuntu running in Android). Is this at least "actionable"? Any known showstoppers? what does is_linux() assume? Same file system structure, or also some files in specific places? I know bionic doesn't have full support for some things such as threads/C++ exceptions. There are C libraries with full support.

I think Termux would be a good start...
"Termux combines powerful terminal emulation with an extensive Linux package collection."
Termux packages: "This project contains scripts and patches to build packages for the Termux Android application."
Many "languages" are there (python, ruby, perl, php...)

An issue was opened on Termux side. See https://github.com/termux/termux-packages/issues/58

Hi everyone. Just want to share something. I have installed Kali Linux on my Samsung Galaxy Tab A and have installed the recent version of julia (v0.6.2) on it . Its working.

i have julia working on android natively on termux on arm aarch64 and even i686 and x86_64. So yeah.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

StefanKarpinski picture StefanKarpinski  路  3Comments

i-apellaniz picture i-apellaniz  路  3Comments

ararslan picture ararslan  路  3Comments

TotalVerb picture TotalVerb  路  3Comments

arshpreetsingh picture arshpreetsingh  路  3Comments