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

implement tp_* function pointers for set object #1416

Open
wants to merge 4,993 commits into
base: master
Choose a base branch
from

Conversation

aisk
Copy link
Contributor

@aisk aisk commented Jan 21, 2017

#1197

I tested the tp_as_sequence functions (set_len / set_contains) by adding some print in them, and they were called as expected. But the tp_as_number functions were not, could anybody give me some suggestions on how to debug it?

undingen and others added 30 commits August 17, 2016 14:31
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
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.
this fixes the huge (~350MB) leak in:
for i in xrange(1000000):
    class C(object):
        pass
…asses

hidden classes: free classes of singleton type
string interning: make it slightly more space efficient
switch from the SSE prefetch to __builtin_prefetch
This new version is causing some issues for us
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.
Threading fixes to get cffi-1.7 working
this does not hurt perf but still saves some memory
This fixes the llvm tier memory consumption until we migrate to the ORC JIT which has better memory management.
After remove libpypa, the function getMagic only return one string. So
just use a char array constant instead a function.
solves a pointer reuse problem
undingen and others added 20 commits November 28, 2016 17:37
CodeConstants: own all constants and cleanup code
Pyston can not support _PyObject_GetDictPtr properly. So add
PyObject_GetDictCopy, PyObject_ClearDict, PyObject_UpdateDict API.

The PyObject_GetDictCopy only return an copy of object's dict, not a
writable dict pointer like _PyObject_GetDictPtr.

The PyObject_UpdateDict only update or append new key-value pairs from
new dict. It will not reset object's dict if the key is not existed
in the new dict.
llvm tier: inline invoke instructions
microoptimizations, add a freelist to the list type
[Clean Up] Remove unused parmameter in BST_Name.
@aisk aisk changed the title implement tp_* function pointers for set object [WIP]implement tp_* function pointers for set object Jan 21, 2017
@aisk aisk force-pushed the set-tp-func-pointer branch 4 times, most recently from 22c8495 to b9a777c Compare January 22, 2017 14:56
@aisk aisk force-pushed the set-tp-func-pointer branch from b9a777c to f1ffbd8 Compare January 22, 2017 15:09
@aisk aisk changed the title [WIP]implement tp_* function pointers for set object implement tp_* function pointers for set object Jan 22, 2017
@kmod kmod force-pushed the master branch 2 times, most recently from 352fd89 to 6488a3e Compare October 28, 2020 21:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants