Porting SuperWaba
Being Open Source, everyone is free to offer improvements to
SuperWaba, however small. One of the more significant contributions that can be made is to port
SuperWaba to another platform. Below are some projects that need your attention.
Linux
Ironically,
SuperWaba does not yet run natively on that bastion of the Open Source community,
Linux. It will run happily on Java under Linux, or on the
WINE Windows emulation package. Native development has been started, but never finished. Hopefully now that the CVS repository on Gforge is now working, further contributions will become part of the build.
Even without a GUI,
SuperWaba would come in useful on embedded Linux devices. This would allow the same code to be used in client and embedded devices.
One useful side effect of this process would be to have a version of
SuperWaba that compiles under the GNU toolset. This would be beneficial not just for a Linux port, but for those wishing to use the free GCC platform to build
SuperWaba (though some have reported successful builds under the free version of Codewarrior Lite). Unfortunately, it is not possible to debug a Palm device through a USB port under Linux, so some developers are reluctant to pursue this path right now. Do not let this put you off!
Win32
A native Win32 port is distributed in the
SuperWabaSDK to run your
SuperWaba applications on your desktop without any Java VM. This is different than the
SuperWaba applet version using a JVM and an AWT interface to run on any machine or in a java-enabled browser.
The project file to build this native win32
SuperWaba VM is available
here.
Symbian
SuperWaba will run - or anecdotaly, crawl - under
PersonalJava? on Nokia 9210 phones. The P800 is due for testing and
Sony Ericsson have brought out a P900.
Michal Hobot? has done some work on this. He says that you have to download tools for
PersonalJava? development for Symbian. He used a Nokia PJAE (200 MB!). It integrates with JBuilder but also works without it. Compile
SuperWaba with PJAE (Java 1.1.8). Superwaba is a normal Java application. Then, pack it into SIS file with the Symbian tools provided. You can run Superwaba under a Symbian emulator or install it on a real device.
The following links may be useful:
http://www.symbian.com/developer/techlib/papers/Khopera/Opera_KeithHollis.htm
http://www.symbian.com/developer/techlib/papers/cpp_migrating.html
http://www.yipton.demon.co.uk/content.html (source code good for reading!)
http://www.s2.org/putty/
http://dreo.org/p800/putty/
Full porting to Symbian is on indefinite hold as resources are now diverted to producing a Linux version. Symbian is not proving to be the major driver in the mobile phone industry that it was once held to be. Anyone interested in assisting should speak out on the newsgroup list or contact
Vik Olliver. There is some overlap in porting between Linux and Symbian, like using an SDL library such as
this one from Hannu Viitala (Email: hannu.j.viitala at mbnet.fi).
The SuperWabaJump Toolkit
The
SuperWabaJump Toolkit is a different type of port. Instead of porting to different hardware or a different operating system, the toolkit is a port of the
SuperWaba class libraries to a different approach to creating Java applications.
The toolkit creates stand-alone applications for the Palm OS operating system. These applications do not use a Java virtual machine in the conventional sense. Instead a tool called
Jump is used, which is an ahead-of-time compiler. Jump converts all of the class files for a project into machine code, and only the resulting machine code runs on the handheld device.
Q Why would you want to do this, though? Surely it is already possible to run
SuperWaba applications on Palm OS devices?
A There are three main benefits:
- the resulting code run much faster, typically five times faster.
- a stand-alone application is produced, so installation is easier.
- the application is very well obfuscated. No class files, just machine code.
See also the
SuperWabaJump FAQ and
SuperWabaJump Performance Guide
Special Requests
--
VikOlliver - 28 Apr 2004
--
PeterDickerson? - 30 Jan 2004