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

Reply via email to