    What's new in Tcl/Java 1.1?

    (JDK 1.2 SUPPORT)

    Jacl and TclBlend now work with JDK1.1.7 and JDK1.2. The software
    has been tested under Windows and Solaris.

    (NEW COMMAND FOR JACL AND TCLBLEND)

    A new java::cast command has been added. This command can be used
    to change the reflected type of Java objects inside and interp.
    See the documentation for more info and examples on how this works.

    (GENERAL)

    Jacl is much faster. The Tcl parser has been completely rewritten.
    It now uses less memory and it runs a lot faster.

    The java::isnull command now accepts only the string java0x0 as
    an identifier for the null java object. Tcl/Java 1.0 would also
    accept strings like java0x00 and java0x000.

    The nativename subcommand was added to the file command in
    jacl. On Windows, "file nativename C:/dir" now returns "C:\dir".

    The java::info command no longer crashes if you pass it java0x0.

    Jacl's exec command for unix and windows has been improved.
    In Jacl 1.0, the exec command did not treat some strings
    correctly during an exec which could cause some very strange errors.
    Commands with a '$' of ' ' char did not work as expected.

    in Jacl 1.0, the regexp command could only be used in the binary
    release of Jacl. We have extracted the needed class files and placed
    the in the source release of Jacl 1.1. The source to the regular
    expression code is still not provided, just the binary .class files.

    (TYPED OBJECT REFLECTION)

    Tcl/Java 1.1 now represents all reflected java objects (A reflected Java
    object is one that has been added to the interp and has a Tcl command
    associated with it) as a pairing of instance and Class objects.
    A single Java object can be referenced as more then one Java Class
    type. For example, a String object can be referenced as type String
    or type Object. Java array objects have also been updated to support
    typed object reflection.

    (SIGNATURE MATCHING)

    In Tcl/Java 1.1, Java method invocations now use an argument matching
    system to automatically determine which Java method a user intended
    to invoke based on the types of the arguments to method. In version
    1.0 only the number of arguments to the method were used to disambiguate
    overloaded method invocations.

    What's new in Tcl/Java 1.2?

    (OS SUPPORT FOR TCL BLEND)

    Tcl/Java 1.2 adds support for Tcl Blend on Linux and IRIX systems.
    Tcl/Java on Linux works with both the JDK 1.1 and JDK 1.2 ports.
    Earlier versions of Tcl Blend did not works on these systems.

    (JVM SUPPORT)

    In Tcl/Java 1.1, only the Sun JVM was supported. Tcl/Java 1.2 adds
    support for JVMs from other providers. We are targeting the Kaffe JVM,
    and the Japhar JVM for this release. See www.kaffe.org and
    www.japhar.org for information on these JVMs.

    (TYPED OBJECT REFLECTION)

    In Tcl/Java 1.1, a single reflect object was used to represent
    the null Java object. In Java code, the special null object reference
    can have no type or it can be referenced as any type. We therefore needed
    to fix Tcl's reflection system so that it acted more like Java. To do
    this, the implementation was changed to support a type for a reflected
    null object. A reflected null object's type can be queried at runtime
    with the java::info command and it can be changed with the java::cast
    command. To get a reference to an untyped null object in the reflection
    system one would use the java::null command.

    (SIGNATURE MATCHING)

    The signature matching system introduced in Tcl/Java 1.1 did not
    work correctly when the null Java object was given as an argument to
    a method or constructor. This has been fixed in 1.2 and the matching
    system has been updated to take a null objects reflection type into
    account when disambiguating an overloaded method signature. In addition,
    the signature matching system will now provide a more descriptive error
    message in the case of an ambiguous signature.

    (DEMOS)

    Tcl/Java 1.2 includes a new pack demo which shows how a Java AWT
    layout manager and the Tcl/Java reflection system can be used to
    provide a Tk like pack command for Java widgets. This command can
    be used just like the pack command in Tk. The demo also includes
    an example of how the layout manager can be used in stand alone
    Java code.

    (ERROR MESSAGES)

    In Tcl Blend 1.1 some very confusing error messages could be printed
    if something went wrong while loading the Tcl Blend shared library.
    These errors were caused by incorrect installations but the error
    messages provided little help to the poor users that encountered
    them. Tcl Blend 1.2 will now check for common installation errors
    if loading of the Tcl Blend shared library fails. It will also
    produce much more "user friendly" error messages that will make
    it easy to figure out exactly what went wrong.

    (JAVA COMPILER SUPPORT)

    Tcl/Java 1.2 adds support for IBM's Jikes Java compiler. The Jikes
    compiler is much faster than the javac compiler provided with
    the JVM. On my system, compiling Jacl with javac takes 60 seconds
    while compiling Jacl with Jikes takes only 3 seconds. If you intend
    to compile more than once, you should think about installing and
    using the Jikes compiler. See www.research.ibm.com/jikes for info.

    (NEW COMMAND FOR JACL)

    An implementation of Tcl's clock command has been added to Jacl.
    Jacl's new clock command uses Java's time and date APIs to provide
    the clock functionality that Tcl users enjoy. This implementation
    is fully compatible with the clock command from Tcl 8.0.

    (NEW COMMAND FOR JACL AND TCLBLEND)

    A new java::try command has been added. This command provides
    a Tcl binding to Java's try-catch-finally construct. The command is
    able to manage multiple error conditions unlike the standard catch
    command in Tcl. The command can also be used to catch Tcl errors and
    Java exceptions independently. See the docs on the java::try command
    for more information.

    (NEW COMMAND FOR JACL AND TCLBLEND)

    The new java::autolock command can be used in interactive
    sessions to keep java object references from being garbage
    collected. This can be really handy when you want to quickly
    test out a java class without the hassle of garbage collection.

    (TCL BLEND NOW SUPPORTS TCL 8.1 and Tcl 8.2)

    The new 8.1 and 8.2 versions of the Tcl core can now be used
    with Tcl Blend. Support is still at an early stage and more
    feedback is needed but this is still an exciting development
    for users of Tcl Blend.

    (JACL NOW SUPPORTS NAMESPACES)

    The namespace features from the Tcl 8.1 core have been ported
    over to Jacl. This adds the "namespace" command and the "variable"
    command. Support is still at an early stage and more feedback
    is needed but this is still an exciting development for Jacl.

    (JACL AND TCLBLEND NOW SUPPORT UNICODE)

    Unicode support has been added to the Jacl parser. Users should now
    be able to pass and unicode string form Java to Jacl and vice versa.
    Tcl Blend will also support Unicode strings (encoded as UTF-8) when
    compiled with Tcl 8.1 or better.

    (NEW COMMAND FOR JACL AND TCLBLEND)

    A new java::import command has been added. This command is like
    the import statement in the Java language, it provides a means
    to specify Java class names in a shortened format. For example,
    one could import the class java.util.Hashtable and then use
    the simple class name Hashtable instead of the fully qualified
    name java.util.Hashtable.

    What's new in Tcl/Java 1.3?

    (NEW REGULAR EXPRESSION PACKAGE FOR JACL)

    A new implementation of the regexp and regsub commands has been
    donated by Colin Stevens of Sun Labs fame. This replaces the
    Oro regexp implementation. It was binary only and no longer supported.
    Jacl is now 100% Open Source.

    (NEW COMMAND FOR JACL)

    An implementation of Tcl's binary command has been added to Jacl.
    This new command passes all of the Tcl regression tests for the
    binary command. Thanks go to Christian Krone for this command.

    (NEW COMMAND FOR JACL)

    An implementation of Tcl's history command has been added to Jacl.
    This new command passes all of the Tcl regression tests for the
    history command. Thanks go to Christian Krone for this command.

    (JVM SUPPORT)

    A completely new build system has been added. It now supports
    the IBM Java-2 1.3 JVM. The new build system also adds
    support for the Kaffe Open JVM with Tcl Blend. Jacl has worked
    with Kaffe for some time, but now both Tcl Blend and Jacl can
    be used with Kaffe.

    (NEW COMMAND FOR JACL)

    An implementation of Tcl's interp command has been added to Jacl.
    This new command passes all of the Tcl regression tests for the
    interp command. Thanks go to Christian Krone for this command.