Commit graph

44 commits

Author SHA1 Message Date
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
Joey Hess
b22409db38
avoid warnings about not exported System.Directory.isSymbolicLink 2016-04-28 15:18:11 -04:00
Joey Hess
5fe450514b
Fix build with directory-1.2.6.2.
It started exporting a isSymbolicLink which supports windows. But,
git-annex does no use symlinks on windows yet and this conflicts with the
function by the same name from unix-compat, so hide it.
2016-04-28 13:18:44 -04:00
Joey Hess
ab5f7b05f5
Fix OSX dmg to include libraries needed by bundled gpg, lost in last release. 2016-03-07 12:55:01 -04:00
Joey Hess
6a5e241a74
throw exception if library copy fails 2016-01-14 17:56:21 -04:00
Joey Hess
4ca9fa4d39
fix build warning with AMP ghc 2015-12-28 13:16:46 -04:00
Joey Hess
afc5153157 update my email address and homepage url 2015-01-21 12:50:09 -04:00
Joey Hess
3bab5dfb1d revert parentDir change
Reverts 965e106f24

Unfortunately, this caused breakage on Windows, and possibly elsewhere,
because parentDir and takeDirectory do not behave the same when there is a
trailing directory separator.
2015-01-09 13:11:56 -04:00
Joey Hess
965e106f24 made parentDir return a Maybe FilePath; removed most uses of it
parentDir is less safe than takeDirectory, especially when working
with relative FilePaths. It's really only useful in loops that
want to terminate at /

This commit was sponsored by Audric SCHILTKNECHT.
2015-01-06 18:55:56 -04:00
Joey Hess
7b50b3c057 fix some mixed space+tab indentation
This fixes all instances of " \t" in the code base. Most common case
seems to be after a "where" line; probably vim copied the two space layout
of that line.

Done as a background task while listening to episode 2 of the Type Theory
podcast.
2014-10-09 15:09:11 -04:00
Joey Hess
ff6854e5b4 fix install_name_tool library name replacement 2014-01-15 13:05:07 -04:00
Joey Hess
465a24cc54 fix warning 2014-01-14 16:44:04 -04:00
Joey Hess
d0b51099a4 search DYLD_LIBRARY_PATH for libraries 2014-01-14 16:28:05 -04:00
Joey Hess
8aa22a57ca use pure or return rather than (:[]) or \x -> [x] 2013-11-06 01:18:22 -04:00
Joey Hess
b9341fd4c0 handle rpath in OSXMkLibs
Now oberon has some binaries and libraries that use rpath, so I had to put
in this ugly hack to replace the @rapth/lib with the lib in the app.

This was particularly tricky for libraries that use @rpath because I could
not find a way to extract the rpath from the library. (Only from the
executable, by running it.. ugh!) The hack I put in place may fail if
multiple different libraries use rpath to refer to other libraries,
and the "@rpath/lib" string is the same, but actually refers to different
files.
2013-04-22 13:33:29 -04:00
Joey Hess
6f8ec9a1d2 argle 2013-04-17 11:57:46 -04:00
Joey Hess
faa9b4473c remove module definitions for these standalone programs
Sometimes ghc --make skips building these binaries, as it sees no Main
module.
2013-04-17 11:54:27 -04:00
Joey Hess
9b663c7f8c remove libSystem.b from OSX build
Without the frameworks, but with this library, I get:

dyld: Symbol not found: __vproc_transactions_enable
  Referenced from: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
  Expected in: /Volumes/git-annex/git-annex.app/Contents/MacOS/./C
 in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation

Without this library, things seem to work again w/o frameworks.
2012-12-13 12:17:12 -04:00
Joey Hess
900351ab85 try skipping OSX frameworks 2012-12-12 21:34:59 -04:00
Joey Hess
43f7110220 typo 2012-12-09 13:45:51 -04:00
Joey Hess
ad488c23ac install libs in subdirs again 2012-12-09 13:42:30 -04:00
Joey Hess
a2a0a71e2b install_name_tool fix 2012-12-09 13:38:08 -04:00
Joey Hess
acbd640f89 optimisation; only run install_name_tool once per binary 2012-12-09 13:29:30 -04:00
Joey Hess
ecc49d7db8 use full path name to generate library filename
avoids overlaps
2012-12-09 13:17:55 -04:00
Joey Hess
4bb8fdb70d typo 2012-12-09 13:08:57 -04:00
Joey Hess
5d73a790e8 avoid using short lib names that clash with unix command names 2012-12-09 13:06:59 -04:00
Joey Hess
da53d0fa10 syntax 2012-12-09 13:02:59 -04:00
Joey Hess
8c082cda2e remove unused cruft 2012-12-09 12:59:34 -04:00
Joey Hess
dea5599d3d oh yeah, OSX is case insensative 2012-12-09 12:54:19 -04:00
Joey Hess
9370c32290 tweak 2012-12-09 12:46:28 -04:00
Joey Hess
8e26b2f941 reverse symlinks 2012-12-09 12:35:50 -04:00
Joey Hess
c6d570a1cc install libs using short names, with symlinks to we can tell what libraries
they are supposed to be
2012-12-09 12:22:09 -04:00
Joey Hess
1c2da18b0b fix executable permissions
sh at least does not default to having a write bit
2012-12-09 12:16:02 -04:00
Joey Hess
76b7ab0b35 fix infinite loop 2012-12-09 12:14:19 -04:00
Joey Hess
01b359b4f8 insane osx short library name hack
Since I'm dealing with arbitrarily short fields in which to store the
library name, and would have to rebuild a bunch of stuff like git to avoid
that, and I have to prefix this obnoxiously long "@executable_path"
to it, it's easy to run out of space. This makes it use 1 and 2 letter long
filenames for libraries in the app. Fun fun fun fun fun.
2012-12-08 17:44:10 -04:00
Joey Hess
56b3dbe544 fix library filenames in osx app 2012-12-08 17:14:45 -04:00
Joey Hess
86e5da4c92 chmod libs so install_name_tool can modify them 2012-12-08 15:54:39 -04:00
Joey Hess
c7a4ad8bc3 move libs to try to fit within available path space 2012-12-08 12:29:09 -04:00
Joey Hess
1dd386903b use install_name_tool to adjust library paths in osx app
Have not yet been able to test this.
2012-12-08 11:07:59 -04:00
Joey Hess
0986a21ce0 Revert "skip frameworks"
This reverts commit f850a64bd0.

At least CoreFoundation framework seems to be needed.
2012-12-07 14:40:48 -04:00
Joey Hess
f850a64bd0 skip frameworks
I suspect this might be related to recent reports of hangs.
2012-12-07 12:21:15 -04:00
Joey Hess
ad71ccdb57 got this working 2012-11-26 17:11:09 -04:00
Joey Hess
40cdfd1a1e add debugging 2012-11-26 16:31:41 -04:00
Joey Hess
4f9cb2041c rewrote OSX library copier in Haskell, now with recursive copying of library deps 2012-11-26 14:09:40 -04:00