Compiler/assembler/interpreter On The Pandora


uplink3r

Still Fresh
Joined
Oct 10, 2009
Messages
7
I haven't seen anything talking about pandora coming with a compiler or assembler? Why is this not a feature? I can't imagine it would be too hard to stick one on there.
I am not saying that development tools should come with every single device, but will we be able to download GCC or even python/haskell/java interpreter?

As long as I'm throwing out ideas... but could the pandora send instructions to a main computer which would do most of the heavy CPU work? Is this technique ever used?
For instance, if i'm doing let's say I want to work with a large file (ie. game levels) or do very complicated instructions (ie. data/statstical manipulation). I either want do something extremely CPU heavy, or have quick access to large amounts of data (as an under-the-hood feature of a program). I'm really just curious about this one. This approach shares some (theoretical) similarities to web 2.0.
 
It is likely that GCC, Python, and some manner of Java runtime will all be included "in the box" or at least available for download in the repo.
 
Anything available in the Angstrom Linux repository will be available. As for as remote computing, ssh will work, and with X-forwarding for anything that isn't hardware accelerated.
 
uplink3r said:
I haven't seen anything talking about pandora coming with a compiler or assembler?
That's because you haven't looked very hard

uplink3r said:
Why is this not a feature?
It is. Even if it doesn't come pre-installed (because I suspect the number of people that will want to compile directly on the Pandora will be minimal, as most will prefer to compile on a more powerful system) gcc is already compiled for ARM and is in the Angstrom repository, so it's trivial to install.

uplink3r said:
I can't imagine it would be too hard to stick one on there.
What did I just say? Trivial to install. Pay attention. :p

uplink3r said:
I am not saying that development tools should come with every single device, but will we be able to download GCC or even python/haskell/java interpreter?
YES! Why am I repeating myself? :p


uplink3r said:
As long as I'm throwing out ideas... but could the pandora send instructions to a main computer which would do most of the heavy CPU work?
Yes, but only if there's a program on the other computer that's expecting instructions. You can't just arbitrarily send commands for another computer to execute; there has to be two programs working together: one on the Pandora, and one on the more powerful computer.

uplink3r said:
Is this technique ever used?
This is the basis behind the grid network, except instead of a weak computer sending instructions to a more powerful computer, it clouds out to millions of less powerful computers. Such a technique is also used a lot in complex rendering (ie, for movies and stuff)

uplink3r said:
For instance, if i'm doing let's say I want to work with a large file (ie. game levels) or do very complicated instructions (ie. data/statstical manipulation). I either want do something extremely CPU heavy, or have quick access to large amounts of data (as an under-the-hood feature of a program). I'm really just curious about this one. This approach shares some (theoretical) similarities to web 2.0.
Web 2.0? It's a technique that's been in use since... the 60s? Before then maybe? I never was good at history. A long, long time. All it takes is a well designed client on the Pandora and a server on the host computer.
 
Last edited by a moderator:
You obviously have never used a modern Linux system.

There's a slim chance that gcc or maybe Python will be installed by default.
There is a 100% chance that literally every other open language (C++, Haskell, Python, Ruby, Perl, Lisp, Scheme, Lua, D, Mono) will be available for easy download and installation.

The reason nobody has been talking about this is because it's taken for granted.
THE PANDORA WILL HAVE A LOT OF LANGUAGES AVAILABLE.

As for CPU offloading, you could probably have the Pandora SSH into a bigger computer, then have the bigger computer sshfs into the Pandora to process some files on the Pandora without using its CPU too hard.
 
Wow. Harsh crowd around here. Since it hasn't been covered yet, here are some keyword searches that might point you in the right direction if you decide to compile code for the Pandora on your desktop or laptop (BTW, this process is called cross-compiling):

crosstool
codesourcery g++
cross-compile for ARM
Angstrom Openembedded bitbake (if you want to build an entire linux distro from source)

There may be some information in the developer's section on this forum, but a Google search of any of the above will get you started.

Best of luck!
 
uplink3r said:
but could the pandora send instructions to a main computer which would do most of the heavy CPU work? Is this technique ever used?

see distcc
distcc also seems to support arm as a compile target.
 
Last edited by a moderator:
lulzfish said:
You obviously have never used a modern Linux system.

Haha, I run ubuntu.

Well, I apologize for not realizing their was going to be a C compiler. I looked up compiler in the wiki and didn't get any results. As far as X-Forwarding... completely forgot about that... I use it all the time for my CS homework (ssh into school server and run emacs). I also had no idea there was an angstrom repository that would come with the pandora, or that you can X-Forward from x86 to a different chip (but it makes perfect sense when I think about it and how X-Forwarding works).

I am well aware that the computer I'm linking up with would have to be ready for instruction. I do programming in Haskell, and I know that languages like Haskell work very well over multiple machines (since it uses recursion), i was curious about that. The whole complex rendering thing is exactly what I was getting at... I'll have to read up on that. Would this be fast enough for non-destructive or live audio/video editing?
 
Last edited by a moderator:
uplink3r said:
lulzfish said:
You obviously have never used a modern Linux system.

Haha, I run ubuntu.

Well, I apologize for not realizing their was going to be a C compiler. I looked up compiler in the wiki and didn't get any results. As far as X-Forwarding... completely forgot about that... I use it all the time for my CS homework (ssh into school server and run emacs). I also had no idea there was an angstrom repository that would come with the pandora, or that you can X-Forward from x86 to a different chip (but it makes perfect sense when I think about it and how X-Forwarding works).

I am well aware that the computer I'm linking up with would have to be ready for instruction. I do programming in Haskell, and I know that languages like Haskell work very well over multiple machines (since it uses recursion), i was curious about that. The whole complex rendering thing is exactly what I was getting at... I'll have to read up on that. Would this be fast enough for non-destructive or live audio/video editing?

Why would recursion be suited to multiple machines? Iteration perhaps, but recursion? I am not being obtuse on purpose here - I seriously want to know how this would be implemented. I once wrote a fractal generator that called remote procedure calls (in java), I split up the screen into sections and sent each part to a different machine (I actually only used 2 machines but in theory it would've worked with more).
 
Last edited by a moderator:
There *absolutely* should be a gcc onboard. This will make a *HUGE* difference to the number of apps we can get .. cross-compiling is for the boards, when you have a machine as powerful as Pandora then it *SHOULD* be the first option to go to for development ..
 
It would be much easier to compile on the PC and run on the Pandora than copying all your source onto the Pandora so you can compile it there. And there wouldn't be any advantage to compiling on the Pandora anyway.
 
Stupid. Of *COURSE* there is an advantage to having a compiler onboard: you don't need *anything* but the Pandora *to make games for the Pandora*.

The hassles of cross-compiling are not worth it for casual coders, but if the compiler is already onboard, then the machine itself is all you need to write games for the machine, itself. Putting a compiler onboard means that a person can get started on developing for the Pandora right away, just put the sources on your SD card, or write some new ones with the built-in editor, and compile away ..
 
I suppose if you mean by "hassles of cross-compiling" "download compiler & assorted Pandora libs" then yes, effort would be involved. I'm not sure what the appeal of needing only your Pandora to make games for it, other than very slowly being able to type out some code when you're away from a computer.
 
The ease of porting will be phenomenal if there is a compiler onboard. Just put the sources on an SD card and away you go .. this will make a huge difference, plus it'll be the only games machine that ships with everything you need to write apps for it already onboard .. just think of all the homebrew that would be more possible because people don't have to have another computer to write apps for the Pandora. Plus, debugging *on* the Pandora is going to be a hell of a lot more fun than debugging in a cross-compiler environment..
 
1. I'm not sure why you think porting on the Pandora will be so much easier because you won't have to download some things.
2. "Being the only games machine that ships with everything you need to write apps for it" is more of a gimmick than something useful, because the Pandora is made for playing games, not typing for extended periods of time.
3. I don't get this. Will there be more written software because people who aren't clever enough to a) realise that trying to program on the Pandora is a bad idea and B) can't work out how to download and set up a compiler will be writing programs?
4. Unless your bug is strictly Pandora hardware related, compiling for a PC and debugging it there would be oh so much easier than trying to debug on the Pandora.
 
arrrgh said:
I suppose if you mean by "hassles of cross-compiling" "download compiler & assorted Pandora libs" then yes, effort would be involved. I'm not sure what the appeal of needing only your Pandora to make games for it, other than very slowly being able to type out some code when you're away from a computer.

It'll save me the step of installing the compiler myself.
 
Last edited by a moderator:
Because the 2 minutes it will take you to download and install a cross compiler is totally worth saving so you waste time shuttling your code to your Pandora because you couldn't bother installing a toolchain.
 
Well, I might install a cross compiler if I need to compile something big like .. I dunno, ODE or Irrlicht. (Those are the biggest things I can imagine myself needing to compile)

But if I had a compiler on the Pandora by default, it would save me the 2 minutes of installing a compiler when I first get it.
 
Installing a cross compiler is very, very simple. So simple, I don't even remember how I did it. It was just... download, change a few environment variables, and voila. You just call gcc from this new cross compile directory instead of the default, is all. Getting the libraries was a little harder. I had to build SDL from source using the cross compiler, but you'd have to do that when compiling on the Pandora as well anyway.
That being said, I do find it easier to ssh into my beagleboard, do up some quick code, and compile it directly there when I need something simple (like manipulating USB ports as I've had to do lately. stupid hardware bug), or just want to change one line for a quick test.
THAT being said, I have a much more impressive environment on my PC, with colours and intelitext set up just the way I like it that would take time to get working on the Pandora (or Beagleboard, as the case may be). Any experienced developer knows the value of a familiar set of tools.
*THAT* being said, I fully intend to do at least some development on the Pandora when the mood strikes me and I'm not at home.
**THAAAAT** being said, if a PC is available, larger screen and full sized keyboard definitely improve development efficiency.
All told, I don't see any reason why gcc should be included by default. A lot of reasons have been given for it to be available, and it already is (or will be) available, so there's no argument there, but the only reason given to have it installed by default was "It'll save me the step of installing the compiler myself", because "opkg install gcc" is apparently too much trouble.
 
Back
Top