22 Jan 2004 (updated 30 Jan 2004 at 02:58 UTC)
»
Let me be the first to congratulate chalst
on his new offspring.
slamb: Apologies for not replying sooner, about cancellation and C++. All the cancellation points
defined by POSIX are C calls, which are normally declared
"throw()". Built with any existing compiler (except DEC's) and C library, they unwind the stack
ignoring catch blocks, thus corrupting the process state.
Given a jimmied C library that turns them into exceptions,
they throw past code that (either in the runtime or, if
the runtime is also jimmied, in the user code) wasn't
expecting any exceptions, and so probably corrupt the
process state.
As ought to be needless to say, a corrupt process state
makes a poor execution environment for other threads.
A useful response would be just to return -1 and set
errno each time a cancellation point is called after
cancellation, but POSIX people start shrieking ZERO
UPTAKE when you mention it. They see no problem
with breaking every existing thread-safe C++ library
(which they assert are ALREADY BROKEN),
but worry about a few vendors taking them seriously if
they countenance a C++ binding that preserves existing
libraries by being a little different from the C binding.
Of course C++ components (e.g. filebuf) could throw,
and finding errno == ETHREADCANCELLED or something ought to
be cause to throw something, so cancellations should
turn into exceptions pretty easily.
According to a status box posted by flphoto when
it saves a rotated version of a JPEG image, it is saving losslessly. It's easy to imagine how it could do this,
by rewriting headers and then rotating and transposing
individual 8x8-pixel cells. This is an improvement,
because I had been using Gimp, before, and it certainly
does not load and save losslessly.
freetype: Have you read any Terry
Pratchett? He continues to astonish with each new
volume. Let me recommend the new Wee Free Men.
Ach, Crivens! I wish I'd grown up with his books
instead of (e.g.) Heinlein's & Tolkien's.
mallum: I have never yet encountered
a dog (never mind a pug!) with palette problems.
Painting, as an activity, seems better suited
to cats.
I can certainly imagine pugs with palate problems,
though. IMHO the tendency should be culled from the
breed via the time-honored method.
Is there something peculiar to participation on the
GStreamer project that leads to not
answering e-mail? Probably it's good, if it means
they're writing code instead. E-mail is a time sink.
My birthday present (appropriately, I suppose, given
Gollum's obsession) was enough hours free to
see the third installment of the Jackson Lord of the Rings.
(Most of what I recall from the books comes via
the Harvard Lampoon parody, "Bored of the Rings", with
its wee protagonists Moxie, Pepsi, Frito, and Spam.)
Among the moments where suspension of
disbelief failed were Merry (or Pippin?) and Gandalf
bouncing instantly back and forth between the lower
battlements and the palace on the hill -- with Gandalf
abandoning his post just to save the regent's son, whose
only evident value was as a future husband to Eowyn; the
horses wading into a sea of pikemen without all being
skewered in time for lunch; and Eowyn slicing through three
feet of dragon neck (bone and all) with one sword stroke.
Did anybody else notice that the Rohanners' only actual
contribution, ultimately (besides Eowyn's solo, itself
unnecessary), was to provide the new (and now redundant)
regent a bride, and a job? The ghosts would have mopped
the field with or without the cavalry's arrival. (This
last reminds me of David Brin's critiques of Star Wars
-- the Jedis never really accomplish anything, although
they get all the screen time.)
I'm running Evolution with GVim as the message editor now
-- A big thank you to Jason Hildebrand,
jdhildeb. No crashes lately,
but Evo 1.4.5 still seems to leak zombie processes.
(That might be GtkHTML or something.)
Galeon 1.3.11a has the disadvantage, vs. certain earlier
versions, of leaking both memory and zombie subprocesses.
I am back to killing and restarting it every few days to
keep my system from thrashing.