• Zejun Wu's avatar
    Handle :cd in external interpreter in a more robust way · f99d898b
    Zejun Wu authored
    We used to enqueue another command to change directory in the external
    interpreter subprocess, this is not as robust as:
    
    * it can fail with -fno-implict-import-qualified;
    * it doesn't work when we `setGHCiMonad` to something other than `IO`.
    
    Neither of them works if `directory` package is hidden though.
    
    Test Plan:
    ```
    $ inplace/bin/ghc-stage2 --interactive # -fexternal-interpreter
    GHCi, version 8.7.20181213: http://www.haskell.org/ghc/  :? for help
    Prelude> :cd ..
    Prelude> System.Directory.getCurrentDirectory
    "/data/users/watashi"
    Prelude> :!pwd
    /data/users/watashi
    Prelude>
    Leaving GHCi.
    ```
    
      ./validate
    
    Reviewers: simonmar, bgamari, RyanGlScott
    
    Reviewed By: simonmar
    
    Subscribers: rwbarton, carter
    
    Differential Revision: https://phabricator.haskell.org/D5453
    f99d898b
UI.hs 152 KB