From vouillon at seas.upenn.edu Mon May 21 06:06:36 2012 From: vouillon at seas.upenn.edu (vouillon at seas.upenn.edu) Date: Mon, 21 May 2012 06:06:36 -0400 Subject: [Unison-hackers] [unison-svn] r496 - trunk/src Message-ID: <201205211006.q4LA6bnR018401@yaws.seas.upenn.edu> Author: vouillon Date: 2012-05-21 06:06:36 -0400 (Mon, 21 May 2012) New Revision: 496 Modified: trunk/src/RECENTNEWS trunk/src/mkProjectInfo.ml trunk/src/transfer.ml Log: * Fix bug in last commit Modified: trunk/src/RECENTNEWS =================================================================== --- trunk/src/RECENTNEWS 2012-04-30 16:18:35 UTC (rev 495) +++ trunk/src/RECENTNEWS 2012-05-21 10:06:36 UTC (rev 496) @@ -1,3 +1,8 @@ +CHANGES FROM VERSION 2.45.8 + +* Fix bug in last commit + +------------------------------- CHANGES FROM VERSION 2.45.7 * Added some debugging code in transfer.ml Modified: trunk/src/mkProjectInfo.ml =================================================================== --- trunk/src/mkProjectInfo.ml 2012-04-30 16:18:35 UTC (rev 495) +++ trunk/src/mkProjectInfo.ml 2012-05-21 10:06:36 UTC (rev 496) @@ -70,3 +70,4 @@ + Modified: trunk/src/transfer.ml =================================================================== --- trunk/src/transfer.ml 2012-04-30 16:18:35 UTC (rev 495) +++ trunk/src/transfer.ml 2012-05-21 10:06:36 UTC (rev 496) @@ -264,15 +264,20 @@ let buf = String.create bufSz in let q = makeQueue 0 in let rec sendSlice length = - let count = - reallyRead infd buf 0 - (if length > bufSzFS then bufSz else Uutil.Filesize.toInt length) in - queueToken q showProgress transmit (STRING (buf, 0, count)) >>= (fun () -> - let length = Uutil.Filesize.sub length (Uutil.Filesize.ofInt count) in - if count = bufSz && length > Uutil.Filesize.zero then - sendSlice length - else - return ()) + if length > Uutil.Filesize.zero then begin + let count = + reallyRead infd buf 0 + (if length > bufSzFS then bufSz else Uutil.Filesize.toInt length) in + if count = 0 then + Lwt.return () + else begin + queueToken q showProgress transmit (STRING (buf, 0, count)) + >>= fun () -> + let length = Uutil.Filesize.sub length (Uutil.Filesize.ofInt count) in + sendSlice length + end + end else + Lwt.return () in sendSlice length >>= (fun () -> queueToken q showProgress transmit EOF >>= (fun () -> From bcpierce at seas.upenn.edu Wed May 23 14:55:29 2012 From: bcpierce at seas.upenn.edu (bcpierce at seas.upenn.edu) Date: Wed, 23 May 2012 14:55:29 -0400 Subject: [Unison-hackers] [unison-svn] r497 - in trunk/src: . lwt ubase Message-ID: <201205231855.q4NItTwA017087@yaws.seas.upenn.edu> Author: bcpierce Date: 2012-05-23 14:55:29 -0400 (Wed, 23 May 2012) New Revision: 497 Modified: trunk/src/RECENTNEWS trunk/src/abort.ml trunk/src/lwt/depend trunk/src/ubase/depend trunk/src/uitext.ml Log: * Small fix to the way fsmonitor.py gets invoked when using the file watching functionality, suggested by Josh Berdine. Unison will now look for fsmonitor.py in the same directory where the Unison executable itself lives. Modified: trunk/src/RECENTNEWS =================================================================== --- trunk/src/RECENTNEWS 2012-05-21 10:06:36 UTC (rev 496) +++ trunk/src/RECENTNEWS 2012-05-23 18:55:29 UTC (rev 497) @@ -1,19 +1,20 @@ -CHANGES FROM VERSION 2.45.8 +CHANGES FROM VERSION 2.45.7 -* Fix bug in last commit - +* Small fix to the way fsmonitor.py gets invoked when using the file + watching functionality, suggested by Josh Berdine. Unison will now + look for fsmonitor.py in the same directory where the Unison + executable itself lives. ------------------------------- CHANGES FROM VERSION 2.45.7 -* Added some debugging code in transfer.ml +* Small fix to the way fsmonitor.py gets invoked when using the file + watching functionality, suggested by Josh Berdine. Unison will now + look for fsmonitor.py in the same directory where the Unison + executable itself lives. -------------------------------- -CHANGES FROM VERSION 2.45.6 +* Fix bug in last commit -* Display full stack backtraces when printing exceptions, per comment - from Jerome -------------------------------- -CHANGES FROM VERSION 2.45.1 +* Added some debugging code in transfer.ml * Display full stack backtraces when printing exceptions, per comment from Jerome Modified: trunk/src/abort.ml =================================================================== --- trunk/src/abort.ml 2012-05-21 10:06:36 UTC (rev 496) +++ trunk/src/abort.ml 2012-05-23 18:55:29 UTC (rev 497) @@ -67,4 +67,4 @@ raise (Util.Transient "Aborted") end -let testException e = e = Util.Transient "Aborted" +let testException e = (e = Util.Transient "Aborted") Modified: trunk/src/lwt/depend =================================================================== --- trunk/src/lwt/depend 2012-05-21 10:06:36 UTC (rev 496) +++ trunk/src/lwt/depend 2012-05-23 18:55:29 UTC (rev 497) @@ -1,12 +1,12 @@ -lwt.cmo: lwt.cmi -lwt.cmx: lwt.cmi -lwt_unix.cmo: lwt_unix.cmi -lwt_unix.cmx: lwt_unix.cmi -lwt_util.cmo: lwt.cmi lwt_util.cmi -lwt_util.cmx: lwt.cmx lwt_util.cmi -pqueue.cmo: pqueue.cmi -pqueue.cmx: pqueue.cmi -lwt.cmi: -lwt_unix.cmi: lwt.cmi -lwt_util.cmi: lwt.cmi -pqueue.cmi: +lwt.cmo: lwt.cmi +lwt.cmx: lwt.cmi +lwt_unix.cmo: lwt_unix.cmi +lwt_unix.cmx: lwt_unix.cmi +lwt_util.cmo: lwt.cmi lwt_util.cmi +lwt_util.cmx: lwt.cmx lwt_util.cmi +pqueue.cmo: pqueue.cmi +pqueue.cmx: pqueue.cmi +lwt.cmi: +lwt_unix.cmi: lwt.cmi +lwt_util.cmi: lwt.cmi +pqueue.cmi: Modified: trunk/src/ubase/depend =================================================================== --- trunk/src/ubase/depend 2012-05-21 10:06:36 UTC (rev 496) +++ trunk/src/ubase/depend 2012-05-23 18:55:29 UTC (rev 497) @@ -1,27 +1,27 @@ -myMap.cmo: myMap.cmi -myMap.cmx: myMap.cmi -prefs.cmo: util.cmi uarg.cmi safelist.cmi prefs.cmi -prefs.cmx: util.cmx uarg.cmx safelist.cmx prefs.cmi -proplist.cmo: util.cmi proplist.cmi -proplist.cmx: util.cmx proplist.cmi -rx.cmo: rx.cmi -rx.cmx: rx.cmi -safelist.cmo: safelist.cmi -safelist.cmx: safelist.cmi -trace.cmo: util.cmi safelist.cmi prefs.cmi trace.cmi -trace.cmx: util.cmx safelist.cmx prefs.cmx trace.cmi -uarg.cmo: util.cmi safelist.cmi uarg.cmi -uarg.cmx: util.cmx safelist.cmx uarg.cmi -uprintf.cmo: uprintf.cmi -uprintf.cmx: uprintf.cmi -util.cmo: uprintf.cmi safelist.cmi util.cmi -util.cmx: uprintf.cmx safelist.cmx util.cmi -myMap.cmi: -prefs.cmi: util.cmi -proplist.cmi: -rx.cmi: -safelist.cmi: -trace.cmi: prefs.cmi -uarg.cmi: -uprintf.cmi: -util.cmi: +myMap.cmo: myMap.cmi +myMap.cmx: myMap.cmi +prefs.cmo: util.cmi uarg.cmi safelist.cmi prefs.cmi +prefs.cmx: util.cmx uarg.cmx safelist.cmx prefs.cmi +proplist.cmo: util.cmi proplist.cmi +proplist.cmx: util.cmx proplist.cmi +rx.cmo: rx.cmi +rx.cmx: rx.cmi +safelist.cmo: safelist.cmi +safelist.cmx: safelist.cmi +trace.cmo: util.cmi safelist.cmi prefs.cmi trace.cmi +trace.cmx: util.cmx safelist.cmx prefs.cmx trace.cmi +uarg.cmo: util.cmi safelist.cmi uarg.cmi +uarg.cmx: util.cmx safelist.cmx uarg.cmi +uprintf.cmo: uprintf.cmi +uprintf.cmx: uprintf.cmi +util.cmo: uprintf.cmi safelist.cmi util.cmi +util.cmx: uprintf.cmx safelist.cmx util.cmi +myMap.cmi: +prefs.cmi: util.cmi +proplist.cmi: +rx.cmi: +safelist.cmi: +trace.cmi: prefs.cmi +uarg.cmi: +uprintf.cmi: +util.cmi: Modified: trunk/src/uitext.ml =================================================================== --- trunk/src/uitext.ml 2012-05-21 10:06:36 UTC (rev 496) +++ trunk/src/uitext.ml 2012-05-23 18:55:29 UTC (rev 497) @@ -726,7 +726,12 @@ let follow = Safelist.map (fun s -> "--follow '" ^ Uutil.quotes s ^ "'") followpaths in - let cmd = Printf.sprintf "fsmonitor.py %s --outfile %s --statefile %s %s %s\n" +(* BCP (per Josh Berdine, 5/2012): changed startup command from this... + let cmd = Printf.sprintf "fsmonitor.py %s --outfile %s --statefile %s %s %s\n" + ... to this: *) + let fsmonfile = Filename.concat (Filename.dirname Sys.executable_name) "fsmonitor.py" in + let cmd = Printf.sprintf "python \"%s\" \"%s\" --outfile \"%s\" --statefile \"%s\" %s %s\n" + fsmonfile root (System.fspathToPrintString changefile) (System.fspathToPrintString statefile) From vouillon at seas.upenn.edu Thu May 24 06:22:15 2012 From: vouillon at seas.upenn.edu (vouillon at seas.upenn.edu) Date: Thu, 24 May 2012 06:22:15 -0400 Subject: [Unison-hackers] [unison-svn] r498 - trunk/src Message-ID: <201205241022.q4OAMFTP010238@yaws.seas.upenn.edu> Author: vouillon Date: 2012-05-24 06:22:14 -0400 (Thu, 24 May 2012) New Revision: 498 Modified: trunk/src/RECENTNEWS trunk/src/mkProjectInfo.ml trunk/src/transfer.ml Log: * Added some more debugging code in transfer.ml Modified: trunk/src/RECENTNEWS =================================================================== --- trunk/src/RECENTNEWS 2012-05-23 18:55:29 UTC (rev 497) +++ trunk/src/RECENTNEWS 2012-05-24 10:22:14 UTC (rev 498) @@ -1,3 +1,7 @@ +CHANGES FROM VERSION 2.45.9 + +* Added some more debugging code in transfer.ml +------------------------------- CHANGES FROM VERSION 2.45.7 * Small fix to the way fsmonitor.py gets invoked when using the file Modified: trunk/src/mkProjectInfo.ml =================================================================== --- trunk/src/mkProjectInfo.ml 2012-05-23 18:55:29 UTC (rev 497) +++ trunk/src/mkProjectInfo.ml 2012-05-24 10:22:14 UTC (rev 498) @@ -71,3 +71,5 @@ + + Modified: trunk/src/transfer.ml =================================================================== --- trunk/src/transfer.ml 2012-05-23 18:55:29 UTC (rev 497) +++ trunk/src/transfer.ml 2012-05-24 10:22:14 UTC (rev 498) @@ -521,7 +521,14 @@ (* Given a key, retrieve the corresponding entry in the table *) let findEntry hashTable hashTableLength checksum : (int * Checksum.t) list = - Array.unsafe_get hashTable ((hash checksum) land (hashTableLength - 1)) + let i = (hash checksum) land (hashTableLength - 1) in + (*FIX: temporary debugging code... *) + if i < 0 || i >= Array.length hashTable then begin + Format.eprintf "index:%d checksum:%d len:%d/%d at ." + i checksum hashTableLength (Array.length hashTable); + assert false + end; + hashTable.(i) let sigFilter hashTableLength signatures = let len = hashTableLength lsl 2 in @@ -664,13 +671,20 @@ let rec fingerprintMatchRec checksums pos fp i = let i = i - 1 in i < 0 || - (String.unsafe_get fp i = checksums.{pos + i} && + (fp.[i] = checksums.{pos + i} && fingerprintMatchRec checksums pos fp i) in let fingerprintMatch k fp = let pos = k * sigs.checksumSize in - assert - (pos + sigs.checksumSize <= Bigarray.Array1.dim sigs.strongChecksum); + (*FIX: temporary debugging code... *) + if + pos + sigs.checksumSize > Bigarray.Array1.dim sigs.strongChecksum + then begin + Format.eprintf "k:%d/%d pos:%d csSize:%d dim:%d at ." + k sigs.blockCount pos sigs.checksumSize + (Bigarray.Array1.dim sigs.strongChecksum); + assert false + end; fingerprintMatchRec sigs.strongChecksum pos fp sigs.checksumSize in