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).
- 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
SupplementaryClassloader
s and JVM
s
are now both kinds of <javaClassFinder>
(as, indeed are.
JavaLangClassLoader
s).
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.