Run in python 2.7
python versionclimber_manager.py
python versionclimber_client_0.py
python versionclimber_client_1.py

The manager announces the highest possible configuration when it finds it.

Of course this is just a mockup. 
First versionclimber_configs must be changed
to be the actual configs in descending order.
The execution engine will have to keep track of versions that don't compile
or caller-callee combinations that don't work in order to avoid
repeated computations.
But in the worst case, we traverse this whole sequence

Second, the function tryconfig in the client
instead of the stub:
if 'D' in c:
    goodconfigs.append(c)
    return 1

would do something like
if c is a good configuation:
    goodconfigs.append(c)
    return 1
