Subject: Jacl & Tcl Blend 1.1alpha1 Release Announcement Newsgroups: comp.lang.tcl This message is to announce a new alpha release of Jacl and Tcl Blend. These products are the result of a joint effort of Christopher Hylands, Mo DeJong and Bryan Surles to continue the research and development of Tcl & Java integration. The goal of this project is to extend and improve the existing 1.0 release of Jacl and Tcl Blend which was originally started by the Sun Tcl team. The 1.1 Alpha releases of Jacl and Tcl Blend are available for downloading at the following URL: http://www.scriptics.com/java For changes from the 1.0 release please see the list at the bottom of this announcement. What is Jacl? ---------------- Jacl is a 100% Java implementation of Tcl 8.0. This allows Tcl to run in more environments and also brings the power of scripting to Java developers. Jacl only implements a subset of the Tcl language (the C version of Tcl has a lot of features!). However, the core of the language is implemented and well tested. What is Tcl Blend? ------------------------ Tcl Blend is a Tcl Extension that allows you to have access to the Java VM from the Tcl interpreter. The goal here is to allow Tcl developers to write new Tcl extensions in Java rather then C or C++ for better portability. Currently, Tcl Blend is only known to work with Solaris and Windows 95/NT. However, it should be easy to port Tcl Blend to any system that supports dynamic loading and the Java JNI interface. For additional information: --------------------------------- Scriptics Corporation maintains the download site for Jacl and Tcl Blend. This site contains a variety of information about Tcl & Java integration: including FAQs, man pages, and the binary and source distributions for Jacl and Tcl Blend. Please visit the following URL: http://www.scriptics.com/java Christopher Hylands maintains his own page that lists a plethora of information. There are links to related Web pages, his own personal notes about building and using Jacl and Tcl Blend, and in depth explanations about Tcl and Java integration. This information can be found at the following URL: http://ptolemy.eecs.berkeley.edu/~cxh/java/tclblend Comments and questions can be sent to the Tcl & Java integration mailing list at: tcljava@tclconsortium.org Scriptics support for Jacl and Tcl Blend: ------------------------------------------------- It is important to understand that this release is due entirely to the efforts of Christopher Hylands and Mo DeJong. Scriptics currently has a minor, facilitating role in Jacl and Tcl Blend and is not officially supporting these releases. Scriptics currently maintains a Web repository to host the source for many Tcl extensions. The latest Jacl and Blend sources are available right now via netCVS. This is the same mechanism Netscape uses for the source release of Navigator. NetCVS is interesting because you can easily make changes to your source base, perform merges, and propose changes using CVS (which is a lot better than patches.) For more information about the CVS repository, please visit the following URL: http://www.scriptics.com/software/netcvs.html Scriptics also maintains a web page where users of Jacl and Tcl Blend can submit patches and bug reports. As Scriptics is not currently supporting these Tcl extensions, these bug reports and patches will be emailed directly to the current supporters, Christopher Hylands and Mo DeJong. We recommend the use of this form over directly emailing the current extension supporter, as it will help you provide enough information for the supporter to reproduce the bug on their system, and then fix it. http://www.scriptics.com/support/bugForm.html New Features ----------------- This release fixes numerous bugs in the 1.0 release and adds some new features that will make combining Tcl and Java even easier then before. Changes to Jacl and Tcl Blend * Support for JDK1.2fcs * Support for more platforms: The build process for Jacl and Tcl Blend has been updated to support more operating systems. Currently, Jacl will build on Solaris, Windows NT, Windows 95, IRIX, Linux, and HPUX. Tcl Blend should also work on these systems that have Native Threads, but we have only tested Tcl Blend under NT and Solaris. Jacl should also run on Macintosh systems but Macintosh support is new and untested. * Startup scripts: The Unix source distributions include startup scripts that are configured at compile time and that make it much easier to start up Jacl and Tcl Blend. A Windows startup script for Jacl is also included. * Signature Matching: 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. * The new java::cast command: This command is used to change the type of Java references at runtime. In version 1.0, a reflected Java object (a Java object that has been registered inside a Tcl interpreter and has been assigned as instance command) did not correctly store the class of the Java instance. This caused a number of subtle errors in Tcl scripts that interacted with Java objects. The new 1.1alpha1 version fixes this problem by storing each Java object as a class and instance pair. In this way, a Java object of type String can be referenced as type String or by the generic Java type Object. * The java::isnull command now accepts only the string java0x0 as an identifier for the null java object. In version 1.0 strings like java0x00 or javax000 were incorrectly interpreted as the null Java object. * The java::info command no longer crashes when the command is passed java0x0 and returns reasonable results when passed the null java object. Changes to Jacl Only * Improved Parser: Jacl is much faster. The command parser has been completely rewritten so it uses much less memory and takes advantage of more efficient Java APIs. * Improved exec Tcl command: The implementation of the exec command has been completely rewritten. On UNIX systems the exec command did not treat special characters correctly. The new implementation of the exec command will work with file names that contain spaces or special characters like '$'. In the 1.0 release, the Windows version of the exec command did not run programs from the current directory. The 1.1alpha1 release of Jacl fixes this bug. * Improved Tcl file command: The file command was extended to include the subcommand nativename. On Windows the command 'file nativename C:/dir' will return 'C:\dir'. Changes to Tcl Blend Only * Tcl Blend Initialization variable (JDK1.2 only): Using JDK1.2, Tcl Blend now allows initialization arguments to be passed to the JVM. When Tcl Blend is initializing the java package, it reads the Tcl global variable, tclblend_init, and passes its value along to the Java Virtual Machine upon initialization. Credits --------- The Jacl and Tcl Blend 1.1alpha1 releases are brought to you by: Mo DeJong Christopher Hylands Bryan Surles We would like to thank the Jacl and Tcl Blend 1.0 team: Ray Johnson: Project Manager Melissa Hirschl Ioi Lam Bryan Surles And a special thanks to Scott Stanton who implemented Tcl Blend, and John Reekie of UC Berkeley.