XOTcl Download

The most recent version of XOTcl 1 is 1.6.8.
Note that the forthincoming major release of XOTcl (XOTcl 2.0) is based
on the Next Scripting Framework.
If your application requires Tcl 8.4, you have to stick to the XOTcl 1
series, since the Next Scripting Framework requires Tcl 8.5.

For XOTcl 1, we provide a source code distribution and binary distributions
for Windows and Linux. XOTcl
is now included as well in all major binary distributions of Tcl such
as in ActiveTcl of
ActiveState (included in the Core Package, binaries for the Windows
family, Linux, Solaris and HP-UX) and Tcl/Tk Aqua (part of the
'batteries included' version TclTkAquaBI for Mac OsX).

Generally, a Tcl
installation is needed as a pre-requirement for XOTcl. Practically
all Linux distributions (such as RedHat, Suse, Fedora Core, Debian etc.)
contain Tcl. If you
want to compile the source code of XOTcl on your system you will
require the Tcl sources as well.

xotclsh is the shell to run stand-alone XOTcl scripts. This
is a deprecated shell, XOTcl should be loaded with "package require XOTcl; namespace import ::xotcl::*

xowish is the stand-alone shell to run XOTcl scripts
with Tk support. You need Tk version matching to your Tcl version
installed on your system (it can be downloaded from the same place
as Tcl). This
is a deprecated shell, XOTcl should be loaded into wish with "package require XOTcl; namespace import ::xotcl::*

ActiWeb consists of a library of
components for internet applications, which reach from HTTP server and
clients, over support to process the common internet formats, and for
mobile code.

XOTcl Distributions

Source Code Distribution

The recent changes and the detailed differences between the XOTcl
releases are described in the ChangeLog.
For questions concerning the compilation of the source code, consult
COMPILE, if you are on a Unix system, or
COMPILE.win if you compile under
Windows.

Binary Distributions

Binary distributions contain the
compiled files for noted operating systems as well the ActiWeb
packages.

Linux Binary Version: In general, we
recommend for starters distributions from debian or active state.
See section at the bottom binary distributions in the form a tar file or rpm file.

For questions concerning the installation of binary distributions
consult README.

Debian/Ubuntu Distribution

Starting with XOTcl 1.6.0, release packages for XOTcl are available
for Debian GNU/Linux which are co-maintained with
the Debian
Tcl/Tk maintainer team. Moreover, you will find XOTcl in upcoming
Ubuntu releases, starting with Ubuntu 8.10 "Interpid
Ibex". The most recent XOTcl distributions are contributed to Debian
unstable (sid) within days after their release. Beware delays between
actual release dates and Debian uploads due to the Debian upload
procedure. Once meeting certain criteria of quality, the XOTcl
packages are automatically included into Debian testing (lenny). As
for Ubuntu, the package versions in Debian unstable are reguarily
imported early in the development cycle of Ubuntu releases. Therefore,
starting with Ubuntu 8.10 "Intrepid Ibex", XOTcl packages will
available for Ubuntu as well.

Supplemental Resources for XOTcl

AOLserver

Starting with XOTcl 0.85.3, XOTcl contains support for AOLserver, which is a high
performance multi-threaded web server, able to serve up to 28000 hits
per second in real world applications (for more details see the
introduction to AOLserver by Phil Greenspun (
Part 1,
Part 2,
Part 3, and
Part 4).

For versions earlier than 4.0 AOLserver needed a special
initialization so it cannot
load simply arbitrary tcl modules. These modules need special stubs
and they have to be thread-safe. XOTcl contains now these stubs.
However, AOLserver needs a small patch for AOLserver 3.* for XOTcl, which was
developed by Zoran Vasiljevic see README.

Starting with AOLserver 4.0 XOTcl can be loaded into the AOLserver without
any patch. For using predefined XOTcl classes in all connection threads
a file xotcl.tcl is loaded into the modules directory of the aolserver.
The following commands can be used to compile XOTcl and install it
into the appropriate places of the specified aolserver:

Tcl

Since XOTcl depends on Tcl, Tcl has to be installed properly on your
system. Since XOTcl needs tclInt.h, some installations might
require to install a development version of Tcl.
XOTcl is tested with Tcl 8.4 (8.4.19), 8.5 (8.5.8) and 8.6b1.

Patch for Tcl to support XOTcl-specific Byte-Code instructions

This is a patch for
tcl 8.4a3 for performance hungry applications to provide special
byte-code-support for xotcl, that yields for classical benchmark
programs up to 40%. Warning: This patch is not likely to be
integrated into the general Tcl core in the new or distant future. We
will try to find a way to achieve a similar or higher performance
increase by working with the Tcl-core developers towards a better
version of the xotcl-bytecode mechanisms. To use this patch, compile
Tcl with -DUSEROPCODE (after applying the patch) and XOTcl with
-DXOTCL_BYTECODE.

GDBM

The xoStore component of XOTcl is shipped together with a language
binding of GDBM for XOTcl. In order to compile the gdbm support
yourself, GDBM must be installed properly on your system. (GDBM is
available e.g.
http://www.gnu.org/software/gdbm/)). An experimental Windows port
of GDBM can be found in Stefan Vogel's TclGdbm distribution.

Emacs

For (X)Emacs-users, we offer the XOTcl aware lisp files (which are
modifications of the XEmacs 20.4 distribution):

OO-Bench

Here is an comparison between a few Tcl OO-extensions
(XOTcl, OTcl, itcl, stoop, and classytcl) in terms
of performance and
memory consumption.
These tests were performed with XOTcl 1.2.0 on a Pentium 4 M
Notebook with 1400 MHz under Fedora Core 1.0.
The full test is in oo-bench.tar.gz