[LWN Logo]

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.