[GHC] #365: GHC dies silently with faulty preprocessor

GHC ghc-devs at haskell.org
Sat Oct 3 11:04:19 UTC 2015


#365: GHC dies silently with faulty preprocessor
---------------------------------+----------------------------------------
        Reporter:  josefs        |                Owner:  Phyx-
            Type:  bug           |               Status:  patch
        Priority:  normal        |            Milestone:
       Component:  Compiler      |              Version:  7.11
      Resolution:                |             Keywords:
Operating System:  Windows       |         Architecture:  Unknown/Multiple
 Type of failure:  None/Unknown  |            Test Case:  T365
      Blocked By:                |             Blocking:
 Related Tickets:                |  Differential Rev(s):  Phab:D1256
---------------------------------+----------------------------------------

Comment (by Ben Gamari <ben@…>):

 In [changeset:"b6f76b9aaca49df0fb06d8bad2f7edc5b5b8c095/ghc" b6f76b9/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="b6f76b9aaca49df0fb06d8bad2f7edc5b5b8c095"
 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
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/365#comment:10>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list