Skip to content
  • Zejun Wu's avatar
    Handle :cd in external interpreter in a more robust way · f99d898b
    Zejun Wu authored and Ben Gamari's avatar Ben Gamari committed
    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