Taurus Java Virtual Machive v1.02a

The following release notes are applicable to the above version of the Taurus Java Virtual Machive. The copyright notice is applicable to any version of the VM unless stated otherwise.

Copyright notice

Taurus Software hereby grants you a non-exclusive, non-transferable limited licence (without the right to sub-licence) under Taurus Software's intellectual property rights. The licence entitles you to freely use, for personal, non-commercial use only, but not to distribute, the Taurus Java Virtual Machine. All binaries and code remain exclusively copyright Taurus Software.

The Taurus Java Virtual Machine has been produced, as a "clean room" implementation, in accordance with Sun Microsystems, Inc.'s (SUN) licence agreement for "The Java Virtual Machine" specification. In accordance with this agreement the virtual machine distribution does NOT, to the author's knowledge, contain ANY material which is copyrighted by SUN. As such the class files relied upon by the virtual machine must be obtained separately, directly from SUN. The use of this specifcation does not in any way imply that the software conforms to it, nor does it imply that it will ever wholey do so. The Taurus Java Virtual Machine does not, and will not, ever pretend to be "Java compliant", it will always remain as closer approximation as time and money will allow. Users of this software do so at their own risk. Developers of any Java software should NEVER use this as a reference platform.

Taurus Java Virtual Machine is a trademark of Taurus Software. Sun, Sun Microsystems, the Sun logo, Java, JavaSoft are all trademarks or registered trademarks of Sun Microsystems, Inc. All other product names mentioned herein are the trademarks of their respective owners.

THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRIGEMENT.

TAURUS SOFTWARE RESERVES THE RIGHT TO REVOKE THIS LICENCE AT ANY TIME, FOR ANY REASON. THE "FREE" STATUS OF THIS SOFTWARE IS TEMPORARY, DUE TO THE TIME AND EFFORT DEVOTED TO THIS PROJECT IT IS LIKELY TO BECOME "SHAREWARE", BUT WILL NOT BE MADE INTO A COMMERCIAL PRODUCT.

All references to Taurus Software directly refer to the non-profit freeware/shareware software development unit run from the UK by myself. Any conflict with names of companies inside or outside of the UK is unintentional and should be disregarded.

Platform Support

The Taurus Java Virtual Machine version 1.00 alpha is provided only as an Intel binary, and for space reasons is provided without any of the required support libraries. In order to run this software you must install these libraries yourself (they are likely to be already installed on most systems). Binaries for other platforms will follow at some later date.

The SIBO binary will be simpler to distribute, as no dynamic libraries are used.

There will also a DOS version of the VM (used to test the SIBO source). This will not require any additional libraries and will run on <386 based systems.

Java Support

The alpha release provides an incomplete implementation of the SUN Java Virtual Machine Specification. The key features of this release are as follows: The main restrictions are as follows:

Support for "Standard Applications"

Below is a table of the "standard Java applications", which come with most JVM's. They are all written in Java, so should run on any virtual machine. As a simple test of the Taurus Java VM, here is what happens when they are run with the scripts provided:

appletviewerWill not runNeeds native AWT support.
jarWill not runNeeds native Zip support.
javacRuns buggilyGenerates spurious error messages for a valid Java program. Likely to be caused by some logic errors in the execution engine somewhere.
javadocWill not runPrints help but dies with a NullPointerException when asked to do anything useful.
javakeyRuns buggilyAlways prints the message "could not initialize scope".
javapDon't knowI don't have the class files for javap to test it.
jdbWill not runNeeds native network support.
native2asciiRunsBut I don't know what it does!
rmicRunsGenerates correct error messages, don't know what happens when I give it valid input, but not likey to be of any use with network support.
rmiregistryWill not runNeeds native network support.
serialverWill not runRequires native method java.lang.Object.isAssignableFrom().

Installation

Unpack the downloaded ZIP file containing the VM into a suitable directory (e.g. C:\JavaVM). Next install the class files from the JDK 1.1.x - these come packed as a zero compression Zip file called "classes.zip", approx 8Mb in size. You need to unpack this directly into your JavaVM directory.

Minimum requirements

The VM can function in a much smaller environment than provided by the JDK classes. The VM really only needs the following class and methods to function:

It is also advisable to include the following error/exception classes, even though they cannot yet be raised directly by the VM: To make your own environment, you need to implement a set of Java classes similar to those provided by Sun. The main reason for doing this on a small platform is the amount of crap that gets loaded before any of your classes. I am currently looking at the Personal Java and Embedded Java specifications for some ideas on how to shrink the VM - System.out loads an awful lot of classes!
Last updated 19:35 on Mon 26th Apr 1999
Comments taurus69@geocities.com

1