[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: QNX subprocess bug
From: |
Stefan Monnier |
Subject: |
Re: QNX subprocess bug |
Date: |
Sat, 25 Mar 2006 23:33:47 -0500 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) |
> The bug is showing up in emacs 21.2.1 on QNX 6.3.0. It appears
> that process IDs on QNX really occupy 32-bits. Some of them are
> quite large. This causes a problem in the subprocess package
> which uses an elisp integer (28 bits + type info - I think) to
> try to store the PID.
> Obvious this problem could, in principle, arise on any system that
> uses 32-bit process IDs, and it seems to me rather sloppy programming
> to use such a shortcut, especially in such comparatively rarely
> executed code.
> It is not a short cut. The reason the pid is represented as a Lisp
> integer is that
> (1) all the slots in a process object have to be Lisp objects,
Actually, this doesn't have to be true. Several other kinds of similar
(vectorlike) objects have lifted this limitation, e.g. buffers.
We could easily lift this limitation.
That would also allow us to replace raw_status_(high|low) with just
raw_status.
> and (2) Emacs has no way to deal with integer values larger
> than a Lisp integer.
Actually, Emacs can store such values in floating point numbers, or encode
them in cons-cells (as is done for time values as well as file sizes).
Stefan