Matti Picus pushed to branch branch/py3.7 at PyPy / pypy
Commits: 59093c47 by Armin Rigo at 2020-06-16T12:43:27Z Add rgc.ll_arraymove(), as a way to shift items inside the same array with proper GC support. --HG-- branch : wb_before_move - - - - - 97f2ddfe by Armin Rigo at 2020-06-16T12:51:54Z Direct tests for rgc.ll_arraymove() --HG-- branch : wb_before_move - - - - - a330912d by Armin Rigo at 2020-06-16T14:17:05Z oops, only issue a general write_barrier() if at least one card is set --HG-- branch : wb_before_move - - - - - 9a3ba0b8 by Armin Rigo at 2020-06-16T14:20:01Z do it in minimark.py too --HG-- branch : wb_before_move - - - - - d681e653 by Armin Rigo at 2020-06-16T14:51:48Z Copy this from ll_arraycopy(). Unsure it's needed but it might. --HG-- branch : wb_before_move - - - - - ee9868f2 by Armin Rigo at 2020-06-22T14:33:07Z Merge branch 'branch/wb_before_move' into 'branch/default' Speed up list.pop/list.insert operations that shift many items list.pop/list.insert operations that shift many items were very slow in old large list objects. This is because it was done by manually reading and writing all items, and the card-marking adds overhead to every single write. With this branch, it's done via support for a new operation in the GC, writebarrier_before_move(). This could be renamed if needed for other use cases, but basically, this operation takes an array, looks for the flag that says there is at least one marked card in it, and in that case applies a general write barrier to it. After such an operation, the shift of items can always be done with a simple memmove() call. See merge request pypy/pypy!729 - - - - - d439c834 by Matti Picus at 2020-06-22T15:49:56Z fix test for win32 and make test more rsiliant to failures - - - - - 3c0005b3 by Matti Picus at 2020-06-22T16:14:06Z merge default into py3.6 --HG-- branch : py3.6 - - - - - 14dd1c35 by Matti Picus at 2020-06-22T16:16:42Z merge py3.6 into branch --HG-- branch : py3.7 - - - - - 15 changed files: - pypy/doc/whatsnew-head.rst - pypy/module/_multiprocessing/test/test_interp_semaphore.py - rpython/memory/gc/generation.py - rpython/memory/gc/incminimark.py - rpython/memory/gc/minimark.py - rpython/memory/gctransform/framework.py - rpython/memory/gctransform/transform.py - rpython/memory/gcwrapper.py - rpython/rlib/rgc.py - rpython/rlib/test/test_rgc.py - rpython/rtyper/llinterp.py - rpython/rtyper/lltypesystem/llmemory.py - rpython/rtyper/lltypesystem/lloperation.py - rpython/rtyper/lltypesystem/opimpl.py - rpython/rtyper/rlist.py View it on GitLab: https://foss.heptapod.net/pypy/pypy/compare/d260fcec7f873c1007cd207d0cebffce46faedab...14dd1c352706e15fbd8b5cffd24afc5500260463 -- View it on GitLab: https://foss.heptapod.net/pypy/pypy/compare/d260fcec7f873c1007cd207d0cebffce46faedab...14dd1c352706e15fbd8b5cffd24afc5500260463 You're receiving this email because of your account on foss.heptapod.net.
_______________________________________________ pypy-commit mailing list [email protected] https://mail.python.org/mailman/listinfo/pypy-commit
