1. 20 Nov, 2014 6 commits
    • Kevin Modzelewski's avatar
      AST interpreter cleanup · 062009c7
      Kevin Modzelewski authored
      - Move internal definitions from header to source file
      - Fix root_stack_set bug carried over from llvm_interpreter
      - Cut off access to the old llvm interpreter
      - Slightly tune the tiering thresholds
       - They seem too high but our LLVM compilation is overly expensive right now
       - Our AST interpreter is also somewhat slow due to its string handling
      062009c7
    • Kevin Modzelewski's avatar
      Bash the existing OSR code into submission for the new AST interpreter · a3f136e1
      Kevin Modzelewski authored
      Once we get the AST interpreter in, we can add resume-from-any-point
      functionality, which means that we can get rid of the current OSR system.
      Maybe we should have done that first, but I thought it would be easy
      to get the OSR stuff working.
      a3f136e1
    • Marius Wachtler's avatar
      WIP: AST Interpreter · a8606801
      Marius Wachtler authored
      a8606801
    • Kevin Modzelewski's avatar
    • Kevin Modzelewski's avatar
      More makefile magic · ca1626ce
      Kevin Modzelewski authored
      This time for the llvm configuration.
      
      Sometimes when updating the LLVM directory, we need to reconfigure things.
      We don't know that until after we update it, though, but Make will decide
      at the beginning whether it needs to be updated or not.  We could always
      reconfigure every time we update LLVM (might be ok), or add a helper
      target that recursively calls Make after the updating is done (what this
      patch does).
      
      This should fix those "C compiler can't generate executables" errors that
      come from running two copies of the configure script in parallel.
      ca1626ce
    • Kevin Modzelewski's avatar
      Fix the behavior of the default print destination · e993a28b
      Kevin Modzelewski authored
      Ie if you override sys.stdout, prints without an explicit destination
      will go to the new location.
      
      Also sneak in a couple other bugfixes.
      e993a28b
  2. 19 Nov, 2014 6 commits
  3. 16 Nov, 2014 1 commit
  4. 15 Nov, 2014 2 commits
  5. 14 Nov, 2014 8 commits
  6. 13 Nov, 2014 5 commits
  7. 12 Nov, 2014 1 commit
  8. 11 Nov, 2014 4 commits
  9. 10 Nov, 2014 6 commits
    • Kevin Modzelewski's avatar
      Enable runtime ics · fbfe2bfa
      Kevin Modzelewski authored
      fbfe2bfa
    • Kevin Modzelewski's avatar
      Add 'runtime ics' to improve C++ runtime speed · 191b46b3
      Kevin Modzelewski authored
      An experimental way of making the runtime faster.  Previously, the C++
      runtime was much slower than pure-Python code, since the Python code
      can use the JIT to improve performance (through inline caches and type
      speculation).  This commit adds "runtime ics", which are out-of-band
      patchpoints that we can allocate from C++.  We insert them into the
      same patchpoint system that gets used by the main JIT pipeline, so
      they get rewritten like any other patchpoint, but the lifetime and use
      gets controlled by the C++ code.
      
      The trickiest part is getting the newly-allocated instruction regions
      to work with our exception handling; to make this work we have to emit
      .eh_frame sections.  (A custom libunwind-based exception unwinder
      might not have this requirement.)
      
      Otherwise it feels like a decent approach.  Right now just using it to
      implement class slots and then only using them in the pyElements
      iterator; it's probably not the most direct or efficient way of
      implementing that particular feature, but it has the benefit of being
      general and being useful for things such as binops which are not
      directly expressible in terms of class slots.
      
      This commit adds the support without turning the feature on (next
      commit will turn it on), since there are a number of other changes
      needed.
      191b46b3
    • Kevin Modzelewski's avatar
      Change link strategy: set rpath instead of linking some libs statically · 2f805d25
      Kevin Modzelewski authored
      Hopefully this doesn't break things for people trying non-default
      toolchains, but it might.
      
      We were previously using -static-libstdc++ to make sure that we would
      find the right libstdc++.  I noticed that we weren't getting the right
      version of libgcc_s (using the system one instead of the freshly-built
      one), so use rpath for now.
      2f805d25
    • Kevin Modzelewski's avatar
      Don't need copyright assignment here · 444ac6e4
      Kevin Modzelewski authored
      444ac6e4
    • Kevin Modzelewski's avatar
      Merge pull request #210 from vinzenz/pypa-ast-test · fc87306c
      Kevin Modzelewski authored
      AST Compare tests libpypa vs cpython
      fc87306c
    • Vinzenz Feenstra's avatar
      Pypa vs Python parser tests · 3b536b7d
      Vinzenz Feenstra authored
      Signed-off-by: default avatarVinzenz Feenstra <evilissimo@gmail.com>
      3b536b7d
  10. 08 Nov, 2014 1 commit