Admin message

Due to a large amount of spam we do not allow new users to create repositories, they are "external" users. If you are a new user and want to create a repository, for example for forking GHC, open a new issue on ghc/ghc using the "get-verified" issue template

hpc markup error: hGetContents: invalid argument (invalid byte sequence)
## Summary `hpc` depends on the system locale when reading source files, while `ghc` expects those files to be encoded in utf-8 ## Steps to reproduce When compiling a simple `Main.hs` file with some unicode characters: ```haskell module Main where main :: IO () main = putStrLn "Добрый день" ``` we will not have a problem, but when running `hpc markup` we do get an error, unless our locale is set to unicode: ```shell $ rm -fr .hpc Main.tix && LANG=ASCII ghc -fhpc Main.hs -fforce-recomp && ./Main && hpc report Main && LANG=ASCII hpc markup Main [1 of 1] Compiling Main ( Main.hs, Main.o ) Linking Main ... Добрый день 100% expressions used (2/2) 100% boolean coverage (0/0) 100% guards (0/0) 100% 'if' conditions (0/0) 100% qualifiers (0/0) 100% alternatives used (0/0) 100% local declarations used (0/0) 100% top-level declarations used (1/1) Writing: Main.hs.html hpc: ./Main.hs: hGetContents: invalid argument (invalid byte sequence) ``` ## Expected behavior `hpc` should not rely on system locale for source file encoding, since they are expected to be in `utf-8`, and will not be compiled otherwise. Moreover, while generating the html files with `hpc markup` system locale is queried with `System.IO.localeEncoding` and set as a `charset` in the `Content-Type` header, which is again incorrect, since `.hs` files will be in `utf-8`. Expected outcome: ```shell $ LANG=en_US.UTF-8 hpc markup Main Writing: Main.hs.html Writing: hpc_index.html Writing: hpc_index_fun.html Writing: hpc_index_alt.html Writing: hpc_index_exp.html ``` ## Environment * GHC version used: 8.6.5 and others Optional: * Operating System: Ubuntu 18.04LTS * System Architecture: x86_64
issue