r7 - 15 Sep 2004 - 22:06:28 - GuilhermeCHazanYou are here: SuperWaba >  Codev Web  >  PortingGeneral > SuperWabaJumpToolkit
SuperWabaJump logo

The SuperWabaJump Toolkit

SuperWabaJump logo

 What is the SuperWabaJump tookit?

As its name suggests, the SuperWabaJump tookit is a fusion of the SuperWaba programming interface with the Jump code generation tools. The SuperWabaJump Tookit provides the tools and libraries necessary to convert an application using SuperWaba and the SuperWaba VM into a standalone application built on Jump.

The SuperWabaJump Toolkit is not a replacement for SuperWaba or for Jump. SuperWaba can run on a much wider selection of hardware than Jump, and it is much more mature. Jump can produce applications that do not use the SuperWaba API, that use Palm OS directly to produce compact and fast native applications.

The version number of this toolkit uses the numbering scheme of the version of SuperWaba with which it is intended to be compatible.

SuperWabaJump logo

 License

The SuperWabaJump Toolkit is distributed under The GNU Lesser Public License (LGPL), which means that it is treated as a library.

SuperWabaJump logo

 What are the benefits?

There are two main benefits from using the SuperWabaJump toolkit.
  • The toolkit produces monolithic standalone applications.
  • The toolkit is generally much faster than SuperWaba on the same platform.
  • The toolkit produces native machine code, which is much harder to reverse engineer.

SuperWabaJump logo

 How it works

The SuperWabaJump Toolkit is designed to take a SuperWaba application and convert it into a stand-alone program to run on Palm OS. The resulting program does not run in a virtual machine (VM). Nor does it repackage the SuperWaba virtual machine and classes into a single binary file. Instead real machine code is generated by conversion of application's class files. As a result Jump applications, including those built with the SuperWabaJump Toolkit, can run substantially faster.

Jump is able to treat pdb files created by SuperWaba's Warp utility in a similar way to jar files. It can read the class file data directly from a SuperWaba application's pdb file(s). The pdb file is simply placed on the classpath like a regular jar file. This means that during the conversion process Jump can have access to all the classes that make up the application simply by specifying the path to the application's pdb file as part of the classpath.

The SuperWabaJump Toolkit also includes a class library of components that replaces some parts of SuperWaba. This class library contains the so-called native methods, which would otherwise be provided by the SuperWaba VM. The class library is provided in the file swj.jar. This jar file must be placed before the standard Jump jar file and the SuperWaba jar file on the classpath. This order is important to ensure that the toolkit versions are used! Never put the SuperWaba.pdb file on the classpath because it contains SuperWaba specific versions of the standard java/lang classes.

SuperWabaJump logo

 Limitations

  • Palm OS 3.5, or greater, is required.
  • The order in which classes are initialized is different from SuperWaba. In particular, applications should not rely on static class initialization of some classes being performed after the main window has been constructed. However, there is a compiler command line option that sacrifices some speed and code size for improved compatibility with virtual machine behaviour (-y).
  • Currently Palm OS 5 devices with high-density screens display external fonts double size. The problem does not occur with standard fonts. The problem does not occur on Palm OS 5 devices with low-density screens such as the Zire 21.The problem does not occur on Sony Palm OS 4.x devices with high-resolution screens and the problem does not occur when using low-res emulation (-DLOWRES).
  • Jump does not use Unicode for strings.
  • Package superwaba.ext.xplat.io.scanner is completely untested.
  • No database support. Package superwaba.ext.xplat.sql.db2e is not yet supported.
  • No Printer support. The Printer Driver will not work.
  • Native class libraries are not supported, although scanner support is built in.
  • Dynamic class loading. Applications that rely on success or failure of Vm.attachLibrary() to determine whether some feature is available may get confused. The toolkit always return true from this method.

SuperWabaJump logo

 Additional Libraries

After you download the toolkit, you may also need:

-- PeterDickerson? - 18 Dec 2003 -- GuilhermeCHazan - 24 Jan 2004 -- PeterDickerson? - 30 Jan 2004 -- GuilhermeCHazan - 11 Jun 2004

Edit | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r7 < r6 < r5 < r4 < r3 | More topic actions
 
SuperWaba home
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding SuperWaba? Send feedback