[GHC] #10623: Handling of ASCII encodings introduced in D898 breaks Unicode terminal detection

GHC ghc-devs at haskell.org
Fri Jul 10 17:54:55 UTC 2015


#10623: Handling of ASCII encodings introduced in D898 breaks Unicode terminal
detection
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                   Owner:
            Type:  bug               |                  Status:  new
        Priority:  normal            |               Milestone:
       Component:  Compiler          |                 Version:  7.10.2-rc2
      Resolution:                    |                Keywords:
Operating System:  Unknown/Multiple  |            Architecture:
 Type of failure:  None/Unknown      |  Unknown/Multiple
      Blocked By:                    |               Test Case:  T8958a
 Related Tickets:  #10298, #7695     |                Blocking:
                                     |  Differential Revisions:  Phab:1059
-------------------------------------+-------------------------------------

Comment (by Ben Gamari <ben@…>):

 In [changeset:"d69dfba4e27c4ec33459906fd87c9a56a371f510/ghc"]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="d69dfba4e27c4ec33459906fd87c9a56a371f510"
 Fix self-contained handling of ASCII encoding

 D898 was primarily intended to fix hangs in the event that iconv was
 unavailable (namely #10298 and #7695). In addition to this fix, it also
 introduced self-contained handling of ANSI terminals to allow compiled
 executables to run in minimal environments lacking iconv.

 However, the behavior that the patch introduced is highly suspicious.
 Specifically, it gives the user a UTF-8 encoding even if they requested
 ASCII.

 This has the potential to break quite a lot of code. At very least it
 breaks GHC's Unicode terminal detection logic, which attempts to catch
 an invalid character when encoding a pair of smart-quotes. Of course,
 this exception will never be thrown if a UTF-8 encoder is used.

 Here we use the `char8` encoding to handle requests for ASCII encodings
 in the event that we find iconv to be non-functional.

 Fixes #10623.

 Test Plan: Validate with T8959a

 Reviewers: rwbarton, hvr, austin, hsyl20

 Subscribers: thomie

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

 GHC Trac Issues: #10623
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10623#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list