-
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
[WIP] build on arch linux #1141
Open
aisk
wants to merge
3,689
commits into
pyston:master
Choose a base branch
from
aisk:arch-linux-build
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.
Open
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
Cheaper frame introspection
…eed patching Previously we generated patchpoints for every call because the callee could do a frame introspection and we could not retrieve the frame info without the additional patchpoint informations. This change moves all required information inside the FrameInfo. Because the FrameInfo does not have a fixed offset (different num of stack args and OSR functions reuse the frame info from the interpreter), we generate at function entry a stack variable which points to the frame_info and than we emit a stackmap intrinsic in order to know which basepointer relative address it has. The current statement inside the FrameInfo gets only updated on direct calls - patchpoints still attach it directly instead of updating the memory. Because always updating the variable is a small slowdown. This allows us todo inlining of trivial call sites at the llvm IR level.
because when calling a function with return type BOOL we currently expect it to return a i64. This got triggered by the inliner
Inlining it causes a perf regression
Don't generate patchpoints for calls to fixed functions which don't need patching
Add cmath module and fix some bugs discovered in test_cmath.
we can't use insert because it will not update existing values. We did not hit this issue because I compared an instance with a class...
… frames I encountered this issue sometimes in the sqlalchemy integration test.
Fix two unwinding bugs I found while implementing pyston#1031
Add four separate tests with prefix of sys_path for four types of sys.path entries: str, unicode, subclass of str, and subclass of unicode.
Micro optimization on 'gc_invalidateOrderedFinalizerList'
fix issue pyston#596 'slice is not subclassable'
Fix issue pyston#596 'slice is not subclassable'
Fix pyston#599 by allowing subclasses of string and unicode in sys.path
Micro optimization on 'gc_invalidateOrderedFinalizerList'
…havior and are therefore very flaky
This could happend when we trigger a collection inside the BoxedGenerator constructor when allocating space for the args array. In this case it would not be set but we would dereference the memory.
Fix crash inside BoxedGenerator::gcHandler
This function let's one register a potential root range from the CAPI Was part of the unmerged pyston#1026 but split out because pyston#1029 requires it too.
add PyGC_AddPotentialRoot
Implement PyErr_WarnEx
this caused problems inside the multiprocessing module
…n str types if we get the attrwrapper of an object, then change it to be dict-backed, the original attrwrapper should remain valid but no longer connected to that object.
Threading and multiprocessing related fixes
implement correct binop lookup for subclasses
check duplicate function params
We can't directly do OSR from the bjit frame because it will cause issues with exception handling. Reason is that the bjit and the OSRed code share the same python frame and the way invokes are implemented in the bjit. During unwinding we will see the OSR frame and will remove it and continue to unwind but the try catch block inside ASTInterpreter::execJITedBlock will rethrow the exception which causes another frame deinit, which is wrong because it already got removed. Instead we return back to the interpreter loop with special value (osr_dummy_value) which will trigger the OSR from there.
…nter saves a few bytes because r12 requires the SIB byte django_template bjit bytes emitted shrinks from 3016247 to 3006353
bjit: don't directly do a OSR from the bjit
bjit: microptimization use r13 instead of r12 for the interpreter pointer
We used to not detect deopt frames in release mode this was because we are looking for 'astInterpretDeopt' in the call stack but this did not work because the compiler optimized this function to a jmp to astInterpretDeoptInner. I tested different compiler attributes but I ended up implementing this small wrapper function in assembler because I think it's the most reliable way to make sure it does appear in the call stack.
I have been noticing quite some perf variance - hopefuly this makes perf more predicatable again.
fix two python frame handling crashes
deopt: support deserializing instance methods
If we find a type that - we think we can reason about statically - does not have an __iter__ but can be iterated via __getitem__ we previously just bailed saying that we know it doesn't have an __iter__ method (instead of calling getiterHelper like we should). I think we've always had this, we've just never run into it until testing the refcounting in llvm-only mode.
Fix a llvm-tier getiter() bug
Some minor fixing which found in numpy tests
aisk
force-pushed
the
arch-linux-build
branch
2 times, most recently
from
May 2, 2016 12:04
203fbe0
to
0a6e430
Compare
kmod
force-pushed
the
master
branch
2 times, most recently
from
October 28, 2020 21:01
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.
isinf
is undefined under arch linux