#4471: Incorrect Unicode output on Windows Console
-------------------------+--------------------------------------------------
    Reporter:  sankeld   |        Owner:                             
        Type:  bug       |       Status:  new                        
    Priority:  normal    |    Milestone:  7.2.1                      
   Component:  Compiler  |      Version:  6.12.3                     
    Keywords:            |     Testcase:                             
   Blockedby:            |   Difficulty:                             
          Os:  Windows   |     Blocking:                             
Architecture:  x86       |      Failure:  Incorrect result at runtime
-------------------------+--------------------------------------------------

Comment(by sankeld):

 I think I have the bug pinpointed and can explain the behavior of the
 original test program.

 I've verified that the posix `write` system call (when applied to stdout
 where stdout is attached to a console with code page 65001) returns the
 number of *characters* written instead of the number of *bytes*. This can
 probably be traced to
 [http://connect.microsoft.com/VisualStudio/feedback/details/543801
 /unicode-issues-with-writefile-and-in-the-crt this issue].

 The reasoning for our original output
 {{{
 ∷⇒∀→←⋯⊢ -- outputs correctly, but runtime thinks that 9/15 characters
 remain
 →←⋯⊢ -- runtime tries to output the remaining characters, but still thinks
 characters remain.
 ⋯⊢ -- ...and so on until a buffer overrun I assume.
 ∷⇒∀→←⋯⊢→←⋯⊢←⋯⊢⋯⊢⊢⊢⊢<stdout>: hFlush: permission denied (Permission denied)
 }}}

 The GHC/IO/FD.hs's fdWrite function source confirms this behavior.

 An ugly solution, if we want to work around this write bug, would be to
 check, upon write, if this is a 65001 console (not piped to a file). If
 so, treat the return value of write as a number of characters instead of a
 number of bytes.

 Arg.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/4471#comment:10>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to