Skip to content
Snippets Groups Projects
This project is mirrored from https://github.com/haskell/Cabal. Pull mirroring updated .
  1. Feb 12, 2013
  2. Feb 11, 2013
    • Joachim Breitner's avatar
      Much faster Distribution.Client.Dependency.Modular.PSQ.splits · 895487aa
      Joachim Breitner authored
      This reduces the runtime of "cabal install --dry-run" on a large cabal
      file (550 dependencies) from ~12s to 2.1s. Equivalency with previous
      implementation verified with QuickCheck in ghci.
      
      This is a guess: The speedup is mostly due to how to the previous
      entries are added to the result of the recursive call. Previously, for
      every entry to be added, the whole result list is mapped over (lots of
      allocations), and then each tuple is taken apart and reconstructed with
      a changed right value (again, lots of allocations). The new code
      assembles a function in an accumulator that represents the required
      update and applies it where needed, hence building the list and tuples
      only once.
      895487aa
  3. Feb 09, 2013
  4. Feb 08, 2013
  5. Jan 28, 2013
  6. Jan 27, 2013
  7. Jan 17, 2013
  8. Jan 11, 2013
  9. Jan 09, 2013
  10. Jan 08, 2013
  11. Jan 04, 2013
  12. Jan 03, 2013
  13. Jan 02, 2013
  14. Jan 01, 2013
  15. Dec 31, 2012
  16. Dec 28, 2012
  17. Dec 18, 2012
  18. Dec 14, 2012
  19. Dec 13, 2012
  20. Dec 10, 2012
  21. Dec 09, 2012
    • Mikhail Glushenkov's avatar
      Rebuild source directories added to sandbox. · 5417ddd3
      Mikhail Glushenkov authored
      Implemented by creating an install plan for ["add-source-dep-1", ...,
      "add-source-dep-N", "."], pruning "." from this plan and then doing all
      remaining installs in the plan before building the current package. This way,
      all reverse dependencies of add-source packages needed to install the current
      package are also reinstalled.
      5417ddd3
    • Mikhail Glushenkov's avatar
      Add an alternative interface for 'D.C.Install.install'. · 7772ce9c
      Mikhail Glushenkov authored
      Splits 'D.C.Install.install' into three parts:
      
          * makeInstallContext - load common data
          * makeInstallPlan    - produce the install plan
          * processInstallPlan - actually perform the installations
      
      This allows to manipulate the install plan produced with 'makeInstallPlan'
      before performing the installations with 'processInstallPlan'. The high-level
      'install' action is still present; most clients should use it instead.
      7772ce9c
Loading