summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Remote/Git.hs2
-rw-r--r--doc/design/assistant/blog/day_268__core_monad_change.mdwn9
-rw-r--r--standalone/windows/build.sh26
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