Re: Embedded sable?

"Grzegorz B. Prokopski" <[email protected]> Sat, 11 Jun 2005 13:03:31 -0400
Newsgroups gmane.comp.java.vm.sablevm.devel
Organization Debian http://www.debian.org - The Free Operating System
Message-ID <[email protected]>
Hello William,

On Sat, 2005-11-06 at 20:46 +1000, William Uther wrote:
> Hi,
>    I'm want a java VM for the Sony AIBO robot.  I don't know of any,  
> so I was thinking of compiling an open source VM.  The AIBO has a  
> Sony proprietary OS.  There is a cross-compiling system based on GCC.
> 
>    There are the rudiments of a posix library, but it is nowhere near  
> complete.  I am assuming that almost none of the standard java  
> classes will work.  That's fine - that API isn't really relevant for  
> video camera images or robot joints :).  Also, processes are not  
> standard unix-style processes.  Nor is there a standard threading model.

It probably depends on how "non-standard" these processes and threading
model are.  For SableVM you should look into system.c (and possibly into
system.h, if the CPU it uses is not there yet) files.  Also, if you need
to use some other functions than standard ptherads have, look into
thread.h and thread.c.  These files should pretty much cover what you
might need to modify in SableVM.

In SableVM Classpath OTOH (which is a derivative of GNU Classpath) you
should look into native/target/ and possibly add a directory there
for your system, similarly as it's done for Linux ATM.  You then
redefine for your OS only those functions where the generic ones
(taken from 'generic' directory) wouldn't work.

>    What I can do is embed a C or C++ library into a shell process in  
> the Sony OS.  Is there any way to run SableVM in such a way?  I have  
> libffi and zlib compiled for the system.

I don't understand what is a shell process.  If you mean using C library
(SableVM does not use C++) as a convenience library and compiling it
statically into SableVM, it should be doable, see the next paragraph.

In our current development (still unreleased) version we have libffi
and libpopt included as convenience libraries.  If you think this might
ease your task install a subversion client and do:

svn co svn://svn.sablevm.org/sablevm/trunk sablevm
svn co svn://svn.sablevm.org/sablevm-classpath/trunk sablevm-classpath

(then autogen.sh in each dir, followed by standard configure, ASO)
If you find it convenient, you'll be able to do the same with pretty
much any library against which SableVM links (safe from the ones opened
with lt_dlopen, like these produced by sablevm-classpath).

I would normally point you to our daily dist tar archives, but the
autobuilder was down since some weeks and I only noticed it yesterday.
If everything goes fine the current tar archives of trunk should start
appearing (in about 3 hours from now, when the testbuild is done) at:

		http://sablevm.org/download/snapshot/

>    I've started playing with the standard sable build system, but  
> there are some issues.  e.g. The cross compiling system can compile  
> libraries, but can't compile "normal apps".  That means the configure  
> system needs some mods at least...

I don't know what a "normal app" would be in this context.  99% of
SableVM is actually a shared library - libsablevm.so.  We don't support
static compilation ATM, if that's what you had in mind.

HTH,

			Grzegorz B. Prokopski
-- 
Grzegorz B. Prokopski           <[email protected]>
SableVM - Free, LGPL'ed Java VM  http://sablevm.org
Why SableVM ?!?                  http://sablevm.org/wiki/Features
Debian GNU/Linux - the Free OS   http://www.debian.org