Re: [Haskell-cafe] GHC for mobile devices?

I've been looking for the last two days through every nook and cranny of google to find information about building for iOS. It seems to be the case that it was once possible to get ios running and now its a bit questionable. I've tried ghc-ios, ghc-iphone and a few others which are all somewhat out of date. If anyone has any experience on that platform I would greatly appreciate some guidance in getting it up and running. As for you notion of "hard truth," and "dumb apps acting as web front ends" its pretty blase to assume that anyone interested in this thread will share that perspective in terms of their own goals on these platforms. I compose professionally on my phone, its certainly not a toy for my purposes. I also have no interest whatsoever in getting Cocoa commands into Haskell. I just want a functional way of working with data. I would greatly prefer to go the Haskell route, but have been considering OCaml as well as they seem to have an active and enthused interest in iOS. I would love a bit of perspective on whether OCaml would be worth pursing in the long run for the short term benefit of having a more mature mobile implementation.' Thanks, Casey
Yes, I've seen some of the work done on this and I think he's also looked into OCaml on Android.
To be completely honest it's not really the language that's such the barrier: the hard truth is that any Android app doing anything of interest is necessarily going to be using the Android framework. Android programming (at least, presubaly iOS too) is not a lot of advanced construction, it's mostly dumb apps acting as web frontends, I'd posit that this is probably why people have been mostly content with the Android API for so long anyway.
So the main barrier is being able to interface with the Java side of things (obviously) in a way that doesn't completely kill perf either (this sounds nontrivial...). Then you need to give a sane reimplementation of the Android API within Haskell.
kris
-- Casey James Basichis Composer - Cartoon Network http://www.caseyjamesbasichis.com caseybasichis@gmail.com 310.387.7540

On Sat, Nov 10, 2012 at 9:21 AM, Casey Basichis
As for you notion of "hard truth," and "dumb apps acting as web front ends" its pretty blase to assume that anyone interested in this thread will share that perspective in terms of their own goals on these platforms. I compose professionally on my phone, its certainly not a toy for my purposes. I also have no interest whatsoever in getting Cocoa commands into Haskell. I just want a functional way of working with data.
I didn't perceive my comment would be taken as insulting by people, but I apologize if it was! It is based on quite detailed study of why people write apps that I've been working on for the past year or so. The vast majority of apps are thin wrappers around REST services. I didn't mean to imply that this is what you would be using it for here, but rather to give an explanation as to why Haskell may have not shown up. I only meant that, at some level, you are going to need to fit into the platform, you can't deny this: for the case of Android you *have* to hook into the lifecycle somewhere, because that's how the system runs your app. You also probably want a GUI (maybe *you* don't, but I'd wager most people *do*). In any case, you can get good programming done without much platform assistance using things like the NDK, some projects manage to do this: mostly projects with gobs of C++ code ported from desktop to Android where they need minimal Java sections because of fast production cycles.
I would greatly prefer to go the Haskell route, but have been considering OCaml as well as they seem to have an active and enthused interest in iOS. I would love a bit of perspective on whether OCaml would be worth pursing in the long run for the short term benefit of having a more mature mobile implementation.'
What do you want to do with it? From what I can tell about all the OCaml projects I've seen, they still mostly suffer from the problems of having a limited interface to the Android system proper. (I'm not saying that makes them bad, just harder to use to write real apps..) kris

Hi Kris,
No offense taken, it was an argument that works to shut down
constructive discussion of how to get Haskell running on mobile, a task
which has perplexed me for several long days. I agree most apps are pretty
terrible, at least on iOS though, despite the percentages being wildly off
there are still a few hundred apps that are very well done and thoughtful,
none of them using Haskell I'm sure.
I'm looking to pass Haskell lists of musical data and return processed
musical ideas from it (not audio, not realtime). I was also planning on
handling a database within Haskell as the information contained would be
used by the music processing and from what I have read Haskell interfaces
to SQL far more readily than with a C++ orm type solution. I was planning
on working with Haskells Euterpea as base to build my ideas off of, my I
might end up rolling my own similar library as my aims are a bit different
than theirs.
Everything else would be C++, including the interface, audio and dsp
processing etc. I already have the C++ stuff running on my phone. I have
read about the difficulty of getting Haskell working in real world
scenarios, but as far as I understand my plans for it are fairly well
suited to it.
Since much of the documentation online about Haskell seems to be out of
date, its tough to get a general feel for whats working. I see people
mention that cross-compilation was finished a while back which should allow
for targeting arm but nothing concrete and the website gives conflicting
info. I've also considered using GHC to generate C to paste into the
project but it seems there have been and may be more integrated ways to get
it running.
casey
On Sat, Nov 10, 2012 at 9:31 AM, Kristopher Micinski wrote: On Sat, Nov 10, 2012 at 9:21 AM, Casey Basichis As for you notion of "hard truth," and "dumb apps acting as web front
ends"
its pretty blase to assume that anyone interested in this thread will
share
that perspective in terms of their own goals on these platforms. I
compose
professionally on my phone, its certainly not a toy for my purposes. I
also
have no interest whatsoever in getting Cocoa commands into Haskell. I
just
want a functional way of working with data. I didn't perceive my comment would be taken as insulting by people,
but I apologize if it was! It is based on quite detailed study of why
people write apps that I've been working on for the past year or so.
The vast majority of apps are thin wrappers around REST services. I
didn't mean to imply that this is what you would be using it for here,
but rather to give an explanation as to why Haskell may have not shown
up. I only meant that, at some level, you are going to need to fit into
the platform, you can't deny this: for the case of Android you *have*
to hook into the lifecycle somewhere, because that's how the system
runs your app. You also probably want a GUI (maybe *you* don't, but
I'd wager most people *do*). In any case, you can get good programming done without much platform
assistance using things like the NDK, some projects manage to do this:
mostly projects with gobs of C++ code ported from desktop to Android
where they need minimal Java sections because of fast production
cycles. I would greatly prefer to go the Haskell route, but have been
considering
OCaml as well as they seem to have an active and enthused interest in
iOS.
I would love a bit of perspective on whether OCaml would be worth
pursing in
the long run for the short term benefit of having a more mature mobile
implementation.' What do you want to do with it? From what I can tell about all the
OCaml projects I've seen, they still mostly suffer from the problems
of having a limited interface to the Android system proper. (I'm not saying that makes them bad, just harder to use to write real
apps..) kris --
Casey James Basichis
Composer - Cartoon Network
http://www.caseyjamesbasichis.com
caseybasichis@gmail.com
310.387.7540

On Sat, Nov 10, 2012 at 3:50 PM, Casey Basichis
Hi Kris,
No offense taken, it was an argument that works to shut down constructive discussion of how to get Haskell running on mobile, a task which has perplexed me for several long days. I agree most apps are pretty terrible, at least on iOS though, despite the percentages being wildly off there are still a few hundred apps that are very well done and thoughtful, none of them using Haskell I'm sure.
Yup! Most of the time apps are merely "translated" versions of rails frontends. (For better or for worse, I assume that if we were to port haskell to work with Android really it would be mostly to appease my purity.)
I'm looking to pass Haskell lists of musical data and return processed musical ideas from it (not audio, not realtime). I was also planning on handling a database within Haskell as the information contained would be used by the music processing and from what I have read Haskell interfaces to SQL far more readily than with a C++ orm type solution. I was planning on working with Haskells Euterpea as base to build my ideas off of, my I might end up rolling my own similar library as my aims are a bit different than theirs.
I'm not sure I understand completely, but I agree this isn't a bad idea.
Everything else would be C++, including the interface, audio and dsp processing etc. I already have the C++ stuff running on my phone. I have read about the difficulty of getting Haskell working in real world scenarios, but as far as I understand my plans for it are fairly well suited to it.
I don't disagree!
Since much of the documentation online about Haskell seems to be out of date, its tough to get a general feel for whats working. I see people mention that cross-compilation was finished a while back which should allow for targeting arm but nothing concrete and the website gives conflicting info. I've also considered using GHC to generate C to paste into the project but it seems there have been and may be more integrated ways to get it running.
I am venturing into my embarrassing lack of knowledge about GHC internals here, but how easily would the run time system work on Android..? I had assumed a large part of the effort into getting OCaml to work on iPhone went into the runtime system, no? If you're (Andrew or anyone) still interested in pursuing this I would be interested in helping out, I have some Android internals knowledge and would be glad to lend a hand. One major thing that seems to be necessary is congealing all the (mis/outdated)information into the wiki article on haskell.org. kris

I've tried porting GHC to Haiku OS, a Unix-like desktop OS, but the state
of the GHC build system is fairly confusing. The build scripts contain a
Perl script with a bad shebang, and you can't build GHC without already
having a working older version.
If someone can point me to the most recent GHC code that doesn't need
itself to compile, I can work on a Haiku version as practice. I really want
GHC for every possible system.
On Nov 10, 2012 5:49 PM, "Kristopher Micinski"
On Sat, Nov 10, 2012 at 3:50 PM, Casey Basichis
wrote: Hi Kris,
No offense taken, it was an argument that works to shut down constructive discussion of how to get Haskell running on mobile, a task which has perplexed me for several long days. I agree most apps are pretty terrible, at least on iOS though, despite the percentages being wildly off there are still a few hundred apps that are very well done and thoughtful, none of them using Haskell I'm sure.
Yup! Most of the time apps are merely "translated" versions of rails frontends. (For better or for worse, I assume that if we were to port haskell to work with Android really it would be mostly to appease my purity.)
I'm looking to pass Haskell lists of musical data and return processed musical ideas from it (not audio, not realtime). I was also planning on handling a database within Haskell as the information contained would be used by the music processing and from what I have read Haskell interfaces to SQL far more readily than with a C++ orm type solution. I was planning on working with Haskells Euterpea as base to build my ideas off of, my I might end up rolling my own similar library as my aims are a bit different than theirs.
I'm not sure I understand completely, but I agree this isn't a bad idea.
Everything else would be C++, including the interface, audio and dsp processing etc. I already have the C++ stuff running on my phone. I have read about the difficulty of getting Haskell working in real world scenarios, but as far as I understand my plans for it are fairly well suited to it.
I don't disagree!
Since much of the documentation online about Haskell seems to be out of date, its tough to get a general feel for whats working. I see people mention that cross-compilation was finished a while back which should allow for targeting arm but nothing concrete and the website gives conflicting info. I've also considered using GHC to generate C to paste into the project but it seems there have been and may be more integrated ways to get it running.
I am venturing into my embarrassing lack of knowledge about GHC internals here, but how easily would the run time system work on Android..? I had assumed a large part of the effort into getting OCaml to work on iPhone went into the runtime system, no?
If you're (Andrew or anyone) still interested in pursuing this I would be interested in helping out, I have some Android internals knowledge and would be glad to lend a hand.
One major thing that seems to be necessary is congealing all the (mis/outdated)information into the wiki article on haskell.org.
kris

ASM for iOS is possible, so GHC mobile should be possible.
www.shervinemami.info/armAssembly.html#howto
On Nov 10, 2012 5:59 PM, "Andrew Pennebaker"
I've tried porting GHC to Haiku OS, a Unix-like desktop OS, but the state of the GHC build system is fairly confusing. The build scripts contain a Perl script with a bad shebang, and you can't build GHC without already having a working older version.
If someone can point me to the most recent GHC code that doesn't need itself to compile, I can work on a Haiku version as practice. I really want GHC for every possible system. On Nov 10, 2012 5:49 PM, "Kristopher Micinski"
wrote: On Sat, Nov 10, 2012 at 3:50 PM, Casey Basichis
wrote: Hi Kris,
No offense taken, it was an argument that works to shut down constructive discussion of how to get Haskell running on mobile, a task which has perplexed me for several long days. I agree most apps are pretty terrible, at least on iOS though, despite the percentages being wildly off there are still a few hundred apps that are very well done and thoughtful, none of them using Haskell I'm sure.
Yup! Most of the time apps are merely "translated" versions of rails frontends. (For better or for worse, I assume that if we were to port haskell to work with Android really it would be mostly to appease my purity.)
I'm looking to pass Haskell lists of musical data and return processed musical ideas from it (not audio, not realtime). I was also planning on handling a database within Haskell as the information contained would be used by the music processing and from what I have read Haskell interfaces to SQL far more readily than with a C++ orm type solution. I was planning on working with Haskells Euterpea as base to build my ideas off of, my I might end up rolling my own similar library as my aims are a bit different than theirs.
I'm not sure I understand completely, but I agree this isn't a bad idea.
Everything else would be C++, including the interface, audio and dsp processing etc. I already have the C++ stuff running on my phone. I have read about the difficulty of getting Haskell working in real world scenarios, but as far as I understand my plans for it are fairly well suited to it.
I don't disagree!
Since much of the documentation online about Haskell seems to be out of date, its tough to get a general feel for whats working. I see people mention that cross-compilation was finished a while back which should allow for targeting arm but nothing concrete and the website gives conflicting info. I've also considered using GHC to generate C to paste into the project but it seems there have been and may be more integrated ways to get it running.
I am venturing into my embarrassing lack of knowledge about GHC internals here, but how easily would the run time system work on Android..? I had assumed a large part of the effort into getting OCaml to work on iPhone went into the runtime system, no?
If you're (Andrew or anyone) still interested in pursuing this I would be interested in helping out, I have some Android internals knowledge and would be glad to lend a hand.
One major thing that seems to be necessary is congealing all the (mis/outdated)information into the wiki article on haskell.org.
kris

Yes, and the Android NDK allows you to write arbitrary C code, it's
just a slightly less than pleasant interface with the SDK :-(.
Perhaps it's easier to do this in iOS as it's all objective C rather
than a vm with a runtime system. Also not sure what the status of
porting the runtime system to ios would be.
kris
On Sat, Nov 10, 2012 at 9:03 PM, Andrew Pennebaker
ASM for iOS is possible, so GHC mobile should be possible.
www.shervinemami.info/armAssembly.html#howto
On Nov 10, 2012 5:59 PM, "Andrew Pennebaker"
wrote: I've tried porting GHC to Haiku OS, a Unix-like desktop OS, but the state of the GHC build system is fairly confusing. The build scripts contain a Perl script with a bad shebang, and you can't build GHC without already having a working older version.
If someone can point me to the most recent GHC code that doesn't need itself to compile, I can work on a Haiku version as practice. I really want GHC for every possible system.
On Nov 10, 2012 5:49 PM, "Kristopher Micinski"
wrote: On Sat, Nov 10, 2012 at 3:50 PM, Casey Basichis
wrote: Hi Kris,
No offense taken, it was an argument that works to shut down constructive discussion of how to get Haskell running on mobile, a task which has perplexed me for several long days. I agree most apps are pretty terrible, at least on iOS though, despite the percentages being wildly off there are still a few hundred apps that are very well done and thoughtful, none of them using Haskell I'm sure.
Yup! Most of the time apps are merely "translated" versions of rails frontends. (For better or for worse, I assume that if we were to port haskell to work with Android really it would be mostly to appease my purity.)
I'm looking to pass Haskell lists of musical data and return processed musical ideas from it (not audio, not realtime). I was also planning on handling a database within Haskell as the information contained would be used by the music processing and from what I have read Haskell interfaces to SQL far more readily than with a C++ orm type solution. I was planning on working with Haskells Euterpea as base to build my ideas off of, my I might end up rolling my own similar library as my aims are a bit different than theirs.
I'm not sure I understand completely, but I agree this isn't a bad idea.
Everything else would be C++, including the interface, audio and dsp processing etc. I already have the C++ stuff running on my phone. I have read about the difficulty of getting Haskell working in real world scenarios, but as far as I understand my plans for it are fairly well suited to it.
I don't disagree!
Since much of the documentation online about Haskell seems to be out of date, its tough to get a general feel for whats working. I see people mention that cross-compilation was finished a while back which should allow for targeting arm but nothing concrete and the website gives conflicting info. I've also considered using GHC to generate C to paste into the project but it seems there have been and may be more integrated ways to get it running.
I am venturing into my embarrassing lack of knowledge about GHC internals here, but how easily would the run time system work on Android..? I had assumed a large part of the effort into getting OCaml to work on iPhone went into the runtime system, no?
If you're (Andrew or anyone) still interested in pursuing this I would be interested in helping out, I have some Android internals knowledge and would be glad to lend a hand.
One major thing that seems to be necessary is congealing all the (mis/outdated)information into the wiki article on haskell.org.
kris
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (3)
-
Andrew Pennebaker
-
Casey Basichis
-
Kristopher Micinski