From 389cd8738c0b402ebce69e7a7c2f0cc0eee2300e Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Fri, 25 Sep 2009 14:12:57 +0000 Subject: [PATCH] Add traceEvent :: String -> IO () For emitting an event via the RTS tracing framework --- GHC/Exts.hs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/GHC/Exts.hs b/GHC/Exts.hs index 668d30a..5a87974 100644 --- a/GHC/Exts.hs +++ b/GHC/Exts.hs @@ -41,7 +41,10 @@ module GHC.Exts lazy, inline, -- * Transform comprehensions - Down(..), groupWith, sortWith, the + Down(..), groupWith, sortWith, the, + + -- * Event logging + traceEvent ) where @@ -55,6 +58,7 @@ import GHC.Int import GHC.Ptr import Data.String import Data.List +import Foreign.C -- XXX This should really be in Data.Tuple, where the definitions are maxTupleSize :: Int @@ -97,3 +101,11 @@ groupByFB c n eq xs0 = groupByFBCore xs0 groupByFBCore (x:xs) = c (x:ys) (groupByFBCore zs) where (ys, zs) = span (eq x) xs + +-- ----------------------------------------------------------------------------- +-- tracing + +traceEvent :: String -> IO () +traceEvent msg = do + withCString msg $ \(Ptr p) -> IO $ \s -> + case traceEvent# p s of s' -> (# s', () #) -- 1.7.10.4