#
X Window System,
Version 11, Release 4
X11R4 was the fourth release of the X Window System, Version 11 from MIT.
It was
released in
December 1989,
with the following changes excerpted from the
release notes.
The sources are available for download for historical reference from
http://www.x.org/releases/X11R4/.
## Overview
Substantial progress has been made in optimizing the sample server,
window manager, and programming libraries. In addition, major improvements
to the user interface of several of the key applications (in particular,
*xmh*, *twm*, *xman*, and *xterm*) should make release
noticably nicer to use. Sample implementations
of the various new Consortium Standards are included as well as prototype
implementations of several efforts currently under development.
No incompatible changes have been made to either the
core Protocol or to the *Xlib* programming library. The
*Xt Intrinsics*
should be source compatible with the previous release. Changes have been
made to the *Xaw* widget set, but a configuration option for providing
backwards compatibility interfaces is available.
Several new sets of fonts have been added: a new fixed width family of
fonts, a Kanji and Kana font,
the Lucida family from Bigelow & Holmes and Sun Microsystems,
a terminal emulator font from Digital Equipment Corporation,
and 100 dots-per-inch (dpi) versions of all 75dpi fonts.
Since the last release, the X Consortium has made significant additions to
the Xlib standard (see `mit/doc/Xlib/R4Xlib.tbl.ms`) and to the
X Toolkit Intrinsics standard, and has approved the following specifications
as new standards:
* *Inter-Client Communications Conventions Manual*
The Inter-Client Communications Conventions Manual (ICCCM, whose
specification may be found in `mit/doc/ICCCM/icccm.tbl.ms`) establishes a
set of conventions that allow clients to cooperate in the areas of
selections, cut buffers, window management, session management, and
resources. Programming interfaces have been added to both *Xlib* and the
*Xt Intrinsics* to simplify the task of writing compliant applications. The
core *twm* window manager, as well as the user-contributed *gwm*, *olwm*,
and *tekwm* window managers, is intended to be be compliant.
* *X11 Non-rectangular Window Shape Extension*
The SHAPE extension (whose specification may be found in
`mit/doc/extensions/shape.ms`) provides non-rectangular, disjoint windows.
Samples of its use may be found in the *Xaw* **Command** and **Mailbox**
widgets, in the *twm* window manager, and in the *oclock* and *xeyes*
clients.
* *X Display Manager Control Protocol*
The X Display Manager Control Protocol (XDMCP) (whose specification may be
found in `mit/doc/XDMCP/xdmcp.ms`) is a datagram-based protocol for managing
remote displays (particularly X terminals) in a network. Implementations of
the various elements of the protocol are provided in the sample server and
the *xdm* display manager.
* *Compound Text Encoding*
Compound Text (whose specification may be found in
`mit/doc/CTEXT/ctext.tbl.ms`) is an interchange format for multiple
character set data such as multi-lingual text. It is based on ISO standards
for encoding and combining characters and is intended to be used in the
following contexts: inter-client communication using selections, window
properties, and resources. Routines for parsing Compound Text may be found
in `mit/lib/Xmu/Xct.c`.
* *X Logical Font Description Conventions*
The X Logical Font Description Conventions (XLFD, whose specification may be
found in `mit/doc/XLFD/xlfd.tbl.ms`) are a set of guidelines for naming
fonts and font properties such that fonts can be uniquely named and queried
in a consistent manner by applications. All of the text fonts in the core
distribution follow the XLFD conventions. In addition, the new *xfontsel*
program can be used to view and select fonts that have XLFD names.
This release been built on the following operating systems:
Ultrix 3.1 (both VAX and RISC), SunOS 4.0.3, HP-UX 6.5, Domain/OS 10.1,
A/UX 1.1, AIX RT-2.2 and PS/2-1.1, AOS-4.3, UTEK 4.0, NEWS-OS 3.2,
UNICOS 5.0.1, and UNIX System V, Release 3.2 (AT&T 6386 WGS).
It should work correctly, or with a minor amount of work, on a variety of
other systems as well.
## What's New in this Release
The primary focus of this release has been optimization of the server
and improvements in the key applications.
### Changes to the core distribution
The following additions, deletions, and modifications have been made to the
software in the core distribution. Widget writers should read the new
X Toolkit Intrinsics specification.
Application developers who use the Athena Widget Set should read the
list of changes in the file `mit/lib/Xaw/CHANGES` and the conversion
document `mit/doc/Xaw/ConvertToR4`, and read the new
*Athena Widget Set* documentation.
#### many, many bugs fixed
A large number of bugs have been fixed in the server, the libraries,
and the clients. Servers are now robust enough that they have been known
to run for more than 3 months without experiencing any problems. The
server is now much stricter about disallowing extraneous bits in masks
(particularly the *do_not_propagate_mask* window attribute), causing
some improperly coded applications to generate protocol errors. A new,
non-standard extension is provided (see *xset bc*) to enable
backwards-compatibility for broken clients.
#### server optimized, data space reduced
A substantial number of optimizations to both the device-independent (dix)
and device-dependent (ddx) code. The monochrome (mfb) and color (cfb) frame
buffer code is now capable of driving many displays at memory speeds. In
addition, the amount of heap memory that is used by the server has been
reduced by roughly two-thirds since the last release.
#### SHAPE extension
Non-rectangular windows are now supported by the new SHAPE
extension. Round windows such as round clocks (see *oclock*),
oval buttons (see *xmh* and *xcalc*), and shaped desktop icons (see
*xbiff*) are now possible. This extension is a Consortium standard.
#### prototype extensions
Prototypes of two extensions that are currently under development are
provided in this release. The *Multi-Buffering* extension provides
the ability to do simple animation (see *ico -dbl*), and the
*XInputExtension* provides
access to alternate input devices. These extensions are **draft**
Consortium standards and are subject to change.
#### build configuration moved and simplified
The configuration files have been moved to `mit/config/` and have been
rewritten to make better use of preprocessor symbols and macros. Support
for System V with and without the STREAMS transport layers has been added.
#### new servers
New support has been added to the sample server for the following platforms:
Sun *cgthree* and *cgsix* frame buffers, Digital DECstation
frame buffers, Tektronix 4319 frame buffer, and all HP framebuffers.
Reorganizations within the machine-independent (mi) graphics code make porting
to new platforms even easier than it was before.
#### security hooks
Programming hooks in *Xlib* and the server are provided for passing
authorization information at connection setup time. A sample implementation
(called MIT-MAGIC-COOKIE-1) based on secret tokens is used by *xdm* and
the server to provide greater security than the host-based mechanism.
#### new fonts
Adobe Systems and Digital Equipment Corporation have jointly donated
100dpi versions of the 75dpi fonts that they provided in the last release.
In addition, Digital has donated a set of terminal emulator fonts.
Bigelow & Holmes and Sun Microsystems have jointly donated a collection
of fonts from the *Lucida* family. Sun has also donated a set of
OPEN LOOK glyph fonts. Sony has donated a set of Kanji and Kana fonts,
and several individuals have donated additional fixed-width fonts.
#### ICCCM support
*Xlib*, the *X Toolkit Intrinsics*, *twm*, and various clients are
now hoped to be ICCCM-compliant. The following window managers in
*contrib/windowmgrs/* also claim to be compliant: *gwm*, *olwm*,
and *tekwm*.
#### new rgb color database
A new color database containing many new colors, gray scales, and
color spectra tuned for some of the common monitors is included.
#### function prototypes
ANSI C function prototypes have been added to the \fIXlib\fP and *Xt*
header files;
the include files should now also be usable from C++ without modification.
The *Xlib* prototypes are enabled by default (on systems that support
them),
while the *Xt* prototypes are disabled (they were added too late in our
release cycle). Picky compilers (such as *hc*) will now catch many
type incompatibilities.
#### shared libraries
Support for SunOS-style shared libraries has been added to *Xlib*,
*Xt*, *Xaw*, and *Xmu*. This substantially reduces the amount
of disk spaced used for executable programs.
#### new Xt Intrinsics
The *X Toolkit Intrinsics* now provide windowless objects,
varargs-style interfaces, better caching of resources, fallback resources,
locale-driven finding of data files.
#### Athena widget enhancements
Most of the *Xaw* library has been rewritten to substantially improve
functionality, robustness, and performance. New **SimpleMenu** and
**MenuButton** widgets support pop-up and pull-down menus. The **Text**
widget has been rewritten and is now quite usable for general editing.
The **VPaned** widget has been generalized to include horizontal paning
(and is now called **Paned**). The **Label** widget now supports
multi-line labels. A new **Toggle** widget has been provided for
implementing radio-buttons. Finally, the **Command** widget has been
enhanced to use the SHAPE extension to provide true round buttons.
#### standard colormap routines
A new set of routines for manipulating standard colormaps (see the
*XStandardColormap* structure in the *Xlib* documentation)
has been added to the *Xmu* library. The *xstdcmap* client
uses these routines to create standard colormaps.
#### additional converters
A variety of new converters have been added to *Xmu*. In addition,
multi-display programs should now be able to use these converters (and
might find the utilities for managing the multiple display data structures
useful).
#### new window manager
The *uwm* window manager has been moved from the core distribution
to the user-contributed distribution. A substantially rewritten version
of the *twm* window manager is now supported.
#### improvements in xdm
The *xdm* display manager has been rewritten to reduce the number of
processes it requires and to make it much more robust. This is now the
only supported means for starting the server at boot time (the *-L*
command line option has been removed from *xterm*).
#### new utilities
Several new utility programs have been provided: *appres* for determining
which resources are loaded into particular applications, *listres* for
printing the resource hierarchy for a widget, *oclock* for people who
like truly round clocks, *xauth* for manipulating authorization files,
*xditview* for previewing *ditroff* files, *xfontsel* for
interactively selecting fonts, *xlsatoms* for determining the value
of various atoms, *xlsclients* for listing the clients currenting being
run, and *xstdcmap* for manipulating standard colormaps.
#### new demos
A new demo of how various GC attributes (*xgc*) affect what is displayed
on the screen is provided.
#### new features in *xterm*
The following features have been added to *xterm*: 8-bit input and output,
on-the-fly changing of the current font through escape sequences and a new
menu, new resources for controlling whether or not synthetic key events are
ignored, increased portability, and improved menus using the new Athena
**SimpleMenu** widget.
#### new CLX and documentation
A substantially improved version of CLX, the Common Lisp interface to X,
is provided. In addition, comprehensive documentation of the CLX interface
is provided, courtesy of Texas Instruments.
#### sample copyright notice in `mit/COPYRIGHTS`
The file `mit/COPYRIGHTS` in the top level directory contains a sample
copyright notice recommended for people who are interested in contributing
software to the public releases.
#### X Standards in `mit/Standards.man`
The *XStandards(1)* manual page contains a description
of what is and is not an MIT X Consortium standard for the X Window
System. For further information about the X Consortium, see the manual
page *XConsortium(1)*.
### Highlights of the User-Contributed Distribution
The user-contributed distribution is set up in a tree very similar to
that used by the core distribution. New versions of several packages are
available, and a variety of new donations have been received. Since this is
**not** a superset of the previous user-contributed tape, sites are
encouraged to save any R3 user-contributed software that they use. Note that
this distribution is of no relation to the */contrib* directory available
for anonymous ftp on *expo.lcs.mit.edu*.
#### XView and olwm
The *XView* toolkit and an ICCCM-compliant OPEN LOOK window manager
from Sun Microsystems have been added to this release.
This toolkit implements the OPEN LOOK graphical user interface
guidelines and the SunView application programming interface.
#### Gwm
The *Generic Window Manager* from Groupe Bull has been added. Unlike
other window managers, *gwm* provides a programming language for
tailoring its user interface. It is believed to be ICCCM-compliant.
#### Tektronix Window Manager
The *Tektronix Window Manager*, derived from the *awm* window
manager in the previous release, is also new to this release. Like *gwm*
and *olwm*, *tekwm* is believed to be ICCCM-compliant.
#### Sigma toolkit and window manager
The Sigma Project has donated its Sigma User Interface Toolkit (SUIT) and
window manager (*m_swm*).
#### toolkits updated
New versions of *InterViews*, *Xw*, *andrew*, and *clue*
are included. New toolkits include: *xgks* and *Xcu*.
#### Serpent UIMS
The *Serpent* user interface management system is included in this
release.
#### new libraries
Several libraries for doing Japanese input (see *XJ* and *Wnn*),
multi-language input (see *mlx* and *im*), and compose processing
(see *XCompose*) are provided.
#### new programming examples
The examples from the O'Reilly and Associates books on *Xlib* and *Xt*
have been provided.
#### new demos
A variety of eye-catching demos have been added.
#### new clients
A number of useful packages have been added: image analysis (see *NCSA*
and *img*), multi-language libraries and utilities (see *kinput*,
*kterm*, and *mlxterm*), a user interface prototyping system (see
*winterp*), plus improved versions of *xfed*, *xcolors*,
*xpic*, *xplaces*, *xtek* (formerly *texx*), *xtroff*,
and *xwebster*.
#### games
A variety of new games have been contributed since the new release.
Copyright © 1989 by the
Massachusetts Institute of Technology
.
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted without
fee, provided that the above copyright
notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting
documentation, and that the name of M.I.T. not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
M.I.T. makes no representations about the suitability of
this software for any purpose. It is provided "as is"
without express or implied warranty.