1. 24 Mar, 2015 1 commit
  2. 23 Mar, 2015 3 commits
    • Michael Arntzenius's avatar
    • Michael Arntzenius's avatar
      Add & update tests for with blocks handling exceptions · 21b75ed0
      Michael Arntzenius authored
      - exceptions_test: exceptions_test now succeeds, unless we're JITting.
        It fails due to a bug in llvm codegen having to do with definedness
        analysis; see comment in emitBBs in irgen.cpp.
      
      - with_{class,functiondef}, try_{class,def}: Expose the same JIT bug
        that occurs in exceptions_test.
      
      - try_return_finally: We used to flip an internal assert in
        compareKeyset when JITting this test, but it's fixed now.
      
      - file_closed: Files have a `closed' attribute in Python, but not yet in
        Pyston.
      
      - finally_except: Our CFG pass had some corner case bugs when nesting a
        try/finally inside a try/except. This checks they're fixed.
      
      - try_continue: The CFG pass has a bug in its syntax error reporting.
      
      - with_continue, try_continue: Checks that `with'/`try'/`finally' handle
        syntax errors properly.
      
      - with_ctxclass_instance_attrs: Checks that we're accessing
        context-manager attributes on the context-manager's class, not the
        instance, when we run a `with'. As it turns out, our AST interpreter
        has a bug in ClsAttribute (I think) which means that we don't. Our JIT
        works ok, though.
      
      - with_ctxclass_order_of_access: Checks that we're accessing
        context-manager attributes in the right order when we run a `with',
        which we are.
      
      - with_file: Our `file' object runtime previously didn't support `with'
        properly. This checks that files work with `with'.
      21b75ed0
    • Michael Arntzenius's avatar
      Makefile: add TAGS generation · 4216e6a6
      Michael Arntzenius authored
      4216e6a6
  3. 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
  4. 02 Mar, 2015 14 commits
  5. 01 Mar, 2015 1 commit
  6. 28 Feb, 2015 8 commits
  7. 27 Feb, 2015 7 commits