An error occurred fetching the project authors.
  1. 13 May, 2014 1 commit
    • Kevin Modzelewski's avatar
      Run clang-format ("make format") on the codebase · daefbbb6
      Kevin Modzelewski authored
      Changed the indentation of pretty much the entire codebase.
      
      It did some things that I don't like that seem not configurable,
      but overall it seems like an improvement, and nice to have a
      canonical format going forward.
      daefbbb6
  2. 05 May, 2014 3 commits
  3. 30 Apr, 2014 1 commit
  4. 29 Apr, 2014 1 commit
  5. 24 Apr, 2014 1 commit
    • Kevin Modzelewski's avatar
      Rudimentary importing support · 4b90a4a3
      Kevin Modzelewski authored
      Doesn't handle packages or anything other than importing a .py file
      (ex zip import, .so, .pyc), but has some basic support for
      sys.path and sys.modules.
      4b90a4a3
  6. 22 Apr, 2014 1 commit
  7. 21 Apr, 2014 2 commits
  8. 19 Apr, 2014 1 commit
  9. 18 Apr, 2014 3 commits
  10. 15 Apr, 2014 1 commit
    • Kevin Modzelewski's avatar
      List comprehension support · 92117aab
      Kevin Modzelewski authored
      Should support:
      - multiple comprehensions
      - multiple if conditions
      - nested control flow expressions
      - OSR'ing from the list comprehension
      
      Though it tends to hit the OSR bug in the previous commit.
      
      Some extra changes that could have been split out:
      - use pointers-to-const instead of references-to-const for attribute-name passing,
        to make it harder to bind to a temporary name that will go away.
      - add a 'cls_only' flag to getattr / getattrType to not have to special-case clsattrs
        (or simply get it wrong, in the case of getattrType)
      92117aab
  11. 11 Apr, 2014 1 commit
    • Kevin Modzelewski's avatar
      Fairly large refactor: do much more during the CFG lowering. · a404585d
      Kevin Modzelewski authored
      In particular, lower all control-flow-involving expressions (such as boolops,
      list comprehensions, if expressions) into actual control flow.  This requires
      unfolding the AST into a flat structure, since the control-flow-expression can
      be nested inside other expressions, including other control-flow-expressions.
      
      The IRGenerator was doing this before, but was leading to duplication because
      it's very similar to what the CFG generator already has to do.
      
      Doing this earlier in the pipeline means that more analysis passes can work on
      the lowered expressions, rather than having to be taught how they work.  In
      particular, the name analysis does not need to have to special case the fact
      that list comprehensions may set names -- but aren't guaranteed to if they don't
      get executed or the iterator is empty.  I tried implementing list comprehensions
      without doing this, and a bunch of the work was in reimplementing the logic that
      the analyzers already implement.
      
      As a side benefit, deopts become much easier since the AST is already unfolded;
      this change gets rid of the messy fake-variable-setting way that the IRGenerator
      was unfolding the AST to get this same effect.
      a404585d
  12. 03 Apr, 2014 2 commits