
#9795: Debug.Trace.trace is too strict -------------------------------------+------------------------------------- Reporter: jcpetruzza | Owner: Type: bug | Status: patch Priority: normal | Milestone: 7.12.1 Component: libraries/base | Version: 7.8.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: None/Unknown | Unknown/Multiple Blocked By: | Test Case: Related Tickets: | Blocking: | Differential Revisions: Phab:D654 -------------------------------------+------------------------------------- Comment (by thomie): My reasoning was: `withCString`, and in turn `debugBelch`, need the complete string to be present before printing can start. `hPutStrLn` on the other hand prints character for character. So it's not about `trace` being lazy or not, but how it handles (possibly infinite) lazy strings. There are some problems however: * with my patch, traceIO would handle lazy strings differently on non- Windows vs. Windows. * traceEventIO and traceMarkerIO still don't handle lazy strings. Both emit to the eventlog, for which (I'm guessing) the complete string needs to be ready as well . Maybe we should keep things the way they are. Although surprising, at least the story is consistent over all `trace` functions. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9795#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler