Respect GHC_CHARENC environment variable #10762
authorMichael Snoyman <michael@snoyman.com>
Sat, 29 Aug 2015 10:23:48 +0000 (12:23 +0200)
committerBen Gamari <ben@smart-cactus.org>
Sat, 29 Aug 2015 11:08:17 +0000 (13:08 +0200)
commit1b56c40578374a15b4a2593895710c68b0e2a717
treee0766bac78805696ef3a3155be7cc210fdfca3db
parenta6826c5d18675a783acce39352eea283e462bf8b
Respect GHC_CHARENC environment variable #10762

Only supports UTF-8 as a value right now. I expect some discussion to go
on around the naming of this variable and whether it's valid to backport
it to GHC 7.10 (which would be my preference). The motivation here is
that, when capturing the output of GHC to a file, we often want to
ensure that the output is UTF-8, regardless of the actual character
encoding of the terminal/console.

On the other hand, we don't want to necessary change the
terminal/console encoding. The reason being:

* On Windows, this requires a global-esque change to the console
  codepage, which adversely affects other processes in the same console

* On all OSes, this can break features like smart quote auto-detection.

Test Plan:
Set LANG to C, GHC_CHARENC to UTF-8, and compile a Haskell source
file with a non-ASCII warning produced. The output who include the UTF-8
sequence instead of replacing it with ?.

Reviewers: austin, rwbarton, bgamari

Reviewed By: bgamari

Subscribers: hsyl20, thomie

Differential Revision: https://phabricator.haskell.org/D1167

GHC Trac Issues: #10762
ghc/Main.hs