ghci exit codes and `-e` flag inconsistent
Summary
ghci behaves inconsistently when an -e
flag's command fails. Where "abort" means "stop executing and return 1": on 8.6.4, ghci -e blah
will abort, :l blah
will abort, but :l Blah
or :t Blah
does not abort.
Steps to reproduce
As above.
Expected behavior
It should be consistent: either never abort on error (which is what interactive mode is like), or always abort on error. I use ghci -e
to test that certain things can be loaded, so I'd prefer to always abort. This is similar to how shells work, except they (bash, zsh) default to never abort, but can be switched to always abort with a -e
flag.
Environment
- GHC version used: 8.6.4