summaryrefslogtreecommitdiff
path: root/X11R4.mdwn
blob: 8cd10d7e861f25dbdf7f69d33460864fa231c912 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
<div itemscope itemtype="http://schema.org/SoftwareApplication">

# <span itemprop="name">X Window System</span>, <span itemprop="version">Version 11, Release 4</span>

<span itemprop="description">
X11R4 was the fourth release of the X Window System, Version 11 from MIT.
</span>
It was <a href="https://groups.google.com/d/msg/comp.windows.x/blSgkD7MZkk/PaDhkbyk-7IJ">released in
<span itemprop="datePublished" content="1989-12-22">December 1989</span></a>,
with the following changes excerpted from the
<a href="http://www.x.org/releases/X11R4/RELNOTES.txt" itemprop="releaseNotes">release notes</a>.
The sources are available for download for historical reference from
<a href="http://www.x.org/releases/X11R4/" itemprop="downloadUrl">http://www.x.org/releases/X11R4/</a>.

[[!toc levels=4 startlevel=2]]

## 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:
<span itemprop="operatingSystem">
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).
</span>
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.

<div style="font-size: small; border-top: 1px solid black;">
<p>
Copyright &copy; <span itemprop="copyrightYear">1989</span> by the
<span itemprop="copyrightHolder"
 itemscope itemtype="http://www.schema.org/Organization">
<span itemprop="name">Massachusetts Institute of Technology</span>
</span>.
</p><p>
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.
</p>
</div>
</div>