summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Prepare to release 0.4.50.4.5Alexey Borzenkov2014-10-183-2/+9
|
* Nothing special needed when using VC++ for Python and setuptoolsAlexey Borzenkov2014-10-182-7/+1
|
* Attempt to plug threaded leak tests instability some moreAlexey Borzenkov2014-10-141-2/+5
|
* Add Robie Basak to AUTHORSAlexey Borzenkov2014-10-141-0/+1
|
* Merge pull request #65 from basak/unoptimize-return-valueAlexey Borzenkov2014-10-141-2/+3
|\ | | | | arm32: force return value from asm
| * arm32: force return value from asmRobie Basak2014-10-141-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In my case, instead of a simple "mov r0, #0", the optimizer had done this: Between calls to slp_save_state and slp_restore_state, it saved the value now guaranteed to be 0 using "str r0, [r7]". Now, at the end, it restores that value into r0 using "ldr r3, [r7]" and then "mov r0, r3". It isn't clear to me that intermediate values managed by the compiler, like this one at [r7], would be preserved in the stack this way, especially as at this point we're in a "different" stack (unknown to the optimizer). Instead, prevent the optimizer from re-using a previous result like this by forcing it to rely on the inline assembly to produce the result. This fixes test failures on Ubuntu Utopic using gcc 4.9.1 (-5ubuntu1). I think even this is still a hack though, and not guaranteed to work. Ultimately, gcc can even re-order the "__asm__ volatile" functions at will around the entire function, or just wrap each REGS_TO_SAVE clobbering call with a simple push/pop, thus not preserving the registers between stack switches. The only way I can see of doing this without relying on undefined compiler behaviour is to write the entire slp_switch function in assembly for each architecture, instead of inlining it into a C function for code reuse.
* | Merge pull request #64 from basak/always-use-frame-pointerAlexey Borzenkov2014-10-141-0/+3
|\ \ | |/ |/| arm32: make sure gcc uses a frame pointer
| * arm32: make sure gcc uses a frame pointerRobie Basak2014-10-141-0/+3
|/ | | | | | | | | | This code assumes that there is a frame pointer. When gcc doesn't use a frame pointer here and __thumb__ is defined, then the code clobbers r7 without declaring it to the compiler. If the compiler uses r7 for something else, then this causes arbitrary failures, depending on what the optimizer did. To work around this, tell gcc to always use a frame pointer.
* Move garbage closer to loop, so it doesn't jump generationsAlexey Borzenkov2014-09-251-1/+1
|
* Catch unit-test errors in run-tests.pyAlexey Borzenkov2014-09-251-1/+2
|
* Remove unnecessary STATE_OK in green_newAlexey Borzenkov2014-09-251-5/+1
|
* Fix compatibility with Python 3.xAlexey Borzenkov2014-09-251-1/+1
|
* Add a test for implicit parent with threadsAlexey Borzenkov2014-09-251-0/+55
|
* Disable unstable leak tests on Python 2.6Alexey Borzenkov2014-09-211-1/+2
|
* Add Matt Madison to AUTHORSAlexey Borzenkov2014-09-211-0/+1
|
* Merge pull request #61 from madisongh/masterAlexey Borzenkov2014-09-211-0/+2
|\ | | | | Add comment noting the MIPS64 gp register save change
| * Add comment noting the MIPS64 gp register save change toMatt Madison2014-09-201-0/+2
|/ | | | platform_mips_unix.h.
* Merge pull request #58 from madisongh/masterAlexey Borzenkov2014-09-211-5/+9
|\ | | | | Re-code the saving of the gp register for MIPS64 so it compiles
| * Add back in the explicit save/restore, in case there is aMatt Madison2014-09-201-0/+9
| | | | | | | | | | | | situation where the compiler does not automatically save it for us. Eliminate the special handling for N32 ABI, as registers are still 64 bits in that case.
| * Clean up stray extra include from prior versions.Matt Madison2014-09-201-1/+0
| |
| * Simply remove the additional GP register saves for MIPS64, asMatt Madison2014-09-201-13/+0
| | | | | | | | they appear to be unnecessary.
| * Use assembler directives to perform the gp register save/restore.Matt Madison2014-09-191-6/+13
| |
| * Re-code the saving of the gp register for MIPS64 so it compiles underMatt Madison2014-09-181-5/+7
| | | | | | | | recent versions of gcc.
* | Cosmetic change for the error lineAlexey Borzenkov2014-09-211-2/+1
| | | | | | | | | | | | Some simple editors don't parse that multiline string correctly, very annoying when half the file has incorrect syntax highlighting.
* | Use STATE_OK in green_new in case tp_new causes gcAlexey Borzenkov2014-09-201-0/+4
| | | | | | | | | | | | | | Since gc might cause a thread switch which might use greenlets, which would leave incorrect ts_current, and then incorrect default parent for the allocated greenlet.
* | Fix incorrect uses of PyGreenlet_GetCurrent() in testsAlexey Borzenkov2014-09-201-2/+14
| |
* | Fix a memory leak in PyGreenlet_NewAlexey Borzenkov2014-09-201-3/+12
| |
* | Add missing bdist_egg in make-win-releaseAlexey Borzenkov2014-09-201-1/+1
| |
* | Update greenlet.txtBoonsNaibot2014-09-201-1/+1
|/
* Better support for Windows x64 builds with VS Express0.4.4Alexey Borzenkov2014-09-085-10/+30
|
* PyGreenlet_SetParent: fix return type in greenlet.hAlexey Borzenkov2014-08-231-1/+1
|
* Merge pull request #56 from BoonsNaibot/patch-2Alexey Borzenkov2014-08-231-1/+1
|\ | | | | `PyGreenlet_SetParent` returns `int`
| * `PyGreenlet_SetParent` returns `int`BoonsNaibot2014-08-221-1/+1
|/
* Add Python 3.3 and 3.4 to classifiersAlexey Borzenkov2014-08-081-0/+2
|
* Increment version to 0.4.30.4.3Alexey Borzenkov2014-08-072-2/+2
|
* Add documentation for switch tracingAlexey Borzenkov2014-08-072-0/+39
|
* Add NEWS for upcoming greenlet 0.4.3Alexey Borzenkov2014-08-071-0/+10
|
* Merge pull request #53 from BoonsNaibot/patch-1Alexey Borzenkov2014-07-251-1/+1
|\ | | | | Fixed return type of `PyGreenlet_Switch`.
| * Fixed return type of `PyGreenlet_Switch`.BoonsNaibot2014-07-251-1/+1
|/
* Add Dirk Mueller to AUTHORSAlexey Borzenkov2014-06-261-0/+1
| | | | PR #32 (PyVarObject_HEAD_INIT)
* Add support for custom build directory for testsAlexey Borzenkov2014-06-252-6/+11
|
* Don't symlink libraries unless inplace build is requestedAlexey Borzenkov2014-06-254-6/+26
|
* Restore accidentally removed use of my_build_extAlexey Borzenkov2014-06-251-0/+2
|
* Call PyBaseObject_Type.tp_new instead of tp_allocAlexey Borzenkov2014-06-252-1/+38
| | | | | This allows object.__new__ to check greenlet subclasses for being abstract and raise an exception in that case.
* Enable support for SunStudio on 32-bit SunOSAlexey Borzenkov2014-06-251-0/+2
|
* Fix invalid aarch64 constraintAlexey Borzenkov2014-06-241-1/+1
| | | | | | There doesn't seem to be a way to specify x0 as the result, so use "=r" to let compiler choose an appropriate register. It would likely choose x0 anyway.
* Run gc.collect() twice in threaded leak testsAlexey Borzenkov2014-06-241-0/+4
|
* Get rid of -fno-tree-dominator-optsAlexey Borzenkov2014-06-244-57/+8
| | | | | | This option is deprecated and removed, so we cannot rely on it. Additionally, don't rely on `fancy_return_zero' and use inline assembly to generate a proper zero return value instead.
* Define and use PyVarObject_HEAD_INIT compatibility macroAlexey Borzenkov2014-06-241-5/+4
| | | | Based on pull request #32
* Change maintainerAlexey Borzenkov2014-06-241-2/+2
|