From frederik at ofb.net Thu Sep 27 00:54:16 2018 From: frederik at ofb.net (frederik at ofb.net) Date: Wed, 26 Sep 2018 21:54:16 -0700 Subject: [Unison-hackers] is it normal that 'make' produces different results each time Message-ID: <20180927045416.GK11082@ofb.net> Hi, I'm trying to compile Unison on Raspbian so that I can get the protocol versions to match the recent version on my laptop. I noticed that if I go into the src directory and run "make" then it produces different results each time I run it, is that normal? Eventually it seems to converge but I wonder why it takes more than one invocation. (see transcript below) Also, is there a way to specify the destination directory for when I install it? Thanks, Frederick $ git clone https://github.com/bcpierce00/unison.git $ cd unison/ $ make ... $ make install ... (fails with different errors) $ cd src/ $ make -j4 UISTYLE = text ocamlopt: update.ml ---> update.cmx ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/update.ml ocamlopt: copy.mli ---> copy.cmi ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/copy.mli ocamlopt: stasher.mli ---> stasher.cmi ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/stasher.mli ocamlopt: files.mli ---> files.cmi ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/files.mli ocamlopt: sortri.mli ---> sortri.cmi ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/sortri.mli ocamlopt: recon.mli ---> recon.cmi ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/recon.mli ocamlopt: transport.mli ---> transport.cmi ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/transport.mli ocamlopt: uicommon.mli ---> uicommon.cmi ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/uicommon.mli Linking unison-fsmonitor ocamlopt -verbose -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -o unison-fsmonitor unix.cmxa lwt/lwt.cmx lwt/pqueue.cmx lwt/generic/lwt_unix_impl.cmx lwt/lwt_unix.cmx fsmonitor/linux/inotify.cmx fsmonitor/linux/lwt_inotify.cmx fsmonitor/watchercommon.cmx fsmonitor/linux/watcher.cmx fsmonitor/linux/inotify_stubs.o -cclib -lutil + as -o '/tmp/camlstartup3591b6.o' '/tmp/camlstartup384ed2.s' + gcc -Wl,-z,relro -Wl,-z,now -o 'unison-fsmonitor' '-Llwt' '-Lubase' '-Lsystem' '-Lfsmonitor' '-Lfsmonitor/linux' '-Lfsmonitor/windows' '-Lsystem/generic' '-Llwt/generic' '-L/usr/lib/ocaml' '/tmp/camlstartup3591b6.o' '/usr/lib/ocaml/std_exit.o' 'fsmonitor/linux/watcher.o' 'fsmonitor/watchercommon.o' 'fsmonitor/linux/lwt_inotify.o' 'fsmonitor/linux/inotify.o' 'lwt/lwt_unix.o' 'lwt/generic/lwt_unix_impl.o' 'lwt/pqueue.o' 'lwt/lwt.o' '/usr/lib/ocaml/unix.a' '/usr/lib/ocaml/stdlib.a' '-lunix' 'fsmonitor/linux/inotify_stubs.o' '-lutil' '/usr/lib/ocaml/libasmrun.a' -lm -ldl $ make -j4 UISTYLE = text ocamlopt: copy.ml ---> copy.cmx ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/copy.ml ocamlopt: sortri.ml ---> sortri.cmx ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/sortri.ml ocamlopt: uitext.mli ---> uitext.cmi ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/uitext.mli $ make -j4 UISTYLE = text ocamlopt: stasher.ml ---> stasher.cmx ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/stasher.ml ocamlopt: recon.ml ---> recon.cmx ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/recon.ml File "/home/frederik/pkg-tmp/unison/src/recon.ml", line 665, characters 2-11: Warning 3: deprecated: Sort.list Use List.sort instead. $ make -j4 UISTYLE = text ocamlopt: files.ml ---> files.cmx ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/files.ml File "/home/frederik/pkg-tmp/unison/src/files.ml", line 737, characters 2-11: Warning 3: deprecated: Sort.list Use List.sort instead. $ make -j4 UISTYLE = text ocamlopt: transport.ml ---> transport.cmx ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/transport.ml ocamlopt: uicommon.ml ---> uicommon.cmx ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/uicommon.ml File "/home/frederik/pkg-tmp/unison/src/uicommon.ml", line 366, characters 8-26: Warning 3: deprecated: String.set Use Bytes.set instead. File "/home/frederik/pkg-tmp/unison/src/uicommon.ml", line 366, characters 28-47: Warning 3: deprecated: String.set Use Bytes.set instead. File "/home/frederik/pkg-tmp/unison/src/uicommon.ml", line 368, characters 8-23: Warning 3: deprecated: String.set Use Bytes.set instead. $ make -j4 UISTYLE = text ocamlopt: uitext.ml ---> uitext.cmx ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/uitext.ml ocamlopt: test.ml ---> test.cmx ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/test.ml File "/home/frederik/pkg-tmp/unison/src/uitext.ml", line 583, characters 46-56: Warning 10: this expression should have type unit. File "/home/frederik/pkg-tmp/unison/src/uitext.ml", line 383, characters 20-65: Warning 26: unused variable diff. $ make -j4 UISTYLE = text ocamlopt: main.ml ---> main.cmx ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/main.ml $ make -j4 UISTYLE = text ocamlopt: linktext.ml ---> linktext.cmx ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -c /home/frederik/pkg-tmp/unison/src/linktext.ml $ make -j4 UISTYLE = text Linking unison ocamlopt -verbose -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -o unison unix.cmxa str.cmxa bigarray.cmxa ubase/rx.cmx unicode_tables.cmx unicode.cmx bytearray.cmx system/system_generic.cmx system/generic/system_impl.cmx system.cmx ubase/projectInfo.cmx ubase/myMap.cmx ubase/safelist.cmx ubase/util.cmx ubase/uarg.cmx ubase/prefs.cmx ubase/trace.cmx ubase/proplist.cmx lwt/pqueue.cmx lwt/lwt.cmx lwt/lwt_util.cmx lwt/generic/lwt_unix_impl.cmx lwt/lwt_unix.cmx uutil.cmx case.cmx pred.cmx fileutil.cmx name.cmx path.cmx fspath.cmx fs.cmx fingerprint.cmx abort.cmx osx.cmx external.cmx fswatch.cmx props.cmx fileinfo.cmx os.cmx lock.cmx clroot.cmx common.cmx tree.cmx checksum.cmx terminal.cmx transfer.cmx xferhint.cmx remote.cmx globals.cmx fswatchold.cmx fpcache.cmx update.cmx copy.cmx stasher.cmx files.cmx sortri.cmx recon.cmx transport.cmx strings.cmx uicommon.cmx uitext.cmx test.cmx main.cmx linktext.cmx osxsupport.o pty.o bytearray_stubs.o -cclib -lutil + as -o '/tmp/camlstartupe9ce2b.o' '/tmp/camlstartupf44e2f.s' + gcc -Wl,-z,relro -Wl,-z,now -o 'unison' '-Llwt' '-Lubase' '-Lsystem' '-Lfsmonitor' '-Lfsmonitor/linux' '-Lfsmonitor/windows' '-Lsystem/generic' '-Llwt/generic' '-L/usr/lib/ocaml' '/tmp/camlstartupe9ce2b.o' '/usr/lib/ocaml/std_exit.o' 'linktext.o' 'main.o' 'test.o' 'uitext.o' 'uicommon.o' 'strings.o' 'transport.o' 'recon.o' 'sortri.o' 'files.o' 'stasher.o' 'copy.o' 'update.o' 'fpcache.o' 'fswatchold.o' 'globals.o' 'remote.o' 'xferhint.o' 'transfer.o' 'terminal.o' 'checksum.o' 'tree.o' 'common.o' 'clroot.o' 'lock.o' 'os.o' 'fileinfo.o' 'props.o' 'fswatch.o' 'external.o' 'osx.o' 'abort.o' 'fingerprint.o' 'fs.o' 'fspath.o' 'path.o' 'name.o' 'fileutil.o' 'pred.o' 'case.o' 'uutil.o' 'lwt/lwt_unix.o' 'lwt/generic/lwt_unix_impl.o' 'lwt/lwt_util.o' 'lwt/lwt.o' 'lwt/pqueue.o' 'ubase/proplist.o' 'ubase/trace.o' 'ubase/prefs.o' 'ubase/uarg.o' 'ubase/util.o' 'ubase/safelist.o' 'ubase/myMap.o' 'ubase/projectInfo.o' 'system.o' 'system/generic/system_impl.o' 'system/system_generic.o' 'bytearray.o' 'unicode.o' 'unicode_tables.o' 'ubase/rx.o' '/usr/lib/ocaml/bigarray.a' '/usr/lib/ocaml/str.a' '/usr/lib/ocaml/unix.a' '/usr/lib/ocaml/stdlib.a' '-lbigarray' '-lcamlstr' '-lunix' 'osxsupport.o' 'pty.o' 'bytearray_stubs.o' '-lutil' '/usr/lib/ocaml/libasmrun.a' -lm -ldl $ make -j4 UISTYLE = text Building for Unix NATIVE = true THREADS = false STATIC = false OSTYPE = OSARCH = Linux $ make -j4 UISTYLE = text Building for Unix NATIVE = true THREADS = false STATIC = false OSTYPE = OSARCH = Linux