Несъвместимите предположения върху интерфейса (Ocaml) предполагат да изградя отново и опитах това, но безрезултатно.
Използвам mac port за управление на повечето от моите инструменти за разработка и след надграждането до Mac OS 10.8.2 изглежда има лошо взаимодействие между ocaml и ocaml-ounit.
По-долу е доста минимален дъмп на черупката, но проблемът е
Error: Files /opt/local/lib/ocaml/site-lib/oUnit/oUnit.cmxa and /opt/local/lib/ocaml/unix.cmxa make inconsistent assumptions over implementation Unix
и принудително възстановяване, както е описано на http://www.puredarwin.org/developers/macports/port изглежда не решава проблема:
За да принудите надграждане (възстановяване), използвайте:
port -f upgrade vim
По-долу е дъмп на обвивката на опита ми да създам собствен двоичен файл (.byte
работи добре, но съм на път да започна кръг от профилиране и искам да профилирам собственото изпълнение) и моите опити да огъвам mac портове по моя воля.
Всякакви мисли за това как да се проучи този проблем ще бъдат много оценени. Предпочитам да не започвам да изграждам ocaml от източници сам, тъй като искам да мога да разпространя проекта си на колеги с минимални инструкции какво трябва да направят, за да стартират нещата, така че искам да използвам ванилни пакети, където е възможно.
> ocaml make.ml PegParserTest.native ocamlbuild \ -libs \ nums,str,unix,oUnit,graph \ -cflags \ -g,-w,+a-4,-warn-error,+a-4,-I,/opt/local/lib/ocaml/site-lib/oUnit,-I,/opt/local/lib/ocaml/site-lib/ocamlgraph \ -lflags \ -g,-I,/opt/local/lib/ocaml/site-lib/oUnit,-I,/opt/local/lib/ocaml/site-lib/ocamlgraph \ PegParserTest.native + /opt/local/bin/ocamlopt.opt -g -I /opt/local/lib/ocaml/site-lib/oUnit -I /opt/local/lib/ocaml/site-lib/ocamlgraph nums.cmxa str.cmxa unix.cmxa oUnit.cmxa graph.cmxa BinSearch.cmx ByteInput.cmx ByteOutput.cmx ListUtil.cmx Stringer.cmx Range.cmx Unicode.cmx CaseFold.cmx EditDistance.cmx SourcePosition.cmx Utf8.cmx Grammar.cmx Failures.cmx Opt.cmx StringUtil.cmx Path.cmx UnicodeCategories.cmx UnicodeSeq.cmx GrammarParser.cmx AnnotationChecker.cmx ArrayUtil.cmx BitBucket.cmx CodeUnit.cmx Conv.cmx DefaultProductions.cmx Encodable.cmx Flatten.cmx Trie.cmx FactorLeft.cmx Followers.cmx Inline.cmx PreSimplify.cmx SymmetricBoolMatrix.cmx TailCallOpt.cmx UnionPartition.cmx Simplifier.cmx FileTestSuite.cmx NumberSystem.cmx Regex.cmx PegParser.cmx ScalarCharValue.cmx TestHarnessWrapper.cmx PegParserTest.cmx -o PegParserTest.native File "_none_", line 1: Error: Files /opt/local/lib/ocaml/site-lib/oUnit/oUnit.cmxa and /opt/local/lib/ocaml/unix.cmxa make inconsistent assumptions over implementation Unix Command exited with code 2. Compilation unsuccessful after building 154 targets (153 cached) in 00:00:00. > sudo port selfupdate ---> Updating MacPorts base sources using rsync MacPorts base version 2.1.2 installed, MacPorts base version 2.1.2 downloaded. ---> Updating the ports tree ---> MacPorts base is already the latest version The ports tree has been updated. To upgrade your installed ports, you should run port upgrade outdated > sudo port upgrade outdated ---> Computing dependencies for automake ELIDED ---> Updating database of binaries: 100.0% ---> Scanning binaries for linking errors: 100.0% ---> No broken files found. > port contents ocaml | grep -i unix.cm /opt/local/lib/ocaml/threads/threadUnix.cmi /opt/local/lib/ocaml/threads/threadUnix.cmx /opt/local/lib/ocaml/unix.cma /opt/local/lib/ocaml/unix.cmi /opt/local/lib/ocaml/unix.cmx /opt/local/lib/ocaml/unix.cmxa /opt/local/lib/ocaml/unix.cmxs /opt/local/lib/ocaml/vmthreads/threadUnix.cmi /opt/local/lib/ocaml/vmthreads/unix.cma > port contents ocaml-ounit | egrep '\.cm' /opt/local/lib/ocaml/site-lib/oUnit/oUnit.cma /opt/local/lib/ocaml/site-lib/oUnit/oUnit.cmi /opt/local/lib/ocaml/site-lib/oUnit/oUnit.cmx /opt/local/lib/ocaml/site-lib/oUnit/oUnit.cmxa /opt/local/lib/ocaml/site-lib/oUnit/oUnit.cmxs /opt/local/lib/ocaml/site-lib/oUnit/oUnitDiff.cmi /opt/local/lib/ocaml/site-lib/oUnit/oUnitDiff.cmx > sudo port -f upgrade ocaml-ounit ocaml Password: ---> Scanning binaries for linking errors: 100.0% ---> No broken files found.