[commit: ghc] master: Switch VEH to VCH and allow disabling of SEH completely. (1421d87)

git at git.haskell.org git at git.haskell.org
Tue Sep 26 21:44:18 UTC 2017


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/1421d87c8aabd7b1934f60bef688939882c8251c/ghc

>---------------------------------------------------------------

commit 1421d87c8aabd7b1934f60bef688939882c8251c
Author: Tamar Christina <tamar at zhox.com>
Date:   Tue Sep 26 14:34:58 2017 -0400

    Switch VEH to VCH and allow disabling of SEH completely.
    
    Exception handling on Windows is unfortunately a bit complicated.
    But essentially the VEH Handlers we currently have are running too
    early.
    
    This was a problem as it ran so early it also swallowed C++ exceptions
    and other software exceptions which the system could have very well
    recovered from.
    
    So instead we use a sequence of chains to for the exception handlers to
    run as late as possible. You really can't get any later than this.
    
    Please read the comment in the patch for more details.
    
    I'm also providing a switch to allow people to turn off the exception
    handling entirely. In case it does present a problem with their code.
    
    (Reverted and recommitted to fix authorship information)
    
    Test Plan: ./validate
    
    Reviewers: austin, hvr, bgamari, erikd, simonmar
    
    Reviewed By: bgamari
    
    Subscribers: rwbarton, thomie
    
    GHC Trac Issues: #13911, #12110
    
    Differential Revision: https://phabricator.haskell.org/D3911


>---------------------------------------------------------------

1421d87c8aabd7b1934f60bef688939882c8251c
 docs/users_guide/8.4.1-notes.rst     |  7 +++
 docs/users_guide/runtime_control.rst |  8 ++++
 includes/rts/Flags.h                 |  1 +
 libraries/base/GHC/RTS/Flags.hsc     |  2 +
 libraries/base/changelog.md          |  3 ++
 rts/RtsFlags.c                       | 19 +++++++-
 rts/RtsMain.c                        |  7 +--
 rts/win32/veh_excn.c                 | 91 ++++++++++++++++++++++++++++++++++--
 rts/win32/veh_excn.h                 |  1 +
 9 files changed, 127 insertions(+), 12 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 1421d87c8aabd7b1934f60bef688939882c8251c


More information about the ghc-commits mailing list