Commits

Show all
Author Commit Message Labels Comments Date
Armin Rigo
- rename the SlowMutate class into QuasiImmut. - add front-end support for invalidating loops; backend interface missing so far.
Branches
out-of-line-guards-2
Armin Rigo
Build on the TreeLoop instance a dict 'quasi_immutable_deps' of all SlowMutate instances. The next step will be to send that to the backend.
Branches
out-of-line-guards-2
Armin Rigo
Fix a mistake: we must not detect if the field changed -- because it can have changed several times and be back to its original value. Instead, we must handle jit_force_quasi_immutable lloperations and detect if the SlowMutate was invalidated.
Branches
out-of-line-guards-2
Armin Rigo
Add a test.
Branches
out-of-line-guards-2
Armin Rigo
Detect cases were the value stored in the quasi-immutable field changed already between tracing and optimization.
Branches
out-of-line-guards-2
Armin Rigo
First test passing on the front-end.
Branches
out-of-line-guards-2
Armin Rigo
Fixes.
Branches
out-of-line-guards-2
Armin Rigo
Fix.
Branches
out-of-line-guards-2
Armin Rigo
Start a module containing all support code for the front-end for quasi-immutable fields.
Branches
out-of-line-guards-2
Armin Rigo
On getfields of quasi-immutable fields, write in the jitcodes a 'record_quasiimmut_field' operation in addition to the getfield_gc_*. As for setfields of quasi-immutable fields, they are hidden from the JIT; for now this is done by making the whole function containing them as don't-look-inside.
Branches
out-of-line-guards-2
Armin Rigo
Implement these two cast functions to "work" when run untranslated too. This is equivalent to the ropaque module in the previous out-of-line-guards branch, and serves the same purpose: for tests, temporarily hiding an RPython instance into a field of a low-level Struct.
Branches
out-of-line-guards-2
Armin Rigo
Instead of having even more strings on immutable fields, introduce the IR_XXX constants whose boolean value correspond to the standard definition of being immutable.
Branches
out-of-line-guards-2
Armin Rigo
Redo "jit-invariant-fields" as "quasi-immutable fields". Reuse as much the existing code as possible.
Branches
out-of-line-guards-2
Armin Rigo
A restart of the out-of-line-guards branch. I will pull selectively code and ideas from the old branch.
Branches
out-of-line-guards-2
Armin Rigo
Backed out d5252efe3dd9
Armin Rigo
Backed out changeset c1b009ab62c5
Armin Rigo
Instead of having even more strings on immutable fields, introduce the IR_XXX constants whose boolean value correspond to the standard definition of being immutable.
Armin Rigo
Redo "jit-invariant-fields" as "quasi-immutable fields". Reuse as much the existing code as possible.
Armin Rigo
Typo.
Alex Gaynor
Syntax error.
Romain Guillebert
Fixes a mistake in wait3's docstring
Romain Guillebert
Implements wait4 in the standard library
Amaury Forgeot d'Arc
backout e5ce4f03d51a which broke too many things :-(
Romain Guillebert
Tests the right wait3 function
Armin Rigo
Update to account for the extra "-1" argument now sent to ll_split.
Amaury Forgeot d'Arc
Add __package__ support to the import machinery
Amaury Forgeot d'Arc
Skip or fix some tests when run with -A
Armin Rigo
Merge jit-shadowstack, adding support for the shadowstack gc root tracker in the JIT too.
Armin Rigo
Fix this test when run with "-A" on top of CPython. Also fix it when run on top of PyPy to check that when setdefault() inserts the value in a *non-empty* dict, it is still done with only one call to __hash__().
Lukas Diekmann
merge
  1. Prev
  2. Next