{"thread":{"id":"5476","subject":"[PATCH 0/5] Some autoconf patches","startedAt":"2006-09-04T22:54:24Z","lastAt":"2006-09-07T05:58:04Z","messageCount":19,"participants":["Jakub Narebski","Junio C Hamano","Shawn Pearce","Jonas Fonseca"],"isPatch":true,"patchVersion":1,"patchTotal":5},"messages":[{"id":"26326","messageId":"200609050054.24279.jnareb@gmail.com","threadId":"5476","inReplyTo":null,"subject":"[PATCH 0/5] Some autoconf patches","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-09-04T22:54:24Z","receivedAt":"2006-09-04T22:54:24Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"This is set of a few autoconf patches, based on 'master' \n  (commit 6b4fd65cce00d4adb5dd3ed2960ba355057c5a97)\nWhat is left is check if \"libc/libiconv properly support iconv.\",\ni.e. NO_ICONV check.\n\nSummary:\n---\n config.mak.in |    2 ++\n configure.ac  |   22 ++++++++++++++++++++--\n 2 files changed, 22 insertions(+), 2 deletions(-)\n\n\nShortlog:\n * [PATCH 1/5] autoconf: Add some commented out variables to config.mak.in\n * [PATCH 2/5] autoconf: Add -liconv to LIBS when NEEDS_LIBICONV\n * [PATCH 3/5] autoconf: Preliminary check for working mmap\n * [PATCH 4/5] autoconf: Check for subprocess.py\n * [PATCH 5/5] autoconf: Quote AC_CACHE_CHECK arguments\n-- \nJakub Narebski\nShadeHawk on #git\nPoland\n"},{"id":"26328","messageId":"200609050055.12666.jnareb@gmail.com","threadId":"5476","inReplyTo":"200609050054.24279.jnareb@gmail.com","subject":"[PATCH 1/5] autoconf: Add some commented out variables to config.mak.in","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-09-04T22:55:12Z","receivedAt":"2006-09-04T22:55:12Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Add commented out variables for the features which can be detected by\nautoconf, but are not implemented yet, to config.mak.in file.\n\nThis way we can easily see which tests are not implemented yet.\n\nSigned-off-by: Jakub Narebski <jnareb@gmail.com>\n---\n config.mak.in |    2 ++\n 1 files changed, 2 insertions(+), 0 deletions(-)\n\ndiff --git a/config.mak.in b/config.mak.in\nindex 369e611..2947560 100644\n--- a/config.mak.in\n+++ b/config.mak.in\n@@ -37,4 +37,6 @@ NO_C99_FORMAT=@NO_C99_FORMAT@\n NO_STRCASESTR=@NO_STRCASESTR@\n NO_STRLCPY=@NO_STRLCPY@\n NO_SETENV=@NO_SETENV@\n+#NO_MMAP=@NO_MMAP@\n+#NO_ICONV=@NO_ICONV@\n \n-- \n1.4.1.1\n"},{"id":"26327","messageId":"200609050055.52980.jnareb@gmail.com","threadId":"5476","inReplyTo":"200609050054.24279.jnareb@gmail.com","subject":"[PATCH 2/5] autoconf: Add -liconv to LIBS when NEEDS_LIBICONV","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-09-04T22:55:52Z","receivedAt":"2006-09-04T22:55:52Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Signed-off-by: Jakub Narebski <jnareb@gmail.com>\n---\nJust in case; it could matter for testing if iconv is properly\nsupported (NO_ICONV test).\n\n configure.ac |    1 +\n 1 files changed, 1 insertions(+), 0 deletions(-)\n\ndiff --git a/configure.ac b/configure.ac\nindex 36f9cd9..fc5b813 100644\n--- a/configure.ac\n+++ b/configure.ac\n@@ -147,6 +147,7 @@ AC_CHECK_LIB([c], [iconv],\n [NEEDS_LIBICONV=],\n [NEEDS_LIBICONV=YesPlease])\n AC_SUBST(NEEDS_LIBICONV)\n+test -n \"$NEEDS_SOCKET\" && LIBS=\"$LIBS -liconv\"\n #\n # Define NEEDS_SOCKET if linking with libc is not enough (SunOS,\n # Patrick Mauritz).\n-- \n1.4.1.1\n"},{"id":"26331","messageId":"200609050056.52590.jnareb@gmail.com","threadId":"5476","inReplyTo":"200609050054.24279.jnareb@gmail.com","subject":"[PATCH 3/5] autoconf: Preliminary check for working mmap","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-09-04T22:56:52Z","receivedAt":"2006-09-04T22:56:52Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Use AC_FUNC_MMAP check to check if the `mmap' function exists and\nworks correctly.  (It only checks private fixed mapping of\nalready-mapped memory.)\n\nStill it is better than having no mmap check at all.\nAttention: uses implementation detail of AC_FUNC_MMAP!\n\nSigned-off-by: Jakub Narebski <jnareb@gmail.com>\n---\nThis patch sent earlier in other patch series and dropped,\nas git uses private mapping, not private fixed. I think\nthat this check is better than no check at all...\n\n config.mak.in |    2 +-\n configure.ac  |    7 +++++++\n 2 files changed, 8 insertions(+), 1 deletions(-)\n\ndiff --git a/config.mak.in b/config.mak.in\nindex 2947560..2c8fd2c 100644\n--- a/config.mak.in\n+++ b/config.mak.in\n@@ -37,6 +37,6 @@ NO_C99_FORMAT=@NO_C99_FORMAT@\n NO_STRCASESTR=@NO_STRCASESTR@\n NO_STRLCPY=@NO_STRLCPY@\n NO_SETENV=@NO_SETENV@\n-#NO_MMAP=@NO_MMAP@\n+NO_MMAP=@NO_MMAP@\n #NO_ICONV=@NO_ICONV@\n \ndiff --git a/configure.ac b/configure.ac\nindex fc5b813..799321e 100644\n--- a/configure.ac\n+++ b/configure.ac\n@@ -249,6 +249,13 @@ AC_CHECK_FUNC(setenv,\n AC_SUBST(NO_SETENV)\n #\n # Define NO_MMAP if you want to avoid mmap.\n+AC_FUNC_MMAP\n+if test $ac_cv_func_mmap_fixed_mapped != yes; then\n+\tNO_MMAP=YesPlease\n+else\n+\tNO_MMAP=\n+fi\n+AC_SUBST(NO_MMAP)\n #\n # Define NO_ICONV if your libc does not properly support iconv.\n \n-- \n1.4.1.1\n"},{"id":"26329","messageId":"200609050057.46030.jnareb@gmail.com","threadId":"5476","inReplyTo":"200609050054.24279.jnareb@gmail.com","subject":"[PATCH 4/5] autoconf: Check for subprocess.py","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-09-04T22:57:45Z","receivedAt":"2006-09-04T22:57:45Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Add custom test for checking if Python comes with subprocess.py, or\nshould we use our own subprocess.py by defining WITH_OWN_SUBPROCESS_PY.\n\nSigned-off-by: Jakub Narebski <jnareb@gmail.com>\n---\nTaken from Makefile.\n\nPerhaps we would get rid of Python dependency soon.\n\n configure.ac |   10 ++++++++++\n 1 files changed, 10 insertions(+), 0 deletions(-)\n\ndiff --git a/configure.ac b/configure.ac\nindex 799321e..67a7aa9 100644\n--- a/configure.ac\n+++ b/configure.ac\n@@ -268,6 +268,16 @@ # Define NO_SYMLINK_HEAD if you never wa\n # Enable it on Windows.  By default, symrefs are still used.\n #\n # Define WITH_OWN_SUBPROCESS_PY if you want to use with python 2.3.\n+AC_CACHE_CHECK(for subprocess.py,\n+ ac_cv_python_has_subprocess_py,\n+[if $PYTHON_PATH -c 'import subprocess' 2>/dev/null; then\n+\tac_cv_python_has_subprocess_py=yes\n+else\n+\tac_cv_python_has_subprocess_py=no\n+fi])\n+if test $ac_cv_python_has_subprocess_py != yes; then\n+\tGIT_CONF_APPEND_LINE([WITH_OWN_SUBPROCESS_PY=YesPlease])\n+fi\n #\n # Define NO_ACCURATE_DIFF if your diff program at least sometimes misses\n # a missing newline at the end of the file.\n-- \n1.4.1.1\n"},{"id":"26330","messageId":"200609050058.25748.jnareb@gmail.com","threadId":"5476","inReplyTo":"200609050054.24279.jnareb@gmail.com","subject":"[PATCH 5/5] autoconf: Quote AC_CACHE_CHECK arguments","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-09-04T22:58:25Z","receivedAt":"2006-09-04T22:58:25Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Signed-off-by: Jakub Narebski <jnareb@gmail.com>\n---\nJust in case.\n\n configure.ac |    8 ++++----\n 1 files changed, 4 insertions(+), 4 deletions(-)\n\ndiff --git a/configure.ac b/configure.ac\nindex 67a7aa9..85317a3 100644\n--- a/configure.ac\n+++ b/configure.ac\n@@ -205,8 +205,8 @@ # Define NO_C99_FORMAT if your formatted\n # do not support the 'size specifiers' introduced by C99, namely ll, hh,\n # j, z, t. (representing long long int, char, intmax_t, size_t, ptrdiff_t).\n # some C compilers supported these specifiers prior to C99 as an extension.\n-AC_CACHE_CHECK(whether formatted IO functions support C99 size specifiers,\n- ac_cv_c_c99_format,\n+AC_CACHE_CHECK([whether formatted IO functions support C99 size specifiers],\n+ [ac_cv_c_c99_format],\n [# Actually git uses only %z (%zu) in alloc.c, and %t (%td) in mktag.c\n AC_RUN_IFELSE(\n \t[AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],\n@@ -268,8 +268,8 @@ # Define NO_SYMLINK_HEAD if you never wa\n # Enable it on Windows.  By default, symrefs are still used.\n #\n # Define WITH_OWN_SUBPROCESS_PY if you want to use with python 2.3.\n-AC_CACHE_CHECK(for subprocess.py,\n- ac_cv_python_has_subprocess_py,\n+AC_CACHE_CHECK([for subprocess.py],\n+ [ac_cv_python_has_subprocess_py],\n [if $PYTHON_PATH -c 'import subprocess' 2>/dev/null; then\n \tac_cv_python_has_subprocess_py=yes\n else\n-- \n1.4.1.1\n"},{"id":"26338","messageId":"7vy7szjjal.fsf@assigned-by-dhcp.cox.net","threadId":"5476","inReplyTo":"200609050056.52590.jnareb@gmail.com","subject":"Re: [PATCH 3/5] autoconf: Preliminary check for working mmap","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-09-04T23:36:50Z","receivedAt":"2006-09-04T23:36:50Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jakub Narebski <jnareb@gmail.com> writes:\n\n> This patch sent earlier in other patch series and dropped,\n> as git uses private mapping, not private fixed. I think\n> that this check is better than no check at all...\n\nI think the next major change that is needed fairly soon is to\nbe able to mmap parts of a large pack file (even with 32-bit\noffset).  I haven't loooked into it deeply enough but it may or\nmay not turn out to be beneficial if we map at fixed location so\nthe requirements of \"working mmap()\" might change.  I'd be\nhappier if you held onto this part of the patch before that\nhappens.\n"},{"id":"26340","messageId":"edidlp$d3d$1@sea.gmane.org","threadId":"5476","inReplyTo":"7vy7szjjal.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH 3/5] autoconf: Preliminary check for working mmap","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-09-04T23:43:01Z","receivedAt":"2006-09-04T23:43:01Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Junio C Hamano wrote:\n\n> Jakub Narebski <jnareb@gmail.com> writes:\n> \n>> This patch sent earlier in other patch series and dropped,\n>> as git uses private mapping, not private fixed. I think\n>> that this check is better than no check at all...\n> \n> I think the next major change that is needed fairly soon is to\n> be able to mmap parts of a large pack file (even with 32-bit\n> offset).  I haven't loooked into it deeply enough but it may or\n> may not turn out to be beneficial if we map at fixed location so\n> the requirements of \"working mmap()\" might change.  I'd be\n> happier if you held onto this part of the patch before that\n> happens.\n\nWell, this patch perhaps not always would set NO_MMAP when it should \n(some broken mmap that does private+fixed but not private), but I guess that\nif it would set NO_MMAP then mmap is broken (or doesn't exist at all).\n\nI have noticed AC_FUNC_MMAP test, and thought why not to use it?\nThe simplest check if mmap exist would be to check libc for mmap function.\n\n\nBTW the patch was reworked from previous version to reflect changes\nin the compilation variables management (ability to unset variable).\n-- \nJakub Narebski\nWarsaw, Poland\nShadeHawk on #git\n"},{"id":"26345","messageId":"20060905030929.GA29865@spearce.org","threadId":"5476","inReplyTo":"edidlp$d3d$1@sea.gmane.org","subject":"Re: [PATCH 3/5] autoconf: Preliminary check for working mmap","fromName":"Shawn Pearce","fromEmail":"spearce@spearce.org","sentAt":"2006-09-05T03:09:29Z","receivedAt":"2006-09-05T03:09:29Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Jakub Narebski <jnareb@gmail.com> wrote:\n> Junio C Hamano wrote:\n> \n> > Jakub Narebski <jnareb@gmail.com> writes:\n> > \n> >> This patch sent earlier in other patch series and dropped,\n> >> as git uses private mapping, not private fixed. I think\n> >> that this check is better than no check at all...\n> > \n> > I think the next major change that is needed fairly soon is to\n> > be able to mmap parts of a large pack file (even with 32-bit\n> > offset).  I haven't loooked into it deeply enough but it may or\n> > may not turn out to be beneficial if we map at fixed location so\n> > the requirements of \"working mmap()\" might change.  I'd be\n> > happier if you held onto this part of the patch before that\n> > happens.\n> \n> Well, this patch perhaps not always would set NO_MMAP when it should \n> (some broken mmap that does private+fixed but not private), but I guess that\n> if it would set NO_MMAP then mmap is broken (or doesn't exist at all).\n> \n> I have noticed AC_FUNC_MMAP test, and thought why not to use it?\n> The simplest check if mmap exist would be to check libc for mmap function.\n\nAre there really mmap implementations that will only do\nprivate+fixed?  Sick.\n\nI'm maybe only 1/3 of the way through the sliding window mmap\nimplementation.  I've got a good chunk of sha1_file.c converted but I\nstill have to deal with the copying in pack-objects.c and the verify\ncode in verify-pack.c.  I'm hoping I can send a preliminary patch\nseries tomorrow as I'm going to work on it more tonight and tomorrow.\n\n-- \nShawn.\n"},{"id":"26343","messageId":"7vu03mkiei.fsf@assigned-by-dhcp.cox.net","threadId":"5476","inReplyTo":"20060905030929.GA29865@spearce.org","subject":"Re: [PATCH 3/5] autoconf: Preliminary check for working mmap","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-09-05T05:10:45Z","receivedAt":"2006-09-05T05:10:45Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Shawn Pearce <spearce@spearce.org> writes:\n\n> I'm maybe only 1/3 of the way through the sliding window mmap\n> implementation.  I've got a good chunk of sha1_file.c converted but I\n> still have to deal with the copying in pack-objects.c and the verify\n> code in verify-pack.c.  I'm hoping I can send a preliminary patch\n> series tomorrow as I'm going to work on it more tonight and tomorrow.\n\nThanks -- I was tempted to do this myself after finishing the\nindex_64 change in \"pu\" branch, but have resisted the temptation\nmyself so far.  Being lazy, the less I have to code the better,\nnaturally ;-).\n \n"},{"id":"26346","messageId":"20060905062531.GA30496@spearce.org","threadId":"5476","inReplyTo":"7vu03mkiei.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH 3/5] autoconf: Preliminary check for working mmap","fromName":"Shawn Pearce","fromEmail":"spearce@spearce.org","sentAt":"2006-09-05T06:25:31Z","receivedAt":"2006-09-05T06:25:31Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Junio C Hamano <junkio@cox.net> wrote:\n> Shawn Pearce <spearce@spearce.org> writes:\n> \n> > I'm maybe only 1/3 of the way through the sliding window mmap\n> > implementation.  I've got a good chunk of sha1_file.c converted but I\n> > still have to deal with the copying in pack-objects.c and the verify\n> > code in verify-pack.c.  I'm hoping I can send a preliminary patch\n> > series tomorrow as I'm going to work on it more tonight and tomorrow.\n> \n> Thanks -- I was tempted to do this myself after finishing the\n> index_64 change in \"pu\" branch, but have resisted the temptation\n> myself so far.  Being lazy, the less I have to code the better,\n> naturally ;-).\n\nI thought that might be the case.  I should be able to finish it\nup tomorrow.  :-)\n\nI don't know if I've made this more complex than I really need to\nbut I've permitted multiple windows per pack.  There is just one\nLRU of all windows across all packs and a maximum amount of address\nspace to use for pack mappings.  Least recently used window gets\ntossed when we need a different window.  This permits us to keep\nsay a window active on the front of a pack (near the commits) and\nanother different active window closer to the back (near the blobs).\n\nThat multiple window feature made it a slightly non-trivial copy\nand paste from fast-import but I think its worth it for tree walking\ntype applications.\n\n-- \nShawn.\n"},{"id":"26349","messageId":"7v1wqqkbbv.fsf@assigned-by-dhcp.cox.net","threadId":"5476","inReplyTo":"20060905062531.GA30496@spearce.org","subject":"Re: [PATCH 3/5] autoconf: Preliminary check for working mmap","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-09-05T07:43:32Z","receivedAt":"2006-09-05T07:43:32Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Shawn Pearce <spearce@spearce.org> writes:\n\n> I don't know if I've made this more complex than I really need to\n> but I've permitted multiple windows per pack.  There is just one\n> LRU of all windows across all packs and a maximum amount of address\n> space to use for pack mappings.  Least recently used window gets\n> tossed when we need a different window.  This permits us to keep\n> say a window active on the front of a pack (near the commits) and\n> another different active window closer to the back (near the blobs).\n\nSounds good. That is exactly what I was expecting it to be done.\n"},{"id":"26363","messageId":"20060905162526.GA5547@diku.dk","threadId":"5476","inReplyTo":"200609050055.52980.jnareb@gmail.com","subject":"Re: [PATCH 2/5] autoconf: Add -liconv to LIBS when NEEDS_LIBICONV","fromName":"Jonas Fonseca","fromEmail":"fonseca@diku.dk","sentAt":"2006-09-05T16:25:26Z","receivedAt":"2006-09-05T16:25:26Z","isPatch":true,"sender":{"key":"fonseca@diku.dk","avatar":"https://gravatar.com/avatar/f82f3ad698717c51873b020c750a92438c820a24056dc39fe4d07baa10a92264?d=mp&s=160"},"body":"Jakub Narebski <jnareb@gmail.com> wrote Tue, Sep 05, 2006:\n> Signed-off-by: Jakub Narebski <jnareb@gmail.com>\n> ---\n> Just in case; it could matter for testing if iconv is properly\n> supported (NO_ICONV test).\n> \n>  configure.ac |    1 +\n>  1 files changed, 1 insertions(+), 0 deletions(-)\n> \n> diff --git a/configure.ac b/configure.ac\n> index 36f9cd9..fc5b813 100644\n> --- a/configure.ac\n> +++ b/configure.ac\n> @@ -147,6 +147,7 @@ AC_CHECK_LIB([c], [iconv],\n>  [NEEDS_LIBICONV=],\n>  [NEEDS_LIBICONV=YesPlease])\n>  AC_SUBST(NEEDS_LIBICONV)\n> +test -n \"$NEEDS_SOCKET\" && LIBS=\"$LIBS -liconv\"\n\nI see that this has entered already, but it looks like it needs a\ns/NEEDS_SOCKET/NEEDS_LIBICONV/\n\n>  #\n>  # Define NEEDS_SOCKET if linking with libc is not enough (SunOS,\n>  # Patrick Mauritz).\n\n-- \nJonas Fonseca\n"},{"id":"26369","messageId":"200609052203.49060.jnareb@gmail.com","threadId":"5476","inReplyTo":"20060905162526.GA5547@diku.dk","subject":"[PATCH] autoconf: Fix copy'n'paste error","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-09-05T20:03:48Z","receivedAt":"2006-09-05T20:03:48Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Signed-off-by: Jonas Fonseca <fonseca@diku.dk>\nSigned-off-by: Jakub Narebski <jnareb@gmail.com>\n---\n configure.ac |    2 +-\n 1 files changed, 1 insertions(+), 1 deletions(-)\n\ndiff --git a/configure.ac b/configure.ac\nindex 85317a3..482c849 100644\n--- a/configure.ac\n+++ b/configure.ac\n@@ -147,7 +147,7 @@ AC_CHECK_LIB([c], [iconv],\n [NEEDS_LIBICONV=],\n [NEEDS_LIBICONV=YesPlease])\n AC_SUBST(NEEDS_LIBICONV)\n-test -n \"$NEEDS_SOCKET\" && LIBS=\"$LIBS -liconv\"\n+test -n \"$NEEDS_LIBICONV\" && LIBS=\"$LIBS -liconv\"\n #\n # Define NEEDS_SOCKET if linking with libc is not enough (SunOS,\n # Patrick Mauritz).\n-- \n1.4.2\n"},{"id":"26372","messageId":"7vu03mats1.fsf@assigned-by-dhcp.cox.net","threadId":"5476","inReplyTo":"20060905162526.GA5547@diku.dk","subject":"Re: [PATCH 2/5] autoconf: Add -liconv to LIBS when NEEDS_LIBICONV","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-09-05T21:27:26Z","receivedAt":"2006-09-05T21:27:26Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jonas Fonseca <fonseca@diku.dk> writes:\n\n> Jakub Narebski <jnareb@gmail.com> wrote Tue, Sep 05, 2006:\n>> Signed-off-by: Jakub Narebski <jnareb@gmail.com>\n>> ---\n>> Just in case; it could matter for testing if iconv is properly\n>> supported (NO_ICONV test).\n>> \n>>  configure.ac |    1 +\n>>  1 files changed, 1 insertions(+), 0 deletions(-)\n>> \n>> diff --git a/configure.ac b/configure.ac\n>> index 36f9cd9..fc5b813 100644\n>> --- a/configure.ac\n>> +++ b/configure.ac\n>> @@ -147,6 +147,7 @@ AC_CHECK_LIB([c], [iconv],\n>>  [NEEDS_LIBICONV=],\n>>  [NEEDS_LIBICONV=YesPlease])\n>>  AC_SUBST(NEEDS_LIBICONV)\n>> +test -n \"$NEEDS_SOCKET\" && LIBS=\"$LIBS -liconv\"\n>\n> I see that this has entered already, but it looks like it needs a\n> s/NEEDS_SOCKET/NEEDS_LIBICONV/\n\nEek, eye-ballo-o.  Thanks for noticing.\n"},{"id":"26388","messageId":"20060906034054.GB30598@spearce.org","threadId":"5476","inReplyTo":"7v1wqqkbbv.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH 3/5] autoconf: Preliminary check for working mmap","fromName":"Shawn Pearce","fromEmail":"spearce@spearce.org","sentAt":"2006-09-06T03:40:54Z","receivedAt":"2006-09-06T03:40:54Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Junio C Hamano <junkio@cox.net> wrote:\n> Shawn Pearce <spearce@spearce.org> writes:\n> \n> > I don't know if I've made this more complex than I really need to\n> > but I've permitted multiple windows per pack.  There is just one\n> > LRU of all windows across all packs and a maximum amount of address\n> > space to use for pack mappings.  Least recently used window gets\n> > tossed when we need a different window.  This permits us to keep\n> > say a window active on the front of a pack (near the commits) and\n> > another different active window closer to the back (near the blobs).\n> \n> Sounds good. That is exactly what I was expecting it to be done.\n\nSo I have this implemented but its against the 32 bit index.\nIt passes the full test suite and appears to be working as intended.\n\nI am going to rebase the changes to the 64 bit index in `pu`\nand clean up my history.  Its currently one massive commit with\nlots of changes that should be broken down into slightly more\ndigestable chunks.\n\nI'll try to do that tonight and get a patch series out.  My email\nis currently proving to be unstable so you may not get the series\nuntil later on Wed.\n\n-- \nShawn.\n"},{"id":"26389","messageId":"7v1wqpa2gd.fsf@assigned-by-dhcp.cox.net","threadId":"5476","inReplyTo":"20060906034054.GB30598@spearce.org","subject":"Re: [PATCH 3/5] autoconf: Preliminary check for working mmap","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-09-06T07:17:38Z","receivedAt":"2006-09-06T07:17:38Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Shawn Pearce <spearce@spearce.org> writes:\n\n> Junio C Hamano <junkio@cox.net> wrote:\n>> Shawn Pearce <spearce@spearce.org> writes:\n>> \n>> > I don't know if I've made this more complex than I really need to\n>> > but I've permitted multiple windows per pack.  There is just one\n>> > LRU of all windows across all packs and a maximum amount of address\n>> > space to use for pack mappings.  Least recently used window gets\n>> > tossed when we need a different window.  This permits us to keep\n>> > say a window active on the front of a pack (near the commits) and\n>> > another different active window closer to the back (near the blobs).\n>> \n>> Sounds good. That is exactly what I was expecting it to be done.\n>\n> So I have this implemented but its against the 32 bit index.\n> It passes the full test suite and appears to be working as intended.\n>\n> I am going to rebase the changes to the 64 bit index in `pu`\n> and clean up my history.  Its currently one massive commit with\n> lots of changes that should be broken down into slightly more\n> digestable chunks.\n>\n> I'll try to do that tonight and get a patch series out.  My email\n> is currently proving to be unstable so you may not get the series\n> until later on Wed.\n\nTake your time.  My usual git day is Wednesday but this week it\nis shot and I won't be doing much gitting until later this week.\n"},{"id":"26391","messageId":"7vodtt8l6v.fsf@assigned-by-dhcp.cox.net","threadId":"5476","inReplyTo":"20060906034054.GB30598@spearce.org","subject":"Re: [PATCH 3/5] autoconf: Preliminary check for working mmap","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-09-06T08:15:52Z","receivedAt":"2006-09-06T08:15:52Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Shawn Pearce <spearce@spearce.org> writes:\n\n> Junio C Hamano <junkio@cox.net> wrote:\n>> Shawn Pearce <spearce@spearce.org> writes:\n>> \n>> > I don't know if I've made this more complex than I really need to\n>> > but I've permitted multiple windows per pack.  There is just one\n>> > LRU of all windows across all packs and a maximum amount of address\n>> > space to use for pack mappings.  Least recently used window gets\n>> > tossed when we need a different window.  This permits us to keep\n>> > say a window active on the front of a pack (near the commits) and\n>> > another different active window closer to the back (near the blobs).\n>> \n>> Sounds good. That is exactly what I was expecting it to be done.\n>\n> So I have this implemented but its against the 32 bit index.\n> It passes the full test suite and appears to be working as intended.\n\nWell, if you are talking about git.git t/ directory, I bet that\n\"the full test suite\" easily fits in a single window so much of\nthe new code is not exercised, unless you have a runtime option\nto make use of very tiny window (32kB would be nice) for testing\n;-).\n\n> I am going to rebase the changes to the 64 bit index in `pu`\n> and clean up my history.  Its currently one massive commit with\n> lots of changes that should be broken down into slightly more\n> digestable chunks.\n\nBreaking things up would be nice.  Do you have a good testcase\nout of Mozilla repository that _needs_ 64-bit index?  The code\nin \"pu\" uses 64-bit index only 32-bit offset cannot describe the\npack, so I only tested with an artificial case with the kernel\narchive with .idx converted with convert-idx to 64-bit.\n"},{"id":"26491","messageId":"20060907055803.GE31580@spearce.org","threadId":"5476","inReplyTo":"7vodtt8l6v.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH 3/5] autoconf: Preliminary check for working mmap","fromName":"Shawn Pearce","fromEmail":"spearce@spearce.org","sentAt":"2006-09-07T05:58:04Z","receivedAt":"2006-09-07T05:58:04Z","isPatch":true,"sender":{"key":"spearce@spearce.org","avatar":"https://avatars.githubusercontent.com/u/34844?v=4"},"body":"Junio C Hamano <junkio@cox.net> wrote:\n> Well, if you are talking about git.git t/ directory, I bet that\n> \"the full test suite\" easily fits in a single window so much of\n> the new code is not exercised, unless you have a runtime option\n> to make use of very tiny window (32kB would be nice) for testing\n> ;-).\n\nHeh.  t/ passed which meant basic rev listing and verify-pack\nappeared OK.  I hardcoded the window size to be 2*getpagesize() (8192\nbytes on my Mac OS X system) and started beating up Git against its\nown 8 MiB pack.  The window code opened a ton of windows at once as\nthe PACK_MAX_SZ was 128 MiB.  So I hardcoded that to be 16384 bytes.\nAnd the code worked right against the 8 MiB Git pack by opening\nonly 4 windows at once and closing the least-recently-used one.\n\nI can easily parameterize both values in .git/config; there's no\nreal reason for them to be hardcoded.  That should make it easier\nto craft some new test cases that push the windowing code.\n\n> > I am going to rebase the changes to the 64 bit index in `pu`\n> > and clean up my history.  Its currently one massive commit with\n> > lots of changes that should be broken down into slightly more\n> > digestable chunks.\n> \n> Breaking things up would be nice.  Do you have a good testcase\n> out of Mozilla repository that _needs_ 64-bit index?  The code\n> in \"pu\" uses 64-bit index only 32-bit offset cannot describe the\n> pack, so I only tested with an artificial case with the kernel\n> archive with .idx converted with convert-idx to 64-bit.\n> \n\nNot really.  We know the Mozilla pack decompressed is around 20 GiB.\nI could decompress it and repack it using no deltas; that should\nexceed 4 GiB.  It will take quite some time to run the decompression\nand delta inflates, especially with the highly-compressed 450 MiB\npack Jon Smirl sent me.  I can do that kind of testing maybe later\nnext week after I get my new amd64 system built.\n\n-- \nShawn.\n"}]}