Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP]we can use Cython 0.25 without modification now #1374

Open
wants to merge 4,901 commits into
base: master
Choose a base branch
from
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Jul 14, 2016

  1. Configuration menu
    Copy the full SHA
    b9ab979 View commit details
    Browse the repository at this point in the history
  2. Merge pull request pyston#1295 from undingen/release051

    docker: we are now using cython 0.24 + update readme for 0.5.1 release
    undingen authored Jul 14, 2016
    Configuration menu
    Copy the full SHA
    abb4b13 View commit details
    Browse the repository at this point in the history
  3. Bump version numbers

    undingen committed Jul 14, 2016
    Configuration menu
    Copy the full SHA
    fc7e22e View commit details
    Browse the repository at this point in the history
  4. Merge pull request pyston#1296 from undingen/bump_06

    Bump version numbers
    undingen authored Jul 14, 2016
    Configuration menu
    Copy the full SHA
    ea8cd1d View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2016

  1. Add missing build_docker.sh

    kmod committed Jul 15, 2016
    Configuration menu
    Copy the full SHA
    536fd62 View commit details
    Browse the repository at this point in the history
  2. fix duplicate docker builds

    kmod committed Jul 15, 2016
    Configuration menu
    Copy the full SHA
    b4b69eb View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ae07536 View commit details
    Browse the repository at this point in the history
  4. Add sq_slots & mp_slots to instance (issue pyston#1197)

    sizeoftank committed Jul 15, 2016
    Configuration menu
    Copy the full SHA
    0c37fa0 View commit details
    Browse the repository at this point in the history

Commits on Jul 18, 2016

  1. str: use cpythons [r]partition

    it support non str separators
    fixes pyston#1297
    undingen committed Jul 18, 2016
    Configuration menu
    Copy the full SHA
    3dc94a1 View commit details
    Browse the repository at this point in the history
  2. Merge pull request pyston#1299 from undingen/fix_unicode_partition

    str: use cpythons [r]partition
    undingen authored Jul 18, 2016
    Configuration menu
    Copy the full SHA
    f71d5b3 View commit details
    Browse the repository at this point in the history
  3. Merge pull request pyston#1294 from sizeoftank/pr_instance_sqslots_mp…

    …slots_issue1197
    
    Add sq_slots & mp_slots to instance (issue pyston#1197)
    undingen authored Jul 18, 2016
    Configuration menu
    Copy the full SHA
    6a33d15 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    8c5a865 View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2016

  1. Have function.func_globals always be dict-like

    Internally we store it as either-dict-or-module, but when we expose
    it to Python it needs to be given back as a mapping.  I looked briefly
    into switching the internal representation, but that seemed like a much
    more invasive change.
    
    Also, add a pytest test that exposed this issue.
    kmod committed Jul 19, 2016
    Configuration menu
    Copy the full SHA
    7625b86 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5e33fe6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2386a30 View commit details
    Browse the repository at this point in the history
  4. Update test expected counts

    kmod committed Jul 19, 2016
    Configuration menu
    Copy the full SHA
    ffa3301 View commit details
    Browse the repository at this point in the history
  5. Merge pull request pyston#1300 from kmod/func_globals

    Have function.func_globals always be dict-like
    kmod authored Jul 19, 2016
    Configuration menu
    Copy the full SHA
    d150b6e View commit details
    Browse the repository at this point in the history

Commits on Jul 20, 2016

  1. Merge pull request pyston#1243 from undingen/tp_str

    implement tp_str and tp_repr for more of our builtin types
    undingen authored Jul 20, 2016
    Configuration menu
    Copy the full SHA
    48ec63a View commit details
    Browse the repository at this point in the history
  2. add the _bisect module

    + fix a leak in PyList_Insert
    undingen committed Jul 20, 2016
    Configuration menu
    Copy the full SHA
    631bd89 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ceb3eb5 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    2974bf3 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    349c4d4 View commit details
    Browse the repository at this point in the history
  6. Merge pull request pyston#1305 from undingen/small_optimizations

    add _bisect, always_use_version support CAPI, set some frequent accessed slots
    undingen authored Jul 20, 2016
    Configuration menu
    Copy the full SHA
    ea2dec6 View commit details
    Browse the repository at this point in the history
  7. Rename pure None to pyston_None, and use Py_None as much as possible.

    When try to support tk. The Py_None is a wrapper of pyston `None`. It
    will conflict with other library's None. So rename the pure pyston
    `None` to pyston_None. And use Py_None instead pyston_None when
    possible. Just like dropbox#1231 for Py_True and Py_False
    Boxiang Sun committed Jul 20, 2016
    Configuration menu
    Copy the full SHA
    bd338c9 View commit details
    Browse the repository at this point in the history
  8. Add ignore_enviroment attribute to sys.flags

    Pyston already has Py_IgnoreEnvironmentFlag, just add it to sys.flags.
    Boxiang Sun committed Jul 20, 2016
    Configuration menu
    Copy the full SHA
    a11792b View commit details
    Browse the repository at this point in the history
  9. This test is passed

    Boxiang Sun committed Jul 20, 2016
    Configuration menu
    Copy the full SHA
    5336595 View commit details
    Browse the repository at this point in the history
  10. long: dealloc gmp memory

    undingen committed Jul 20, 2016
    Configuration menu
    Copy the full SHA
    3e64ec6 View commit details
    Browse the repository at this point in the history
  11. Merge pull request pyston#1303 from Daetalus/Py_None

    Replace None with Py_None and some other fixing.
    undingen authored Jul 20, 2016
    Configuration menu
    Copy the full SHA
    513bc9b View commit details
    Browse the repository at this point in the history

Commits on Jul 21, 2016

  1. Merge pull request pyston#1307 from undingen/fix_long_leak

    long: dealloc gmp memory
    kmod authored Jul 21, 2016
    Configuration menu
    Copy the full SHA
    d7fa6e8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    40fa7ef View commit details
    Browse the repository at this point in the history
  3. Merge pull request pyston#1301 from sizeoftank/compare_ordering_issue…

    …1190
    
    Fix extra nonzero call for chained comparisons pyston#1190
    kmod authored Jul 21, 2016
    Configuration menu
    Copy the full SHA
    99719a4 View commit details
    Browse the repository at this point in the history
  4. generator: reduce number of c++ exceptions

    Adds a few C API paths plus sets tp_iternext and tpp_hasnext
    undingen committed Jul 21, 2016
    Configuration menu
    Copy the full SHA
    d9b5310 View commit details
    Browse the repository at this point in the history

Commits on Jul 22, 2016

  1. Merge pull request pyston#1306 from undingen/generator_opt

    generator optimizations
    undingen authored Jul 22, 2016
    Configuration menu
    Copy the full SHA
    82c402a View commit details
    Browse the repository at this point in the history

Commits on Jul 25, 2016

  1. Configuration menu
    Copy the full SHA
    cd29133 View commit details
    Browse the repository at this point in the history

Commits on Jul 26, 2016

  1. Configuration menu
    Copy the full SHA
    57c801a View commit details
    Browse the repository at this point in the history

Commits on Jul 27, 2016

  1. Merge pull request pyston#1249 from aisk/cpython-abstract

    use cpython's abstract.c instead of src/capi/abstract.cpp
    undingen authored Jul 27, 2016
    Configuration menu
    Copy the full SHA
    2741096 View commit details
    Browse the repository at this point in the history

Commits on Jul 29, 2016

  1. Some updates in test

    Boxiang Sun committed Jul 29, 2016
    Configuration menu
    Copy the full SHA
    2bdc898 View commit details
    Browse the repository at this point in the history
  2. Copy listobject.c from CPython 2.7

    Boxiang Sun committed Jul 29, 2016
    Configuration menu
    Copy the full SHA
    d84105f View commit details
    Browse the repository at this point in the history

Commits on Jul 30, 2016

  1. Configuration menu
    Copy the full SHA
    6b0f785 View commit details
    Browse the repository at this point in the history

Commits on Jul 31, 2016

  1. Configuration menu
    Copy the full SHA
    c7b8aa6 View commit details
    Browse the repository at this point in the history

Commits on Aug 1, 2016

  1. Support empty lines on the repl

    They end up generating "pass" statements with a lineno of 0, which
    trips an assert later on.  This commit just sets them to have a lineno
    of 1.
    
    I'm not sure how to test this, since piping into stdin is supposed to
    be treated as a file (not as the repl).  Though, we get that wrong right now.
    kmod committed Aug 1, 2016
    Configuration menu
    Copy the full SHA
    b80e9dc View commit details
    Browse the repository at this point in the history
  2. Merge pull request pyston#1313 from kmod/repl_empty

    Support empty lines on the repl
    kmod authored Aug 1, 2016
    Configuration menu
    Copy the full SHA
    586a8c6 View commit details
    Browse the repository at this point in the history

Commits on Aug 2, 2016

  1. Merge pull request pyston#1312 from aisk/sys_flags

    using cpython's `sys.flags` inplementation
    kmod authored Aug 2, 2016
    Configuration menu
    Copy the full SHA
    10911d6 View commit details
    Browse the repository at this point in the history
  2. fixes pyston#1191 evaluation order for dict operations.

    sizeoftank committed Aug 2, 2016
    Configuration menu
    Copy the full SHA
    7895da8 View commit details
    Browse the repository at this point in the history
  3. Merge pull request pyston#1311 from aisk/pyobject_format

    enable `PyObject_Format` in `from_cpython/Objects/abstract.c`
    undingen authored Aug 2, 2016
    Configuration menu
    Copy the full SHA
    84b0c7b View commit details
    Browse the repository at this point in the history
  4. Merge pull request pyston#1302 from sizeoftank/literals_order_issue1191

    Fix evaluation order for dict operations
    kmod authored Aug 2, 2016
    Configuration menu
    Copy the full SHA
    747c0ad View commit details
    Browse the repository at this point in the history
  5. hidden classes: split into subclasses to reduce memory consumption

    + use pyston::DenseMap to save a little more memory
    
    this saves about 5%-10% of peak memory on django
    undingen committed Aug 2, 2016
    Configuration menu
    Copy the full SHA
    cffc1b8 View commit details
    Browse the repository at this point in the history
  6. Merge pull request pyston#1314 from undingen/hiddenclass_opt

    hidden classes: split into subclasses to reduce memory consumption
    kmod authored Aug 2, 2016
    Configuration menu
    Copy the full SHA
    2713ecf View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    5d616f0 View commit details
    Browse the repository at this point in the history
  8. Merge pull request pyston#1315 from kmod/virtualenv

    Update to fewer-pyston-changes virtualenv
    kmod authored Aug 2, 2016
    Configuration menu
    Copy the full SHA
    e21a0dc View commit details
    Browse the repository at this point in the history

Commits on Aug 3, 2016

  1. ScopeNameUsage merge dicts into a single big one

    and change it to use a unordered_map because it uses less memory in this case and is faster
    (I assume because it does not have align the key value tuples)
    saves about 10% of peak memory on django
    undingen committed Aug 3, 2016
    Configuration menu
    Copy the full SHA
    75f70a6 View commit details
    Browse the repository at this point in the history
  2. Merge pull request pyston#1316 from undingen/smaller_scopenameusage

    ScopeNameUsage merge dicts into a single big one
    undingen authored Aug 3, 2016
    Configuration menu
    Copy the full SHA
    6f34e11 View commit details
    Browse the repository at this point in the history

Commits on Aug 4, 2016

  1. Switch to CPython list sort

    Comment out some part of listobject.c, use the CPython list sort and
    apply some changes to existed Pyston code.
    Boxiang Sun committed Aug 4, 2016
    Configuration menu
    Copy the full SHA
    bd39c49 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    bc3e118 View commit details
    Browse the repository at this point in the history
  3. Allow BoxedList::allocated is -1

    If BoxedList::allocated is -1, it means the items inside were changed.
    Some CPython list functions need this to check exceptions.
    Boxiang Sun committed Aug 4, 2016
    Configuration menu
    Copy the full SHA
    d7993a9 View commit details
    Browse the repository at this point in the history
  4. Merge pull request pyston#1310 from Daetalus/list_cpython

    Switch to CPython list sort(Not its list implementation)
    undingen authored Aug 4, 2016
    Configuration menu
    Copy the full SHA
    fca39ba View commit details
    Browse the repository at this point in the history

Commits on Aug 5, 2016

  1. delete the llvm module

    this saves a lot of memory
    undingen committed Aug 5, 2016
    Configuration menu
    Copy the full SHA
    d8f237b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c7bd5c4 View commit details
    Browse the repository at this point in the history
  3. Merge pull request pyston#1317 from undingen/delete_llvm_mod

    delete the llvm module after code generation
    undingen authored Aug 5, 2016
    Configuration menu
    Copy the full SHA
    d817b29 View commit details
    Browse the repository at this point in the history
  4. Merge pull request pyston#1318 from undingen/slot_info_clear

    ICSlotInfo: remove old invalidator entries
    undingen authored Aug 5, 2016
    Configuration menu
    Copy the full SHA
    81c744b View commit details
    Browse the repository at this point in the history

Commits on Aug 8, 2016

  1. Configuration menu
    Copy the full SHA
    53662aa View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d00c49a View commit details
    Browse the repository at this point in the history
  3. runtime ICs: use mmap instead of malloc for executable code

    we should not execute memory which got allocated using malloc
    (crashes a lot of memory inspection tools and also the windows subsystem for linux)
    I replaced it with a trivial mmap allocator which never unmaps the memory
    (but reuses the memory if a runtime ICs gets deleted)
    I think this is fine for now:
    - there are <100 runtime ICs used per test
    - because all runtime ICs have the same size there is no problem with fragmentation
    undingen committed Aug 8, 2016
    Configuration menu
    Copy the full SHA
    5cae67f View commit details
    Browse the repository at this point in the history
  4. use more std::unique_ptr

    This stuff got mostly already manually freed but I think this change makes it a little easier to see who owns what.
    undingen committed Aug 8, 2016
    Configuration menu
    Copy the full SHA
    9536f7f View commit details
    Browse the repository at this point in the history
  5. Merge pull request pyston#1321 from undingen/more_unique_ptr

    use more often std::unique_ptr
    undingen authored Aug 8, 2016
    Configuration menu
    Copy the full SHA
    daa0ffd View commit details
    Browse the repository at this point in the history
  6. don't handle functions containing lambdas with yields as generators

    I'm suprised we did not run into this earlier...
    undingen committed Aug 8, 2016
    Configuration menu
    Copy the full SHA
    802ad22 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    cdba6c2 View commit details
    Browse the repository at this point in the history
  8. Merge pull request pyston#1320 from KrishMunot/patch-4

    make inner links to dir format
    undingen authored Aug 8, 2016
    Configuration menu
    Copy the full SHA
    0d750da View commit details
    Browse the repository at this point in the history
  9. Merge pull request pyston#1323 from undingen/lambda_yield

    don't handle functions containing lambdas with yields as generators
    undingen authored Aug 8, 2016
    Configuration menu
    Copy the full SHA
    6f38dcc View commit details
    Browse the repository at this point in the history
  10. Merge pull request pyston#1322 from undingen/runime_ics_mmap

    runtime ICs: use mmap instead of malloc for executable code
    kmod authored Aug 8, 2016
    Configuration menu
    Copy the full SHA
    e4a492a View commit details
    Browse the repository at this point in the history

Commits on Aug 10, 2016

  1. pyston::DenseMap use PyObject_Malloc

    it is slighlty faster for small allocations and has the advantage that it is easier to track how much memory our python objects are using
    undingen committed Aug 10, 2016
    Configuration menu
    Copy the full SHA
    32fe213 View commit details
    Browse the repository at this point in the history
  2. revert pyston modification

    undingen committed Aug 10, 2016
    Configuration menu
    Copy the full SHA
    85a1c69 View commit details
    Browse the repository at this point in the history
  3. microoptimizations

    undingen committed Aug 10, 2016
    Configuration menu
    Copy the full SHA
    1206cf2 View commit details
    Browse the repository at this point in the history
  4. ICInvalidator use SmallPtrSet

    llvm::SmallPtrSet<ICSlotInfo*, 2> and std::unordered_set<ICSlotInfo*> have the same size
    but the SmallPtrSet has the advantage that it can already store 2 elements in there and does not allocate 10 elements in the constructor
    undingen committed Aug 10, 2016
    Configuration menu
    Copy the full SHA
    f6009c2 View commit details
    Browse the repository at this point in the history
  5. Merge pull request pyston#1324 from undingen/small_impr

    use PyObject_Malloc in pyston::DenseMap, smaller ICInvalidator, reduce malloc calls
    undingen authored Aug 10, 2016
    Configuration menu
    Copy the full SHA
    232557a View commit details
    Browse the repository at this point in the history

Commits on Aug 11, 2016

  1. Configuration menu
    Copy the full SHA
    4b096d9 View commit details
    Browse the repository at this point in the history
  2. SourceInfo: remove the AST stmt copy

    had to change AST_Expression to store a stmt instead of a expr but this has the advantage that memory managment is easier
    undingen committed Aug 11, 2016
    Configuration menu
    Copy the full SHA
    88f52b0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c22574f View commit details
    Browse the repository at this point in the history

Commits on Aug 12, 2016

  1. Merge pull request pyston#1325 from undingen/remove_body

    SourceInfo: remove the AST stmt copy, remove special handling of lambdas
    undingen authored Aug 12, 2016
    Configuration menu
    Copy the full SHA
    16210b7 View commit details
    Browse the repository at this point in the history
  2. bjit: fix memory corruption

    we used to destroy the ICInfo before all references to it got deleted.
    
    I run into this when using the glibc alloc instead of jemalloc
    undingen committed Aug 12, 2016
    Configuration menu
    Copy the full SHA
    bb18ac0 View commit details
    Browse the repository at this point in the history
  3. Merge pull request pyston#1326 from undingen/fix_memory_corruption

    bjit: fix memory corruption
    undingen authored Aug 12, 2016
    Configuration menu
    Copy the full SHA
    a4e6f09 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ceb6517 View commit details
    Browse the repository at this point in the history
  5. Merge pull request pyston#1327 from undingen/vreg_mem

    VRegInfo: reduce memory usage
    undingen authored Aug 12, 2016
    Configuration menu
    Copy the full SHA
    41ce5b1 View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2016

  1. Fix bad guard

    and add the test that exposed it.
    
    addGuard(obj) is dangerous because obj could be deallocated+reallocated
    in the same spot, which is what ended up happening here.
    kmod committed Aug 15, 2016
    Configuration menu
    Copy the full SHA
    a8b225a View commit details
    Browse the repository at this point in the history
  2. Fix all other uses of addGuard

    Hopefully this doesn't end up keeping things alive for too much
    extra time.
    kmod committed Aug 15, 2016
    Configuration menu
    Copy the full SHA
    06dd454 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3d9a839 View commit details
    Browse the repository at this point in the history
  4. Improve tear-down process slightly

    Since we are putting more things in the IC gc references,
    call GC again after clearing them.
    kmod committed Aug 15, 2016
    Configuration menu
    Copy the full SHA
    a79385d View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2016

  1. Configuration menu
    Copy the full SHA
    b9ad300 View commit details
    Browse the repository at this point in the history
  2. Merge pull request pyston#1328 from kmod/addguard_gcref

    Fix uses of addGuard(python_object)
    kmod authored Aug 16, 2016
    Configuration menu
    Copy the full SHA
    af9934e View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2016

  1. Configuration menu
    Copy the full SHA
    91aad8d View commit details
    Browse the repository at this point in the history
  2. EH: correctly deregister EH frames and cleanup the code

    - previously we never deregistered the EH frame from libunwind (which exposed a bug)
    - I removed the calls to register the EH info with gcc since we have our own unwinder which does not need this
    - cleaned up the code and fixed some small memory leaks
    undingen committed Aug 17, 2016
    Configuration menu
    Copy the full SHA
    d4b8c35 View commit details
    Browse the repository at this point in the history
  3. Merge pull request pyston#1330 from undingen/fix_eh_handling

    EH: correctly deregister EH frames and cleanup the code
    undingen authored Aug 17, 2016
    Configuration menu
    Copy the full SHA
    02e46a4 View commit details
    Browse the repository at this point in the history
  4. bjit: free codeblocks after tiering up to the LLVM jit

    we free now the code blocks after a recompile in the LLVM tier (except for OSR frames) because
    it is likely that we will not use the code anymore.
    - we have to make sure we are not currently executing any code we will delete that's why I added bjit_num_inside
    - there were some cases where we forgot to deregister stuff
    - when profiling we don't actually unmap the code in order to not brake profiling
    undingen committed Aug 17, 2016
    Configuration menu
    Copy the full SHA
    f4ea810 View commit details
    Browse the repository at this point in the history
  5. Merge pull request pyston#1329 from undingen/free_bjit_code

    free bjit code after LLVM codegen
    undingen authored Aug 17, 2016
    Configuration menu
    Copy the full SHA
    ce0a5dd View commit details
    Browse the repository at this point in the history
  6. string interning: make it slightly more space efficient

    We used to store the string content twice.
    This implementation makes use of DenseSet::find_as functionality where one can search using a different type.
    I was not sure if the special DenseMapInfo I had to create causes any problems so I choose to create a new source file
    for it so that it does not get picked up somewhere else.
    undingen committed Aug 17, 2016
    Configuration menu
    Copy the full SHA
    d713267 View commit details
    Browse the repository at this point in the history

Commits on Aug 18, 2016

  1. hidden classes: free classes of singleton type

    this fixes the huge (~350MB) leak in:
    for i in xrange(1000000):
        class C(object):
            pass
    undingen committed Aug 18, 2016
    Configuration menu
    Copy the full SHA
    d15906e View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2016

  1. Merge pull request pyston#1332 from undingen/free_singleton_hidden_cl…

    …asses
    
    hidden classes: free classes of singleton type
    undingen authored Aug 19, 2016
    Configuration menu
    Copy the full SHA
    7f10290 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    aa5fa65 View commit details
    Browse the repository at this point in the history
  3. Merge pull request pyston#1331 from undingen/mem_string_interning

    string interning: make it slightly more space efficient
    undingen authored Aug 19, 2016
    Configuration menu
    Copy the full SHA
    f74e9ee View commit details
    Browse the repository at this point in the history
  4. Merge pull request pyston#1333 from undingen/prefetch

    switch from the SSE prefetch to __builtin_prefetch
    undingen authored Aug 19, 2016
    Configuration menu
    Copy the full SHA
    e9ced45 View commit details
    Browse the repository at this point in the history

Commits on Aug 20, 2016

  1. Add cffi v1.7 test

    This new version is causing some issues for us
    kmod committed Aug 20, 2016
    Configuration menu
    Copy the full SHA
    7f5b72b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d7be509 View commit details
    Browse the repository at this point in the history
  3. Purge the old GRWL (gil-free) code

    It's time :(
    kmod committed Aug 20, 2016
    Configuration menu
    Copy the full SHA
    fe5fc74 View commit details
    Browse the repository at this point in the history
  4. Change _PyThreadState_Current handling

    Instead of having it always point to the thread-local threadstate object,
    it's a global that gets updated during context switches, like CPython does it.
    
    There are still a number of differences that should be refactored out, but
    I think this should bring us quite a bit closer to CPython's implementation.
    kmod committed Aug 20, 2016
    Configuration menu
    Copy the full SHA
    2a4e46e View commit details
    Browse the repository at this point in the history
  5. Get cffi-1.7 building

    kmod committed Aug 20, 2016
    Configuration menu
    Copy the full SHA
    61a7ab6 View commit details
    Browse the repository at this point in the history
  6. Small import safety improvement

    kmod committed Aug 20, 2016
    Configuration menu
    Copy the full SHA
    73bf315 View commit details
    Browse the repository at this point in the history

Commits on Aug 21, 2016

  1. Reduce cffi test size

    kmod committed Aug 21, 2016
    Configuration menu
    Copy the full SHA
    0f5f16a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    09470b2 View commit details
    Browse the repository at this point in the history
  3. Fix this set issue

    kmod committed Aug 21, 2016
    Configuration menu
    Copy the full SHA
    9b46190 View commit details
    Browse the repository at this point in the history
  4. Merge pull request pyston#1334 from kmod/threading

    Threading fixes to get cffi-1.7 working
    kmod authored Aug 21, 2016
    Configuration menu
    Copy the full SHA
    7c1ee4c View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2016

  1. Configuration menu
    Copy the full SHA
    b2a3fb2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    98af448 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    85b1b94 View commit details
    Browse the repository at this point in the history
  4. bjit: allocate 25% smaller codeblocks

    this does not hurt perf but still saves some memory
    undingen committed Aug 22, 2016
    Configuration menu
    Copy the full SHA
    8481459 View commit details
    Browse the repository at this point in the history
  5. Merge pull request pyston#1335 from undingen/minor_mem

    Misc memory size reductions
    undingen authored Aug 22, 2016
    Configuration menu
    Copy the full SHA
    0324606 View commit details
    Browse the repository at this point in the history
  6. MCJIT: free loaded objects

    This fixes the llvm tier memory consumption until we migrate to the ORC JIT which has better memory management.
    undingen committed Aug 22, 2016
    Configuration menu
    Copy the full SHA
    a36654a View commit details
    Browse the repository at this point in the history
  7. Merge pull request pyston#1336 from undingen/llvm_free_object_files

    MCJIT: free loaded objects
    undingen authored Aug 22, 2016
    Configuration menu
    Copy the full SHA
    76c7d50 View commit details
    Browse the repository at this point in the history
  8. remove libpypa

    Boxiang Sun committed Aug 22, 2016
    Configuration menu
    Copy the full SHA
    bd490b8 View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2016

  1. Change getMagic function to a constant and group the constants

    After remove libpypa, the function getMagic only return one string. So
    just use a char array constant instead a function.
    Boxiang Sun committed Aug 23, 2016
    Configuration menu
    Copy the full SHA
    a120b2a View commit details
    Browse the repository at this point in the history
  2. Merge pull request pyston#1337 from Daetalus/libpypa

    Remove libpypa parser
    undingen authored Aug 23, 2016
    Configuration menu
    Copy the full SHA
    0abee10 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    bedb3f3 View commit details
    Browse the repository at this point in the history
  4. store keywords names inside the AST

    solves a pointer reuse problem
    undingen committed Aug 23, 2016
    Configuration menu
    Copy the full SHA
    e4f5dd1 View commit details
    Browse the repository at this point in the history
  5. recordType: don't call recordType inside getattr rewrite path

    this is a duplicate - we will allready emit a call to recordType inside the bjit
    undingen committed Aug 23, 2016
    Configuration menu
    Copy the full SHA
    435131e View commit details
    Browse the repository at this point in the history
  6. llvm tier: remove type recorder usage

    while this removes some disabled features I'm not a big fan of having disabled stuff around
    because it will break and makes development harder.
    undingen committed Aug 23, 2016
    Configuration menu
    Copy the full SHA
    afec055 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    e790c69 View commit details
    Browse the repository at this point in the history
  8. remove dead code

    undingen committed Aug 23, 2016
    Configuration menu
    Copy the full SHA
    64961ca View commit details
    Browse the repository at this point in the history
  9. Merge pull request pyston#1338 from undingen/fix_pointer_reuse_problems

    Fix pointer reuse problems
    undingen authored Aug 23, 2016
    Configuration menu
    Copy the full SHA
    0814d21 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    0971100 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    49502e9 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    47d6b1e View commit details
    Browse the repository at this point in the history

Commits on Aug 25, 2016

  1. Undo all the places we changed installed paths

    We used to have a installed directory structure that mirrors
    our source structure.  This required changing quite a few pieces of CPython
    code to look in the new places (virtualenv, distutils, getpath.c, sysconfig).
    So, undo all those changes, and change our CMake configuration to install into
    the paths that CPython expects.
    
    Note: "the paths that CPython expects" is platform-dependent.  The paths I added
    here are based on the "posix" style that it supports.  The CPython code has platform-specific
    code to look in different places, and I guess the build system must have platform-specific
    knowledge of where to put it as well, but our CMake system will always put it in the linux variant.
    kmod committed Aug 25, 2016
    Configuration menu
    Copy the full SHA
    180c5bf View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3f5b4b8 View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2016

  1. Get rid of lib_pyston/

    The only things left in there were some old stubs.  We had added the stubs and then later
    added the real files; with the old directory structure the real files took precedence,
    but then with the new structure the stubs took precedence.
    
    Once those were deleted there wasn't anything left in lib_pyston
    kmod committed Aug 26, 2016
    Configuration menu
    Copy the full SHA
    83e57ca View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d333615 View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2016

  1. Merge pull request pyston#1341 from kmod/directories

    Undo all the places we changed installed paths
    kmod authored Aug 29, 2016
    Configuration menu
    Copy the full SHA
    75d7319 View commit details
    Browse the repository at this point in the history

Commits on Aug 30, 2016

  1. Fix leak check after path changes

    this check is not very robust :-(
    undingen committed Aug 30, 2016
    Configuration menu
    Copy the full SHA
    e379020 View commit details
    Browse the repository at this point in the history
  2. Merge pull request pyston#1343 from undingen/fix_leak_checker

    Fix leak check after path changes
    undingen authored Aug 30, 2016
    Configuration menu
    Copy the full SHA
    92fc9c3 View commit details
    Browse the repository at this point in the history
  3. Turn off implicit-function check in release mode

    I'm still hoping that we can keep this on in some way, because it continues to find issues.
    So let's try keeping it on for debug builds.
    
    I'm not sure if this is weakening the check enough (there may be other cases like scipy),
    but it's sounding like we need to have this check turned off in our releases regardless,
    such as issue pyston#1344.
    kmod committed Aug 30, 2016
    Configuration menu
    Copy the full SHA
    c5aa72a View commit details
    Browse the repository at this point in the history
  4. Properly throw ImportErrors on dlopen failure

    I think it'd be nicer to just abort() like we do here, but
    cffi is actually testing this behavior (that loading an invalid
    library causes an ImportError).
    
    This is being exposed now because before, the library would fail
    to compile due to -Werror=implicit-function-declaration and not even
    get to the loading step.
    kmod committed Aug 30, 2016
    Configuration menu
    Copy the full SHA
    9e1ed8a View commit details
    Browse the repository at this point in the history
  5. Merge pull request pyston#1345 from kmod/implicit_function_declaration

    Turn off implicit-function check in release mode
    kmod authored Aug 30, 2016
    Configuration menu
    Copy the full SHA
    0611d82 View commit details
    Browse the repository at this point in the history

Commits on Aug 31, 2016

  1. microptimization: reduce number of calls to BoxedFrame::handleFrameExit

    by decrefing frame_info->exc earlier this will less often be true:
    if (frame->ob_refcnt > 1)
        frame->handleFrameExit();
    undingen committed Aug 31, 2016
    Configuration menu
    Copy the full SHA
    b4ece35 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e432e29 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0be24ae View commit details
    Browse the repository at this point in the history
  4. Merge pull request pyston#1348 from undingen/fewer_handleFrameExit

    microptimizations: use DEFAULT_CLASS_SIMPLE, non gc code object, fewer handleFrameExit calls
    undingen authored Aug 31, 2016
    Configuration menu
    Copy the full SHA
    ea8890e View commit details
    Browse the repository at this point in the history

Commits on Sep 1, 2016

  1. Create all FunctionMetadatas for a module at once

    There are a bunch of interrelated changes in here that I couldn't really
    separate out.  Mostly the relate to saving data on the AST nodes: we store
    DerefInfo and closure info on the Name nodes, and store FunctionMetadata objects
    on AST nodes that create scopes.  And those FunctionMetadata objects now also
    store "ScopingResults", which is only the results from the ScopeInfo objects,
    not all the extra info those keep around in order to do deferred analysis.
    
    Once all this extra data is precomputed+stored, we can start freeing
    the ScopingAnalysis objects and all the related ScopeInfos.
    
    Future work:
    - Name node shouldn't store scoing info; this should be embedded in choice of BST nodes
    - Do pyc caching post-CFG
    - Memory management.
    - Continue to clean this all up.  I layered this change on top of the existing
      scoping and cfg systems, which reduced the amount of changes, but means that
      there is a potentially-unnecessary layer in the middle now.
    kmod committed Sep 1, 2016
    Configuration menu
    Copy the full SHA
    7eacfcd View commit details
    Browse the repository at this point in the history
  2. Merge pull request pyston#1349 from kmod/scoping

    Create all FunctionMetadatas for a module at once
    kmod authored Sep 1, 2016
    Configuration menu
    Copy the full SHA
    2783ab4 View commit details
    Browse the repository at this point in the history
  3. Make GCC 5.4 happy with those type casting

    GCC 5.4 will report those type castings are not legal.
    Daetalus committed Sep 1, 2016
    Configuration menu
    Copy the full SHA
    b470153 View commit details
    Browse the repository at this point in the history
  4. Use is_trivially_copy_constructible instead has_trivial_copy_constructor

    When update to gcc 5.4, it complain there has no
    has_trivial_copy_constructor, please see here: http://www.chpc-tech.com/EN/NewDevelopments/2015/15.04.23.gcc5.1.html
    So use standard c++ 11 type traits.
    Daetalus committed Sep 1, 2016
    Configuration menu
    Copy the full SHA
    102e352 View commit details
    Browse the repository at this point in the history
  5. Disable libunwind doc generation

    I think we don't need libunwind to generate doc. And libunwind will call
    latex2man and pdflatex to generate its doc. And this can not be disabled
    through command line. Please see here: https://bugzilla.mozilla.org/show_bug.cgi?id=738302
    Daetalus committed Sep 1, 2016
    Configuration menu
    Copy the full SHA
    b64c525 View commit details
    Browse the repository at this point in the history
  6. Merge pull request pyston#1350 from Daetalus/building_issue

    Let Pyston compatible with GCC 5.x
    undingen authored Sep 1, 2016
    Configuration menu
    Copy the full SHA
    d824030 View commit details
    Browse the repository at this point in the history
  7. Revert "Merge pull request pyston#1349 from kmod/scoping"

    This reverts commit 2783ab4, reversing
    changes made to ea8890e.
    kmod committed Sep 1, 2016
    Configuration menu
    Copy the full SHA
    111ca52 View commit details
    Browse the repository at this point in the history

Commits on Sep 2, 2016

  1. Merge pull request pyston#1351 from kmod/scoping_branch

    Revert "Merge pull request pyston#1349 from kmod/scoping"
    kmod authored Sep 2, 2016
    Configuration menu
    Copy the full SHA
    dc8e825 View commit details
    Browse the repository at this point in the history
  2. Get rid of FunctionMetadata

    Instead, merge it into BoxedCode.  This way we'll get refcounting
    of our codegen datastructures.
    
    I didn't do anything more than inline all of FunctionMetadata's fields
    into BoxedCode, and then delete the FunctionMetadata object.
    kmod committed Sep 2, 2016
    Configuration menu
    Copy the full SHA
    1b10176 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    bcd8064 View commit details
    Browse the repository at this point in the history
  4. Get rid of source->ast

    kmod committed Sep 2, 2016
    Configuration menu
    Copy the full SHA
    2affae9 View commit details
    Browse the repository at this point in the history
  5. Move doc+name from the function ctor to code ctor

    since this is where it's supposed to live.  The function ctor
    copies these fields from the code object.
    kmod committed Sep 2, 2016
    Configuration menu
    Copy the full SHA
    798c4da View commit details
    Browse the repository at this point in the history
  6. Remove empty code.h file

    kmod committed Sep 2, 2016
    Configuration menu
    Copy the full SHA
    b2d50bd View commit details
    Browse the repository at this point in the history
  7. Make gcc happy

    kmod committed Sep 2, 2016
    Configuration menu
    Copy the full SHA
    5f193e2 View commit details
    Browse the repository at this point in the history
  8. Make clang+gcc happy

    kmod committed Sep 2, 2016
    Configuration menu
    Copy the full SHA
    0055cde View commit details
    Browse the repository at this point in the history
  9. Merge pull request pyston#1353 from kmod/noastref

    A bunch of function metadata refactorings
    kmod authored Sep 2, 2016
    Configuration menu
    Copy the full SHA
    362a327 View commit details
    Browse the repository at this point in the history

Commits on Sep 5, 2016

  1. Configuration menu
    Copy the full SHA
    e4e2371 View commit details
    Browse the repository at this point in the history
  2. Merge pull request pyston#1355 from undingen/_heapq

    fix a bug where compare could ignore CAPI exceptions and add _heapq
    undingen authored Sep 5, 2016
    Configuration menu
    Copy the full SHA
    6ca5522 View commit details
    Browse the repository at this point in the history

Commits on Sep 6, 2016

  1. Copy ast->bst

    And remove some extraneous things from bst
    kmod committed Sep 6, 2016
    Configuration menu
    Copy the full SHA
    42a07f2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5e76425 View commit details
    Browse the repository at this point in the history
  3. CFG changes

    kmod committed Sep 6, 2016
    Configuration menu
    Copy the full SHA
    763cc65 View commit details
    Browse the repository at this point in the history
  4. Clean up some dead code from the cfg changes

    And make BST_arguments a bit safer by removing misleading fields.
    kmod committed Sep 6, 2016
    Configuration menu
    Copy the full SHA
    3b413f5 View commit details
    Browse the repository at this point in the history
  5. Merge pull request pyston#1356 from kmod/bst

    BST: a bytecode-like AST
    kmod authored Sep 6, 2016
    Configuration menu
    Copy the full SHA
    48eb8f3 View commit details
    Browse the repository at this point in the history
  6. Revert "Revert "Merge pull request pyston#1349 from kmod/scoping""

    This reverts commit 111ca52.
    kmod committed Sep 6, 2016
    Configuration menu
    Copy the full SHA
    6101f68 View commit details
    Browse the repository at this point in the history
  7. Merge commit '6101f68' into ast

    kmod committed Sep 6, 2016
    Configuration menu
    Copy the full SHA
    aba408b View commit details
    Browse the repository at this point in the history
  8. Minor improvements

    kmod committed Sep 6, 2016
    Configuration menu
    Copy the full SHA
    1ac2322 View commit details
    Browse the repository at this point in the history
  9. Remove conflicting command-line flags

    We mostly did a good job of picking flags that CPython doesn't use (or at least, that
    its manpage doesn't advertise), but there are a couple that need to be changed.
    
    One is for TRAP which is a feature I don't even remember anymore, so that's removed.
    
    The other is for stats -- '-s' is now changed to '-T'.  This will be annoying to change
    on the perf-tracking side.
    kmod committed Sep 6, 2016
    Configuration menu
    Copy the full SHA
    ad61645 View commit details
    Browse the repository at this point in the history

Commits on Sep 7, 2016

  1. Merge pull request pyston#1359 from kmod/metaserver_merge

    Some minor improvements from the metaserver branch
    kmod authored Sep 7, 2016
    Configuration menu
    Copy the full SHA
    d1e16e8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    50d62a1 View commit details
    Browse the repository at this point in the history
  3. Add some Pyston modification to from_cpython/setup.py

    Disable some extensions, part of because they were handled by
    from_cpython/CMakefile.txt, part of beacuase we need to enable it in
    seperated PR. Such as tk extension.
    
    And also add some modifications to let extension can find the source
    code in correct path.
    Daetalus committed Sep 7, 2016
    Configuration menu
    Copy the full SHA
    e132792 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9ef680b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    f2365ec View commit details
    Browse the repository at this point in the history
  6. BST: remove column field

    undingen committed Sep 7, 2016
    Configuration menu
    Copy the full SHA
    1228d98 View commit details
    Browse the repository at this point in the history
  7. Merge pull request pyston#1360 from undingen/astbst_cleanup

    AST & BST: remove unnecessary nodes and fields + little less memory usage
    undingen authored Sep 7, 2016
    Configuration menu
    Copy the full SHA
    0dea31b View commit details
    Browse the repository at this point in the history
  8. AST: deallocate nodes

    Use a bumpptr allocator to keep track of the AST nodes.
    I could not use the LLVM one because it does not call the destructor on allocated elements.
    undingen committed Sep 7, 2016
    Configuration menu
    Copy the full SHA
    6926ccf View commit details
    Browse the repository at this point in the history

Commits on Sep 8, 2016

  1. Merge pull request pyston#1361 from undingen/delete_ast_nodes

    AST: deallocate nodes
    undingen authored Sep 8, 2016
    Configuration menu
    Copy the full SHA
    128e2b0 View commit details
    Browse the repository at this point in the history
  2. Merge pull request pyston#1358 from dropbox/ast

    Merge AST/BST work into master
    undingen authored Sep 8, 2016
    Configuration menu
    Copy the full SHA
    c98fb20 View commit details
    Browse the repository at this point in the history
  3. Merge pull request pyston#1354 from Daetalus/building_issue

    Switch to CPython way to build standard C extensions.
    kmod authored Sep 8, 2016
    Configuration menu
    Copy the full SHA
    6681b73 View commit details
    Browse the repository at this point in the history

Commits on Sep 10, 2016

  1. Be able to run an unmodified virtualenv

    Well, really an unmodified pip+setuptools
    
    The last piece is py_compile.  Just shim that back into our parser
    to get the parser to write out a pyc file.
    
    It seems like we don't even need this -- most callers of py_compile
    (or at least, virtualenv), don't seem to care if the compile step
    passed or failed.  But while we're here, try to support it.
    kmod committed Sep 10, 2016
    Configuration menu
    Copy the full SHA
    64d4069 View commit details
    Browse the repository at this point in the history
  2. Need to handle the zip_safe issues as well

    Do it by patching distutils, which setuptools I guess builds on
    kmod committed Sep 10, 2016
    Configuration menu
    Copy the full SHA
    928d5de View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    bcd9793 View commit details
    Browse the repository at this point in the history
  4. Fix test_bz2.py

    Fix some corner cases in the irgen refcounter, and fix a refcount
    issue in the bz2 module itself.
    kmod committed Sep 10, 2016
    Configuration menu
    Copy the full SHA
    450242d View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    526a0fc View commit details
    Browse the repository at this point in the history
  6. We're failing some tests in CI due to recursion depth issues

    Which are quite hard to reproduce because they depend on the details
    of the C stack.
    
    Anyway, we should probably start using the recursion-depth-tracking functions
    in more place, rather than getting segfaults.  There are a lot of CPython tests
    that test for recursion-depth-checking.
    kmod committed Sep 10, 2016
    Configuration menu
    Copy the full SHA
    7747b4b View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    de4d0a3 View commit details
    Browse the repository at this point in the history
  8. Merge pull request pyston#1340 from kmod/cpython_tests

    These cpython tests are working now
    kmod authored Sep 10, 2016
    Configuration menu
    Copy the full SHA
    3a41df7 View commit details
    Browse the repository at this point in the history
  9. Merge pull request pyston#1357 from kmod/unmodified_venv

    Be able to run an unmodified virtualenv
    kmod authored Sep 10, 2016
    Configuration menu
    Copy the full SHA
    91b65a3 View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2016

  1. Configuration menu
    Copy the full SHA
    5c5bf96 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    26048a7 View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2016

  1. Merge pull request pyston#1362 from Daetalus/building_issue

    [WIP]Let GCC 5 happy and update the CPython test notes
    kmod authored Sep 12, 2016
    Configuration menu
    Copy the full SHA
    9042baf View commit details
    Browse the repository at this point in the history
  2. Add a bunch of missing symlinks

    We symlink the CPython tests into our tests directory to control which
    ones we will attempt to run.  A bunch of the tests though need other
    test files in order to run, and we hadn't symlinked those in.
    
    At some point we should switch to symlinking the Lib/test directory instead
    of individual files, but for now this helps.
    kmod committed Sep 12, 2016
    Configuration menu
    Copy the full SHA
    4af0656 View commit details
    Browse the repository at this point in the history
  3. Make -q to tester.py args

    kmod committed Sep 12, 2016
    Configuration menu
    Copy the full SHA
    332539d View commit details
    Browse the repository at this point in the history
  4. Improve recursion-depth checking a bit

    Main difference is lowering the recursion-depth on unoptimized
    builds, since we need more stack space per python frame.
    kmod committed Sep 12, 2016
    Configuration menu
    Copy the full SHA
    715ace3 View commit details
    Browse the repository at this point in the history
  5. Some minor improvements

    kmod committed Sep 12, 2016
    Configuration menu
    Copy the full SHA
    ee91219 View commit details
    Browse the repository at this point in the history
  6. Rename our '-O' flag to '-L'

    to not conflict with CPython's -O.  They're quite similar
    (increase optimization level), but some tests ask for -O when
    they don't really want our version of it.
    kmod committed Sep 12, 2016
    Configuration menu
    Copy the full SHA
    4a8040c View commit details
    Browse the repository at this point in the history
  7. ulimit: change from RSS to virtual size

    For some reason the max-RSS limit doesn't seem to be kicking in.
    Switch to putting a limit on the virtual size instead, and bump the
    limit from 500MB to 1.5GB.
    kmod committed Sep 12, 2016
    Configuration menu
    Copy the full SHA
    bc10d36 View commit details
    Browse the repository at this point in the history
  8. test_itertools was failing because of a version mismatch between the …

    …test and the implementation we copied
    kmod committed Sep 12, 2016
    Configuration menu
    Copy the full SHA
    f17f3b0 View commit details
    Browse the repository at this point in the history
  9. Get test_thread.py working

    kmod committed Sep 12, 2016
    Configuration menu
    Copy the full SHA
    032b0dd View commit details
    Browse the repository at this point in the history
  10. Get test_coding.py working

    kmod committed Sep 12, 2016
    Configuration menu
    Copy the full SHA
    b2b748e View commit details
    Browse the repository at this point in the history
  11. Get test_socket working (better)

    kmod committed Sep 12, 2016
    Configuration menu
    Copy the full SHA
    ac1fa8f View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    7f1d9eb View commit details
    Browse the repository at this point in the history
  13. Change these to absolute imports

    needed because of how we symlink things
    kmod committed Sep 12, 2016
    Configuration menu
    Copy the full SHA
    3e957ac View commit details
    Browse the repository at this point in the history
  14. Took a pass over most of the tests

    ie did some quick debugging and added test notes
    kmod committed Sep 12, 2016
    Configuration menu
    Copy the full SHA
    3108e45 View commit details
    Browse the repository at this point in the history
  15. Fix some issues I created

    Two of these tests pass in release mode but not in debug (one is a timeout, the other is an assertion)
    Two of them are failing in both and I don't know why I marked them as succeeding.
    kmod committed Sep 12, 2016
    Configuration menu
    Copy the full SHA
    2522afa View commit details
    Browse the repository at this point in the history

Commits on Sep 13, 2016

  1. Split test_lib2to3 into small and large variants

    and only run the small variant in debug mode to avoid timeouts.
    Previously I had tried splitting it in half, but it looks like that's
    both not enough to avoid timeouts, and it also has a race condition when
    trying to run two copies of the test at the same time (one will read the
    not-fully-written pickled output of the other).
    kmod committed Sep 13, 2016
    Configuration menu
    Copy the full SHA
    4a1b44e View commit details
    Browse the repository at this point in the history
  2. Fix lint issue

    kmod committed Sep 13, 2016
    Configuration menu
    Copy the full SHA
    a2c2b89 View commit details
    Browse the repository at this point in the history
  3. Merge pull request pyston#1363 from kmod/cpython_tests

    Take a pass over the CPython tests
    kmod authored Sep 13, 2016
    Configuration menu
    Copy the full SHA
    75562e5 View commit details
    Browse the repository at this point in the history
  4. Change section memory manager to fix performance problem in long-runn…

    …ing SectionMemoryManagers
    corona10 committed Sep 13, 2016
    Configuration menu
    Copy the full SHA
    f60f678 View commit details
    Browse the repository at this point in the history

Commits on Sep 14, 2016

  1. Configuration menu
    Copy the full SHA
    e5b3483 View commit details
    Browse the repository at this point in the history

Commits on Sep 19, 2016

  1. Fix docs about stats option

    sh92 committed Sep 19, 2016
    Configuration menu
    Copy the full SHA
    30e8e53 View commit details
    Browse the repository at this point in the history
  2. Merge pull request pyston#1369 from sh92/fixDocs

    Fix docs about stats option
    undingen authored Sep 19, 2016
    Configuration menu
    Copy the full SHA
    70993f0 View commit details
    Browse the repository at this point in the history

Commits on Sep 20, 2016

  1. Add type.__instancecheck__ and __subclasscheck__

    We supported classes that overrode them, but didn't provide a
    default implementation in case people called it by hand.
    
    The tricky part is making sure that these new additions don't
    mess with our "does this class override __instancecheck__" optimizations.
    kmod committed Sep 20, 2016
    Configuration menu
    Copy the full SHA
    7765838 View commit details
    Browse the repository at this point in the history

Commits on Sep 21, 2016

  1. Merge pull request pyston#1370 from kmod/subclasscheck

    Add type.__instancecheck__ and __subclasscheck__
    kmod authored Sep 21, 2016
    Configuration menu
    Copy the full SHA
    c91ea1b View commit details
    Browse the repository at this point in the history
  2. add diff patch

    remove RODataMem.FreeMem.clear(); and replace return true to RELEASE_ASSERT(0, "finalizeMemory failed")
    corona10 committed Sep 21, 2016
    Configuration menu
    Copy the full SHA
    bb154da View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    db4159c View commit details
    Browse the repository at this point in the history
  4. Merge pull request pyston#1365 from corona10/section

    Change section memory manager to fix performance problem in long-runn…
    kmod authored Sep 21, 2016
    Configuration menu
    Copy the full SHA
    19baa92 View commit details
    Browse the repository at this point in the history

Commits on Sep 26, 2016

  1. Merge pull request pyston#1371 from kmod/subclasscheck

    Make these properly CAPI functions
    kmod authored Sep 26, 2016
    Configuration menu
    Copy the full SHA
    1f45c0d View commit details
    Browse the repository at this point in the history

Commits on Sep 27, 2016

  1. Update lz4 to a version compatible with gcc 4.9+

    Not 100% sure of the reason but lz4 gets mis-optimized (or "has UB"
    depending on who you ask) in the version that we're using, so update
    to a version that has a fix.
    kmod committed Sep 27, 2016
    Configuration menu
    Copy the full SHA
    cc5013c View commit details
    Browse the repository at this point in the history
  2. Merge pull request pyston#1375 from kmod/lz4_gcc

    Update lz4 to a version compatible with gcc 4.9+
    kmod authored Sep 27, 2016
    Configuration menu
    Copy the full SHA
    3f1a0e1 View commit details
    Browse the repository at this point in the history

Commits on Sep 28, 2016

  1. Configuration menu
    Copy the full SHA
    754ddae View commit details
    Browse the repository at this point in the history
  2. Now that object has __doc__, fix others

    Otherwise they would inherit object's __doc__
    kmod committed Sep 28, 2016
    Configuration menu
    Copy the full SHA
    bfb0ec4 View commit details
    Browse the repository at this point in the history

Commits on Sep 29, 2016

  1. Merge pull request pyston#1378 from kmod/typing

    Add test for typing.py and fix the issues it uncovers
    kmod authored Sep 29, 2016
    Configuration menu
    Copy the full SHA
    4e10a4f View commit details
    Browse the repository at this point in the history

Commits on Oct 4, 2016

  1. Configuration menu
    Copy the full SHA
    8e739ff View commit details
    Browse the repository at this point in the history
  2. Fix optimization that is wrong for abstract classes

    We fast-pathed "type has __init__ but not __new__" by saying
    that the default __new__ would always succeed, but this isn't true for abstract classes.
    kmod committed Oct 4, 2016
    Configuration menu
    Copy the full SHA
    fa775e2 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    9dfc01d View commit details
    Browse the repository at this point in the history
  4. Add a PyFrame_New test

    Specifically, for the case that locals==NULL (which Cython exercises), which
    wasn't previously working.
    
    now using ctypes to test the c api
    kmod committed Oct 4, 2016
    Configuration menu
    Copy the full SHA
    b6e9389 View commit details
    Browse the repository at this point in the history
  5. Support "asynchronous exceptions"

    A function at risk of "naive misuse", it is only accessible via the C API.
    
    This commit adds basic support for it using the same mechanism we use for
    signals.  We also have the GIL-check mechanism, but that would be a bit more
    work to get working right now due to the fact that our GIL-checks don't support
    throwing exceptions.  Doing the async-exc check during signal checking means
    that we will throw the async exc faster than CPython does.  It also means
    that there are some pathological cases where with a lot of threads and a lot
    of async excs we will probably have much worse performance.  But as long as they
    are rare I think this commit shouldn't add any steady-state performance costs.
    kmod committed Oct 4, 2016
    Configuration menu
    Copy the full SHA
    3cb7d7b View commit details
    Browse the repository at this point in the history
  6. Hackish imp.get_magic workaround

    Too many things want this to be able to remove it completely.  Surprisingly,
    having imp.get_magic exist but return a changing value seems to make all those
    libraries happy.
    kmod committed Oct 4, 2016
    Configuration menu
    Copy the full SHA
    bfdaf2e View commit details
    Browse the repository at this point in the history
  7. Better log message here

    kmod committed Oct 4, 2016
    Configuration menu
    Copy the full SHA
    5fdbbfc View commit details
    Browse the repository at this point in the history
  8. Recursion-depth-checking fixes

    We weren't properly reducing the stack depth when yielding from a generator,
    meaning that the recursion depth was effectively decreased by the number
    of active generators.
    kmod committed Oct 4, 2016
    Configuration menu
    Copy the full SHA
    3e10ff4 View commit details
    Browse the repository at this point in the history
  9. Special refcounting exemption for buggy extensions

    google's protobuf library gives away one too many refs to one of its types.
    
    This workaround feels excessively specific, but this is a common mistake to
    make, and it works just fine in CPython, so let people get away with it
    as well in Pyston.
    kmod committed Oct 4, 2016
    Configuration menu
    Copy the full SHA
    a20593e View commit details
    Browse the repository at this point in the history
  10. More attrwrapper-instead-of-dict support

    Specifically, when passed to PyArg_ParseTuple when a dict argument
    is asked for.
    kmod committed Oct 4, 2016
    Configuration menu
    Copy the full SHA
    7e2cbb5 View commit details
    Browse the repository at this point in the history

Commits on Oct 5, 2016

  1. BST: convert all nodes to directly operate at vregs instead of names

    **basic design:**
    This PR changes our BST nodes to directly operate on vregs instead of pointers to other nodes and names (except a few exceptions: `BST_Invoke`, `BST_MakeFunction` and `BST_MakeClass` which still needs to get converted).
    Most nodes got a destination vreg and one or more source vregs. Currently all of them are 32bit long but I plan to store them more compact very soon. Some nodes support a variable size of operands (e.g. the tuple node) but the size can't change after creating the node. I removed several unneeded opcodes and split a lot of nodes into separate opcodes (it may make sense to split them even further in the future).
    Generally all instructions except `CopyVReg` kill the source operand vregs except if the source is a ref to a constant. If one needs the preserve the source vreg on needs to create a new temporary using the `CopyVReg` opcode.
    
    There is a special vreg number: `VREG_UNDEFINED = std::numeric_limits<int>::min()`.
    - when it's set as an operand vreg: it means that this is a not-set optional argument. (e.g. for a slice which only has `lower` set, `upper` would be `VREG_UNDEFINED`)
    - if it's the destination it's means the result value should get immediately killed (e.g. `invoke 15 16: %undef = %11(%14)` this is a call whose result gets ignored)
    
    all other negative vreg numbers are indices into a constant table (after adding 1 and making them positive).
    (e.g. `(4, 2, 'lala')` generates:  `%undef = (%-1|4|, %-2|2|, %-3|'lala'|)` this creates a tuple whose elements are the constant idx -1, -2 and -3. In order to make it easier for a human to understand we print the actual value of the constant between | characters)
    - constants can be all str and numeric types and 'None'.
    - every constant will only get stored once in the table
    
    this reduces the total memory usage by about 20% currently but I'm very sure with the future changes it will be significantly lower.
    
    **near future:**
    - change the jump and branch instruction to reference `CFGBlocks` by index.
    - store all `InternedString` inside a table and use indices into the the table to access them.
    - remove the 'BoxedCode*' member
    - devirtualize the classes
    = with this changes the bytecode can get freely copied around (only need to update the CFGBlock table) which allows us to attach the directly next to each other.
    
    - I plan to use one bit of the the opcode to mark the instruction as only requiring 8bit vreg operands (which should handle the majority of cases with 128 temps and 127 constants + 1undef vreg value)
    - another bit will get used to specify if this instruction is inside an `invoke`. if this bit is set there are 2 one 1 or 4 bytes long block indices directly behind the instruction.
    
    - serialize the bytecode to disk. (maybe serialize the constants using pickle)
    
    **thing which need to get improved**
    - currently the constant table get's attached to the `BoxedModule` maybe there is a better location, I also needed to pass the `BoxedModule` into some functions e.g. BST printing because otherwise we could not pretty-print the constants
    - `BST_Name` is not an opcode it's just used to initialize the arguments when a function get's called and stores where and how the arguments need to get stored.
    - more consistent opcode names and rename `TmpValue` to something better
    - we currently don't print the `InternedString` name - we only print the vreg number
    
    **additional changed made which are hidden in the large diff** 👎
    - removed unused code initializing the items of `BST_Dict` (we use/used separate  assignments to add the items)
    - lower `ExtSlice` inside the CFG phase to a tuple of slices
    - separated opcode for load subscript when it needs to be a slice and when it's only lower and upper (=`__getslice__`) before this got handled in the interpreter/jit
    - generate a constant `None` load inside the CFG when `None` gets loaded by name
    undingen committed Oct 5, 2016
    Configuration menu
    Copy the full SHA
    482d2e8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c0a273f View commit details
    Browse the repository at this point in the history
  3. Merge pull request pyston#1377 from undingen/new_bst4

    BST: convert all nodes to directly operate at vregs instead of names
    undingen authored Oct 5, 2016
    Configuration menu
    Copy the full SHA
    9cd8e75 View commit details
    Browse the repository at this point in the history
  4. Some more recursion-depth-checking fixes

    - Fix a test to do the correct number of iterations
    - Catch more exceptions in PyDict_GetItem/createModule (now that more things can throw)
    kmod committed Oct 5, 2016
    Configuration menu
    Copy the full SHA
    b596a71 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a61d289 View commit details
    Browse the repository at this point in the history
  6. Merge with bst changes

    kmod committed Oct 5, 2016
    Configuration menu
    Copy the full SHA
    4e408bf View commit details
    Browse the repository at this point in the history
  7. "fix" inconsistent overrides

    This warning is quite annoying right now
    kmod committed Oct 5, 2016
    Configuration menu
    Copy the full SHA
    c026399 View commit details
    Browse the repository at this point in the history

Commits on Oct 6, 2016

  1. Merge pull request pyston#1379 from kmod/metaserver_merge

    A number of small fixes from the dropbox testsuite
    kmod authored Oct 6, 2016
    Configuration menu
    Copy the full SHA
    1961ce6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ff6ca0d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    21ac70f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    7f52a9a View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a256041 View commit details
    Browse the repository at this point in the history
  6. Merge pull request pyston#1383 from undingen/cleanup_bst

    move constants into CodeConstants, call BoxedCode destructor, cleanup BST nodes
    undingen authored Oct 6, 2016
    Configuration menu
    Copy the full SHA
    106533f View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    75f9b50 View commit details
    Browse the repository at this point in the history