ViewVC logotype

Contents of /src/clx/CHANGES

Parent Directory Parent Directory | Revision Log Revision Log

Revision 1.2 - (hide annotations)
Thu Nov 7 16:57:02 1991 UTC (22 years, 5 months ago) by ram
Branch: MAIN
Changes since 1.1: +280 -1 lines
CLX R5 changes.
1 ram 1.2 R5 changes: (see below for details)
2 ram 1.1
3     o Numerous bug fixes
5 ram 1.2 o Continued gradual conversion towards ANSI Common Lisp
7     o Performance improvements to image code
9 ram 1.1 o Multiprocess locking and error reporting made more robust
11     o Event queue consing reduced
13     o ICCCM support
15 ram 1.2 Details of changes since R4:
17 ram 1.1 R4.1 changes:
19     o Fix reported bugs and to include the vendor-specific
20     bug-fixing and performance-improving patches that I recently received.
22     o Code compiled with the R4 CLX will work with the R4.1X CLX, but code
23     compiled with the R4.1X CLX will NOT work with the R4 CLX. I made an effort
24     to ensure backward binary compatibility with R4 CLX so that old code doesn't
25     have to be recompiled to still work. It does have to be recompiled to fix
26     an event-queue bug, since the fix involved a change to the event-loop macro.
28     R4.2 changes:
30     o Atoms and visuals are now correctly maintained in a separate namespace from
31     windows, pixmaps, cursors, fonts, gcontexts, and colormaps.
33     o I have made an attempt to make socket code work for kcl and ibcl. I have
34     akcl here, but not kcl and ibcl, so it's only guesswork that kcl and ibcl
35     works.
37     o compile-clx and load-clx do more pathname merging to work around problems
38     in some lisp implementations. *default-pathname-defaults* is never bound
39     anymore.
41     o Some ansi common lisp stuff. If you have :ansi-common-lisp on *features*,
42     CLX will:
44     - Use the common-lisp package instead of the lisp package.
46     - Use the common lisp condition system, being careful not to stomp on
47     define-condition and type-error.
49     - Use declaim instead of proclaim.
51     - Use the dynamic-extent declaration for rest args and closures.
53     - Use print-unreadable-object.
55     o Code compiled with the R4 and R4.1 CLX will work with the R4.2 CLX, provided
56     you don't have :ansi-common-lisp on your features list. Code compiled with
57     the R4.2 CLX will NOT work with the R4 CLX.
58 ram 1.2
59     R4.3 changes:
61     o Changed the ansi-common-lisp feature to clx-ansi-common-lisp.
63     o A new package.l file has been introduced. All the package operations that
64     were in the other files have been moved to package.l. Because of this,
65     the compile-clx and load-clx functions which are defined in the defsystem.l
66     file have been moved to the user package from the xlib package, since the xlib
67     package isn't defined when the defsystem.l file is loaded.
69     o excldefsys.l has been merged into defsystem.l. You don't have to rename
70     excldefsys.l to defsystem.l anymore.
72     o User-specified-size/position-p hints are now set correctly.
73     These hints were being ignored if the size-hints structure did not
74     define the corresponding geometry slots. But ICCCM declares these
75     slots to be obsolete.
77     o (setf wm-command) has been changed to use PRIN1 inside the ANSI Common Lisp
78     form WITH-STANDARD-IO-SYNTAX (or the equivalent defined in dependent.l), with
79     elements of command separated by NULL characters. This enables
80     (with-standard-io-syntax (mapcar #'read-from-string (wm-command window)))
81     to recover a lisp command.
83     o A typo in X-TYPE-ERROR has been fixed.
85     o The WITH-GCONTEXT macro has been changed so that if you supply nil for a
86     property value, WITH-GCONTEXT is will leave the property unchanged. It used
87     to always change the property without regard for whether the supplied value
88     was nil. This change to how the macro expands, so user code has to be
89     recompiled for the change to take effect.
91     o Since ANSI Common Lisp doesn't have CHAR-BIT, the implementation of
92     DEFAULT-KEYSYM-TRANSLATE is now implementation dependent in ANSI Common Lisp
93     implementations, with the default doing nothing to character objects. In
94     non-ANSI Common Lisps and lispms, it still uses CHAR-BIT. The definition of
95     DEFAULT-KEYSYM-TRANSLATE has been moved to dependent.l.
97     o The image putting, getting, and copying code has been sped up a bit for lispm,
98     lcl3.0, and excl.
100     o The lcl3.0 io code has been sped up a bit by using read-array instead of
101     fast-read-byte.
103     o READ-RESOURCES now handles any lines that start with # and don't start with
104     #include as comments.
106     R4.4 changes:
108     o Fixed typo in DEFAULT-KEYSYM-TRANSLATE.
110     o In events, CurrentTime (encoded as 0 in the protocol) decodes to NIL instead
111     of 0.
113     o NIL now translates to and from the atom-id of 0.
115     o A new variable *OUTPUT-BUFFER-SIZE* has been introduced, with value 8192.
116     Now, instead of the buffer creating code always creating output buffers of
117     length 8192 bytes, they create output buffers of length *OUTPUT-BUFFER-SIZE*
118     bytes.
120     o GCONTEXT-CACHE-P, COLORMAP-PLIST and CURSOR-PLIST have been exported.
122     o If CREATE-GCONTEXT is given a rect-seq as a clip-mask, then a
123     SetClipRectangles request must be sent to initialize the clip-mask. The logic
124     to do this is located in FORCE-GCONTEXT-CHANGES-INTERNAL, but this wasn't
125     being called because create-gcontext always forces local/server-state
126     timestamps equal. Same problem for dash lists. CREATE-GCONTEXT has been
127     fixed so that in these cases it makes the timestamps unequal so that
130     o ANGLEP type check sped up for excl. Arc drawing should be lots faster.
132     o RATIONAL type definition for kcl now takes the correct optional args.
134     o (SETF FONT-PATH) changed to return the value
136     o Fixed typo in the hex parsing in READ-BITMAP-FILE
138     o Made READ-RESOURCES more robust about weird resource files.
140     o New variable *DEF-CLX-CLASS-USE-DEFCLASS*, which controls whether DEF-CLX-CLASS
141     uses DEFCLASS. If it is a list, it is interpreted by DEF-CLX-CLASS to be a list
142     of type names for which DEFCLASS should be used. If it is not a list, DEFCLASS
143     is always used. IF it is NIL, DEFCLASS is never used, since NIL is the empty
144     list. By default, it's T in Genera, NIL otherwise.
146     o Fixed typo in DEFINE-CONDITION for #-(or lispm clx-ansi-common-lisp excl lcl3.0).
148     o Fixed typo in MERGE-RESOURCES
150     o In Lucid lisp, the functions aref-card8, aref-int8, aset-card8, aset-int8,
151     aref-card16, aref-int16, aref-card32, aref-int32, aref-card29, aset-card16,
152     aset-int16, aset-card32, aset-int32, and aset-card29 Have been fixed so that
153     they can be used inline with the development compiler.
155     o The default value of the BYTE-LSB-FIRST-P argument to CREATE-IMAGE has been
156     changed from always T to T on LSBFirst machines and NIL on MSBFirst machines.
158     o The order of the color values returned by ALLOC-COLOR when a color name is supplied
159     as an argument is fixed so that the screen color correctly is returned as the second
160     value and the exact color is correctly returned as the third value. The order was
161     backwards.
163     o The internal WITH-BUFFER-INPUT and WITH-BUFFER-OUTPUT macros have been
164     changed to wrap macrolet around body only when necessary. This simplifies the
165     compiler's job for non lisp machines.
167     o All uses of DEFINE-CONDITION have been changed to include a slots argument,
168     even if that argument is NIL -- the argument is not optional.
170     o DEFINE-CONDITION is no longer exported from the XLIB package.
172     o New functionality has been added to make-pixmap and make-window. They may
173     now take a :PIXMAP or :WINDOW argument (respectively). If non-NIL (default is
174     nil), they will use that argument as the pixmap or window object to be set.
175     Otherwise they will create a new pixmap/window object. This whole schmeel is
176     necessary because creation of window and pixmap objects in CLX doesn't go
177     through the CLOS initialize-instance mechanism.
179     o The DESCRIBE-WINDOW debug utility has been fixed to not use strange
180     lisp machine format codes.
182     o Numerous Allegro specific changes in support of Allegro CL version 4.0.
184     R4.5 changes:
186     o Fixed READ-VECTOR-CARD8 and WRITE-VECTOR-CARD8 to work with arbitrary vectors.
188     o Changed COMPILE-CLX and LOAD-CLX to use the verbose mode of COMPILE-FILE and LOAD.
190     o Added a conditional for HPUX to COMPILE-CLX.
192     o Changed DISPLAY-CONNECT to save the default colormap ID in the ID database.
194     o Added new keyword arguments :PROGRAM-SPECIFIED-POSITION-P and :PROGRAM-SPECIFIED-SIZE-P
195     to SET-WM-PROPERTIES and corresponsing slots in the WM-SIZE-HINTS structure.
196     These control the appropriate flags in the size hints. The old way of controlling these
197     flags, with the :X, :Y, :WIDTH, and :HEIGHT arguments, is now obsolete due to changes
198     in the ICCCM.
200     o Removed bogus declarations from the SETF expander for WM-NAME.
202     o Defined a proper SETF function for CUT-BUFFER when in ANSI Lisp.
204     o Fix the encoding of the revert-to argument to SET-INPUT-FOCUS.
206     o Fix a fencepost error in STORE-COLORS.
208     o Fix TEXT-EXTENTS and TEXT-WIDTH to handle font changes properly.
210     o Fix TEXT-EXTENTS-LOCAL to handle negative ascents and descents properly.
212     o Fix DRAW-IMAGE-GLYPHS to not try to write more than 255 glyphs.
214     o Added conditionalizations for Minima, a new operating system under development at Symbolics.
216     o Some gratuitous changes in the Symbolics-specific code.
218     o Removed *EVENT-LOOP-VERSION* and support for pre-R4.1 compiled code.
220     o In Lucid, fixed HOLDING-LOCK to clean up on timeout.
222     o Gcontexts and fonts without associated displays now print correctly.
224     Requests that send "strings" of two byte font indices can *not* assume that
225     the two byte objects are being written on two byte boundaries. The simplest
226     fix was just to modify the write-*-card16 functions to use a new macro that
227     writes one half of the object at a time. The only undesirable affect of
228     this is that CLIENT-MESSAGE and CHANGE-PROPERTY are slightly slower for
229     card16 data than they were before.
230     NEW macro
231     -- write-card16-by-bytes bufmac.l
232     CHANGED functions:
233     -- write-list-card16 buffer.l
234     -- write-list-card16-with-transform ""
235     -- write-simple-array-card16 ""
236     -- write-simple-array-card16-with-transform ""
237     -- write-vector-card16 ""
238     -- write-vector-card16-with-transform ""
240     Print functions changed to use write-string instead of princ where
241     possible. This allows for much cleaner printing when *print-circle* is
242     true -- princ is required to use *print-circle*, even for strings!
243     Write-string is, of course, not so burdened.
244     -- print-color clx.l
245     -- print-display ""
246     -- print-drawable ""
247     -- print-visual-info ""
248     -- print-colormap ""
249     -- print-cursor ""
250     -- print-gcontext ""
251     -- print-screen ""
252     -- print-font ""
253     -- print-resource-database resource.l
254     -- print-image image.l
256     Changes to display tracing: In a multiprocessing system is it very helpful
257     to know what process wrote or read certain requests. Thus I have modified
258     the format of the trace-history list. It is now an alist of: ((id .
259     more-info) . byte-vector). (more-info is a list returned by the
260     trace-more-info function). Also added the ability to suspend and resume
261     tracing without destroying the trace history. Renamed 'display-trace' to
262     'show-trace' to avoid confusion. (Having both 'trace-display and
263     'display-trace wasn't such a hot idea).
264     -- lots-o-stuff debug/trace.l
266     Image-glyph functions had a different argument order than non-image glyph
267     functions. Image-glyph functions changed to be compatible with others.
268     Declarations in draw-glyphs* functions were wrong.
269     -- draw-image-glyphs text.l
270     -- draw-image-glyphs8 text.l
271     -- draw-image-glyphs16 text.l
272     -- draw-glyphs8 text.l
273     -- draw-glyphs16 text.l
275     Quote #.'ed arrays to accomodate CLTL1 lisps
276     -- empty-data constants image.l
278     Set-input-focus fix wasn't finished
279     -- set-input-focus requests.l
281     Standardized strange integer type specifier in keysym macro
282     -- keysym translate.l
284     ===============================================================================
285     Franz specific changes, applicable to Allegro and Extended Common Lisps:
286     (note that all these changes are #+excl or #+allegro, so if you're not
287     using our product these changes are "commented" out)
288     -----------------------------------------------------------------------
289     Atom-cache hash table type changed to #'equal. Resource-id-map has table
290     type changed to #'equal.
291     NEW macro
292     -- atom-cache-map-test depdefs.l
293     CHANGED def-clx-class
294     -- display clx.l
295     CHANGED macro
296     -- resource-id-map-test depdefs.l
298     Don't bother to import require, provide, since we're using the CLTL1
299     package. Also put the requires and provides inside eval-when to make the
300     compiler happy. Don't redefine typep, instead push our customizations onto
301     the typep handling list.
302     -- toplevel forms excldep.l
304     Old code removed from file
305     -- removed some cmacros exclcmac.l
307     Allegro >=4.0 now does support with-standard-io-syntax and
308     print-unreadable-object.
309     -- with-standard-io-syntax{,-function} dependent.l
310     -- print-unreadable-object{,-function} depdefs.l
312     Conditionalizations in Makefile cleaned up.
313     -- exclMakefile
315     Descriptive comment added to holding-lock
316     -- holding-lock dependent.l
318     Added typep transformers for all CLX types.
319     -- excldep.cl
321     R5.0 changes:
323     o Changed occurrances STRING-CHAR to BASE-CHAR.
325     o Fixed some type declarations to use type NULL instead of NIL.
327     o Various fixes to vendor-specific code.
329     o Detect attempts to use images an incorrect depth.

  ViewVC Help
Powered by ViewVC 1.1.5