a964012fc3
I had not realized what a memory leak the lazy state monad could be, although I have not seen much evidence of actual leaking in git-annex. However, if running git-annex on a great many files, this could matter. The additional Utility.State.changeState adds even more strictness, avoiding a problem I saw in github-backup where repeatedly modifying state built up a huge pile of thunks.
29 lines
831 B
Haskell
29 lines
831 B
Haskell
module Common (module X) where
|
|
|
|
import Control.Monad as X hiding (join)
|
|
import Control.Monad.IfElse as X
|
|
import Control.Applicative as X
|
|
import Control.Monad.State.Strict as X (liftIO)
|
|
import Control.Exception.Extensible as X (IOException)
|
|
|
|
import Data.Maybe as X
|
|
import Data.List as X hiding (head, tail, init, last)
|
|
import Data.String.Utils as X
|
|
|
|
import System.Path as X
|
|
import System.FilePath as X
|
|
import System.Directory as X
|
|
import System.Cmd.Utils as X hiding (safeSystem)
|
|
import System.IO as X hiding (FilePath)
|
|
import System.Posix.Files as X
|
|
import System.Posix.IO as X
|
|
import System.Posix.Process as X hiding (executeFile)
|
|
import System.Exit as X
|
|
|
|
import Utility.Misc as X
|
|
import Utility.SafeCommand as X
|
|
import Utility.Path as X
|
|
import Utility.Directory as X
|
|
import Utility.Monad as X
|
|
|
|
import Utility.PartialPrelude as X
|