Skip to content

Commit 1f97bf4

Browse files
committed
upgraded gitlib-libgit2 to hlibgit 1.7.1.0
some functions were outcommented instead of upgraded
1 parent 7fb00e2 commit 1f97bf4

File tree

7 files changed

+802
-809
lines changed

7 files changed

+802
-809
lines changed

gitlib-libgit2/Git/Libgit2.hs

Lines changed: 631 additions & 629 deletions
Large diffs are not rendered by default.

gitlib-libgit2/Git/Libgit2/Backend.hs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,38 +32,38 @@ import Foreign.Storable
3232
import Git.Libgit2.Types
3333

3434
type F'git_odb_backend_read_callback =
35-
Ptr (Ptr ()) -> Ptr CSize -> Ptr C'git_otype -> Ptr C'git_odb_backend
35+
Ptr (Ptr ()) -> Ptr CSize -> Ptr C'git_object_t -> Ptr C'git_odb_backend
3636
-> Ptr C'git_oid -> IO CInt
3737
type F'git_odb_backend_read_prefix_callback =
38-
Ptr C'git_oid -> Ptr (Ptr ()) -> Ptr CSize -> Ptr C'git_otype
38+
Ptr C'git_oid -> Ptr (Ptr ()) -> Ptr CSize -> Ptr C'git_object_t
3939
-> Ptr C'git_odb_backend -> Ptr C'git_oid -> CSize -> IO CInt
4040
type F'git_odb_backend_readstream_callback =
4141
Ptr (Ptr C'git_odb_stream) -> Ptr C'git_odb_backend -> Ptr C'git_oid
4242
-> IO CInt
4343
type F'git_odb_backend_read_header_callback =
44-
Ptr CSize -> Ptr C'git_otype -> Ptr C'git_odb_backend -> Ptr C'git_oid
44+
Ptr CSize -> Ptr C'git_object_t -> Ptr C'git_odb_backend -> Ptr C'git_oid
4545
-> IO CInt
4646
type F'git_odb_backend_write_callback =
47-
Ptr C'git_oid -> Ptr C'git_odb_backend -> Ptr () -> CSize -> C'git_otype
47+
Ptr C'git_oid -> Ptr C'git_odb_backend -> Ptr () -> CSize -> C'git_object_t
4848
-> IO CInt
4949
type F'git_odb_backend_writestream_callback =
5050
Ptr (Ptr C'git_odb_stream) -> Ptr C'git_odb_backend -> CSize
51-
-> C'git_otype -> IO CInt
51+
-> C'git_object_t -> IO CInt
5252
type F'git_odb_backend_exists_callback =
5353
Ptr C'git_odb_backend -> Ptr C'git_oid -> CInt -> IO CInt
5454
type F'git_odb_backend_refresh_callback = Ptr C'git_odb_backend -> IO CInt
5555
type F'git_odb_backend_foreach_callback =
5656
Ptr C'git_odb_backend -> C'git_odb_foreach_cb -> Ptr () -> IO CInt
5757
type F'git_odb_backend_writepack_callback =
5858
Ptr (Ptr C'git_odb_writepack) -> Ptr C'git_odb_backend
59-
-> C'git_transfer_progress_callback -> Ptr () -> IO CInt
59+
-> C'git_indexer_progress_cb -> Ptr () -> IO CInt
6060
type F'git_odb_backend_free_callback = Ptr C'git_odb_backend -> IO ()
6161

6262
type F'git_odb_writepack_add_callback =
63-
Ptr C'git_odb_writepack -> Ptr () -> CSize -> Ptr C'git_transfer_progress
63+
Ptr C'git_odb_writepack -> Ptr () -> CSize -> Ptr C'git_indexer_progress_cb
6464
-> IO CInt
6565
type F'git_odb_writepack_commit_callback =
66-
Ptr C'git_odb_writepack -> Ptr C'git_transfer_progress -> IO CInt
66+
Ptr C'git_odb_writepack -> Ptr C'git_indexer_progress_cb -> IO CInt
6767
type F'git_odb_writepack_free_callback = Ptr C'git_odb_writepack -> IO ()
6868

6969

gitlib-libgit2/Git/Libgit2/Internal.hs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,18 @@ import Git.Libgit2.Trace
2929
import Git.Libgit2.Types
3030
import System.FilePath.Posix
3131

32-
addTracingBackend :: LgRepo -> IO ()
33-
addTracingBackend repo =
34-
withCString (lgRepoPath repo </> "objects") $ \objectsDir ->
35-
alloca $ \loosePtr -> do
36-
r <- c'git_odb_backend_loose loosePtr objectsDir (-1) 0
37-
when (r < 0) $
38-
error "Failed to create loose objects backend"
39-
40-
loosePtr' <- peek loosePtr
41-
backend <- traceBackend loosePtr'
42-
void $ odbBackendAdd repo backend 3
43-
return ()
32+
--addTracingBackend :: LgRepo -> IO ()
33+
--addTracingBackend repo =
34+
-- withCString (lgRepoPath repo </> "objects") $ \objectsDir ->
35+
-- alloca $ \loosePtr -> do
36+
-- r <- c'git_odb_backend_loose loosePtr objectsDir (-1) 0
37+
-- when (r < 0) $
38+
-- error "Failed to create loose objects backend"
39+
--
40+
-- loosePtr' <- peek loosePtr
41+
-- backend <- traceBackend loosePtr'
42+
-- void $ odbBackendAdd repo backend 3
43+
-- return ()
4444

4545
coidPtrToOid :: Ptr C'git_oid -> IO (ForeignPtr C'git_oid)
4646
coidPtrToOid coidptr = do
@@ -68,7 +68,7 @@ lookupObject' oid len lookupFn lookupPrefixFn createFn = do
6868
then do
6969
oidStr <- withForeignPtr oid (flip oidToStr len)
7070
let args = ["Could not lookup ", T.pack oidStr]
71-
err <- c'giterr_last
71+
err <- c'git_error_last
7272
if err == nullPtr
7373
then return $ Left $ T.concat args
7474
else do

gitlib-libgit2/Git/Libgit2/Trace.hs

Lines changed: 136 additions & 130 deletions
Original file line numberDiff line numberDiff line change
@@ -9,144 +9,150 @@ import Bindings.Libgit2
99
import Control.Applicative
1010
import Control.Monad
1111
import Foreign.C.String
12+
import Foreign.ForeignPtr
1213
import Foreign.Marshal.Utils
1314
import Foreign.Ptr
1415
import Foreign.Storable
1516
import Git.Libgit2.Backend
1617
import Prelude hiding (mapM_)
1718

18-
data TraceBackend = TraceBackend { traceParent :: C'git_odb_backend
19-
, traceNext :: Ptr C'git_odb_backend }
20-
21-
instance Storable TraceBackend where
22-
sizeOf _ = sizeOf (undefined :: C'git_odb_backend) +
23-
sizeOf (undefined :: Ptr C'git_odb_backend)
24-
alignment p = alignment (traceParent p)
25-
peek p = do
26-
v0 <- peekByteOff p 0
27-
v1 <- peekByteOff p (sizeOf (undefined :: C'git_odb_backend))
28-
return (TraceBackend v0 v1)
29-
poke p (TraceBackend v0 v1) = do
30-
pokeByteOff p 0 v0
31-
pokeByteOff p (sizeOf (undefined :: C'git_odb_backend)) v1
32-
return ()
19+
--data TraceBackend = TraceBackend { traceParent :: C'git_odb_backend
20+
-- , traceNext :: Ptr C'git_odb_backend }
21+
--
22+
--instance Storable TraceBackend where
23+
-- sizeOf _ = sizeOf (undefined :: C'git_odb_backend) +
24+
-- sizeOf (undefined :: Ptr C'git_odb_backend)
25+
-- alignment p = alignment (traceParent p)
26+
-- peek p = do
27+
-- v0 <- peekByteOff p 0
28+
-- v1 <- peekByteOff p (sizeOf (undefined :: C'git_odb_backend))
29+
-- return (TraceBackend v0 v1)
30+
-- poke p (TraceBackend v0 v1) = do
31+
-- pokeByteOff p 0 v0
32+
-- pokeByteOff p (sizeOf (undefined :: C'git_odb_backend)) v1
33+
-- return ()
3334

3435
oidToStr :: Ptr C'git_oid -> Int -> IO String
35-
oidToStr oid len = c'git_oid_allocfmt oid >>= fmap (take len) . peekCString
36-
37-
traceBackendReadCallback :: F'git_odb_backend_read_callback
38-
traceBackendReadCallback data_p len_p type_p be oid = do
39-
oidStr <- oidToStr oid 40
40-
putStrLn $ "Read " ++ oidStr
41-
tb <- peek (castPtr be :: Ptr TraceBackend)
42-
tn <- peek (traceNext tb)
43-
mK'git_odb_backend_read_callback
44-
(c'git_odb_backend'read tn)
45-
data_p
46-
len_p
47-
type_p
48-
(traceNext tb)
49-
oid
50-
51-
traceBackendReadPrefixCallback :: F'git_odb_backend_read_prefix_callback
52-
traceBackendReadPrefixCallback out_oid oid_p len_p type_p be oid len = do
53-
oidStr <- oidToStr oid 40
54-
putStrLn $ "Read Prefix " ++ oidStr ++ " " ++ show len
55-
tb <- peek (castPtr be :: Ptr TraceBackend)
56-
tn <- peek (traceNext tb)
57-
mK'git_odb_backend_read_prefix_callback
58-
(c'git_odb_backend'read_prefix tn)
59-
out_oid
60-
oid_p
61-
len_p
62-
type_p
63-
(traceNext tb)
64-
oid
65-
len
66-
67-
traceBackendReadHeaderCallback :: F'git_odb_backend_read_header_callback
68-
traceBackendReadHeaderCallback len_p type_p be oid = do
69-
oidStr <- oidToStr oid 40
70-
putStrLn $ "Read Header " ++ oidStr
71-
tb <- peek (castPtr be :: Ptr TraceBackend)
72-
tn <- peek (traceNext tb)
73-
mK'git_odb_backend_read_header_callback
74-
(c'git_odb_backend'read_header tn)
75-
len_p
76-
type_p
77-
(traceNext tb)
78-
oid
79-
80-
traceBackendWriteCallback :: F'git_odb_backend_write_callback
81-
traceBackendWriteCallback oid be obj_data len obj_type = do
82-
r <- c'git_odb_hash oid obj_data len obj_type
83-
case r of
84-
0 -> do
85-
oidStr <- oidToStr oid 40
86-
putStrLn $ "Write " ++ oidStr ++ " len " ++ show len
87-
tb <- peek (castPtr be :: Ptr TraceBackend)
88-
tn <- peek (traceNext tb)
89-
mK'git_odb_backend_write_callback
90-
(c'git_odb_backend'write tn)
91-
oid
92-
(traceNext tb)
93-
obj_data
94-
len
95-
obj_type
96-
n -> return n
97-
98-
traceBackendExistsCallback :: F'git_odb_backend_exists_callback
99-
traceBackendExistsCallback be oid confirmNotExists = do
100-
oidStr <- oidToStr oid 40
101-
putStrLn $ "Exists " ++ oidStr
102-
tb <- peek (castPtr be :: Ptr TraceBackend)
103-
tn <- peek (traceNext tb)
104-
mK'git_odb_backend_exists_callback
105-
(c'git_odb_backend'exists tn)
106-
(traceNext tb)
107-
oid
108-
confirmNotExists
109-
110-
traceBackendFreeCallback :: F'git_odb_backend_free_callback
111-
traceBackendFreeCallback be = do
112-
backend <- peek be
113-
freeHaskellFunPtr (c'git_odb_backend'read backend)
114-
freeHaskellFunPtr (c'git_odb_backend'read_prefix backend)
115-
freeHaskellFunPtr (c'git_odb_backend'read_header backend)
116-
freeHaskellFunPtr (c'git_odb_backend'write backend)
117-
freeHaskellFunPtr (c'git_odb_backend'exists backend)
118-
119-
foreign export ccall "traceBackendFreeCallback"
120-
traceBackendFreeCallback :: F'git_odb_backend_free_callback
121-
foreign import ccall "&traceBackendFreeCallback"
122-
traceBackendFreeCallbackPtr :: FunPtr F'git_odb_backend_free_callback
123-
124-
traceBackend :: Ptr C'git_odb_backend -> IO (Ptr C'git_odb_backend)
125-
traceBackend be = do
126-
readFun <- mk'git_odb_backend_read_callback traceBackendReadCallback
127-
readPrefixFun <-
128-
mk'git_odb_backend_read_prefix_callback traceBackendReadPrefixCallback
129-
readHeaderFun <-
130-
mk'git_odb_backend_read_header_callback traceBackendReadHeaderCallback
131-
writeFun <- mk'git_odb_backend_write_callback traceBackendWriteCallback
132-
existsFun <- mk'git_odb_backend_exists_callback traceBackendExistsCallback
36+
oidToStr oid len = do
37+
ptr <- mallocForeignPtrArray0 len
38+
withForeignPtr ptr $ \ptr' -> do
39+
_ <- c'git_oid_fmt ptr' oid
40+
str <- peekCString ptr'
41+
return $ take len str
13342

134-
castPtr <$> new TraceBackend {
135-
traceParent = C'git_odb_backend {
136-
c'git_odb_backend'version = 1
137-
, c'git_odb_backend'odb = nullPtr
138-
, c'git_odb_backend'read = readFun
139-
, c'git_odb_backend'read_prefix = readPrefixFun
140-
, c'git_odb_backend'readstream = nullFunPtr
141-
, c'git_odb_backend'read_header = readHeaderFun
142-
, c'git_odb_backend'write = writeFun
143-
, c'git_odb_backend'writestream = nullFunPtr
144-
, c'git_odb_backend'exists = existsFun
145-
, c'git_odb_backend'refresh = undefined
146-
, c'git_odb_backend'foreach = undefined
147-
, c'git_odb_backend'writepack = undefined
148-
, c'git_odb_backend'free = traceBackendFreeCallbackPtr
149-
}
150-
, traceNext = be }
43+
--traceBackendReadCallback :: F'git_odb_backend_read_callback
44+
--traceBackendReadCallback data_p len_p type_p be oid = do
45+
-- oidStr <- oidToStr oid 40
46+
-- putStrLn $ "Read " ++ oidStr
47+
-- tb <- peek (castPtr be :: Ptr TraceBackend)
48+
-- tn <- peek (traceNext tb)
49+
-- mK'git_odb_backend_read_callback
50+
-- (c'git_odb_backend'read tn)
51+
-- data_p
52+
-- len_p
53+
-- type_p
54+
-- (traceNext tb)
55+
-- oid
56+
--
57+
--traceBackendReadPrefixCallback :: F'git_odb_backend_read_prefix_callback
58+
--traceBackendReadPrefixCallback out_oid oid_p len_p type_p be oid len = do
59+
-- oidStr <- oidToStr oid 40
60+
-- putStrLn $ "Read Prefix " ++ oidStr ++ " " ++ show len
61+
-- tb <- peek (castPtr be :: Ptr TraceBackend)
62+
-- tn <- peek (traceNext tb)
63+
-- mK'git_odb_backend_read_prefix_callback
64+
-- (c'git_odb_backend'read_prefix tn)
65+
-- out_oid
66+
-- oid_p
67+
-- len_p
68+
-- type_p
69+
-- (traceNext tb)
70+
-- oid
71+
-- len
72+
--
73+
--traceBackendReadHeaderCallback :: F'git_odb_backend_read_header_callback
74+
--traceBackendReadHeaderCallback len_p type_p be oid = do
75+
-- oidStr <- oidToStr oid 40
76+
-- putStrLn $ "Read Header " ++ oidStr
77+
-- tb <- peek (castPtr be :: Ptr TraceBackend)
78+
-- tn <- peek (traceNext tb)
79+
-- mK'git_odb_backend_read_header_callback
80+
-- (c'git_odb_backend'read_header tn)
81+
-- len_p
82+
-- type_p
83+
-- (traceNext tb)
84+
-- oid
85+
--
86+
--traceBackendWriteCallback :: F'git_odb_backend_write_callback
87+
--traceBackendWriteCallback oid be obj_data len obj_type = do
88+
-- r <- c'git_odb_hash oid obj_data len obj_type
89+
-- case r of
90+
-- 0 -> do
91+
-- oidStr <- oidToStr oid 40
92+
-- putStrLn $ "Write " ++ oidStr ++ " len " ++ show len
93+
-- tb <- peek (castPtr be :: Ptr TraceBackend)
94+
-- tn <- peek (traceNext tb)
95+
-- mK'git_odb_backend_write_callback
96+
-- (c'git_odb_backend'write tn)
97+
-- oid
98+
-- (traceNext tb)
99+
-- obj_data
100+
-- len
101+
-- obj_type
102+
-- n -> return n
103+
--
104+
--traceBackendExistsCallback :: F'git_odb_backend_exists_callback
105+
--traceBackendExistsCallback be oid confirmNotExists = do
106+
-- oidStr <- oidToStr oid 40
107+
-- putStrLn $ "Exists " ++ oidStr
108+
-- tb <- peek (castPtr be :: Ptr TraceBackend)
109+
-- tn <- peek (traceNext tb)
110+
-- mK'git_odb_backend_exists_callback
111+
-- (c'git_odb_backend'exists tn)
112+
-- (traceNext tb)
113+
-- oid
114+
-- confirmNotExists
115+
--
116+
--traceBackendFreeCallback :: F'git_odb_backend_free_callback
117+
--traceBackendFreeCallback be = do
118+
-- backend <- peek be
119+
-- freeHaskellFunPtr (c'git_odb_backend'read backend)
120+
-- freeHaskellFunPtr (c'git_odb_backend'read_prefix backend)
121+
-- freeHaskellFunPtr (c'git_odb_backend'read_header backend)
122+
-- freeHaskellFunPtr (c'git_odb_backend'write backend)
123+
-- freeHaskellFunPtr (c'git_odb_backend'exists backend)
124+
--
125+
--foreign export ccall "traceBackendFreeCallback"
126+
-- traceBackendFreeCallback :: F'git_odb_backend_free_callback
127+
--foreign import ccall "&traceBackendFreeCallback"
128+
-- traceBackendFreeCallbackPtr :: FunPtr F'git_odb_backend_free_callback
129+
--
130+
--traceBackend :: Ptr C'git_odb_backend -> IO (Ptr C'git_odb_backend)
131+
--traceBackend be = do
132+
-- readFun <- mk'git_odb_backend_read_callback traceBackendReadCallback
133+
-- readPrefixFun <-
134+
-- mk'git_odb_backend_read_prefix_callback traceBackendReadPrefixCallback
135+
-- readHeaderFun <-
136+
-- mk'git_odb_backend_read_header_callback traceBackendReadHeaderCallback
137+
-- writeFun <- mk'git_odb_backend_write_callback traceBackendWriteCallback
138+
-- existsFun <- mk'git_odb_backend_exists_callback traceBackendExistsCallback
139+
--
140+
-- castPtr <$> new TraceBackend {
141+
-- traceParent = C'git_odb_backend {
142+
-- c'git_odb_backend'version = 1
143+
-- , c'git_odb_backend'odb = nullPtr
144+
-- , c'git_odb_backend'read = readFun
145+
-- , c'git_odb_backend'read_prefix = readPrefixFun
146+
-- , c'git_odb_backend'readstream = nullFunPtr
147+
-- , c'git_odb_backend'read_header = readHeaderFun
148+
-- , c'git_odb_backend'write = writeFun
149+
-- , c'git_odb_backend'writestream = nullFunPtr
150+
-- , c'git_odb_backend'exists = existsFun
151+
-- , c'git_odb_backend'refresh = undefined
152+
-- , c'git_odb_backend'foreach = undefined
153+
-- , c'git_odb_backend'writepack = undefined
154+
-- , c'git_odb_backend'free = traceBackendFreeCallbackPtr
155+
-- }
156+
-- , traceNext = be }
151157

152158
-- Trace.hs

0 commit comments

Comments
 (0)