Branches

stm-thread-2

View source
stm-thread-2
Author Commit Message Labels Comments Date
250+ commits behind default.
Armin Rigo
Minor clean-ups
Taavi Burns
Adds instrumentation to transaction.py to report on the number of transactions run during a call to run().
Armin Rigo
details
Armin Rigo
Attempt again to fix stm_PtrEq().
Armin Rigo
Implement id() by using shadows, like minimark.py.
Armin Rigo
hg merge default
Armin Rigo
Kill an old, unused list.
Armin Rigo
Fix the logic.
Armin Rigo
Write the traceback-on-abort logic. The lnotab handling needs fixing.
Armin Rigo
Tweaks
Armin Rigo
Keep the abort info corresponding to the longest aborted transaction,
Armin Rigo
Extend the last_abort_info with bits and pieces from the tx_descriptor
Armin Rigo
Don't show the hidden_applevel frames.
Armin Rigo
Test and fix
Armin Rigo
Fix
Armin Rigo
Test and fix
Armin Rigo
Fix for fields that actually belong to parent classes
Armin Rigo
Use charp_inspect_abort_info().
Armin Rigo
Fixes
Armin Rigo
Switch to encoding/decoding following the bittorrent file format.
Armin Rigo
Implement abortinfo and lastabortinfo. This should give a way
Armin Rigo
Add a missing include.
Armin Rigo
Tweak thread-locals to change the approach, at least with STM:
Armin Rigo
Oups.
Armin Rigo
Argh, forgot that count_reads can be much bigger than the limit if the
Armin Rigo
Fixes
Armin Rigo
Support undoing changes done to the thread-local structure in case of
Armin Rigo
Fixes
Armin Rigo
merge heads
Armin Rigo
Don't use a dict at all to store the executioncontext.
Armin Rigo
Change the ThreadLocalRef to not be a cache any more. Now the GC should
Armin Rigo
Add comments
Armin Rigo
Turn off these costly checks.
Armin Rigo
Now we need to increase a bit the checkinterval().
Armin Rigo
Found it: by making the cache more efficient, len(gcptrlist) doesn't
Armin Rigo
dummy merge to get rid of the backout
Armin Rigo
Improve caching, and reduce the cache's total size.
Armin Rigo
Backed out changeset cadf477fe482
Armin Rigo
Tweak tweak
Armin Rigo
Hack hack hack at the caching logic. Gives 10%.
Armin Rigo
Fix: must do this step after the GC was annotated.
Armin Rigo
Check in the latest version of richards.
Armin Rigo
Use ThreadLocalReference to get the excutioncontext more efficiently.
Armin Rigo
Flush the ThreadLocalReferences whenever we are collecting.
Armin Rigo
ThreadLocalReference: implementation.
Armin Rigo
Add the ThreadLocalReference class.
Armin Rigo
hg merge default
Armin Rigo
Use __pypy__.thread.signals_enabled here.
Armin Rigo
Kill the section about signals.
Armin Rigo
Needs a become_inevitable()
Armin Rigo
Argh. Disable this cache if we are running with stm.
Armin Rigo
Probably fix stm_PtrEq, to never cause transaction aborts.
Armin Rigo
Fix
Armin Rigo
Untested so far: attempt to fix signals for stm
Armin Rigo
hg merge default
Armin Rigo
Fix this import.
Armin Rigo
Move thread.atomic to __pypy__.thread.atomic.
Armin Rigo
hg merge default
Armin Rigo
Unclear why it occurs here and not on "default", but we need to prevent multiple #includes of this file
Armin Rigo
Fix imports
Armin Rigo
Ignore for now jitdrivers with autoreds.
Armin Rigo
Avoid renaming the module on import; there is not really a point here now.
Taavi Burns
Fixes rpython.rlib.thread import.
Armin Rigo
hg merge default
Armin Rigo
hg merge default
Armin Rigo
A clean replacement for 009b40655c5f.
Armin Rigo
hg backout 009b40655c5f: remove the hack based on signals.
Armin Rigo
A PyPy extension: add to thread locks a method acquire_interruptible().
Armin Rigo
hg merge default
Armin Rigo
More import fixes
Armin Rigo
Run a mechanical translation of imports.
Armin Rigo
Move these in place too.
Armin Rigo
hg merge default
Armin Rigo
hg merge default
Armin Rigo
Move this file as well.
Armin Rigo
Move this file into its proper location.
Armin Rigo
hg merge default (again)
Armin Rigo
hg merge default (untested so far)
Armin Rigo
Preparing for the merge of default
Armin Rigo
Trying out using signals and signal.pause()...
Armin Rigo
Trying out signals
Armin Rigo
Copy the same simplification as in trunk.
Armin Rigo
Another TODO.
Armin Rigo
Split interp_signal in three. rlib/rsignal is like on trunk. sigaction.py is the non-stm action classes.
Armin Rigo
in-progress
Armin Rigo
Fix some tests
Armin Rigo
Fix a few tests, skip the others
Armin Rigo
These two flags are not referenced from C.
Armin Rigo
Another point
Armin Rigo
Fix at least one of the ztranslated test: test_targetdemo.
Armin Rigo
Do not turn inevitable either on raw_malloc, in addition to
Armin Rigo
Add a TODO
Armin Rigo
done.
Armin Rigo
Trying to implement the idea of decreasing the limit more subtly: set it
Armin Rigo
Kill 'self.value' and use a regular local variable instead, now that we
Armin Rigo
Reorder (ints first, refs next).
Armin Rigo
Untested: revert some of the changes to pyopcode, relying instead on
Armin Rigo
Don't use SSA_to_SSI; it's not used by other code and seems not really
Armin Rigo
Start to adapt the targetdemo2 test.
Armin Rigo
Finish it, maybe. Hard to test! Tested so far by staring at the graphs
Armin Rigo
In-progress
Armin Rigo
In-progress: rewrite the graphs around jit_merge_points
Armin Rigo
hg merge default
Armin Rigo
Add a TODO.
Armin Rigo
hg merge default
Armin Rigo
Left over from the merge.
Armin Rigo
hg merge default
Armin Rigo
Fix
Armin Rigo
Fix
Armin Rigo
Left behind in previous merge
Armin Rigo
hg merge default
Armin Rigo
Prefix all lines printed in PYPYLOG with a thread number (in color too,
Armin Rigo
stm: don't turn inevitable on weakref_* [copied from meierrem on stm-logging]
Armin Rigo
stm: make more functions transactionsafe [copied from meierrem on
Armin Rigo
Use 'try' here, which is more compatible (but may hide for now the same
Armin Rigo
merge heads
Remi Meier
rearrange mallocs in strtod to allow inlining of str2charp
Remi Meier
stm: fix raw_free test
Remi Meier
stm: don't turn inevitable before raw-mallocs and raw-accesses/frees to the freshly allocated memory
Remi Meier
stm: turn inevitable before (in)direct_call, add transactionsafe flag
Armin Rigo
Revert changes to writebarrier.py, and implement it directly in
Armin Rigo
Trying to remove the hack around hashes. Now taking a hash for the
Armin Rigo
Update to the latest stmimpl.rst, following the changes done to
Armin Rigo
Random minor fixes
Armin Rigo
Bah, fix.
Armin Rigo
Re-import the parts of the old transform.py that insert
Armin Rigo
"extra threshold" support in stmgc.
Armin Rigo
Let "translate.py --stm -Ojit" pick the stmgc.
Armin Rigo
hg merge remove-globals-in-jit
Armin Rigo
Fixes following the merge.
Armin Rigo
hg merge remove-globals-in-jit
Armin Rigo
hg merge default
Armin Rigo
Kill old commented-out lines
Armin Rigo
Printing "stm-perform-transaction" delimiters.
Armin Rigo
Be more careful about having no extrainfo on the call descr.
Armin Rigo
Ignore calls to _gctransformer_hint_close_stack_ functions.
Armin Rigo
Fix
Armin Rigo
Delayed pointers are not the same as external pointers.
Armin Rigo
Pffff.
Armin Rigo
64-bit fix
Armin Rigo
Fix the previous merge :-/
Armin Rigo
hg merge default
Armin Rigo
Comment out that too.
Armin Rigo
hack hack
Armin Rigo
Fixes
Armin Rigo
fix fix fix in-progress
Armin Rigo
Link to project-ideas.rst.
Armin Rigo
in-progress: access thread-local variables from the generated assembler.
Armin Rigo
This global var needs a __thread.
Armin Rigo
Add a debug_print to get the nursery position
Armin Rigo
Nice colors to sort out which thread prints what.
Armin Rigo
Fix test_stmgcintf.c.
Armin Rigo
Minor type fixes.
Armin Rigo
Fix translation.
Armin Rigo
Various fixes
Armin Rigo
Start writing a second target test. Fix a subtle bug revealed by it
Armin Rigo
Add a comment
Armin Rigo
Fix
Armin Rigo
Call it the "category" consistently.
Armin Rigo
Disable this case too for now.
Armin Rigo
Mark places that will need fixing once we start improving
Armin Rigo
Reimplement llmodel for stm using a read/write barrier (easier).
Armin Rigo
Revert all changes to llmodel.py. Kill the gc_load/gc_store
Armin Rigo
Another possible optimization to implement later.
Armin Rigo
Support for mangling the calls to ptr_eq.
Armin Rigo
Pass the test.
Armin Rigo
in-progress: remove more leftovers, and start to add a test for
Armin Rigo
hg merge default
Armin Rigo
Kill old stm-supporting code from the x86 backend.
Armin Rigo
Fixes. test_stmrewrite.py seems to pass now.
Armin Rigo
Progress
Armin Rigo
Finish the setfield tests.
Armin Rigo
in-progress: fixing the JIT
Armin Rigo
Fix translation
Armin Rigo
Add a can_move() for the JIT.
Armin Rigo
Fix test
Armin Rigo
Fixes for the hash tests.
Armin Rigo
in-progress: fix the tests
Armin Rigo
Always let "PYPYLOG=stm:-" work for now.
Armin Rigo
Finish hash() --- hopefully. At least the test in targetdemo2 passes.
Armin Rigo
In-progress? Support for hash, partly copied from semispace/hybrid.
Armin Rigo
test_ztranslation starts to pass. Yay!
Armin Rigo
Add asserts
Armin Rigo
Tweak
Armin Rigo
Finish the fix.
Armin Rigo
Remove "struct gcroot_s".
Armin Rigo
fixfixfix
Armin Rigo
Fix
Armin Rigo
Fixes
Armin Rigo
fixes fixes
Armin Rigo
Pass next test
Armin Rigo
Fix 'stmgc': in-progress
Armin Rigo
Using gc=none instead of fighting Boehm. Now the test passes, slowly.
Armin Rigo
Add a few asserts.
Armin Rigo
Hacks to get Boehm to translate and run. Crashes, but that may be
Armin Rigo
in-progress
Armin Rigo
in-progress
Armin Rigo
In-progress: the first goal will be to have a working Boehm translation.
Armin Rigo
In-progress
Armin Rigo
test_stmgcintf passes again.
Armin Rigo
in-progress: trying to get test_stmgcintf working again
Armin Rigo
Update to arigo/2f5d4cc948b2.
Armin Rigo
Random initial tweaks.
Armin Rigo
Copy the C files from arigo/hack/stm/c2/.
Armin Rigo
Tweaks and fixes
Armin Rigo
Kill test files too.
Armin Rigo
Kill this file too.
Armin Rigo
Kill these two files too.
Armin Rigo
Kill transform.py. A few small parts will be restored into
Armin Rigo
Move the write_analyzer locally.
Armin Rigo
Propagate the category freely across cast_pointers.
Armin Rigo
Add a test for what occurs around cast_pointer. Currently fails.
Armin Rigo
Also rename across links, to preserve at least the run-time knowledge
Armin Rigo
Detect when a barrier has an effect or not.
Armin Rigo
Kill a misleading line.
Armin Rigo
For completeness, a test for 'P=W' in addition to 'W=P'.
Armin Rigo
Pointer comparison barrier.
Armin Rigo
External calls.
Armin Rigo
Detect potential aliases and revert objects from the 'R' category
Armin Rigo
Mallocs.
Armin Rigo
Collapse obvious duplicate barriers
Armin Rigo
Track more precisely the category of individual pointers,
Armin Rigo
The simplest version of read and write barrier insertion.
Armin Rigo
Kill this directory. Outdated and no chances to work.
Armin Rigo
Make another branch: the JIT support is not done, but the
Armin Rigo
hg merge default
Ronny Pfannschmidt
introduce thread.exclusive_atomic
Armin Rigo
in-progress
Armin Rigo
Starting work on the x86 backend
Armin Rigo
Skip some tests that are "only" for optimization, and pass the others.
Armin Rigo
progress
Armin Rigo
Starting on stmrewrite.py.
Armin Rigo
Write a plain text explanation.
Armin Rigo
Update the test.
Armin Rigo
Start to draft the tests for the GcStmReviewerAssembler as
Armin Rigo
Now translation completes.
Armin Rigo
Translation of an example getting closer
Armin Rigo
in-progress
Armin Rigo
in-progress
Armin Rigo
Improve precision.
Armin Rigo
gc_load, stm_gc_load, gc_store: the most generic operations on GC objects,
Armin Rigo
finish llmodel support. XXX refactor...
Armin Rigo
in-progress. Missing tests :-(
Armin Rigo
in-progress
Armin Rigo
hg merge default
Armin Rigo
In-progress
Armin Rigo
Start a branch to work on the JIT support of STM.
Armin Rigo
hg merge default
Armin Rigo
Update docs.
Armin Rigo
Mention this as a rough edge.
526 commits not shown.