Hi Zack, Am Dienstag, den 15.06.2010, 13:31 +0200 schrieb Stefano Zacchiroli: > on the OCaml half of Debian, we are kind of aware that you've > implemented a solution similar to ours [1] for enforcing sound > dependencies among OCaml libraries and programs. > > That is just great, and we're happy that the solution/architecture we > developed has been helpful to you too, even if only as an inspiration. > > However, most of us are a bit puzzled about our poor knowledge of your > solution. I don't remember any contact on the debian-ocaml-maint@l.d.o > list, and it has only been rumored :-) on our side that some of you > contacted us via our IRC channel, but nothing more. > > Do you have any pointers to some document/tool/... that describes what > you did and maybe the relationship with what we did? > > We are just eager to know more about that, as we're excited at the idea > that our architecture was more general than we initially expected :) since the academical harvest has already been brought in I did not write a paper :-) The idea of hash-based dependencies has been floating around on the Haskell list even before we know of dh-ocaml. At that time, rumors were that such a large number of virtual packages would slow down dpkg too much and not accepted by ftp-master, therefore we did not pursue this at first and went by strict-up-to-upstream-version dependencies. At the last DebConf I was closely observing what you were doing with OCaml, and I also had a look at the paper. I think I also talked to some of the OCaml guys about this. My idea at that time was to see if it works out well for you and then implement it for Haskell as well. Then ghc6 (the compiler) started to introduce ABI hashes for the management of packages (in the Haskell sense). That was the point at which I decided that it’s time to use them in Debian as well. IIRC this is a minor difference to your approach: While you have to calculate a hash of the interface yourself, we can just use the hash provided by ghc6 (but shortened to 5 chars, just as yours) $ ghc-pkg describe mtl name: mtl version: 1.1.0.2 id: mtl-1.1.0.2-23ca4de7c573fd4df309067199a40634 [..] I’m still looking for a better tool to notice that some packages have become uninstallable and need to be binNMUed, and that can even forsee that some packages will become uninstallable (e.g. a dependency has been updated to a new upstream version but not built on that architecture). I have a somewhat hackish tool, but I’m not satisfied. How do you handle that? http://darcs.debian.org/pkg-haskell/tools/haskell-pkg-debcheck.hs Greetings, Joachim -- Joachim "nomeata" Breitner Debian Developer nomeata@debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C JID: nomeata@joachim-breitner.de | http://people.debian.org/~nomeata
Attachment:
signature.asc
Description: This is a digitally signed message part