
#6135: Unboxed Booleans ---------------------------------+------------------------------------------ Reporter: benl | Owner: jstolarek Type: feature request | Status: patch Priority: normal | Milestone: 7.8.1 Component: Compiler | Version: 7.4.1 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: #605 | ---------------------------------+------------------------------------------ Comment(by jstolarek): Wiki page is up to date and shows one example benchmark where the code is about 3 times faster thanks to the new primops. I also have an idea for one more benchmark, but I'm not yet sure whether it'll give good results. Changing the type of dataToTag# and tagToEnum# to maintain consistency sounds like a good idea. I can take care of that, once I'm done with comparison primops. At the moment I hit a rather serious problem (or so it seems) - changing the return type of comparisons breaks automatic deriving of instances for Ord and Eq. I'm yet to figure out how to fix that. Right now I would insist to decide what names should the wrappers have. There will be lots of changes needed and I would like to avoid going through this twice. My proposals are: {{{ gtCharBool#, geCharBool#, eqCharBool#, neCharBool#, ltCharBool#, leCharBool#, (>$#), (>=$#), (==$#), (/=$#), (<$#), (<=$#), gtWordBool#, geWordBool#, eqWordBool#, neWordBool#, ltWordBool#, leWordBool#, (>$##), (>=$##), (==$##), (/=$##), (<$##), (<=$##), gtFloatBool#, geFloatBool#, eqFloatBool#, neFloatBool#, ltFloatBool#, leFloatBool#, gtAddrBool#, geAddrBool#, eqAddrBool#, neAddrBool#, ltAddrBool#, leAddrBool# }}} -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/6135#comment:34 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler