|
Version 1.3 | Version 1.2.6 | Version 1.1
- New "history" 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.
- New "binary" 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.
- New regular expression implementation for Jacl:
A new implementation of the regexp and regsub commands has been
donated by the kind folks at Sun Labs. This replaces the Oro regexp
implementation. It was binary only and no longer supported.
Jacl is now 100% Open Source.
- OS Support for Tcl Blend:
Tcl/Java 1.2.6 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.6 adds
support for JVMs from other providers. JVMs known to work are
Blackdown 1.1.7v3 and 1.1.8v1, Sun 1.1.x and 1.2.2 (Solaris and Win32), IBM 1.1.x
(Solaris, Win32, and Linux), Kaffe on Linux, TowerJ, and HP-UX.
- Java Compiler Support:
Tcl/Java 1.2.6 adds support for IBM's Jikes Java compiler. The Jikes
compiler is much faster than the javac compiler provided with
the JVM. On some systems, 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. For more information see
The Jikes Homepage.
- Tcl Blend Now Supports Tcl 8.0, 8.1, 8.2, and 8.3:
The new versions of the Tcl core can now be used with Tcl Blend.
The 8.3 release seems to be the most feature rich and bug free version
currently available, so Tcl Blend users should upgrade to Tcl 8.3.
- Typed Object Reflection:
In Tcl/Java 1.1, a single reflect object was used to represent
a null Java reference. 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 the Tcl/Java reflection system so that it acted more like Java. To do
this, the implementation was changed to support a type for a reflected
null reference. A reflected null reference type can be queried at runtime
with the java::info command and it can be changed with the java::cast
command. To get an untyped null reference 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.6 and the matching
system has been updated to take a null reference's 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.6 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.6 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.
- 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. Jacl passes all the namespace regression tests from
the C version of Tcl.
- Jacl and Tcl Blend Now Support Unicode:
Unicode support has been added to the Jacl parser. Users should now
be able to pass a 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.2+.
- New "clock" 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 "java::try" Command for Jacl and Tcl Blend:
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 "java::autolock" Command for Jacl and Tcl
Blend:
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 keeping active variable references
around.
- New "java::import" Command for Jacl and Tcl Blend:
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.
- 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 java::cast command for Jacl and Tcl Blend:
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.
- 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.
- The regexp command
in Jacl 1.0 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.
Top of page Developer Home
| Ajuba
| Getting Started
| Tcl Advocacy
| Software Resources
| Documents
| Services
| Community
Search
| Site Map
| Feedback
| Contact Us
| webmaster@ajubasolutions.com
Increase page width
© 1998-2000 Ajuba Solutions. All rights reserved.
Legal Notice |
Privacy Statement
Last modified: June 06, 2000 |