★ wanayoo — archive 1999 http://dev.scriptics.com/software/java/new_features.htmlNouvelle recherche | Portail wanayoo
Developer Site
Getting StartedTcl AdvocacySoftware ResourcesDocumentsServicesCommunity
Home
Login | Tcl/Tk | TclPro | Tcl Plugin | Tcl/Tk Ports |  Java| | Applications | Extensions | Tools | CVS | Bug DB
Search 
Download | New Features | F.A.Q. | Man Pages

Version 1.3 | Version 1.2.6 | Version 1.1

What's new in Tcl/Java 1.3? (Available via CVS)

  • 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.

What's new in Tcl/Java 1.2.6?

  • 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.

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 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