The classes in this package and its subpackages are Java counterparts of Smalltalk library classes for the PalVM (the PalCom Virtual Machine). Having these classes makes the low-level PalCom libraries available from Java programs (from Pal-J, which is PalCom's variant of Java, and from standard Java).
The public APIs of the classes in this package are the same when running on the PalVM as when running on a JVM, which means that upper-layer code can be the same. But, the implementations of the classes in this package are different, depending on what VM is used.
For the PalVM, the classes in this package are specified as Pal-J external classes, which are basically interface descriptions. At runtime, objects of the Smalltalk library classes are actually created and used. This external class mechanism is one of PalCom's mechanisms for interoperability between programming languages.
For the JVM, there is a separate implementation of the classes in
this package, which is not used on the PalVM. The JVM implementation
uses JVM-only mechanisms for realizing the public APIs of the
classes. As an example, the class {@link ist.palcom.base.Coroutine}
is implemented using the synchronized
keyword, and the
wait
and notify
methods. Those are not
available on the PalVM, but in the JVM implementations of these
low-level libraries they can be used.