-
Notifications
You must be signed in to change notification settings - Fork 289
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
aisk
wants to merge
4,993
commits into
pyston:master
Choose a base branch
from
aisk:set-tp-func-pointer
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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
free bjit code after LLVM codegen
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
It's time :(
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
Misc memory size reductions
This fixes the llvm tier memory consumption until we migrate to the ORC JIT which has better memory management.
MCJIT: free loaded objects
After remove libpypa, the function getMagic only return one string. So just use a char array constant instead a function.
Remove libpypa parser
solves a pointer reuse problem
ParamNames: don't leak BST_Name nodes
update to cpython 2.7.8
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.
Some small fixings
llvm tier: inline invoke instructions
microoptimizations, add a freelist to the list type
OSR: enable type specialization
[Clean Up] Remove unused parmameter in BST_Name.
aisk
changed the title
implement tp_* function pointers for set object
[WIP]implement tp_* function pointers for set object
Jan 21, 2017
aisk
force-pushed
the
set-tp-func-pointer
branch
4 times, most recently
from
January 22, 2017 14:56
22c8495
to
b9a777c
Compare
aisk
force-pushed
the
set-tp-func-pointer
branch
from
January 22, 2017 15:09
b9a777c
to
f1ffbd8
Compare
aisk
changed the title
[WIP]implement tp_* function pointers for set object
implement tp_* function pointers for set object
Jan 22, 2017
kmod
force-pushed
the
master
branch
2 times, most recently
from
October 28, 2020 21:00
352fd89
to
6488a3e
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
#1197
I tested the
tp_as_sequence
functions (set_len / set_contains) by adding someprint
in them, and they were called as expected. But thetp_as_number
functions were not, could anybody give me some suggestions on how to debug it?