diff options
author | Sven Tennie <sven.tennie@gmail.com> | 2020-10-31 13:28:54 -0400 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2021-09-23 15:59:38 -0400 |
commit | 6f7f59901c047882ba8c9ae8812264f86b12483a (patch) | |
tree | dbff896e8fb871d947b20c3b58736b82469be89a /rts/rts.cabal.in | |
parent | 022d9717d06542c2345e27ef018390a9d034a1f1 (diff) | |
download | haskell-6f7f59901c047882ba8c9ae8812264f86b12483a.tar.gz |
Introduce stack snapshotting / cloning (#18741)
Add `StackSnapshot#` primitive type that represents a cloned stack (StgStack).
The cloning interface consists of two functions, that clone either the treads
own stack (cloneMyStack) or another threads stack (cloneThreadStack).
The stack snapshot is offline/cold, i.e. it isn't evaluated any further. This is
useful for analyses as it prevents concurrent modifications.
For technical details, please see Note [Stack Cloning].
Co-authored-by: Ben Gamari <bgamari.foss@gmail.com>
Co-authored-by: Matthew Pickering <matthewtpickering@gmail.com>
Diffstat (limited to 'rts/rts.cabal.in')
-rw-r--r-- | rts/rts.cabal.in | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/rts/rts.cabal.in b/rts/rts.cabal.in index 6e535a777c..300a3bcd46 100644 --- a/rts/rts.cabal.in +++ b/rts/rts.cabal.in @@ -309,6 +309,7 @@ library "-Wl,-u,_hs_atomicwrite8" "-Wl,-u,_hs_atomicwrite16" "-Wl,-u,_hs_atomicwrite32" + "-Wl,-u,_base_GHCziStackziCloneStack_StackSnapshot_closure" if flag(find-ptr) -- This symbol is useful in gdb, but not referred to anywhere, @@ -391,6 +392,7 @@ library "-Wl,-u,hs_atomicwrite8" "-Wl,-u,hs_atomicwrite16" "-Wl,-u,hs_atomicwrite32" + "-Wl,-u,base_GHCziStackziCloneStack_StackSnapshot_closure" if flag(find-ptr) -- This symbol is useful in gdb, but not referred to anywhere, @@ -454,6 +456,7 @@ library Arena.c Capability.c CheckUnload.c + CloneStack.c ClosureFlags.c Disassembler.c FileLock.c |