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.