summaryrefslogtreecommitdiff
path: root/git-annex.cabal
Commit message (Collapse)AuthorAge
* Merge branch 'master' into android-rebuildGravatar Joey Hess2013-09-22
|\
| * Use cryptohash rather than SHA for hashing.Gravatar Joey Hess2013-09-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a massive win on OSX, which doesn't have a sha256sum normally. Only use external hash commands when the file is > 1 mb, since cryptohash is quite close to them in speed. SHA is still used to calculate HMACs. I don't quite understand cryptohash's API for those. Used the following benchmark to arrive at the 1 mb number. 1 mb file: benchmarking sha256/internal mean: 13.86696 ms, lb 13.83010 ms, ub 13.93453 ms, ci 0.950 std dev: 249.3235 us, lb 162.0448 us, ub 458.1744 us, ci 0.950 found 5 outliers among 100 samples (5.0%) 4 (4.0%) high mild 1 (1.0%) high severe variance introduced by outliers: 10.415% variance is moderately inflated by outliers benchmarking sha256/external mean: 14.20670 ms, lb 14.17237 ms, ub 14.27004 ms, ci 0.950 std dev: 230.5448 us, lb 150.7310 us, ub 427.6068 us, ci 0.950 found 3 outliers among 100 samples (3.0%) 2 (2.0%) high mild 1 (1.0%) high severe 2 mb file: benchmarking sha256/internal mean: 26.44270 ms, lb 26.23701 ms, ub 26.63414 ms, ci 0.950 std dev: 1.012303 ms, lb 925.8921 us, ub 1.122267 ms, ci 0.950 variance introduced by outliers: 35.540% variance is moderately inflated by outliers benchmarking sha256/external mean: 26.84521 ms, lb 26.77644 ms, ub 26.91433 ms, ci 0.950 std dev: 347.7867 us, lb 210.6283 us, ub 571.3351 us, ci 0.950 found 6 outliers among 100 samples (6.0%) import Crypto.Hash import Data.ByteString.Lazy as L import Criterion.Main import Common testfile :: FilePath testfile = "/run/shm/data" -- on ram disk main = defaultMain [ bgroup "sha256" [ bench "internal" $ whnfIO internal , bench "external" $ whnfIO external ] ] sha256 :: L.ByteString -> Digest SHA256 sha256 = hashlazy internal :: IO String internal = show . sha256 <$> L.readFile testfile external :: IO String external = do s <- readProcess "sha256sum" [testfile] return $ fst $ separate (== ' ') s
* | successfully builds (except XMPP)Gravatar Joey Hess2013-09-22
|/
* release4.20130920Gravatar Joey Hess2013-09-20
|
* prep release4.20130911Gravatar Joey Hess2013-09-11
|
* sync: support gcrypt4.20130909Gravatar Joey Hess2013-09-09
|
* Allow building without quvi support.Gravatar Joey Hess2013-09-09
|
* prep releaseGravatar Joey Hess2013-08-27
|
* Youtube support! (And 53 other video hosts)Gravatar Joey Hess2013-08-22
| | | | | | | | | | When quvi is installed, git-annex addurl automatically uses it to detect when an page is a video, and downloads the video file. web special remote: Also support using quvi, for getting files, or checking if files exist in the web. This commit was sponsored by Mark Hepburn. Thanks!
* releasing version 4.201308154.20130815Gravatar Joey Hess2013-08-15
|
* releasing version 4.201308024.20130802Gravatar Joey Hess2013-08-02
|
* importfeed: git-annex becomes a podcatcher in 150 LOCGravatar Joey Hess2013-07-28
|
* Always build with -threaded, to avoid a deadlock when communicating with gpg.Gravatar Joey Hess2013-07-25
|
* releasing version 4.201307234.20130723Gravatar Joey Hess2013-07-23
|
* Revert "avoid pulling in unneeded dependencies when the assistant is disabled"Gravatar Joey Hess2013-07-16
| | | | | | Cabal does not seem to have a way to check if flag A is set and then, if flag B is set, add a dep. Instead, it makes flag B get unset if the dep is not available.
* avoid pulling in unneeded dependencies when the assistant is disabledGravatar Joey Hess2013-07-12
|
* releasing version 4.201307094.20130709Gravatar Joey Hess2013-07-09
|
* temporarily remove cabal os(gnu) until I find the real right name for the hurdGravatar Joey Hess2013-06-30
| | | | Or until hackage stops rejecting os(gnu), if it is indeed the right name..
* releasing version 4.201306274.20130627Gravatar Joey Hess2013-06-27
|
* webapp: Fix bug that caused the webapp to hang when built with yesod 1.2.Gravatar Joey Hess2013-06-27
|
* Temporarily revert back to building with yesod before 1.2. Version 1.2 of ↵Gravatar Joey Hess2013-06-26
| | | | yesod, or the new version of warp seem to have a bug that causes the webapp to hang.
* simpler ifdef for linuxGravatar Joey Hess2013-06-21
|
* colin tells me it's os(gnu) for the hurdGravatar Joey Hess2013-06-21
|
* don't try to build assistant on hurdGravatar Joey Hess2013-06-21
|
* assistant: On Linux, the expensive transfer scan is run niced.Gravatar Joey Hess2013-06-20
| | | | | | | This is a compromise. I would like to nice every thread except for the webapp thread, but it's not practical to do so. That would need every thread to run as a bound thread, which could add significant overhead. And any forkIO would escape the nice level.
* git-annex.cabal: declare GPL3+ licenseGravatar Peter Simons2013-06-04
|
* now builds with both yesod 1.2 and 1.1Gravatar Joey Hess2013-06-03
|
* WIP yesod 1.2Gravatar Joey Hess2013-06-03
|
* releasing version 4.201306014.20130601Gravatar Joey Hess2013-06-01
|
* further restrict yesod versions, for people who have newer stuff installedGravatar Joey Hess2013-05-24
|
* version dep on yesod-default, otherwise cabal explodesGravatar Joey Hess2013-05-23
| | | | Will be re-releasing the last version to hackage with a .1 with this fix.
* releasing version 4.201305214.20130521Gravatar Joey Hess2013-05-21
|
* debian architecture build funGravatar Joey Hess2013-05-19
|
* Switch to MonadCatchIO-transformers for better handling of state while ↵Gravatar Joey Hess2013-05-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | catching exceptions. As seen in this bug report, the lifted exception handling using the StateT monad throws away state changes when an action throws an exception. http://git-annex.branchable.com/bugs/git_annex_fork_bombs_on_gpg_file/ .. Which can result in cached values being redundantly calculated, or other possibly worse bugs when the annex state gets out of sync with reality. This switches from a StateT AnnexState to a ReaderT (MVar AnnexState). All changes to the state go via the MVar. So when an Annex action is running inside an exception handler, and it makes some changes, they immediately go into affect in the MVar. If it then throws an exception (or even crashes its thread!), the state changes are still in effect. The MonadCatchIO-transformers change is actually only incidental. I could have kept on using lifted-base for the exception handling. However, I'd have needed to write a new instance of MonadBaseControl for the new monad.. and I didn't write the old instance.. I begged Bas and he kindly sent it to me. Happily, MonadCatchIO-transformers is able to derive a MonadCatchIO instance for my monad. This is a deep level change. It passes the test suite! What could it break? Well.. The most likely breakage would be to code that runs an Annex action in an exception handler, and *wants* state changes to be thrown away. Perhaps the state changes leaves the state inconsistent, or wrong. Since there are relatively few places in git-annex that catch exceptions in the Annex monad, and the AnnexState is generally just used to cache calculated data, this is unlikely to be a problem. Oh yeah, this change also makes Assistant.Types.ThreadedMonad a bit redundant. It's now entirely possible to run concurrent Annex actions in different threads, all sharing access to the same state! The ThreadedMonad just adds some extra work on top of that, with its own MVar, and avoids such actions possibly stepping on one-another's toes. I have not gotten rid of it, but might try that later. Being able to run concurrent Annex actions would simplify parts of the Assistant code.
* releasing version 4.201305164.20130516Gravatar Joey Hess2013-05-16
|
* use unix-compat, removed a lot of stubs in Utility.FileModeGravatar Joey Hess2013-05-11
|
* avoid build depending on unix in windowsGravatar Joey Hess2013-05-10
|
* stub out posix stuff for WindowsGravatar Joey Hess2013-05-10
| | | | This is enough to let the configure program build.
* Avoid depending on regex-tdfa on mips, mipsel, and s390, where it fails to ↵Gravatar Joey Hess2013-05-06
| | | | build.
* Disable building with the haskell threaded runtime when the assistant is not ↵Gravatar Joey Hess2013-05-06
| | | | built. This may fix builds on s390x and sparc, which are failing to link -lHSrts_thr
* avoid crashing on Android when file mode of .git/annex/url cannot be setGravatar Joey Hess2013-05-03
| | | | | Presumably, if the filesystem doesn't support file permissions, it's not much of a multiuser system.
* Temporarily add an upper bound to the version of yesod that can be built ↵Gravatar Joey Hess2013-05-02
| | | | with, since yesod 1.2 has a great many changes that will require extensive work on the webapp.
* work around strange endianness bug in port number on AndroidGravatar Joey Hess2013-05-02
|
* releasing version 4.201305014.20130501Gravatar Joey Hess2013-05-01
|
* add TList, built on DListGravatar Joey Hess2013-04-24
|
* revert addition of Includes: sys/event.h in cabal fileGravatar Joey Hess2013-04-24
| | | | | | | | | | | | | That is very dodgy; it makes *every* C file compiled have that header added to it. Apparently sys/event.h needs some other header files to be included on some OS's, and so this leads to compile failures in completely unrelated places to the code that actually uses sys/event.h This reverts commit a767040a53182cde16434cba686252bbaf776cf9, which added this with no rationalle and I must have missed in amoung the other patches when merging. Also, Utility/kqueue.c already includes sys/event.h
* enable webdav on androidGravatar Joey Hess2013-04-19
|
* releasing version 4.201304174.20130417Gravatar Joey Hess2013-04-17
|
* Fall back to internal url downloader when built without curl.Gravatar Joey Hess2013-04-16
|
* use Extensions instead of -XGravatar Joey Hess2013-04-14
|