JNIPort 0.47 uploaded to Cincom public repository

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

JNIPort 0.47 uploaded to Cincom public repository

Joachim Geidel
JNIPort 0.47 is now available in the Cincom Public Repository.

JNIPort is an interface which makes it possible to transparently use
Java libraries from Smalltalk. It invokes a Java VM using the Invocation
Interface functions of the Java Native Interface (JNI). For more
information on JNIPort see
        http://www.metagnostic.org/DolphinSmalltalk/JNIPort.html

JNIPort has a settings tool which can be started from the
VisualLauncher's Tools menu. Using the context menu on the list subpane,
you can add new configurations, start and stop the Java VM, save the
settings to the Windows registry and load them from the registry. There
is also a help window with some basic instructions for getting started.

Please read the JNIPort bundle comment. It contains information on the
prerequisites needed. Please make sure that you have a recent version of
the Weaklings package. The parcel shipped with VisualWorks 7.5 is *not*
compatible with JNIPort.

What's new:
-----------
- I have simplified the low level JNI interface.
- The new version is faster. Starting a JVM which generates ghost
classes immediately is about 50% faster. If you use static wrapper
classes, message sends to Java objects are much faster than before due
to a new cache for JNIMethodIDs. The performance of static wrapper
classes is now only slightly worse than the performance of ghost
classes. If you don't understand what I am talking about - don't worry.

Known restrictions:
-------------------
- JNIPort is not compatible with JavaConnect. They don't work if loaded
into the same image. They interfere because both define a
JavaModifiedUTF8 string encoding, and JavaConnect needs Weaklings
version 10 which is not compatible with JNIPort.
- The DolphinJNIHelper shared library, which is needed for using
callbacks from Java to Smalltalk when the callbacks are invoked from a
different operating system thread, is only available for Windows. It has
yet to be ported to other platforms.
- Lazy ghost class creation crashes the VisualWorks 7.5 VM on Windows,
while it works on Linux. I am looking into optimizing ghost class
creation such that lazy ghosts are not needed anymore.

Enjoy!
Joachim Geidel