git-annex/Types
Joey Hess 9eb10caa27
Some optimisations to string splitting code.
Turns out that Data.List.Utils.split is slow and makes a lot of
allocations. Here's a much simpler single character splitter that behaves
the same (even in wacky corner cases) while running in half the time and
75% the allocations.

As well as being an optimisation, this helps move toward eliminating use of
missingh.

(Data.List.Split.splitOn is nearly as slow as Data.List.Utils.split and
allocates even more.)

I have not benchmarked the effect on git-annex, but would not be surprised
to see some parsing of eg, large streams from git commands run twice as
fast, and possibly in less memory.

This commit was sponsored by Boyd Stephen Smith Jr. on Patreon.
2017-01-31 19:06:22 -04:00
..
ActionItem.hs get, move, copy, mirror: Added --failed switch which retries failed copies/moves 2016-08-03 12:37:12 -04:00
Availability.hs
Backend.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
BranchState.hs
CleanupActions.hs
Command.hs Make --json and --quiet suppress automatic init messages 2016-09-05 15:34:38 -04:00
Concurrency.hs disentangle concurrency and message type 2016-09-09 12:57:42 -04:00
Creds.hs Added git-remote-tor-annex, which allows git pull and push to the tor hidden service. 2016-11-21 17:27:38 -04:00
Crypto.hs Added new encryption=sharedpubkey mode for special remotes. 2016-05-10 16:50:31 -04:00
DeferredParse.hs fix build warnings under ghc 7.10 2015-12-19 17:42:45 -04:00
DesktopNotify.hs
Difference.hs 4 ns optimisation of repeated calls to hasDifference on the same Differences 2015-06-11 16:34:35 -04:00
Distribution.hs
FileMatcher.hs matchexpression: Added --largefiles option to parse an annex.largefiles expression. 2016-02-03 16:58:36 -04:00
GitConfig.hs Added annex.gnupg-decrypt-options and remote.<name>.annex-gnupg-decrypt-options, which are passed to gpg when it's decrypting data. 2016-05-10 13:03:56 -04:00
Group.hs
Key.hs implementation of peer-to-peer protocol 2016-11-17 18:30:50 -04:00
KeySource.hs refactoring 2015-12-22 13:42:58 -04:00
LockCache.hs convert from Utility.LockPool to Annex.LockPool everywhere 2015-11-12 18:13:37 -04:00
Messages.hs drop incremental json object display; clean up code 2016-09-09 18:13:55 -04:00
MetaData.hs Added metadata --batch option, which allows getting, setting, deleting, and modifying metadata for multiple files/keys. 2016-07-27 10:46:25 -04:00
NumCopies.hs Get rid of unnecessary Monad constraint 2016-01-28 12:34:07 -04:00
RefSpec.hs Some optimisations to string splitting code. 2017-01-31 19:06:22 -04:00
Remote.hs Pass the various gnupg-options configs to gpg in several cases where they were not before. 2016-05-23 17:03:20 -04:00
ScheduledActivity.hs
StandardGroups.hs adjust standard preferred content to work better with git annex sync --all --content 2015-06-16 17:18:53 -04:00
StoreRetrieve.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00
Test.hs fix build with old ghc 2016-01-13 12:18:20 -04:00
Transfer.hs fix build with pre-AMP ghc 2016-09-06 14:23:53 -04:00
TrustLevel.hs
UrlContents.hs
UUID.hs implementation of peer-to-peer protocol 2016-11-17 18:30:50 -04:00
View.hs remove 163 lines of code without changing anything except imports 2016-01-20 16:36:33 -04:00