Skip to content
  • Alan Zimmerman's avatar
    Add hook for creating ghci external interpreter · 65d9597d
    Alan Zimmerman authored
    Summary:
    The external interpreter is launched by calling
    'System.Process.createProcess' with a 'CreateProcess' parameter.
    
    The current value for this has the 'std_in', 'std_out' and 'std_err'
    fields use the default of 'Inherit', meaning that the remote interpreter
    shares the stdio with the original ghc/ghci process.
    
    This patch introduces a new hook to the DynFlags, which has an
    opportunity to override the 'CreateProcess' fields, launch the process,
    and retrieve the stdio handles actually used.
    
    So if a ghci external interpreter session is launched from the GHC API
    the stdio can be redirected if required, which is useful for tooling/IDE
    integration.
    
    Test Plan: ./validate
    
    Reviewers: austin, hvr, simonmar, bgamari
    
    Reviewed By: simonmar, bgamari
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D2518
    65d9597d