[commit: ghc] master: Finish stable split (f48e276)
git at git.haskell.org
git at git.haskell.org
Wed Aug 29 20:35:20 UTC 2018
Repository : ssh://git@git.haskell.org/ghc
On branch : master
Link : http://ghc.haskell.org/trac/ghc/changeset/f48e276a5ba68d8b6fcb4a558022581fb30f9326/ghc
>---------------------------------------------------------------
commit f48e276a5ba68d8b6fcb4a558022581fb30f9326
Author: David Feuer <david.feuer at gmail.com>
Date: Wed Aug 29 16:34:21 2018 -0400
Finish stable split
Long ago, the stable name table and stable pointer tables were one.
Now, they are separate, and have significantly different
implementations. I believe the time has come to finish the split
that began in #7674.
* Divide `rts/Stable` into `rts/StableName` and `rts/StablePtr`.
* Give each table its own mutex.
* Add FFI functions `hs_lock_stable_ptr_table` and
`hs_unlock_stable_ptr_table` and document them.
These are intended to replace the previously undocumented
`hs_lock_stable_tables` and `hs_lock_stable_tables`,
which are now documented as deprecated synonyms.
* Make `eqStableName#` use pointer equality instead of unnecessarily
comparing stable name table indices.
Reviewers: simonmar, bgamari, erikd
Reviewed By: bgamari
Subscribers: rwbarton, carter
GHC Trac Issues: #15555
Differential Revision: https://phabricator.haskell.org/D5084
>---------------------------------------------------------------
f48e276a5ba68d8b6fcb4a558022581fb30f9326
compiler/codeGen/StgCmmPrim.hs | 21 ++-
docs/users_guide/8.8.1-notes.rst | 8 +
docs/users_guide/ffi-chap.rst | 40 ++++
includes/HsFFI.h | 18 ++
includes/Rts.h | 3 +-
includes/rts/{Stable.h => StableName.h} | 18 +-
includes/rts/{Stable.h => StablePtr.h} | 13 --
includes/stg/MiscClosures.h | 4 +-
rts/Adjustor.c | 2 +-
rts/Globals.c | 2 +-
rts/HsFFI.c | 20 +-
rts/Interpreter.c | 2 +-
rts/Linker.c | 2 +-
rts/RetainerProfile.c | 7 +-
rts/RtsAPI.c | 2 +-
rts/RtsStartup.c | 13 +-
rts/RtsSymbols.c | 2 +
rts/Schedule.c | 12 +-
rts/{Stable.c => StableName.c} | 287 +++-------------------------
rts/StableName.h | 31 +++
rts/{Stable.c => StablePtr.c} | 324 +++-----------------------------
rts/{Stable.h => StablePtr.h} | 27 ++-
rts/StaticPtrTable.c | 2 +-
rts/TopHandler.c | 2 +-
rts/TopHandler.h | 1 -
rts/posix/Signals.c | 1 -
rts/rts.cabal.in | 6 +-
rts/sm/Compact.c | 8 +-
rts/sm/GC.c | 23 ++-
utils/deriveConstants/Main.hs | 2 +-
30 files changed, 244 insertions(+), 659 deletions(-)
Diff suppressed because of size. To see it, use:
git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc f48e276a5ba68d8b6fcb4a558022581fb30f9326
More information about the ghc-commits
mailing list