[Python-Dev] Should Python compile as C++?

Tim Peters tim.one@comcast.net
Tue, 05 Feb 2002 07:28:27 -0500


Static initializers in C++ are much more liberal than in C, without the
latter's "constant expression" limitations.  This follows from that you
couldn't declare a static object of an arbitrary class otherwise:  C++ has
to be prepared to execute any code whatsoever in order to run user-coded
constructors.

OTOH, because C++ is much more liberal in this respect, order of module
initialization is a much worse problem in C, and C++ doesn't define that any
more than C does.  Some of the worst debugging problems I ever had in C++
were tracking down quiet assumptions about initialization order that didn't
hold x-platform.  There are a number of well-known hacks in the C++ world
for worming around this, some of which explain why starting a large C++
program can give your disk a major workout.

As to making Python source compilable under C++, I quietly nudge it in that
direction.  If I explained why, it wouldn't be quiet anymore <wink>.