diff options
-rw-r--r-- | Remote/Git.hs | 2 | ||||
-rw-r--r-- | doc/design/assistant/blog/day_268__core_monad_change.mdwn | 9 | ||||
-rw-r--r-- | standalone/windows/build.sh | 26 |
3 files changed, 28 insertions, 9 deletions
diff --git a/Remote/Git.hs b/Remote/Git.hs index 215cd590f..32f6a1c7c 100644 --- a/Remote/Git.hs +++ b/Remote/Git.hs @@ -321,7 +321,7 @@ copyFromRemote' r key file dest -} feedprogressback a = ifM (isJust <$> sshCacheDir) ( feedprogressback' a - , bracketIO noop (const noop) (a $ const noop) + , a $ const noop ) feedprogressback' a = do u <- getUUID diff --git a/doc/design/assistant/blog/day_268__core_monad_change.mdwn b/doc/design/assistant/blog/day_268__core_monad_change.mdwn new file mode 100644 index 000000000..2704bb090 --- /dev/null +++ b/doc/design/assistant/blog/day_268__core_monad_change.mdwn @@ -0,0 +1,9 @@ +Today I had to change the implementation of the Annex monad. The old one +turned out to be buggy around exception handling -- changes to state +recorded by code that ran in an exception handler were discarded when it +threw an exception. Changed from a StateT monad to a ReaderT with +a MVar. Really deep-level change, but it went off without a +hitch! + +Other than that it was a bug catch up day. Almost entirely caught up once +more. diff --git a/standalone/windows/build.sh b/standalone/windows/build.sh index 81e66f292..230ffd246 100644 --- a/standalone/windows/build.sh +++ b/standalone/windows/build.sh @@ -35,14 +35,24 @@ cd .. cabal install --only-dependencies -f"$FLAGS" -# Build git-annex -withcyg cabal configure -f"$FLAGS" -withcyg cabal build - -# Build the installer -cabal install nsis -ghc --make Build/NullSoftInstaller.hs -withcyg Build/NullSoftInstaller.exe +runbuild () { + # Build git-annex + withcyg cabal configure -f"$FLAGS" + withcyg cabal build + + # Build the installer + cabal install nsis + ghc --make Build/NullSoftInstaller.hs + withcyg Build/NullSoftInstaller.exe +} + +# Incremental build sometimes may fail, possibly because the configure +# script has changed but cabal neglects to re-build it on Windows +if ! runbuild; then + echo "Retrying after cabal clean" + cabal clean + runbuild +fi # Test git-annex rm -rf .t |