1. 03 Mar, 2015 6 commits
    • Kevin Modzelewski's avatar
      Merge branch 'multiple_inheritance' · 39859d79
      Kevin Modzelewski authored
      39859d79
    • Kevin Modzelewski's avatar
      Support multiple inheritance · fee6818c
      Kevin Modzelewski authored
      The core functionality is to calculate and store tp_mro and tp_bases
      instead of just tp_base.  This gives the runtime a bit harder of a
      time to bootstrap itself since now a fully-built class depends on
      a few more classes, so the bootstrapping section got larger:
      - object_cls (base of the tp_base hierarchy)
      - type_cls (base of the metaclass hierarchy)
      - str_cls (for ht_name)
      - tuple_cls (for tp_mro)
      - list_cls (for calculating the mro)
      
      There were a few places that needed to be updated now that we have
      multiple inheritance:
      - typeLookup()
      - isSubclass()
      - typeNew()
      - super()
      
      This change doesn't even attempt to add multiple inheritance rules
      around old-style classes.
      fee6818c
    • Kevin Modzelewski's avatar
      A number of random improvements that will be needed for multiple inheritance · 8780a2bb
      Kevin Modzelewski authored
      While most of this code is unexercised with just this commit, I wanted
      to add it so that it's more clear what the multiple inheritance changes
      actually are.
      8780a2bb
    • Kevin Modzelewski's avatar
      Remove the -c flag from more places · a635223f
      Kevin Modzelewski authored
      a635223f
    • 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
    • Kevin Modzelewski's avatar
      Merge pull request #340 from rntz/master · 53dc9612
      Kevin Modzelewski authored
      add tests for "[] = []", "2 = 2"; currently we core dump on these
      53dc9612
  2. 02 Mar, 2015 14 commits
  3. 01 Mar, 2015 1 commit
  4. 28 Feb, 2015 8 commits
  5. 27 Feb, 2015 11 commits