[Cmucl-cvs] [git] CMU Common Lisp branch master updated. 20f-52-g2dd94c9

Raymond Toy rtoy at common-lisp.net
Sat Oct 25 17:39:07 UTC 2014

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMU Common Lisp".

The branch, master has been updated
       via  2dd94c9bc749b8cc13914ecc89e1ed1e91893695 (commit)
       via  c18c16cd61de3f931c954cd735d68b95fde715b5 (commit)
       via  27a7c149e77fb549bd59c87024d01df65cf37806 (commit)
       via  93d7f94f9004fbb054a291211391c538a8439c6e (commit)
      from  1daac74f63836c9eeb98e53e77d69180698eef5e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 2dd94c9bc749b8cc13914ecc89e1ed1e91893695
Merge: 1daac74 c18c16c
Author: Raymond Toy <toy.raymond at gmail.com>
Date:   Wed Oct 22 19:09:38 2014 -0700

    Fix #84: motifd is 64-bit app.
    Merge Richard Kreuter's clm-oids branch to master.  This allows
    motifd to work even if motifd is a 64-bit app.  From Richard:
    ...the server passes out 32-bits of a pointer as external IDs for
    instances of a handful of types [1]. On a 64-bit machine, the instances'
    addresses might not fit in a 32-bit address, though.
    (In fact, on my FreeBSD/amd64 machine, when I run the example from the
    documentation, the first shell widget always gets created at
    create the second widget with the shell as parent crashes the server.)
    Seems like there are two options:
    A. Change the wire protocol to accomodate 64-bit integers.
    B. Synthesize 32-bit identifiers for instances of the offending types.
    Option B seems simpler....
    [It] suffices to run the example in the doc and the programs in
    INTERFACE.... Obvious problems in the current code:
    1. It's a doubly linked alist associating pointers with 32-bit integers.
    2. It looks like nothing ever gets removed from the alist....
    3. I'm not certain that I've caught all the places where motifd hands
       out pointers to Lisp.
    [1] I think the complete list is AcceleratorTable, Atom, FontList,
    TranslationTable, Widget, and sometimes XmString.


Summary of changes:
 src/motif/lisp/conversion.lisp |   10 +++-
 src/motif/server/Config.Darwin |    2 +-
 src/motif/server/GNUmakefile   |    2 +-
 src/motif/server/callbacks.c   |    3 +-
 src/motif/server/datatrans.c   |   58 +++++++++++++-------
 src/motif/server/datatrans.h   |    4 +-
 src/motif/server/events.c      |    3 +-
 src/motif/server/oid.c         |  117 ++++++++++++++++++++++++++++++++++++++++
 src/motif/server/oid.h         |    6 +++
 src/motif/server/requests.c    |    9 ++--
 src/motif/server/tables.c      |    3 ++
 src/motif/server/xmstring.c    |    4 +-
 12 files changed, 190 insertions(+), 31 deletions(-)
 create mode 100644 src/motif/server/oid.c
 create mode 100644 src/motif/server/oid.h

CMU Common Lisp

More information about the cmucl-cvs mailing list