diff options
author | Tamar Christina <tamar@zhox.com> | 2015-10-03 12:37:00 +0200 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2015-10-03 13:06:24 +0200 |
commit | b6f76b9aaca49df0fb06d8bad2f7edc5b5b8c095 (patch) | |
tree | db579ae81dd7d3f0e362c9df62cf0d7c620d5c26 /utils | |
parent | 93e21b96f94556dc3f0bcee7615cb7f31444bd99 (diff) | |
download | haskell-b6f76b9aaca49df0fb06d8bad2f7edc5b5b8c095.tar.gz |
Prevent GHC from silently dying when preprocessor is not found
The Windows preprocessor code calls `runInteractiveProcess` but does
not check if an exception is thrown.
`runInteractiveProcess` calls `CreateProcess` which when given a format
the system loader does not know about
will throw an exception. This is what makes #9399 fail.
Ultimately we should not use any `CreateProcess` based calls but
instead `ShellExecuteEx` as this would allow
us to run applications that the shell knows about instead of just the
loader. More details on #365.
This patch removes `PhaseFailed` and throws `ProgramError` instead.
`PhaseFailed` was largely unneeded since it never gave
very useful information aside from the `errorcode` which was almost
always `1`. `IOErrors` have also been eliminated and `GhcExceptions`
thrown in their place wherever possible.
Updates haddock submodule.
Test Plan:
`./validate` to make sure anything didn't break and
`make TESTS="T365"` to test that an error is now properly thrown
Reviewers: austin, thomie, bgamari
Reviewed By: thomie, bgamari
Subscribers: #ghc_windows_task_force
Differential Revision: https://phabricator.haskell.org/D1256
GHC Trac Issues: #365
Diffstat (limited to 'utils')
m--------- | utils/haddock | 0 |
1 files changed, 0 insertions, 0 deletions
diff --git a/utils/haddock b/utils/haddock -Subproject 5890a2d503b3200e9897ce331ad61d808a67fca +Subproject e083daa4a46ae2f9a244b6bcedc5951b3a78f26 |