[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