---by Mary J. Fontana ([email protected])---
Here is the history of COOL:
COOL (C++ Object Oriented Library) is a full-featured set of basic
data-structure classes which use a cpp macro implementation of
parameterized templates, keyword arguments, exception handling, symbols,
packages, and runtime type support. It was developed at TI and is
available via anonymous ftp from csc.ti.com in the file ~ftp/pub/COOL.tar.Z.
COOL-Lite is streamlined, light-weight version of of the COOL classes
which removes all runtime type checking and exception handling
dependencies were. This incomplete set of stripped down COOL classes is
also available in COOL.tar.Z.
GE's COOL is an upgrade of TI's COOL (removing generic, exception,
symbol, runtime type information, and COOL-cpp macros; and only using
COOL-cpp for its implementation of templates. For more details you can
contact Van-duc Nguyen from GE.
ICE (Integrated C++ Environment) is the top level directory of the COOL
source. ICE was planned to contain not only the COOL classes and COOL
cpp, but also other C++ components and tools, such as, a COOL version of
Interviews and PISCES (Platform Independent Source Code Engineering
System) which is a collection of several public domain utilities for
source code revision control, configuration, and automated make file
COOL is the result of a research and development effort at TI that was
aimed at learning how the emerging C++ technology might be used to
support the development of complex applications. It attempts to raise
the level of abstraction for the programmer to allow concentration on
the problem domain, not on implementing basic data structures, macros,
and classes. In addition, COOL provides a system independent software
platform to support portability of these applications.
The developers (and some of the users) had extensive experience with
Common Lisp and Lisp Machine Environments (TI Explorer). TI had
considerable success using Lisp to design and implement complex,
symbolic applications. While most customers were willing to see Lisp
used for prototyping, many showed considerable resistance to Lisp
Machines as delivery vehicles. C++ was the acceptable language of our
developers and customers and provided some of the expressiveness of Lisp
(for our developers) and was well supported on a variety of conventional
platforms (for our customers).
Most of the features implemented in COOL (via an enhanced cpp) were
influenced by Lisp. The intent was not to turn C++ into Lisp, but to
provide a rich class library with features that the former Lisp users
took for granted. However, both developers and users of the COOL
library discovered that these Lisp-like features were often not
necessary. Unfortunately, users who didn't want the polymorphic
management in COOL were forced to pay for it in executable size,
compilation time, and run time. The most common problem voiced from
COOL users was that even applications that did not use it were required
to link in and execute the entire symbol and package mechanism.
Although COOL was an unsupported, experimental, research project,
parts of it are still being used at TI. No active development has been
done on COOL since early 1990. COOL was made
available in 1991 to the public in the hope to provide some additional
basis for further development of C++ libraries.
---- end of history report