trunc argument when we process a thin PACK file breaking changes An optional argument is added on the record which abstract the file-system. It should be correctly handled by underlying implementation of the file-system. It appears that, at top, we need to figure out such option, specially for Git and Cstruct_append to correctly access to memories.De.Lz77.window instead of De.windowUnmonad mmap (@dinosaure, #454) mmap is a syscall which does not block. The ability to use it outside the scheduler monad (like LWT) permits us to detach multiple processes to analyze a PACK file.
With this PR, we take the advantage of Thread or Lwt_preemptive (or more acccurately, the concurrency) to analyze a large PACK file and speed-up the clone/fetch process.
The distribution comes with a new binary, carton.verify-pack which is git verify-pack.