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/.
- What's New in this Release
- Changes to the core distribution
- many, many bugs fixed
- server optimized, data space reduced
- SHAPE extension
- prototype extensions
- build configuration moved and simplified
- new servers
- security hooks
- new fonts
- ICCCM support
- new rgb color database
- function prototypes
- shared libraries
- new Xt Intrinsics
- Athena widget enhancements
- standard colormap routines
- additional converters
- new window manager
- improvements in xdm
- new utilities
- new demos
- new features in xterm
- new CLX and documentation
- sample copyright notice in mit/COPYRIGHTS
- X Standards in mit/Standards.man
- Highlights of the User-Contributed Distribution
- Changes to the core distribution
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
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.
The primary focus of this release has been optimization of the server and improvements in the key applications.
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
mit/doc/Xaw/ConvertToR4, and read the new
Athena Widget Set documentation.
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.
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.
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.
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.
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 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.
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.
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.
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.
A new color database containing many new colors, gray scales, and color spectra tuned for some of the common monitors is included.
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.
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.
The X Toolkit Intrinsics now provide windowless objects, varargs-style interfaces, better caching of resources, fallback resources, locale-driven finding of data files.
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.
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.
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).
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.
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).
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.
A new demo of how various GC attributes (xgc) affect what is displayed on the screen is provided.
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.
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.
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.
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).
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.
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.
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.
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.
The Sigma Project has donated its Sigma User Interface Toolkit (SUIT) and window manager (m_swm).
New versions of InterViews, Xw, andrew, and clue are included. New toolkits include: xgks and Xcu.
The Serpent user interface management system is included in this release.
Several libraries for doing Japanese input (see XJ and Wnn), multi-language input (see mlx and im), and compose processing (see XCompose) are provided.
The examples from the O'Reilly and Associates books on Xlib and Xt have been provided.
A variety of eye-catching demos have been added.
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.
A variety of new games have been contributed since the new release.