python-to-c++ compiler under wine

Mark Dufour mark.dufour at
Fri Jan 12 06:41:08 CST 2007

hi there,

while trying to get an experimental python-to-c++ compiler
( to run under wine, I found a
not-so complicated test case that crashes. it is a simple C++ program,
converted from 57 lines of Python. it is quite self-contained, and
only uses the Boehm GC, but it crashes early and consistently. I
corresponded with mike hearn about this, but he is too busy atm to
look at it further. here is a mail of me to him, with a link to an
archive with an .exe that crashes (but works under windows), the .py
and .?pp source code, and a crash log with debugging symbols. it would
be great if any of you here would have a look at it.

I tried to minimize the test program so it still crashes. the
attachment (, 56 lines) very quickly and consistently crashes
when trying to print out a list of integers:

def propagate(lit, mods, failed_literal=0):
    print 'prop', lit
    print occurrence[3]

this happens after calling just a few functions (solve_rec, lookahead,
lookahead_variable, propagate) and no backtracking.

in C++ terms, occurrence is a list<list<list<int> *> *> *.
occurrence[3] is then a list<list<int> *> *. occurrence[3] is a list
of 6 'clauses'. it always goes wrong on printing the 3rd clause (or
list<int> *), at the line 'r->unit += repr.. ' below, in the file

template<class T> str *list<T>::__repr__() {
    str *r = new str("[");
    for(int i = 0; i<this->__len__();i++) {
        r->unit += repr(units[i])->unit;
        if (i<this->__len__()-1)
            r->unit += ", ";
    r->unit += "]";
    return r;

now what happens in repr(..) is a bit complicated because of templatry
and va_args stuff and all, but I would think that if the clause is not
corrupt it should just work..

btw. a list<T> uses a vector<T> in it called 'units', as can be seen above.

here's a bundle of files (crash log,, t37.?pp, t37.exe..):

thanks for any help!
mark dufour.
"One of my most productive days was throwing away 1000 lines of code"
- Ken Thompson

More information about the wine-devel mailing list