• Kevin Modzelewski's avatar
    Rearrange some class creation and initialization functions · dad2675f
    Kevin Modzelewski authored
    Our class-creation code is getting pretty unruly, since there
    are four places we can create new classes:
    1) extension classes
    2) Python-defined classes
    3) builtin-defined classes
    4) classes created during bootstrapping
    
    Then, there are multiple different sets of initialization functions
    that can be called, each of which initializes different sets of the
    class attributes.  It's not easy to tell what a given initialization
    function should actually initialize.
    
    This change just cleans this up slightly: it renames PystonType_Ready
    to commonClassSetup to hopefully be more clear about its goal, as well
    as adds a BoxedClass::finishInitialization() function.
    
    It also moves some work out of the BoxedClass() constructor, since
    this causes issues because it happens before the BoxedHeapClass()
    constructor runs, which sets certain class slots that affect other
    parts of class initialization.
    
    Things are still pretty complicated but this should help with the
    multiple inheritance changes that are coming.
    dad2675f
types.cpp 54 KB