The attached patches make darcs build on Windows for me using GHC 6.8.3. I
ran 'make test' and most tests passed, except
TESTS FAILED!
pull.sh
which is much better than I've seen before.
The threadWaitRead issue is even more subtle than I realised. In fact
darcs does respond to ^C, but only after you press it twice. I think the
reason is this:
c <- hLookAhead stdin `catch` \_ -> return ' '
this catch is catching the first ^C exception and discarding it. I notice
that there are several places in Darcs.Utils that catch all exceptions and
discard them, which is generally considered not good style - you could
discard all kinds of interesting exceptions.
Cheers,
Simon
Tue Aug 19 14:42:52 GMT Daylight Time 2008 Simon Marlow <[EMAIL PROTECTED]>
* Fix Windows build
On Windows, System.Posix.Types.FileOffset is not the same as the type
of the st_size field of the stat structure: the latter is Int64,
whereas COff == Int32.
This is almost ceratinly not the right fix, but it gets the build
going.
In general I don't recommend using System.Posix.* on Windows. The
right way is to either use the official platform-independent libraries
like System.IO, System.Directory or System.Process, or to use
System.Win32 directly.
Tue Aug 19 15:11:51 GMT Daylight Time 2008 Simon Marlow <[EMAIL PROTECTED]>
* Fix use of threadWaitRead on Windows
threadWaitRead doesn't work on Windows in all GHC versions < 6.10.1
(which isn't released yet).
This means that since darcs is compiled with -threaded, when compiled
with GHC < 6.10 on Windows, darcs will not respond to ^C when waiting
for user input.
New patches:
[Fix Windows build
Simon Marlow <[EMAIL PROTECTED]>**20080819134252
On Windows, System.Posix.Types.FileOffset is not the same as the type
of the st_size field of the stat structure: the latter is Int64,
whereas COff == Int32.
This is almost ceratinly not the right fix, but it gets the build
going.
In general I don't recommend using System.Posix.* on Windows. The
right way is to either use the official platform-independent libraries
like System.IO, System.Directory or System.Process, or to use
System.Win32 directly.
] hunk ./src/Darcs/SlurpDirectory.lhs 56
-import System.Posix.Types ( EpochTime, FileOffset )
+import System.Posix.Types ( EpochTime )
hunk ./src/Darcs/SlurpDirectory.lhs 72
+#if mingw32_HOST_OS
+import Data.Int ( Int64 )
+#else
+import System.Posix.Types ( FileOffset )
+#endif
+
hunk ./src/Darcs/SlurpDirectory.lhs 80
+#if mingw32_HOST_OS
+type FileOffset = Int64
+#endif
+
hunk ./src/win32/System/Posix/Files.hsc 1
+{-# OPTIONS_GHC -cpp #-}
hunk ./src/win32/System/Posix/Files.hsc 15
-import System.Posix.Types ( Fd(..), CMode, COff, EpochTime, FileOffset,
FileMode )
+import System.Posix.Types ( Fd(..), CMode, EpochTime, FileMode )
hunk ./src/win32/System/Posix/Files.hsc 19
+#if mingw32_HOST_OS
+import Data.Int ( Int64 )
+#else
+import System.Posix.Types ( FileOffset )
+#endif
+
+##if mingw32_HOST_OS
+type FileOffset = Int64
+##endif
+
hunk ./src/win32/System/Posix/Files.hsc 33
- fst_size :: COff
+ fst_size :: FileOffset
[Fix use of threadWaitRead on Windows
Simon Marlow <[EMAIL PROTECTED]>**20080819141151
threadWaitRead doesn't work on Windows in all GHC versions < 6.10.1
(which isn't released yet).
This means that since darcs is compiled with -threaded, when compiled
with GHC < 6.10 on Windows, darcs will not respond to ^C when waiting
for user input.
] hunk ./src/Darcs/Utils.lhs 18
-import Control.Concurrent ( threadWaitRead, newEmptyMVar, takeMVar, putMVar,
forkIO )
+import Control.Concurrent ( newEmptyMVar, takeMVar, putMVar, forkIO )
+#if !defined(WIN32) || __GLASGOW_HASKELL__>=609
+import Control.Concurrent ( threadWaitRead )
+#endif
hunk ./src/Darcs/Utils.lhs 157
- threadWaitRead 0
+ waitForStdin
hunk ./src/Darcs/Utils.lhs 165
+waitForStdin :: IO ()
+#ifdef WIN32
+#if __GLASGOW_HASKELL__ >= 609
+waitForStdin = threadWaitRead 0
+#else
+waitForStdin = return () -- threadWaitRead didn't work prior to 6.9
+#endif
+#else
+waitForStdin = threadWaitRead 0
+#endif
+
hunk ./src/Darcs/Utils.lhs 239
- threadWaitRead 0
+ waitForStdin
hunk ./src/Darcs/Utils.lhs 280
- do threadWaitRead 0
+ do waitForStdin
Context:
[Resolve issue823: do not exit on keyboard interrupt when getting patches.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080815070943
And give a chance for go_to_chosen_version to run.
]
[fix buggy comments in bugs/identical-patches.sh.
David Roundy <[EMAIL PROTECTED]>**20080814135322]
[Add Ian's identical-patch test case.
Eric Kow <[EMAIL PROTECTED]>**20080813171032]
[URL.hs: store only URL in waitToStart queue.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080813122246]
[Add (failing) test for issue944.
Eric Kow <[EMAIL PROTECTED]>**20080814055903
This appears to be a reggression from darcs 1.0.9, and was submitted by
Wolfgang Lux on the bug tracker. Interestingly, only the old format
repositories are affected, not the hashed ones.
]
[add type witnesses to TouchesFiles
Jason Dagit <[EMAIL PROTECTED]>**20080810063403]
[add type witnesses to Patch/Choices.lhs
Jason Dagit <[EMAIL PROTECTED]>**20080809000237]
[Split Cache mostly out of Darsc/Repository/Prefs into its own file (take 2)
[EMAIL PROTECTED]
[Make Darcs.Repository.Prefs export the cache hash function
[EMAIL PROTECTED]
[remove a few unsightly functions
Jason Dagit <[EMAIL PROTECTED]>**20080813061256]
[Fix URL module bug with pipelining enabled.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080813081218]
[Minor change to URL module.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080813074218]
[Enable pipelining by default, add --disable-pipelining option (issue838).
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080813011342]
[Generalize HashRepo.clean_pristine to HashIO.clean_hashdir.
[EMAIL PROTECTED]
[Add writeSlurpy to roll out a copy of slurpy into a filesystem.
[EMAIL PROTECTED]
[fix breakage in URL.
David Roundy <[EMAIL PROTECTED]>**20080812141220]
[Parametrize "pristine.hashed" in a bunch of functions.
[EMAIL PROTECTED]
[Rework URL module for multi threading.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080811221209]
[Add thread synchronization to URL module and resume select() if interrupted by
signal in curl module.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080810092810]
[Handle error case with empty URL in URL.waitNextUrl function.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080809221755]
[Add --debug-http flag to enable curl and libwww debug at run-time instead of
compile-time.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080809154834]
[Print a warning when the remote end does not have darcs 2.
Eric Kow <[EMAIL PROTECTED]>**20080811100933
Two reasons:
(1) right now people get a scary warning from ssh when it can't fetch
some non-essential files (it used to be that we would send stderr from ssh
to /dev/null, but that has other problems...)
(2) darcs transfer-mode more widely deployed could help a lot of people
wrt darcs performance
]
[Added a beware note to the unrecord command
[EMAIL PROTECTED]
[Fixed typo
[EMAIL PROTECTED]
[Better debug messages in URL module.
Dmitry Kurochkin <[EMAIL PROTECTED]>**20080809215247]
[make Convert.lhs compile.
David Roundy <[EMAIL PROTECTED]>**20080810201725]
[improve type safety of Darcs.Repository.Internal.
Jason Dagit <[EMAIL PROTECTED]>**20080810051109]
[Refactor `darcs convert' warning at kowey's request.
Trent W. Buck <[EMAIL PROTECTED]>**20080810110014]
[Expand formats text based in part on suggestions from darcs-users
Max Battcher <[EMAIL PROTECTED]>**20080809184043]
[Fixes to global cache text based on darcs-users suggestions
Max Battcher <[EMAIL PROTECTED]>**20080809181424]
[Add user-focused documentation of repository format options
Max Battcher <[EMAIL PROTECTED]>**20080807195429]
[Highlight the global cache as a best practice
Max Battcher <[EMAIL PROTECTED]>**20080807193918]
[Describe best practice in `darcs convert --help'.
Trent W. Buck <[EMAIL PROTECTED]>**20080810110615]
[add type witnesses to Population
Jason Dagit <[EMAIL PROTECTED]>**20080808053252]
[add type witnesses to CommandsAux
Jason Dagit <[EMAIL PROTECTED]>**20080808052738]
[Add type witnesses to more modules, rounding out Darcs/Repository/*
Jason Dagit <[EMAIL PROTECTED]>**20080808050947]
[fixed a bug in identity_commutes property
Jason Dagit <[EMAIL PROTECTED]>**20080808023025
In the right identity check the patch order should have gone from
(identity :> p) to (p2 :> i2). I added a rigid type context too
so that ghc 6.8 and newer would type the definition.
]
[Make Darcs.Repository.Internal compile with type witnesses.
Jason Dagit <[EMAIL PROTECTED]>**20080808015343]
[UF8.lhs: remove unusued functions/imports/docs
[EMAIL PROTECTED]
[Resolve issue974 : do not pass both -optc-g and -opta-g to GHC
Eric Kow <[EMAIL PROTECTED]>**20080807073620]
[make this test more cross-platform
Simon Michael <[EMAIL PROTECTED]>**20080807103433]
[document how to run unit tests
Simon Michael <[EMAIL PROTECTED]>**20080807030416]
[move (most) failing tests to bugs for clean test output
Simon Michael <[EMAIL PROTECTED]>**20080806191336]
[fix an old spelling error
Simon Michael <[EMAIL PROTECTED]>**20080806170432]
[make searching for "test:" in makefile work
Simon Michael <[EMAIL PROTECTED]>**20080805222241]
[run only normal (expected to pass) tests by default
Simon Michael <[EMAIL PROTECTED]>**20080805222108]
[Downplay quantum mechanics link.
Eric Kow <[EMAIL PROTECTED]>**20080806124109
Besides, darcs has far more than 3 users by now.
]
[Make patch theory intro more inviting to math people.
Eric Kow <[EMAIL PROTECTED]>**20080806123411]
[cleanup and slight rewrite of the test docs
Simon Michael <[EMAIL PROTECTED]>**20080806165949]
[make order of running tests consistent
Simon Michael <[EMAIL PROTECTED]>**20080806172123]
[small makefile refactoring: allow just the normal tests to be run, without
bugs/*
Simon Michael <[EMAIL PROTECTED]>**20080805203242]
[Rectify dist help
[EMAIL PROTECTED]
Removed the "make dist" suggestion, the manual is a better place for that.
Instead, make clear that it operates on a clean copy of the tree, and
mention the "predist" functionality.
]
[website: explain that darcs 2 is required to get the darcs source.
Simon Michael <[EMAIL PROTECTED]>**20080803181216]
[Canonize Gaetan Lehmann and Daniel Buenzli.
Eric Kow <[EMAIL PROTECTED]>**20080730104357
(for Daniel B, avoid an accent in his name)
]
[configure: check for packages needed with split base.
Eric Kow <[EMAIL PROTECTED]>**20080730103840
Now that all packages must be used explicitly.
]
[fix type witness compile errors specific to ghc 6.8
Jason Dagit <[EMAIL PROTECTED]>**20080722182729]
[avoid import of unused function fromMaybe.
David Roundy <[EMAIL PROTECTED]>**20080729172825]
[configure: suggest regex-compat before text
Eric Kow <[EMAIL PROTECTED]>**20080725095336]
[configure: mention Haskell in 'try installing' suggestion
Eric Kow <[EMAIL PROTECTED]>**20080725095015]
[Typo (Text.Regex)
Eric Kow <[EMAIL PROTECTED]>**20080715121708]
[Use haskeline to have a readline-like behavior when asking something to the
user
[EMAIL PROTECTED]
Unlike the implementations using readline or editline packages, this code
code doesn't break the Ctrl-C behavior.
]
[Improve generic rules for English plurals.
Eric Kow <[EMAIL PROTECTED]>**20080604123728]
[add configure check for Network.URI.
David Roundy <[EMAIL PROTECTED]>**20080711011914]
[add -hide-all-packages to default GHCFLAGS.
David Roundy <[EMAIL PROTECTED]>**20080711010952]
[add support for outputting patch numbers in darcs changes.
David Roundy <[EMAIL PROTECTED]>**20080710011211]
[add support for matching single patches by index.
David Roundy <[EMAIL PROTECTED]>**20080710004512]
[add support for matching ranges of patches (counting back from present).
David Roundy <[EMAIL PROTECTED]>**20080710003225]
[Better avoid silly manpage error.
Trent W. Buck <[EMAIL PROTECTED]>**20080704024920
It turned out only initialize's help string used 'quotes', so just
remove them. This makes init's docstring consistent with the others.
]
[Missing period at end of sentence.
Trent W. Buck <[EMAIL PROTECTED]>**20080704024232]
[darcs --overview no longer works, so don't document it.
Trent W. Buck <[EMAIL PROTECTED]>**20080704030804]
[Avoid silly manpage error.
Trent W. Buck <[EMAIL PROTECTED]>**20080703010733
man (nroff) treats an apostrophe in the first column specially,
resulting in a syntax error without this patch.
Ideally, all cases of 'foo' in the manpage (i.e. docstrings) should
become `foo', since man -Tps turns ` and ' into left and right single
quotes respectively.
]
[obliterate whitespace in Darcs.Commands.Get
[EMAIL PROTECTED]
'twas causing lhs/haddock difficulties where a \end{code} wasn't getting
recognized.
]
[rm haddock CPP business
[EMAIL PROTECTED]
Try as I might, I can't see any reason to special-case some Haddock CPP logic
to deal with some *commented-out guards*, unless CPP magically restores and
uncomments the code if Haddock isn't being run.
]
[make pull less verbose when --verbose flag is given.
David Roundy <[EMAIL PROTECTED]>**20080624170035]
[fix makefile to remember to regenerate version information after running
configure.
David Roundy <[EMAIL PROTECTED]>**20080624170001]
[TAG 2.0.2
David Roundy <[EMAIL PROTECTED]>**20080624012041]
Patch bundle hash:
f44c82ee52e7ea4ff24b74c4dad2a326820c9f79
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc