home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / X / mit / lib / CLX / CHANGES < prev    next >
Encoding:
Text File  |  1991-08-18  |  12.9 KB  |  332 lines

  1. R5 changes: (see below for details)
  2.  
  3. o Numerous bug fixes
  4.  
  5. o Continued gradual conversion towards ANSI Common Lisp
  6.  
  7. o Performance improvements to image code
  8.  
  9. o Multiprocess locking and error reporting made more robust
  10.  
  11. o Event queue consing reduced
  12.  
  13. o ICCCM support
  14.  
  15. Details of changes since R4:
  16.  
  17. R4.1 changes:
  18.  
  19. o Fix reported bugs and to include the vendor-specific
  20.   bug-fixing and performance-improving patches that I recently received.
  21.  
  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.
  27.  
  28. R4.2 changes:
  29.  
  30. o Atoms and visuals are now correctly maintained in a separate namespace from 
  31.   windows, pixmaps, cursors, fonts, gcontexts, and colormaps.
  32.  
  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.
  36.  
  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.
  40.  
  41. o Some ansi common lisp stuff.  If you have :ansi-common-lisp on *features*,
  42.   CLX will:
  43.  
  44.   - Use the common-lisp package instead of the lisp package.
  45.  
  46.   - Use the common lisp condition system, being careful not to stomp on 
  47.     define-condition and type-error.
  48.  
  49.   - Use declaim instead of proclaim.
  50.  
  51.   - Use the dynamic-extent declaration for rest args and closures.
  52.  
  53.   - Use print-unreadable-object.
  54.  
  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.  
  59. R4.3 changes:
  60.  
  61. o Changed the ansi-common-lisp feature to clx-ansi-common-lisp.
  62.  
  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.
  68.  
  69. o excldefsys.l has been merged into defsystem.l.  You don't have to rename
  70.   excldefsys.l to defsystem.l anymore.
  71.  
  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.
  76.  
  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.
  82.  
  83. o A typo in X-TYPE-ERROR has been fixed.
  84.  
  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.
  90.  
  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.
  96.  
  97. o The image putting, getting, and copying code has been sped up a bit for lispm, 
  98.   lcl3.0, and excl.
  99.  
  100. o The lcl3.0 io code has been sped up a bit by using read-array instead of
  101.   fast-read-byte.
  102.  
  103. o READ-RESOURCES now handles any lines that start with # and don't start with
  104.   #include as comments.
  105.  
  106. R4.4 changes:
  107.  
  108. o Fixed typo in DEFAULT-KEYSYM-TRANSLATE.
  109.  
  110. o In events, CurrentTime (encoded as 0 in the protocol) decodes to NIL instead 
  111.   of 0.
  112.  
  113. o NIL now translates to and from the atom-id of 0.
  114.  
  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.
  119.  
  120. o GCONTEXT-CACHE-P, COLORMAP-PLIST and CURSOR-PLIST have been exported.
  121.  
  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
  128.   FORCE-GCONTEXT-CHANGES-INTERNAL is called.
  129.  
  130. o ANGLEP type check sped up for excl.  Arc drawing should be lots faster.
  131.  
  132. o RATIONAL type definition for kcl now takes the correct optional args.
  133.  
  134. o (SETF FONT-PATH) changed to return the value
  135.  
  136. o Fixed typo in the hex parsing in READ-BITMAP-FILE
  137.  
  138. o Made READ-RESOURCES more robust about weird resource files.
  139.  
  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.
  145.  
  146. o Fixed typo in DEFINE-CONDITION for #-(or lispm clx-ansi-common-lisp excl lcl3.0).
  147.  
  148. o Fixed typo in MERGE-RESOURCES 
  149.  
  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.
  154.  
  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.
  157.  
  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.
  162.  
  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.
  166.  
  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.
  169.  
  170. o DEFINE-CONDITION is no longer exported from the XLIB package.
  171.  
  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.
  178.  
  179. o The DESCRIBE-WINDOW debug utility has been fixed to not use strange
  180.   lisp machine format codes.
  181.  
  182. o Numerous Allegro specific changes in support of Allegro CL version 4.0.
  183.  
  184. R4.5 changes:
  185.  
  186. o Fixed READ-VECTOR-CARD8 and WRITE-VECTOR-CARD8 to work with arbitrary vectors.
  187.  
  188. o Changed COMPILE-CLX and LOAD-CLX to use the verbose mode of COMPILE-FILE and LOAD.
  189.  
  190. o Added a conditional for HPUX to COMPILE-CLX.
  191.  
  192. o Changed DISPLAY-CONNECT to save the default colormap ID in the ID database.
  193.  
  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.
  199.  
  200. o Removed bogus declarations from the SETF expander for WM-NAME.
  201.  
  202. o Defined a proper SETF function for CUT-BUFFER when in ANSI Lisp.
  203.  
  204. o Fix the encoding of the revert-to argument to SET-INPUT-FOCUS.
  205.  
  206. o Fix a fencepost error in STORE-COLORS.
  207.  
  208. o Fix TEXT-EXTENTS and TEXT-WIDTH to handle font changes properly.
  209.  
  210. o Fix TEXT-EXTENTS-LOCAL to handle negative ascents and descents properly.
  211.  
  212. o Fix DRAW-IMAGE-GLYPHS to not try to write more than 255 glyphs.
  213.  
  214. o Added conditionalizations for Minima, a new operating system under development at Symbolics.
  215.  
  216. o Some gratuitous changes in the Symbolics-specific code.
  217.  
  218. o Removed *EVENT-LOOP-VERSION* and support for pre-R4.1 compiled code.
  219.  
  220. o In Lucid, fixed HOLDING-LOCK to clean up on timeout.
  221.  
  222. o Gcontexts and fonts without associated displays now print correctly.
  223.  
  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        ""
  239.  
  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
  255.  
  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
  265.  
  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
  274.  
  275. Quote #.'ed arrays to accomodate CLTL1 lisps
  276.     -- empty-data constants                image.l
  277.  
  278. Set-input-focus fix wasn't finished
  279.     -- set-input-focus                requests.l
  280.  
  281. Standardized strange integer type specifier in keysym macro
  282.     -- keysym                    translate.l
  283.  
  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
  297.  
  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
  303.  
  304. Old code removed from file
  305.     -- removed some cmacros                exclcmac.l
  306.  
  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
  311.  
  312. Conditionalizations in Makefile cleaned up.
  313.     --                         exclMakefile
  314.  
  315. Descriptive comment added to holding-lock
  316.     -- holding-lock                    dependent.l
  317.  
  318. Added typep transformers for all CLX types.
  319.     --                        excldep.cl
  320.  
  321. R5.0 changes:
  322.  
  323. o Changed occurrances STRING-CHAR to BASE-CHAR.
  324.  
  325. o Fixed some type declarations to use type NULL instead of NIL.
  326.  
  327. o Various fixes to vendor-specific code.
  328.  
  329. o Detect attempts to use images an incorrect depth.
  330.  
  331. o Stop doing case conversion on resource names be default.
  332.