[Unison-hackers] [unison-svn] r449 - in trunk/src: . lwt system ubase

bcpierce@seas.upenn.edu bcpierce at seas.upenn.edu
Thu May 27 23:15:14 EDT 2010


Author: bcpierce
Date: 2010-05-27 23:15:14 -0400 (Thu, 27 May 2010)
New Revision: 449

Modified:
   trunk/src/Makefile
   trunk/src/RECENTNEWS
   trunk/src/abort.ml
   trunk/src/bytearray.ml
   trunk/src/bytearray.mli
   trunk/src/bytearray_stubs.c
   trunk/src/case.ml
   trunk/src/case.mli
   trunk/src/checksum.ml
   trunk/src/checksum.mli
   trunk/src/clroot.ml
   trunk/src/clroot.mli
   trunk/src/common.ml
   trunk/src/common.mli
   trunk/src/copy.ml
   trunk/src/external.ml
   trunk/src/external.mli
   trunk/src/fileinfo.ml
   trunk/src/fileinfo.mli
   trunk/src/files.ml
   trunk/src/files.mli
   trunk/src/fileutil.ml
   trunk/src/fileutil.mli
   trunk/src/fingerprint.ml
   trunk/src/fingerprint.mli
   trunk/src/fs.ml
   trunk/src/fs.mli
   trunk/src/fspath.ml
   trunk/src/fspath.mli
   trunk/src/globals.ml
   trunk/src/globals.mli
   trunk/src/linkgtk.ml
   trunk/src/linkgtk2.ml
   trunk/src/linktext.ml
   trunk/src/lock.ml
   trunk/src/lock.mli
   trunk/src/lwt/pqueue.ml
   trunk/src/lwt/pqueue.mli
   trunk/src/main.ml
   trunk/src/mkProjectInfo.ml
   trunk/src/name.ml
   trunk/src/name.mli
   trunk/src/os.ml
   trunk/src/os.mli
   trunk/src/osx.ml
   trunk/src/osx.mli
   trunk/src/path.ml
   trunk/src/path.mli
   trunk/src/pixmaps.ml
   trunk/src/pred.ml
   trunk/src/pred.mli
   trunk/src/props.ml
   trunk/src/props.mli
   trunk/src/recon.ml
   trunk/src/recon.mli
   trunk/src/remote.ml
   trunk/src/remote.mli
   trunk/src/sortri.ml
   trunk/src/sortri.mli
   trunk/src/stasher.ml
   trunk/src/strings.mli
   trunk/src/system.ml
   trunk/src/system.mli
   trunk/src/system/system_generic.ml
   trunk/src/system/system_intf.ml
   trunk/src/system/system_win.ml
   trunk/src/terminal.ml
   trunk/src/test.ml
   trunk/src/test.mli
   trunk/src/transfer.ml
   trunk/src/transfer.mli
   trunk/src/transport.ml
   trunk/src/transport.mli
   trunk/src/tree.ml
   trunk/src/tree.mli
   trunk/src/ubase/proplist.ml
   trunk/src/ubase/proplist.mli
   trunk/src/ubase/rx.ml
   trunk/src/ubase/rx.mli
   trunk/src/ubase/safelist.ml
   trunk/src/ubase/safelist.mli
   trunk/src/ubase/trace.ml
   trunk/src/ubase/trace.mli
   trunk/src/ubase/uarg.ml
   trunk/src/ubase/util.ml
   trunk/src/ubase/util.mli
   trunk/src/ui.mli
   trunk/src/uicommon.ml
   trunk/src/uicommon.mli
   trunk/src/uigtk2.ml
   trunk/src/uigtk2.mli
   trunk/src/uitext.ml
   trunk/src/uitext.mli
   trunk/src/unicode.ml
   trunk/src/unicode.mli
   trunk/src/update.ml
   trunk/src/update.mli
   trunk/src/uutil.ml
   trunk/src/uutil.mli
   trunk/src/xferhint.ml
   trunk/src/xferhint.mli
Log:
* Progress on filesystem watching (see uitext.ml)

* Update copyright dates, while I'm thinking about it :-)






Modified: trunk/src/Makefile
===================================================================
--- trunk/src/Makefile	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/Makefile	2010-05-28 03:15:14 UTC (rev 449)
@@ -210,8 +210,8 @@
 
 # For developers 
 runtest:
-	$(MAKE) all NATIVE=false DEBUG=true
-	./unison test
+	$(MAKE) NATIVE=false DEBUG=true text
+	bash ./unison test
 
 repeattest:
 	$(MAKE) all NATIVE=false DEBUG=true UISTYLE=text

Modified: trunk/src/RECENTNEWS
===================================================================
--- trunk/src/RECENTNEWS	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/RECENTNEWS	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,27 @@
 CHANGES FROM VERSION 2.40.16
 
+* Progress on filesystem watching (see uitext.ml)
+
+* Update copyright dates, while I'm thinking about it :-)
+
+
+
+
+
+-------------------------------
+CHANGES FROM VERSION 2.40.16
+
+* Progress on filesystem watching (see uitext.ml)
+
+* Update copyright dates, while I'm thinking about it :-)
+
+
+
+
+
+-------------------------------
+CHANGES FROM VERSION 2.40.16
+
 * One more fix to Unicode case sensitive mode
 
 -------------------------------

Modified: trunk/src/abort.ml
===================================================================
--- trunk/src/abort.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/abort.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/abort.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/bytearray.ml
===================================================================
--- trunk/src/bytearray.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/bytearray.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/bytearray.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/bytearray.mli
===================================================================
--- trunk/src/bytearray.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/bytearray.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/bytearray.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 type t =
   (char, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t

Modified: trunk/src/bytearray_stubs.c
===================================================================
--- trunk/src/bytearray_stubs.c	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/bytearray_stubs.c	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 /* Unison file synchronizer: src/bytearray_stubs.c */
-/* Copyright 1999-2009 (see COPYING for details) */
+/* Copyright 1999-2010 (see COPYING for details) */
 
 #include <string.h>
 

Modified: trunk/src/case.ml
===================================================================
--- trunk/src/case.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/case.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/case.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/case.mli
===================================================================
--- trunk/src/case.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/case.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/case.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 val caseInsensitiveMode : [`True|`False|`Default] Prefs.t
 val unicodeEncoding : bool Prefs.t

Modified: trunk/src/checksum.ml
===================================================================
--- trunk/src/checksum.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/checksum.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/checksum.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/checksum.mli
===================================================================
--- trunk/src/checksum.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/checksum.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/checksum.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 type t = int
 type u = int array

Modified: trunk/src/clroot.ml
===================================================================
--- trunk/src/clroot.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/clroot.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/clroot.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/clroot.mli
===================================================================
--- trunk/src/clroot.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/clroot.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/clroot.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* Command-line roots *)
 type clroot =

Modified: trunk/src/common.ml
===================================================================
--- trunk/src/common.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/common.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/common.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/common.mli
===================================================================
--- trunk/src/common.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/common.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/common.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (***************************************************************************)
 (*               COMMON TYPES USED BY ALL MODULES                          *)

Modified: trunk/src/copy.ml
===================================================================
--- trunk/src/copy.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/copy.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/copy.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/external.ml
===================================================================
--- trunk/src/external.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/external.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/external.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/external.mli
===================================================================
--- trunk/src/external.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/external.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/external.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 val runExternalProgram : string -> (Unix.process_status * string) Lwt.t
 val readChannelTillEof : in_channel -> string

Modified: trunk/src/fileinfo.ml
===================================================================
--- trunk/src/fileinfo.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/fileinfo.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/fileinfo.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/fileinfo.mli
===================================================================
--- trunk/src/fileinfo.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/fileinfo.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/fileinfo.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 type typ = [`ABSENT | `FILE | `DIRECTORY | `SYMLINK]
 val type2string : typ -> string

Modified: trunk/src/files.ml
===================================================================
--- trunk/src/files.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/files.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/files.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/files.mli
===================================================================
--- trunk/src/files.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/files.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/files.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* As usual, these functions should only be called by the client (i.e., in   *)
 (* the same address space as the user interface).                            *)

Modified: trunk/src/fileutil.ml
===================================================================
--- trunk/src/fileutil.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/fileutil.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/fileutil.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/fileutil.mli
===================================================================
--- trunk/src/fileutil.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/fileutil.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/fileutil.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* Convert backslashes in a string to forward slashes.  Useful in Windows. *)
 val backslashes2forwardslashes : string -> string

Modified: trunk/src/fingerprint.ml
===================================================================
--- trunk/src/fingerprint.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/fingerprint.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/fingerprint.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/fingerprint.mli
===================================================================
--- trunk/src/fingerprint.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/fingerprint.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/fingerprint.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 type t
 

Modified: trunk/src/fs.ml
===================================================================
--- trunk/src/fs.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/fs.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/fs.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/fs.mli
===================================================================
--- trunk/src/fs.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/fs.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/fs.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* Operations on fspaths *)
 

Modified: trunk/src/fspath.ml
===================================================================
--- trunk/src/fspath.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/fspath.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/fspath.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/fspath.mli
===================================================================
--- trunk/src/fspath.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/fspath.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,7 +1,7 @@
 (* Unison file synchronizer: src/fspath.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
-(* Defines an abstract type of absolute filenames (fspaths)                  *)
+(* Defines an abstract type of absolute filenames (fspaths) *)
 
 type t
 

Modified: trunk/src/globals.ml
===================================================================
--- trunk/src/globals.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/globals.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/globals.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/globals.mli
===================================================================
--- trunk/src/globals.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/globals.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/globals.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* Global variables and functions needed by top-level modules and user       *)
 (* interfaces                                                                *)

Modified: trunk/src/linkgtk.ml
===================================================================
--- trunk/src/linkgtk.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/linkgtk.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/linkgtk.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/linkgtk2.ml
===================================================================
--- trunk/src/linkgtk2.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/linkgtk2.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/linkgtk2.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/linktext.ml
===================================================================
--- trunk/src/linktext.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/linktext.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/linktext.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/lock.ml
===================================================================
--- trunk/src/lock.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/lock.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/lock.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/lock.mli
===================================================================
--- trunk/src/lock.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/lock.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/lock.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* A simple utility module for setting and releasing inter-process locks
    using entries in the filesystem. *)

Modified: trunk/src/lwt/pqueue.ml
===================================================================
--- trunk/src/lwt/pqueue.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/lwt/pqueue.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/lwt/pqueue.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/lwt/pqueue.mli
===================================================================
--- trunk/src/lwt/pqueue.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/lwt/pqueue.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/lwt/pqueue.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 module type OrderedType =
   sig

Modified: trunk/src/main.ml
===================================================================
--- trunk/src/main.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/main.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/main.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/mkProjectInfo.ml
===================================================================
--- trunk/src/mkProjectInfo.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/mkProjectInfo.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -97,24 +97,3 @@
 Printf.printf "VERSION=%d.%d.%d\n" majorVersion minorVersion pointVersion;;
 Printf.printf "NAME=%s\n" projectName;;
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

Modified: trunk/src/name.ml
===================================================================
--- trunk/src/name.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/name.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/name.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/name.mli
===================================================================
--- trunk/src/name.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/name.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/name.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 type t
 

Modified: trunk/src/os.ml
===================================================================
--- trunk/src/os.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/os.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/os.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/os.mli
===================================================================
--- trunk/src/os.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/os.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/os.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 val myCanonicalHostName : string
 

Modified: trunk/src/osx.ml
===================================================================
--- trunk/src/osx.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/osx.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/osx.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/osx.mli
===================================================================
--- trunk/src/osx.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/osx.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/osx.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 val init : bool -> unit
 val isMacOSX : bool

Modified: trunk/src/path.ml
===================================================================
--- trunk/src/path.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/path.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/path.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/path.mli
===================================================================
--- trunk/src/path.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/path.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/path.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* Abstract type of relative pathnames *)
 type 'a path

Modified: trunk/src/pixmaps.ml
===================================================================
--- trunk/src/pixmaps.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/pixmaps.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/pixmaps.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/pred.ml
===================================================================
--- trunk/src/pred.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/pred.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/pred.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/pred.mli
===================================================================
--- trunk/src/pred.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/pred.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/pred.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* Predicates over paths.
    

Modified: trunk/src/props.ml
===================================================================
--- trunk/src/props.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/props.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/props.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/props.mli
===================================================================
--- trunk/src/props.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/props.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/props.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* File properties: time, permission, length, etc. *)
 

Modified: trunk/src/recon.ml
===================================================================
--- trunk/src/recon.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/recon.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/recon.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/recon.mli
===================================================================
--- trunk/src/recon.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/recon.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/recon.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 val reconcileAll :
      ?allowPartial:bool         (* whether we allow partial synchronization

Modified: trunk/src/remote.ml
===================================================================
--- trunk/src/remote.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/remote.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/remote.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/remote.mli
===================================================================
--- trunk/src/remote.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/remote.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/remote.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 module Thread : sig
   val unwindProtect : (unit -> 'a Lwt.t) -> (exn -> unit Lwt.t) -> 'a Lwt.t

Modified: trunk/src/sortri.ml
===================================================================
--- trunk/src/sortri.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/sortri.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/sortri.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/sortri.mli
===================================================================
--- trunk/src/sortri.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/sortri.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/sortri.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* Sort a list of recon items according to the current setting of 
    various preferences (defined in sort.ml, and accessible from the

Modified: trunk/src/stasher.ml
===================================================================
--- trunk/src/stasher.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/stasher.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,6 +1,6 @@
 (* Unison file synchronizer: src/stasher.ml *)
 (* $I2: Last modified by lescuyer *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/strings.mli
===================================================================
--- trunk/src/strings.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/strings.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,4 +1,4 @@
 (* Unison file synchronizer: src/strings.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 val docs : (string * (string * string)) list

Modified: trunk/src/system/system_generic.ml
===================================================================
--- trunk/src/system/system_generic.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/system/system_generic.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/system/system_generic.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/system/system_intf.ml
===================================================================
--- trunk/src/system/system_intf.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/system/system_intf.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/system/system_intf.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/system/system_win.ml
===================================================================
--- trunk/src/system/system_win.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/system/system_win.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/system/system_win.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/system.ml
===================================================================
--- trunk/src/system.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/system.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/system.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/system.mli
===================================================================
--- trunk/src/system.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/system.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/system.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* Operations on filesystem path *)
 

Modified: trunk/src/terminal.ml
===================================================================
--- trunk/src/terminal.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/terminal.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/terminal.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/test.ml
===================================================================
--- trunk/src/test.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/test.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/test.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/test.mli
===================================================================
--- trunk/src/test.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/test.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/test.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* Internal self-tests *)
 

Modified: trunk/src/transfer.ml
===================================================================
--- trunk/src/transfer.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/transfer.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/transfer.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/transfer.mli
===================================================================
--- trunk/src/transfer.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/transfer.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/transfer.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (*
    Rsync : general algorithm description

Modified: trunk/src/transport.ml
===================================================================
--- trunk/src/transport.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/transport.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/transport.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/transport.mli
===================================================================
--- trunk/src/transport.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/transport.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/transport.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* Executes the actions implied by the reconItem list. *)
 val transportItem :

Modified: trunk/src/tree.ml
===================================================================
--- trunk/src/tree.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/tree.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/tree.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/tree.mli
===================================================================
--- trunk/src/tree.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/tree.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/tree.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* An ('a, 'b) t is a tree with 'a-labeled arcs and 'b-labeled nodes.        *)
 (* Labeling for the internal nodes is optional                               *)

Modified: trunk/src/ubase/proplist.ml
===================================================================
--- trunk/src/ubase/proplist.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/ubase/proplist.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/ubase/proplist.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce
+(* Copyright 1999-2010, Benjamin C. Pierce
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/ubase/proplist.mli
===================================================================
--- trunk/src/ubase/proplist.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/ubase/proplist.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/ubase/proplist.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 type 'a key
 type t

Modified: trunk/src/ubase/rx.ml
===================================================================
--- trunk/src/ubase/rx.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/ubase/rx.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/ubase/rx.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/ubase/rx.mli
===================================================================
--- trunk/src/ubase/rx.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/ubase/rx.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/ubase/rx.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 type t
 

Modified: trunk/src/ubase/safelist.ml
===================================================================
--- trunk/src/ubase/safelist.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/ubase/safelist.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/ubase/safelist.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/ubase/safelist.mli
===================================================================
--- trunk/src/ubase/safelist.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/ubase/safelist.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/ubase/safelist.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* All functions here are tail recursive and will work for arbitrary
    sized lists (unlike some of the standard ones).  The intention is that

Modified: trunk/src/ubase/trace.ml
===================================================================
--- trunk/src/ubase/trace.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/ubase/trace.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/ubase/trace.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/ubase/trace.mli
===================================================================
--- trunk/src/ubase/trace.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/ubase/trace.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/ubase/trace.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* ---------------------------------------------------------------------- *)
 (* Debugging support *)

Modified: trunk/src/ubase/uarg.ml
===================================================================
--- trunk/src/ubase/uarg.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/ubase/uarg.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/ubase/uarg.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* by Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
 (* Slightly modified by BCP, July 1999 *)

Modified: trunk/src/ubase/util.ml
===================================================================
--- trunk/src/ubase/util.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/ubase/util.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/ubase/util.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/ubase/util.mli
===================================================================
--- trunk/src/ubase/util.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/ubase/util.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/ubase/util.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* Miscellaneous utility functions and datatypes *)
 

Modified: trunk/src/ui.mli
===================================================================
--- trunk/src/ui.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/ui.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/ui.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* The module Ui provides only the user interface signature.
    Implementations are provided by Uitext and Uitk. *)

Modified: trunk/src/uicommon.ml
===================================================================
--- trunk/src/uicommon.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/uicommon.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/uicommon.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/uicommon.mli
===================================================================
--- trunk/src/uicommon.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/uicommon.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/uicommon.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* Kinds of UI *)
 type interface =

Modified: trunk/src/uigtk2.ml
===================================================================
--- trunk/src/uigtk2.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/uigtk2.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/uigtk2.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/uigtk2.mli
===================================================================
--- trunk/src/uigtk2.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/uigtk2.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,4 +1,4 @@
 (* Unison file synchronizer: src/uigtk2.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 module Body : Uicommon.UI

Modified: trunk/src/uitext.ml
===================================================================
--- trunk/src/uitext.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/uitext.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/uitext.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -15,7 +15,6 @@
     along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *)
 
-
 open Common
 open Lwt
 
@@ -697,65 +696,109 @@
     (exitStatus, failedPaths)
   end
 
-let watchinterval = 10
+(* ----------------- Filesystem watching mode ---------------- *)
 
+(* FIX: we should check that the child process has not died and restart it if so... *)
+
+let watchinterval = 5
+
+let watcherTemp r n =
+  let s = n ^ (Update.archiveHash (Fspath.canonize (Some r))) in
+  Os.fileInUnisonDir s
+  (* Fspath.toSysPath
+       (Fspath.concat r (Os.tempPath r (Path.child Path.empty (Name.fromString s)))) *)
+
+let watchercmd r =
+  (* FIX: need to include --follow and path parameters *)
+  (* FIX -- need to find the program using watcherosx preference *)
+  let root = Common.root2string r in
+  let changefile = watcherTemp root "changes" in
+  let statefile = watcherTemp root "state" in
+  let cmd = Printf.sprintf "fsmonitor.py --outfile %s --statefile %s %s\n"
+           (System.fspathToPrintString changefile)
+           (System.fspathToPrintString statefile)
+           root in
+  debug (fun() -> Util.msg "change command: %s\n" cmd);
+  (changefile,cmd)
+
+module RootMap = Map.Make (struct type t = Common.root let compare = Pervasives.compare end)
+type watcherinfo = {file: System.fspath;
+                    ch:Pervasives.in_channel option ref;
+                    chars: string ref;
+                    lines: string list ref}
+let watchers : watcherinfo RootMap.t ref = ref RootMap.empty 
+
 (* FIX; Using string concatenation to accumulate characters is
    pretty inefficient! *)
-let charsRead = ref ""
-let linesRead = ref []
-let watcherchan = ref None
+let getAvailableLinesFromWatcher wi =
+  let ch = match !(wi.ch) with Some(c) -> c | None -> assert false in 
+  let rec loop () =
+    match try Some(input_char ch) with End_of_file -> None with
+      None ->
+        let res = !(wi.lines) in
+        wi.lines := [];
+        res
+    | Some(c) ->
+        if c = '\n' then begin
+          wi.lines := !(wi.chars) :: !(wi.lines);
+          wi.chars := "";
+          loop ()
+        end else begin
+          wi.chars := (!(wi.chars)) ^ (String.make 1 c);
+          loop ()
+        end in
+    loop ()
 
-let suckOnWatcherFileLocal n =
+let suckOnWatcherFileLocal r =
   Util.convertUnixErrorsToFatal
-    ("Reading changes from watcher process in file " ^
-     System.fspathToPrintString n)
+    "Reading changes from watcher process "
     (fun () ->
-       (* The main loop, invoked from two places below *)
-       let rec loop ch =
-         match try Some(input_char ch) with End_of_file -> None with
-           None ->
-             let res = !linesRead in
-             linesRead := [];
-             res
-         | Some(c) ->
-             if c = '\n' then begin
-               linesRead := !charsRead
-                            :: !linesRead;
-               charsRead := "";
-               loop ch
-             end else begin
-               charsRead := (!charsRead) ^ (String.make 1 c);
-               loop ch
-             end in
-       (* Make sure there's a file to watch, then read from it *)
-       match !watcherchan with
-         None -> 
-           if System.file_exists n then begin
-             let ch = System.open_in_bin n in
-             watcherchan := Some(ch);
-             loop ch
-           end else []
-       | Some(ch) -> loop ch
-      )
+       (* Make sure there's a watcher running *)
+       try
+         let wi = RootMap.find r !watchers in
+         if !(wi.ch) = None then
+           (* Watcher channel not built yet *)
+           if System.file_exists wi.file then begin
+             (* Build it and go *)
+             let c = System.open_in_bin wi.file in
+             wi.ch := Some(c);
+             getAvailableLinesFromWatcher wi
+           end else begin
+             (* Wait for change file to be built *)
+             debug (fun() -> Util.msg
+               "Waiting for change file %s\n" (System.fspathToPrintString wi.file));
+             []
+           end
+         else 
+           (* Watcher running and channel built: go ahead and read *)
+           getAvailableLinesFromWatcher wi
+       with Not_found -> begin
+         (* Watcher process not running *)
+         let (changefile,cmd) = watchercmd r in
+         debug (fun() -> Util.msg "Starting watcher on root %s\n" (Common.root2string r));
+         let _ = System.open_process_in cmd in
+         let wi = {file = changefile; ch = ref None; lines = ref []; chars = ref ""} in
+         watchers := RootMap.add r wi !watchers;
+         []
+      end)
 
-let suckOnWatcherFileRoot: Common.root -> System.fspath -> (string list) Lwt.t =
+let suckOnWatcherFileRoot: Common.root -> Common.root -> (string list) Lwt.t =
   Remote.registerRootCmd
     "suckOnWatcherFile"
-    (fun (fspath, n) ->
-      Lwt.return (suckOnWatcherFileLocal n))
+    (fun (fspath, r) ->
+      Lwt.return (suckOnWatcherFileLocal r))
 
-let suckOnWatcherFiles n =
+let suckOnWatcherFiles () =
   Safelist.concat
     (Lwt_unix.run (
-      Globals.allRootsMap (fun r -> suckOnWatcherFileRoot r n)))
+      Globals.allRootsMap (fun r -> suckOnWatcherFileRoot r r)))
 
 let synchronizePathsFromFilesystemWatcher () =
-  let watcherfilename = System.fspathFromString "" in
-  (* STOPPED HERE -- need to find the program using watcherosx preference
-     and invoke it (on both hosts, if there are two!) using a redirect to
-     get the output into a temp file... *)
+  (* Make sure the confirmbigdeletes preference is turned off.  If it's on, then
+     deletions will fail because every deletion is a "big deletion"! *)
+  Prefs.set Globals.confirmBigDeletes false;
   let rec loop failedPaths = 
-    let newpaths = suckOnWatcherFiles watcherfilename in
+    let newpaths = suckOnWatcherFiles () in
     if newpaths <> [] then
       display (Printf.sprintf "Changed paths:\n  %s\n"
                  (String.concat "\n  " newpaths));
@@ -774,6 +817,8 @@
     end in
   loop []
 
+(* ----------------- Repetition ---------------- *)
+
 let synchronizeUntilNoFailures () =
   let initValueOfPathsPreference = Prefs.read Globals.paths in
   let rec loop triesLeft =
@@ -809,6 +854,8 @@
     synchronizeUntilDone ()
   end
 
+(* ----------------- Startup ---------------- *)
+
 let start interface =
   if interface <> Uicommon.Text then
     Util.msg "This Unison binary only provides the text GUI...\n";

Modified: trunk/src/uitext.mli
===================================================================
--- trunk/src/uitext.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/uitext.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,4 +1,4 @@
 (* Unison file synchronizer: src/uitext.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 module Body : Uicommon.UI

Modified: trunk/src/unicode.ml
===================================================================
--- trunk/src/unicode.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/unicode.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/unicode.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/unicode.mli
===================================================================
--- trunk/src/unicode.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/unicode.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/unicode.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 exception Invalid
 

Modified: trunk/src/update.ml
===================================================================
--- trunk/src/update.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/update.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/update.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/update.mli
===================================================================
--- trunk/src/update.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/update.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/update.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 module NameMap : Map.S with type key = Name.t
 
@@ -77,3 +77,8 @@
 
 (* (For breaking the dependency loop between update.ml and stasher.ml...) *)
 val setStasherFun : (Fspath.t -> Path.local -> unit) -> unit
+
+(* Conjoin the canonical name of the current host and the canonical
+   presentation of the current fspath with the list of names/fspaths of
+   all the roots and the current archive format *)
+val archiveHash : Fspath.t -> string

Modified: trunk/src/uutil.ml
===================================================================
--- trunk/src/uutil.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/uutil.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/uutil.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/uutil.mli
===================================================================
--- trunk/src/uutil.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/uutil.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/uutil.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* This module collects a number of low-level, Unison-specific utility
    functions.  It is kept separate from the Util module so that that module

Modified: trunk/src/xferhint.ml
===================================================================
--- trunk/src/xferhint.ml	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/xferhint.ml	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/xferhint.ml *)
-(* Copyright 1999-2009, Benjamin C. Pierce 
+(* Copyright 1999-2010, Benjamin C. Pierce 
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by

Modified: trunk/src/xferhint.mli
===================================================================
--- trunk/src/xferhint.mli	2010-05-20 09:09:24 UTC (rev 448)
+++ trunk/src/xferhint.mli	2010-05-28 03:15:14 UTC (rev 449)
@@ -1,5 +1,5 @@
 (* Unison file synchronizer: src/xferhint.mli *)
-(* Copyright 1999-2009, Benjamin C. Pierce (see COPYING for details) *)
+(* Copyright 1999-2010, Benjamin C. Pierce (see COPYING for details) *)
 
 (* This module maintains a cache that can be used to map
    an Os.fingerprint to a (Fspath.t * Path.t) naming a file that *may*



More information about the Unison-hackers mailing list