Metagnostic
home

JNIPort for Dolphin Smalltalk

Overview

Contents

Players

Layers

Examples

Configuration

InFAQ

Changes

Licence


Back to Goodies

JNIPort Change History

This page is just a list of changes to the code. I'm not following any particular pattern, sometimes I'll list small changes individually, other times I'll just bunch them up. I probably won't even list very small changes (the package version number will change, though). Depends on my mood…

This software is (supposedly) under active development, so I don't bother to increment the major version number for trivial functional changes (it'd be far too much work).

Perhaps someday I'll populate this page directly from STS.


This version of JNIPort is known not to work with the recently released Dolphin 6.


2005-12-09

'CU Java Base.pac' 1.31 — Fairly major redesign of the way that Mutexes are used, we now have one shared mutex that is used for just about everything. Note: this is rather new code, and although it seems to work, there is always the possibility that I've introduced a new class of deadlock, or something equally horrible…

'CU Java Ghost Classes.pac' 1.10 — several changes to use the new global Mutex.

2005-10-15

(I'm not sure what has happened to the change list entries since 2005-01-31, I'm sure I made some but they seem to have vanished !)

Fairly extensive changes to add a new feature: “supplementary classloaders”. These are still experimental (which mostly just means that I haven't bothered to write documentation for them yet) but the general idea is that they bring the inherent functionality of Java's classloaders into JNIPort in a managed way. You can define as many of these as you like, and enable/disable them dynamically. See the class comment on SupplementaryClassloaderTree and SupplementaryClassloader for more explanation.

Also refactored the responsibility for finding classes into an identifiable role, so that SupplementaryClassloaders and JVMs are now both kinds of <javaClassFinder> (as, indeed are. JavaLangClassLoaders).

Also added a new page to the Status Monitor which shows the current state of any supplementary classloaders.

2005-01-31

'CU Java Ghost Classes.pac' 1.04 — Preliminary implementation of a “lazy” version of the GhostClassMaker. This uses stub objects and DNU handling to postpone the generation of ghost methods until they are needed. Since that involves a lot of reflective work, it tends to pull in all sorts of extra Java classes, and they, in turn, also cause the generation of ghost classes. Using the lazy scheme acts to break that loop, and result in far fewer classes ever being loaded.

To use it, put a single JVMLazyGhostClassMaker to the JVM options under jniPortSettings/watcherClasses. Don't attempt to use a normal JVMGhostClassMaker at the same time as a JVMLazyGhostClassMaker!

2005-01-30

Small but fairly wide-spread changes to handle the mess created by the “covariant returns” in Java 5. This has required a new class generation option, #ignoreBridgeMethods. Made some minor improvements to the class generation wizard's UI while I was at it.

2005-01-26

'CU Java Base.pac' 1.17 — Some re-arrangement of the way the JVM object initialises itself, plus some extensions to support integer-valued settings in JVMSubSettings. Both in order to support the changes to the Status Monitor.

'CU Java Status Monitor.pac' 1.10 — Added a new set of per-JVM options that are only used by the status monitor. New options allow you to set the initial 'Update Interval' and 'Sample Size' for each JVM, these are used from when the corresponding JVM starts up so you don't need to change it every time. History/status monitoring now starts before the JVM begins loading any ghost classes, etc. Changed the gobal 'JavaDoc root' to be a ;-separated search path, and also added a per-JVM search path. F12 from the classes pane will now search the JVM-specific path then the global path looking for JavaDocs.

2004-09-17

'CU JNI.pac' 1.04 — Now open HKLM in readonly mode when trying to find a jvm.dll to run.

2004-03-11

'CU Java Base.pac' 1.12 — Added call to CompiledCode class>>initializeInfoCache as part of shutdown sequence (the cache could prevent the entire network of JNIPort objects from being GCed).

2004-01-09

'CU Java Base.pac' 1.10 and 'CU Java Status Monitor.pac' 1.08 — Very minor cosmetic bugfixes.

2003-12-07

'CU JNI.pac' 1.01 — Tweaked the checked JNI methods to use clean blocks. It costs nothing and should save a few nanoseconds…

2003-11-01

'CU Java Status Monitor.pac' 1.06 — Launching class's JavaDoc now works with Mozilla too.

2003-10-24

'CU Java Base.pac' 1.05 — Added more bounds checking on #from:to:keysAndValuesDo:.

'CU Java Status Monitor.pac' 1.05 — Added alpha-blend support (if US Layered View is installed).

2003-08-02

'CU Java Status Monitor.pac' 1.04 — Added timestamp for JVM's death.

2003-06-20

'CU Java Status Monitor.pac' 1.02 — Argh! I'd left a call to Symbol>>value: in the status page.

2003-06-18

'CU Java Wrapper Generation.pac' 1.01 — Now correctly trap and trace exceptions during code generation.


Copyright © Chris Uppal, 2003-2005

Java, JNI (probably), JVM (possibly), and God knows what else, are trademarks of Sun Microsystems, Inc.