From bcpierce at cis.upenn.edu Mon Nov 12 10:27:07 2012 From: bcpierce at cis.upenn.edu (Benjamin C. Pierce) Date: Mon, 12 Nov 2012 10:27:07 -0500 Subject: [Unison-hackers] Unison 2.40.163 and 2.45.28 available Message-ID: <27B3D362-9618-406F-96FD-9232E1A45EC8@cis.upenn.edu> I've just exported updated versions of the stable (2.40) and beta (2.45) releases of Unison. The main purpose of the update is to resolve compatibility issues between ocaml versions 3 and 4. The new releases should interoperate cleanly (with each other and with older binaries) no matter which ocaml version they are compiled with. Please post here if you notice any problems. Assuming 2.45.28 seems to be working in a few weeks, I will promote it to stable. Best, - Benjamin From bcpierce at cis.upenn.edu Wed Nov 14 12:49:41 2012 From: bcpierce at cis.upenn.edu (Pierce Benjamin C.) Date: Wed, 14 Nov 2012 12:49:41 -0500 Subject: [Unison-hackers] Unison 2.40.163 and 2.45.28 available In-Reply-To: <27B3D362-9618-406F-96FD-9232E1A45EC8@cis.upenn.edu> References: <27B3D362-9618-406F-96FD-9232E1A45EC8@cis.upenn.edu> Message-ID: Small typo: I should have written 2.40.102 (not 163). - Benjamin On Nov 12, 2012, at 10:27 AM, Benjamin C. Pierce wrote: > I've just exported updated versions of the stable (2.40) and beta (2.45) releases of Unison. The main purpose of the update is to resolve compatibility issues between ocaml versions 3 and 4. The new releases should interoperate cleanly (with each other and with older binaries) no matter which ocaml version they are compiled with. > > Please post here if you notice any problems. > > Assuming 2.45.28 seems to be working in a few weeks, I will promote it to stable. > > Best, > > - Benjamin > > _______________________________________________ > Unison-hackers mailing list > Unison-hackers at lists.seas.upenn.edu > http://lists.seas.upenn.edu/mailman/listinfo/unison-hackers From vouillon at seas.upenn.edu Tue Nov 20 06:01:22 2012 From: vouillon at seas.upenn.edu (vouillon at seas.upenn.edu) Date: Tue, 20 Nov 2012 06:01:22 -0500 Subject: [Unison-hackers] [unison-svn] r517 - in trunk/src: . fsmonitor/linux fsmonitor/windows Message-ID: <201211201101.qAKB1N2S029987@yaws.seas.upenn.edu> Author: vouillon Date: 2012-11-20 06:01:22 -0500 (Tue, 20 Nov 2012) New Revision: 517 Modified: trunk/src/RECENTNEWS trunk/src/fsmonitor/linux/watcher.ml trunk/src/fsmonitor/windows/watcher.ml trunk/src/mkProjectInfo.ml Log: * File system monitoring: the file watcher now fails when unable to watch a directory, rather than silently ignoring the issue Modified: trunk/src/RECENTNEWS =================================================================== --- trunk/src/RECENTNEWS 2012-09-24 11:44:38 UTC (rev 516) +++ trunk/src/RECENTNEWS 2012-11-20 11:01:22 UTC (rev 517) @@ -1,3 +1,9 @@ +CHANGES FROM VERSION 2.46.12 + +* File system monitoring: the file watcher now fails when unable to + watch a directory, rather than silently ignoring the issue + +------------------------------- CHANGES FROM VERSION 2.46.10 * File system monitoring: more robust communication with the helper program Modified: trunk/src/fsmonitor/linux/watcher.ml =================================================================== --- trunk/src/fsmonitor/linux/watcher.ml 2012-09-24 11:44:38 UTC (rev 516) +++ trunk/src/fsmonitor/linux/watcher.ml 2012-11-20 11:01:22 UTC (rev 517) @@ -196,6 +196,8 @@ Watchercommon.error ("error while handling events: " ^ Watchercommon.format_exc e))) +let i = ref 0 + let release_watch file = match get_watch file with None -> @@ -204,6 +206,7 @@ set_watch file None; let s = IntSet.remove (get_id file) (Hashtbl.find watcher_by_id id) in if IntSet.is_empty s then begin + incr i; if !i mod 32 = 0 then Lwt_unix.run (Lwt_unix.yield ()); begin try Lwt_inotify.rm_watch st id (* Will fail with EINVAL if the file has been deleted... *) @@ -234,7 +237,14 @@ with Inotify.Error (_, no) -> release_watch file; match no with - 2 | 13 | 20 | 28 | 40 -> + 2 (* ENOENT *) -> + Watchercommon.error + (Format.sprintf "file '%s' does not exist" path) + | 28 (* ENOSPC *) -> + Watchercommon.error "cannot add a watcher: system limit reached" + | 13 (* EACCES *) | 20 (* ENOTDIR *) | 40 (* ELOOP *) -> + (* These errors should be well handled by Unison (they will + result in errors during update detection *) () | _ -> Watchercommon.error Modified: trunk/src/fsmonitor/windows/watcher.ml =================================================================== --- trunk/src/fsmonitor/windows/watcher.ml 2012-09-24 11:44:38 UTC (rev 516) +++ trunk/src/fsmonitor/windows/watcher.ml 2012-11-20 11:01:22 UTC (rev 517) @@ -188,10 +188,10 @@ try watch_info.handle <- Some (watch_root_directory path file) with Unix.Unix_error _ as e -> - if !Watchercommon.debug then - Format.eprintf - "Error while starting to watch for changes: %s at ." - (Watchercommon.format_exc e) + Watchercommon.error + (Format.sprintf + "Error while starting to watch for changes: %s at ." + (Watchercommon.format_exc e)) end; let mapping = try Shortnames.in_directory path with Unix.Unix_error _ -> [] in Modified: trunk/src/mkProjectInfo.ml =================================================================== --- trunk/src/mkProjectInfo.ml 2012-09-24 11:44:38 UTC (rev 516) +++ trunk/src/mkProjectInfo.ml 2012-11-20 11:01:22 UTC (rev 517) @@ -88,3 +88,4 @@ +