Repository : ssh://darcs.haskell.org//srv/darcs/packages/vector On branch :
http://hackage.haskell.org/trac/ghc/changeset/5b9c2966024cec4c06393c266fa91189a2d97756 >--------------------------------------------------------------- commit 5b9c2966024cec4c06393c266fa91189a2d97756 Author: Roman Leshchinskiy <[email protected]> Date: Wed May 11 20:21:15 2011 +0000 Add basicUnsafeMove to generation script and regenerate unbox-tuble-instances >--------------------------------------------------------------- internal/GenUnboxTuple.hs | 6 ++++++ internal/unbox-tuple-instances | 26 ++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 0 deletions(-) diff --git a/internal/GenUnboxTuple.hs b/internal/GenUnboxTuple.hs index 8433adb..5711667 100644 --- a/internal/GenUnboxTuple.hs +++ b/internal/GenUnboxTuple.hs @@ -164,6 +164,11 @@ generate n = mk_do [q rec <+> vs <> char '1' <+> vs <> char '2' | vs <- varss] empty) + gen_unsafeMove rec + = (patn "MV" 1 <+> patn "MV" 2, + mk_do [qM rec <+> vs <> char '1' <+> vs <> char '2' | vs <- varss] + empty) + gen_unsafeGrow rec = (pat "MV" <+> var 'm', mk_do [vs <> char '\'' <+> text "<-" @@ -218,6 +223,7 @@ generate n = ,("basicClear", gen_clear) ,("basicSet", gen_set) ,("basicUnsafeCopy", gen_unsafeCopy "MV" qM) + ,("basicUnsafeMove", gen_unsafeMove) ,("basicUnsafeGrow", gen_unsafeGrow)] methods_Vector = [("basicUnsafeFreeze", gen_unsafeFreeze) diff --git a/internal/unbox-tuple-instances b/internal/unbox-tuple-instances index d733156..d5f5879 100644 --- a/internal/unbox-tuple-instances +++ b/internal/unbox-tuple-instances @@ -613,6 +613,18 @@ instance (Unbox a, M.basicUnsafeCopy cs1 cs2 M.basicUnsafeCopy ds1 ds2 M.basicUnsafeCopy es1 es2 + {-# INLINE basicUnsafeMove #-} + basicUnsafeMove (MV_5 n_1 as1 bs1 cs1 ds1 es1) (MV_5 n_2 as2 + bs2 + cs2 + ds2 + es2) + = do + M.basicUnsafeMove as1 as2 + M.basicUnsafeMove bs1 bs2 + M.basicUnsafeMove cs1 cs2 + M.basicUnsafeMove ds1 ds2 + M.basicUnsafeMove es1 es2 {-# INLINE basicUnsafeGrow #-} basicUnsafeGrow (MV_5 n_ as bs cs ds es) m_ = do @@ -887,6 +899,20 @@ instance (Unbox a, M.basicUnsafeCopy ds1 ds2 M.basicUnsafeCopy es1 es2 M.basicUnsafeCopy fs1 fs2 + {-# INLINE basicUnsafeMove #-} + basicUnsafeMove (MV_6 n_1 as1 bs1 cs1 ds1 es1 fs1) (MV_6 n_2 as2 + bs2 + cs2 + ds2 + es2 + fs2) + = do + M.basicUnsafeMove as1 as2 + M.basicUnsafeMove bs1 bs2 + M.basicUnsafeMove cs1 cs2 + M.basicUnsafeMove ds1 ds2 + M.basicUnsafeMove es1 es2 + M.basicUnsafeMove fs1 fs2 {-# INLINE basicUnsafeGrow #-} basicUnsafeGrow (MV_6 n_ as bs cs ds es fs) m_ = do _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
