{"thread":{"id":"30356","subject":"XDL_FAST_HASH breaks git on OS X 10.7.3","startedAt":"2012-04-29T20:52:51Z","lastAt":"2012-05-01T17:33:30Z","messageCount":9,"participants":["Brian Gernhardt","Thomas Rast","Junio C Hamano","David Aguilar"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"190252","messageId":"441BE38F-E081-4ED8-B587-BF72AD6368EE@gernhardtsoftware.com","threadId":"30356","inReplyTo":null,"subject":"XDL_FAST_HASH breaks git on OS X 10.7.3","fromName":"Brian Gernhardt","fromEmail":"brian@gernhardtsoftware.com","sentAt":"2012-04-29T20:52:51Z","receivedAt":"2012-04-29T20:52:51Z","isPatch":false,"sender":{"key":"brian@gernhardtsoftware.com","avatar":"https://avatars.githubusercontent.com/u/133455?v=4"},"body":"I don't mean for the subject to be excessive, but it does cause 242 test files to fail and t9001-send-email.sh to hang by asking \"Which 8bit encoding should I declare [UTF-8]?\"  Clearing XDL_FAST_HASH in my config.mak does fix the issue.\n\n~~ Brian Gernhardt\n\nTest Summary Report\n-------------------\nt9700-perl-git.sh                                (Wstat: 256 Tests: 44 Failed: 14)\n  Failed tests:  1, 4-5, 8, 10, 13-16, 28-29, 38, 43-44\n  Non-zero exit status: 1\nt9502-gitweb-standalone-parse-output.sh          (Wstat: 256 Tests: 16 Failed: 7)\n  Failed tests:  1-5, 7, 9\n  Non-zero exit status: 1\nt9501-gitweb-standalone-http-status.sh           (Wstat: 256 Tests: 12 Failed: 2)\n  Failed tests:  1, 8\n  Non-zero exit status: 1\nt9401-git-cvsserver-crlf.sh                      (Wstat: 256 Tests: 17 Failed: 7)\n  Failed tests:  7-8, 10-11, 15-17\n  Non-zero exit status: 1\nt9400-git-cvsserver-server.sh                    (Wstat: 256 Tests: 40 Failed: 3)\n  Failed tests:  30-31, 40\n  Non-zero exit status: 1\nt9350-fast-export.sh                             (Wstat: 256 Tests: 28 Failed: 15)\n  Failed tests:  1-5, 10, 12-18, 20-21\n  Non-zero exit status: 1\nt9139-git-svn-non-utf8-commitencoding.sh         (Wstat: 256 Tests: 6 Failed: 1)\n  Failed test:  4\n  Non-zero exit status: 1\nt9200-git-cvsexportcommit.sh                     (Wstat: 256 Tests: 14 Failed: 11)\n  Failed tests:  1-2, 4-8, 10-11, 13-14\n  Non-zero exit status: 1\nt9500-gitweb-standalone-no-errors.sh             (Wstat: 256 Tests: 117 Failed: 10)\n  Failed tests:  35-37, 51, 54, 69, 84-85, 100, 109\n  Non-zero exit status: 1\nt9137-git-svn-dcommit-clobber-series.sh          (Wstat: 256 Tests: 5 Failed: 1)\n  Failed test:  4\n  Non-zero exit status: 1\nt9125-git-svn-multi-glob-branch-names.sh         (Wstat: 256 Tests: 3 Failed: 1)\n  Failed test:  3\n  Non-zero exit status: 1\nt9124-git-svn-dcommit-auto-props.sh              (Wstat: 256 Tests: 7 Failed: 3)\n  Failed tests:  3, 5-6\n  Non-zero exit status: 1\nt9118-git-svn-funky-branch-names.sh              (Wstat: 256 Tests: 5 Failed: 2)\n  Failed tests:  3-4\n  Non-zero exit status: 1\nt9114-git-svn-dcommit-merge.sh                   (Wstat: 256 Tests: 6 Failed: 4)\n  Failed tests:  2-3, 5-6\n  Non-zero exit status: 1\nt9116-git-svn-log.sh                             (Wstat: 256 Tests: 17 Failed: 14)\n  Failed tests:  1-5, 7-13, 16-17\n  Non-zero exit status: 1\nt9105-git-svn-commit-diff.sh                     (Wstat: 256 Tests: 3 Failed: 3)\n  Failed tests:  1-3\n  Non-zero exit status: 1\nt9106-git-svn-commit-diff-clobber.sh             (Wstat: 256 Tests: 10 Failed: 8)\n  Failed tests:  1, 3-6, 8-10\n  Non-zero exit status: 1\nt8007-cat-file-textconv.sh                       (Wstat: 256 Tests: 10 Failed: 5)\n  Failed tests:  1, 4-7\n  Non-zero exit status: 1\nt8006-blame-textconv.sh                          (Wstat: 256 Tests: 16 Failed: 10)\n  Failed tests:  1-2, 4-6, 9, 12-14, 16\n  Non-zero exit status: 1\nt8005-blame-i18n.sh                              (Wstat: 256 Tests: 5 Failed: 5)\n  Failed tests:  1-5\n  Non-zero exit status: 1\nt8003-blame-corner-cases.sh                      (Wstat: 256 Tests: 19 Failed: 3)\n  Failed tests:  1, 12-13\n  Non-zero exit status: 1\nt8002-blame.sh                                   (Wstat: 256 Tests: 21 Failed: 7)\n  Failed tests:  5, 10, 14, 16, 18, 20-21\n  Non-zero exit status: 1\nt8001-annotate.sh                                (Wstat: 256 Tests: 21 Failed: 6)\n  Failed tests:  5, 10, 14, 16, 18, 20\n  Non-zero exit status: 1\nt7810-grep.sh                                    (Wstat: 256 Tests: 108 Failed: 1)\n  Failed test:  1\n  Non-zero exit status: 1\nt9101-git-svn-props.sh                           (Wstat: 256 Tests: 26 Failed: 13)\n  Failed tests:  5, 8-18, 25\n  Non-zero exit status: 1\nt7611-merge-abort.sh                             (Wstat: 256 Tests: 26 Failed: 9)\n  Failed tests:  9-13, 15-16, 24, 26\n  Non-zero exit status: 1\nt7811-grep-open.sh                               (Wstat: 256 Tests: 10 Failed: 4)\n  Failed tests:  2, 5, 8, 10\n  Non-zero exit status: 1\nt7701-repack-unpack-unreachable.sh               (Wstat: 256 Tests: 3 Failed: 2)\n  Failed tests:  1-2\n  Non-zero exit status: 1\nt7800-difftool.sh                                (Wstat: 256 Tests: 25 Failed: 25)\n  Failed tests:  1-25\n  Non-zero exit status: 1\nt7610-mergetool.sh                               (Wstat: 256 Tests: 14 Failed: 14)\n  Failed tests:  1-14\n  Non-zero exit status: 1\nt7609-merge-co-error-msgs.sh                     (Wstat: 256 Tests: 6 Failed: 5)\n  Failed tests:  1-5\n  Non-zero exit status: 1\nt7607-merge-overwrite.sh                         (Wstat: 256 Tests: 17 Failed: 12)\n  Failed tests:  1-10, 13-14\n  Non-zero exit status: 1\nt7608-merge-messages.sh                          (Wstat: 256 Tests: 5 Failed: 1)\n  Failed test:  3\n  Non-zero exit status: 1\nt7509-commit.sh                                  (Wstat: 256 Tests: 12 Failed: 12)\n  Failed tests:  1-12\n  Non-zero exit status: 1\nt7507-commit-verbose.sh                          (Wstat: 256 Tests: 7 Failed: 6)\n  Failed tests:  1-6\n  Non-zero exit status: 1\nt9100-git-svn-basic.sh                           (Wstat: 256 Tests: 25 Failed: 2)\n  Failed tests:  14, 16\n  Non-zero exit status: 1\nt7506-status-submodule.sh                        (Wstat: 256 Tests: 28 Failed: 4)\n  Failed tests:  1, 21, 27-28\n  Non-zero exit status: 1\nt7501-commit.sh                                  (Wstat: 256 Tests: 45 Failed: 5)\n  Failed tests:  20-21, 26-27, 39\n  Non-zero exit status: 1\nt7500-commit.sh                                  (Wstat: 256 Tests: 32 Failed: 19)\n  Failed tests:  1, 8-14, 16, 21, 23-31\n  Non-zero exit status: 1\nt7502-commit.sh                                  (Wstat: 256 Tests: 45 Failed: 37)\n  Failed tests:  2, 4-8, 11-19, 22, 24, 26-45\n  Non-zero exit status: 1\nt7408-submodule-reference.sh                     (Wstat: 256 Tests: 10 Failed: 2)\n  Failed tests:  1-2\n  Non-zero exit status: 1\nt7405-submodule-merge.sh                         (Wstat: 256 Tests: 11 Failed: 7)\n  Failed tests:  2-8\n  Non-zero exit status: 1\nt7407-submodule-foreach.sh                       (Wstat: 256 Tests: 15 Failed: 10)\n  Failed tests:  3, 5-13\n  Non-zero exit status: 1\nt7403-submodule-sync.sh                          (Wstat: 256 Tests: 6 Failed: 5)\n  Failed tests:  1, 3-6\n  Non-zero exit status: 1\nt7402-submodule-rebase.sh                        (Wstat: 256 Tests: 5 Failed: 3)\n  Failed tests:  2-4\n  Non-zero exit status: 1\nt7300-clean.sh                                   (Wstat: 256 Tests: 30 Failed: 18)\n  Failed tests:  1-6, 11-20, 23-24\n  Non-zero exit status: 1\nt7201-co.sh                                      (Wstat: 256 Tests: 35 Failed: 7)\n  Failed tests:  29-35\n  Non-zero exit status: 1\nt7406-submodule-update.sh                        (Wstat: 256 Tests: 33 Failed: 23)\n  Failed tests:  1-5, 7-14, 20-25, 29-31, 33\n  Non-zero exit status: 1\nt7105-reset-patch.sh                             (Wstat: 256 Tests: 8 Failed: 8)\n  Failed tests:  1-8\n  Non-zero exit status: 1\nt7110-reset-merge.sh                             (Wstat: 256 Tests: 21 Failed: 21)\n  Failed tests:  1-21\n  Non-zero exit status: 1\nt7101-reset.sh                                   (Wstat: 256 Tests: 10 Failed: 2)\n  Failed tests:  1-2\n  Non-zero exit status: 1\nt7060-wtstatus.sh                                (Wstat: 256 Tests: 10 Failed: 9)\n  Failed tests:  1-4, 6-10\n  Non-zero exit status: 1\nt7006-pager.sh                                   (Wstat: 256 Tests: 75 Failed: 1)\n  Failed test:  3\n  Non-zero exit status: 1\nt7004-tag.sh                                     (Wstat: 256 Tests: 121 Failed: 10)\n  Failed tests:  104-109, 111-112, 115, 121\n  Non-zero exit status: 1\nt7001-mv.sh                                      (Wstat: 256 Tests: 29 Failed: 6)\n  Failed tests:  1, 3, 6, 12, 14, 18\n  Non-zero exit status: 1\nt7003-filter-branch.sh                           (Wstat: 256 Tests: 33 Failed: 10)\n  Failed tests:  1, 3, 5-6, 12-13, 16, 31-33\n  Non-zero exit status: 1\nt6050-replace.sh                                 (Wstat: 256 Tests: 16 Failed: 11)\n  Failed tests:  2-4, 7-14\n  Non-zero exit status: 1\nt6120-describe.sh                                (Wstat: 256 Tests: 36 Failed: 31)\n  Failed tests:  1-13, 15-24, 26-27, 29-30, 32, 34-36\n  Non-zero exit status: 1\nt6042-merge-rename-corner-cases.sh               (Wstat: 256 Tests: 26 Failed: 19)\n  Failed tests:  1-3, 5, 7, 9, 12-21, 23, 25-26\n  Non-zero exit status: 1\nt6037-merge-ours-theirs.sh                       (Wstat: 256 Tests: 5 Failed: 4)\n  Failed tests:  1-3, 5\n  Non-zero exit status: 1\nt6036-recursive-corner-cases.sh                  (Wstat: 256 Tests: 22 Failed: 6)\n  Failed tests:  1-6\n  Non-zero exit status: 1\nt6034-merge-rename-nocruft.sh                    (Wstat: 256 Tests: 3 Failed: 1)\n  Failed test:  1\n  Non-zero exit status: 1\nt6032-merge-large-rename.sh                      (Wstat: 256 Tests: 10 Failed: 5)\n  Failed tests:  2, 4, 7, 9-10\n  Non-zero exit status: 1\nt6031-merge-recursive.sh                         (Wstat: 256 Tests: 5 Failed: 1)\n  Failed test:  5\n  Non-zero exit status: 1\nt6028-merge-up-to-date.sh                        (Wstat: 256 Tests: 6 Failed: 6)\n  Failed tests:  1-6\n  Non-zero exit status: 1\nt6026-merge-attr.sh                              (Wstat: 256 Tests: 8 Failed: 7)\n  Failed tests:  1-7\n  Non-zero exit status: 1\nt6029-merge-subtree.sh                           (Wstat: 256 Tests: 8 Failed: 8)\n  Failed tests:  1-8\n  Non-zero exit status: 1\nt6027-merge-binary.sh                            (Wstat: 256 Tests: 3 Failed: 3)\n  Failed tests:  1-3\n  Non-zero exit status: 1\nt6025-merge-symlinks.sh                          (Wstat: 256 Tests: 7 Failed: 3)\n  Failed tests:  1, 4, 6\n  Non-zero exit status: 1\nt6024-recursive-merge.sh                         (Wstat: 256 Tests: 6 Failed: 5)\n  Failed tests:  2-6\n  Non-zero exit status: 1\nt6023-merge-file.sh                              (Wstat: 256 Tests: 18 Failed: 11)\n  Failed tests:  1-5, 8, 10, 12, 16-18\n  Non-zero exit status: 1\nt6030-bisect-porcelain.sh                        (Wstat: 256 Tests: 53 Failed: 7)\n  Failed tests:  35-38, 40-42\n  Non-zero exit status: 1\nt6022-merge-rename.sh                            (Wstat: 256 Tests: 45 Failed: 45)\n  Failed tests:  1-45\n  Non-zero exit status: 1\nt6018-rev-list-glob.sh                           (Wstat: 256 Tests: 36 Failed: 29)\n  Failed tests:  1-6, 9-12, 14-18, 20-27, 29-34\n  Non-zero exit status: 1\nt6020-merge-df.sh                                (Wstat: 256 Tests: 6 Failed: 1)\n  Failed test:  3\n  Non-zero exit status: 1\nt6015-rev-list-show-all-parents.sh               (Wstat: 256 Tests: 3 Failed: 3)\n  Failed tests:  1-3\n  Non-zero exit status: 1\nt6013-rev-list-reverse-parents.sh                (Wstat: 256 Tests: 3 Failed: 1)\n  Failed test:  1\n  Non-zero exit status: 1\nt6012-rev-list-simplify.sh                       (Wstat: 256 Tests: 9 Failed: 9)\n  Failed tests:  1-9\n  Non-zero exit status: 1\nt6009-rev-list-parent.sh                         (Wstat: 256 Tests: 13 Failed: 12)\n  Failed tests:  1-10, 12-13\n  Non-zero exit status: 1\nt6007-rev-list-cherry-pick-file.sh               (Wstat: 256 Tests: 17 Failed: 16)\n  Failed tests:  1-3, 5-17\n  Non-zero exit status: 1\nt6006-rev-list-format.sh                         (Wstat: 256 Tests: 35 Failed: 2)\n  Failed tests:  1, 14\n  Non-zero exit status: 1\nt6001-rev-list-graft.sh                          (Wstat: 256 Tests: 13 Failed: 1)\n  Failed test:  1\n  Non-zero exit status: 1\nt6004-rev-list-path-optim.sh                     (Wstat: 256 Tests: 7 Failed: 6)\n  Failed tests:  1, 3-7\n  Non-zero exit status: 1\nt5900-repo-selection.sh                          (Wstat: 256 Tests: 8 Failed: 1)\n  Failed test:  3\n  Non-zero exit status: 1\nt5800-remote-helpers.sh                          (Wstat: 256 Tests: 14 Failed: 13)\n  Failed tests:  1-13\n  Non-zero exit status: 1\nt5710-info-alternate.sh                          (Wstat: 256 Tests: 11 Failed: 1)\n  Failed test:  2\n  Non-zero exit status: 1\nt5708-clone-config.sh                            (Wstat: 256 Tests: 4 Failed: 1)\n  Failed test:  4\n  Non-zero exit status: 1\nt5707-clone-detached.sh                          (Wstat: 256 Tests: 13 Failed: 1)\n  Failed test:  1\n  Non-zero exit status: 1\nt5704-bundle.sh                                  (Wstat: 256 Tests: 7 Failed: 3)\n  Failed tests:  1-2, 7\n  Non-zero exit status: 1\nt5570-git-daemon.sh                              (Wstat: 256 Tests: 16 Failed: 2)\n  Failed tests:  1, 4\n  TODO passed:   5\n  Non-zero exit status: 1\nt5701-clone-local.sh                             (Wstat: 256 Tests: 17 Failed: 1)\n  Failed test:  14\n  Non-zero exit status: 1\nt5700-clone-reference.sh                         (Wstat: 256 Tests: 23 Failed: 10)\n  Failed tests:  1-2, 5, 10, 12-13, 15, 17-18, 22\n  Non-zero exit status: 1\nt5561-http-backend.sh                            (Wstat: 256 Tests: 14 Failed: 13)\n  Failed tests:  1, 3-14\n  Non-zero exit status: 1\nt5560-http-backend-noserver.sh                   (Wstat: 256 Tests: 14 Failed: 13)\n  Failed tests:  1, 3-14\n  Non-zero exit status: 1\nt5551-http-fetch.sh                              (Wstat: 256 Tests: 7 Failed: 3)\n  Failed tests:  1, 4-5\n  Non-zero exit status: 1\nt5550-http-fetch.sh                              (Wstat: 256 Tests: 19 Failed: 3)\n  Failed tests:  1, 13-14\n  Non-zero exit status: 1\nt5532-fetch-proxy.sh                             (Wstat: 256 Tests: 3 Failed: 1)\n  Failed test:  1\n  Non-zero exit status: 1\nt5541-http-push.sh                               (Wstat: 256 Tests: 21 Failed: 8)\n  Failed tests:  10-16, 19\n  Non-zero exit status: 1\nt5540-http-push.sh                               (Wstat: 256 Tests: 17 Failed: 4)\n  Failed tests:  13-16\n  Non-zero exit status: 1\nt5530-upload-pack-error.sh                       (Wstat: 256 Tests: 10 Failed: 3)\n  Failed tests:  1-3\n  Non-zero exit status: 1\nt5527-fetch-odd-refs.sh                          (Wstat: 256 Tests: 2 Failed: 2)\n  Failed tests:  1-2\n  Non-zero exit status: 1\nt5526-fetch-submodules.sh                        (Wstat: 256 Tests: 25 Failed: 25)\n  Failed tests:  1-25\n  Non-zero exit status: 1\nt5524-pull-msg.sh                                (Wstat: 256 Tests: 2 Failed: 2)\n  Failed tests:  1-2\n  Non-zero exit status: 1\nt5523-push-upstream.sh                           (Wstat: 256 Tests: 17 Failed: 1)\n  Failed test:  3\n  Non-zero exit status: 1\nt5519-push-alternates.sh                         (Wstat: 256 Tests: 8 Failed: 1)\n  Failed test:  8\n  Non-zero exit status: 1\nt5515-fetch-merge-logic.sh                       (Wstat: 256 Tests: 17 Failed: 17)\n  Failed tests:  1-17\n  Non-zero exit status: 1\nt5520-pull.sh                                    (Wstat: 256 Tests: 21 Failed: 10)\n  Failed tests:  6-14, 21\n  Non-zero exit status: 1\nt5504-fetch-receive-strict.sh                    (Wstat: 256 Tests: 9 Failed: 9)\n  Failed tests:  1-9\n  Non-zero exit status: 1\nt5510-fetch.sh                                   (Wstat: 256 Tests: 40 Failed: 15)\n  Failed tests:  2-4, 14-15, 17-19, 31-33, 35-36, 39-40\n  Non-zero exit status: 1\nt5001-archive-attr.sh                            (Wstat: 256 Tests: 21 Failed: 6)\n  Failed tests:  1, 14-15, 17-18, 21\n  Non-zero exit status: 1\nt5404-tracking-branches.sh                       (Wstat: 256 Tests: 7 Failed: 1)\n  Failed test:  2\n  Non-zero exit status: 1\nt4300-merge-tree.sh                              (Wstat: 256 Tests: 14 Failed: 14)\n  Failed tests:  1-14\n  Non-zero exit status: 1\nt5506-remote-groups.sh                           (Wstat: 256 Tests: 8 Failed: 7)\n  Failed tests:  2-8\n  Non-zero exit status: 1\nt4253-am-keep-cr-dos.sh                          (Wstat: 256 Tests: 7 Failed: 7)\n  Failed tests:  1-7\n  Non-zero exit status: 1\nt4208-log-magic-pathspec.sh                      (Wstat: 256 Tests: 5 Failed: 2)\n  Failed tests:  1, 5\n  Non-zero exit status: 1\nt4206-log-follow-harder-copies.sh                (Wstat: 256 Tests: 5 Failed: 2)\n  Failed tests:  1-2\n  Non-zero exit status: 1\nt4202-log.sh                                     (Wstat: 256 Tests: 32 Failed: 3)\n  Failed tests:  26-27, 32\n  Non-zero exit status: 1\nt4203-mailmap.sh                                 (Wstat: 256 Tests: 12 Failed: 3)\n  Failed tests:  10-12\n  Non-zero exit status: 1\nt4209-log-pickaxe.sh                             (Wstat: 256 Tests: 18 Failed: 7)\n  Failed tests:  1, 7-12\n  Non-zero exit status: 1\nt4200-rerere.sh                                  (Wstat: 256 Tests: 25 Failed: 17)\n  Failed tests:  6-9, 11, 13-24\n  Non-zero exit status: 1\nt4152-am-subjects.sh                             (Wstat: 256 Tests: 13 Failed: 4)\n  Failed tests:  2, 5-7\n  Non-zero exit status: 1\nt4150-am.sh                                      (Wstat: 256 Tests: 36 Failed: 31)\n  Failed tests:  2-6, 8-24, 27-35\n  Non-zero exit status: 1\nt4130-apply-criss-cross-rename.sh                (Wstat: 256 Tests: 7 Failed: 5)\n  Failed tests:  1, 3-4, 6-7\n  Non-zero exit status: 1\nt4128-apply-root.sh                              (Wstat: 256 Tests: 7 Failed: 6)\n  Failed tests:  1, 3-7\n  Non-zero exit status: 1\nt4125-apply-ws-fuzz.sh                           (Wstat: 256 Tests: 4 Failed: 4)\n  Failed tests:  1-4\n  Non-zero exit status: 1\nt4122-apply-symlink-inside.sh                    (Wstat: 256 Tests: 3 Failed: 2)\n  Failed tests:  2-3\n  Non-zero exit status: 1\nt4123-apply-shrink.sh                            (Wstat: 256 Tests: 2 Failed: 1)\n  Failed test:  1\n  Non-zero exit status: 1\nt4115-apply-symlink.sh                           (Wstat: 256 Tests: 3 Failed: 3)\n  Failed tests:  1-3\n  Non-zero exit status: 1\nt4124-apply-ws-rule.sh                           (Wstat: 256 Tests: 74 Failed: 54)\n  Failed tests:  1-3, 5-55\n  Non-zero exit status: 1\nt4114-apply-typechange.sh                        (Wstat: 256 Tests: 11 Failed: 7)\n  Failed tests:  1-5, 10-11\n  Non-zero exit status: 1\nt4106-apply-stdin.sh                             (Wstat: 256 Tests: 3 Failed: 3)\n  Failed tests:  1-3\n  Non-zero exit status: 1\nt4103-apply-binary.sh                            (Wstat: 256 Tests: 20 Failed: 12)\n  Failed tests:  1-3, 8-9, 14-20\n  Non-zero exit status: 1\nt4051-diff-function-context.sh                   (Wstat: 256 Tests: 3 Failed: 2)\n  Failed tests:  2-3\n  Non-zero exit status: 1\nt4050-diff-histogram.sh                          (Wstat: 256 Tests: 3 Failed: 2)\n  Failed tests:  1-2\n  Non-zero exit status: 1\nt4048-diff-combined-binary.sh                    (Wstat: 256 Tests: 14 Failed: 9)\n  Failed tests:  5-8, 10-14\n  Non-zero exit status: 1\nt4047-diff-dirstat.sh                            (Wstat: 256 Tests: 40 Failed: 37)\n  Failed tests:  1-2, 4-37, 40\n  Non-zero exit status: 1\nt4045-diff-relative.sh                           (Wstat: 256 Tests: 10 Failed: 6)\n  Failed tests:  1-4, 6-7\n  Non-zero exit status: 1\nt4044-diff-index-unique-abbrev.sh                (Wstat: 256 Tests: 2 Failed: 2)\n  Failed tests:  1-2\n  Non-zero exit status: 1\nt4042-diff-textconv-caching.sh                   (Wstat: 256 Tests: 6 Failed: 6)\n  Failed tests:  1-6\n  Non-zero exit status: 1\nt4038-diff-combined.sh                           (Wstat: 256 Tests: 4 Failed: 3)\n  Failed tests:  1, 3-4\n  Non-zero exit status: 1\nt4037-diff-r-t-dirs.sh                           (Wstat: 256 Tests: 2 Failed: 1)\n  Failed test:  1\n  Non-zero exit status: 1\nt4033-diff-patience.sh                           (Wstat: 256 Tests: 3 Failed: 2)\n  Failed tests:  1-2\n  Non-zero exit status: 1\nt4030-diff-textconv.sh                           (Wstat: 256 Tests: 11 Failed: 1)\n  Failed test:  11\n  Non-zero exit status: 1\nt4027-diff-submodule.sh                          (Wstat: 256 Tests: 22 Failed: 20)\n  Failed tests:  1-18, 20, 22\n  Non-zero exit status: 1\nt4034-diff-words.sh                              (Wstat: 256 Tests: 36 Failed: 27)\n  Failed tests:  3-8, 10-11, 13-15, 17-18, 21-34\n  Non-zero exit status: 1\nt4028-format-patch-mime-headers.sh               (Wstat: 256 Tests: 3 Failed: 3)\n  Failed tests:  1-3\n  Non-zero exit status: 1\nt4025-hunk-header.sh                             (Wstat: 256 Tests: 2 Failed: 1)\n  Failed test:  2\n  Non-zero exit status: 1\nt4024-diff-optimize-common.sh                    (Wstat: 256 Tests: 2 Failed: 1)\n  Failed test:  2\n  Non-zero exit status: 1\nt4023-diff-rename-typechange.sh                  (Wstat: 256 Tests: 4 Failed: 4)\n  Failed tests:  1-4\n  Non-zero exit status: 1\nt4022-diff-rewrite.sh                            (Wstat: 256 Tests: 6 Failed: 1)\n  Failed test:  3\n  Non-zero exit status: 1\nt4020-diff-external.sh                           (Wstat: 256 Tests: 16 Failed: 13)\n  Failed tests:  1-12, 16\n  Non-zero exit status: 1\nt4019-diff-wserror.sh                            (Wstat: 256 Tests: 21 Failed: 1)\n  Failed test:  20\n  Non-zero exit status: 1\nt4018-diff-funcname.sh                           (Wstat: 256 Tests: 41 Failed: 39)\n  Failed tests:  1-29, 31-38, 40-41\n  Non-zero exit status: 1\nt4017-diff-retval.sh                             (Wstat: 256 Tests: 24 Failed: 4)\n  Failed tests:  20-21, 23-24\n  Non-zero exit status: 1\nt4016-diff-quote.sh                              (Wstat: 256 Tests: 5 Failed: 1)\n  Failed test:  5\n  Non-zero exit status: 1\nt4015-diff-whitespace.sh                         (Wstat: 256 Tests: 56 Failed: 27)\n  Failed tests:  1, 4, 12-16, 19-30, 35-37, 47-48, 52, 54\n                56\n  Non-zero exit status: 1\nt4011-diff-symlink.sh                            (Wstat: 256 Tests: 8 Failed: 4)\n  Failed tests:  1, 3-5\n  Non-zero exit status: 1\nt4014-format-patch.sh                            (Wstat: 256 Tests: 73 Failed: 12)\n  Failed tests:  62-73\n  Non-zero exit status: 1\nt4004-diff-rename-symlink.sh                     (Wstat: 256 Tests: 4 Failed: 1)\n  Failed test:  4\n  Non-zero exit status: 1\nt4003-diff-rename-1.sh                           (Wstat: 256 Tests: 7 Failed: 3)\n  Failed tests:  3, 5, 7\n  Non-zero exit status: 1\nt4001-diff-rename.sh                             (Wstat: 256 Tests: 8 Failed: 4)\n  Failed tests:  4-7\n  Non-zero exit status: 1\nt4000-diff-format.sh                             (Wstat: 256 Tests: 3 Failed: 2)\n  Failed tests:  2-3\n  Non-zero exit status: 1\nt3904-stash-patch.sh                             (Wstat: 256 Tests: 6 Failed: 6)\n  Failed tests:  1-6\n  Non-zero exit status: 1\nt3902-quoted.sh                                  (Wstat: 256 Tests: 13 Failed: 5)\n  Failed tests:  1, 4-5, 10-11\n  Non-zero exit status: 1\nt3900-i18n-commit.sh                             (Wstat: 256 Tests: 30 Failed: 2)\n  Failed tests:  5, 29\n  Non-zero exit status: 1\nt3800-mktag.sh                                   (Wstat: 256 Tests: 26 Failed: 17)\n  Failed tests:  1, 11-26\n  Non-zero exit status: 1\nt3702-add-edit.sh                                (Wstat: 256 Tests: 2 Failed: 2)\n  Failed tests:  1-2\n  Non-zero exit status: 1\nt3903-stash.sh                                   (Wstat: 256 Tests: 45 Failed: 14)\n  Failed tests:  12, 18-20, 22-30, 45\n  Non-zero exit status: 1\nt3600-rm.sh                                      (Wstat: 256 Tests: 36 Failed: 3)\n  Failed tests:  18-19, 28\n  Non-zero exit status: 1\nt3510-cherry-pick-sequence.sh                    (Wstat: 256 Tests: 39 Failed: 35)\n  Failed tests:  1-5, 8-19, 21-35, 37-39\n  Non-zero exit status: 1\nt3508-cherry-pick-many-commits.sh                (Wstat: 256 Tests: 10 Failed: 10)\n  Failed tests:  1-10\n  Non-zero exit status: 1\nt3509-cherry-pick-merge-df.sh                    (Wstat: 256 Tests: 9 Failed: 6)\n  Failed tests:  4-9\n  Non-zero exit status: 1\nt3506-cherry-pick-ff.sh                          (Wstat: 256 Tests: 10 Failed: 4)\n  Failed tests:  1-3, 10\n  Non-zero exit status: 1\nt3505-cherry-pick-empty.sh                       (Wstat: 256 Tests: 5 Failed: 3)\n  Failed tests:  1-2, 4\n  Non-zero exit status: 1\nt3504-cherry-pick-rerere.sh                      (Wstat: 256 Tests: 6 Failed: 4)\n  Failed tests:  2-5\n  Non-zero exit status: 1\nt3701-add-interactive.sh                         (Wstat: 256 Tests: 35 Failed: 15)\n  Failed tests:  2, 4-5, 7, 9-10, 16, 18, 21-25, 29, 31\n  Non-zero exit status: 1\nt3500-cherry.sh                                  (Wstat: 256 Tests: 3 Failed: 3)\n  Failed tests:  1-3\n  Non-zero exit status: 1\nt3503-cherry-pick-root.sh                        (Wstat: 256 Tests: 6 Failed: 5)\n  Failed tests:  1-2, 4-6\n  Non-zero exit status: 1\nt3418-rebase-continue.sh                         (Wstat: 256 Tests: 6 Failed: 1)\n  Failed test:  6\n  Non-zero exit status: 1\nt3417-rebase-whitespace-fix.sh                   (Wstat: 256 Tests: 4 Failed: 3)\n  Failed tests:  2-4\n  Non-zero exit status: 1\nt3413-rebase-hook.sh                             (Wstat: 256 Tests: 15 Failed: 13)\n  Failed tests:  1-3, 5-10, 12-15\n  Non-zero exit status: 1\nt3409-rebase-preserve-merges.sh                  (Wstat: 256 Tests: 5 Failed: 5)\n  Failed tests:  1-5\n  Non-zero exit status: 1\nt3408-rebase-multi-line.sh                       (Wstat: 256 Tests: 2 Failed: 2)\n  Failed tests:  1-2\n  Non-zero exit status: 1\nt3410-rebase-preserve-dropped-merges.sh          (Wstat: 256 Tests: 3 Failed: 2)\n  Failed tests:  2-3\n  Non-zero exit status: 1\nt3405-rebase-malformed.sh                        (Wstat: 256 Tests: 2 Failed: 2)\n  Failed tests:  1-2\n  Non-zero exit status: 1\nt3402-rebase-merge.sh                            (Wstat: 256 Tests: 10 Failed: 8)\n  Failed tests:  2-4, 6-10\n  Non-zero exit status: 1\nt3403-rebase-skip.sh                             (Wstat: 256 Tests: 10 Failed: 8)\n  Failed tests:  1-2, 4-8, 10\n  Non-zero exit status: 1\nt3311-notes-merge-fanout.sh                      (Wstat: 256 Tests: 24 Failed: 24)\n  Failed tests:  1-24\n  Non-zero exit status: 1\nt3310-notes-merge-manual-resolve.sh              (Wstat: 256 Tests: 18 Failed: 4)\n  Failed tests:  5, 11, 13, 15\n  Non-zero exit status: 1\nt3400-rebase.sh                                  (Wstat: 256 Tests: 26 Failed: 16)\n  Failed tests:  1, 5-8, 12-16, 18-23\n  Non-zero exit status: 1\nt3300-funny-names.sh                             (Wstat: 256 Tests: 27 Failed: 5)\n  Failed tests:  20, 22, 24, 26-27\n  Non-zero exit status: 1\nt3210-pack-refs.sh                               (Wstat: 256 Tests: 13 Failed: 1)\n  Failed test:  1\n  Non-zero exit status: 1\nt3203-branch-output.sh                           (Wstat: 256 Tests: 12 Failed: 11)\n  Failed tests:  1-10, 12\n  Non-zero exit status: 1\nt3200-branch.sh                                  (Wstat: 256 Tests: 77 Failed: 6)\n  Failed tests:  1, 6, 39, 42, 70, 72\n  Non-zero exit status: 1\nt3060-ls-files-with-tree.sh                      (Wstat: 256 Tests: 3 Failed: 3)\n  Failed tests:  1-3\n  Non-zero exit status: 1\nt3031-merge-criscross.sh                         (Wstat: 256 Tests: 2 Failed: 2)\n  Failed tests:  1-2\n  Non-zero exit status: 1\nt3030-merge-recursive.sh                         (Wstat: 256 Tests: 31 Failed: 27)\n  Failed tests:  1-26, 30\n  Non-zero exit status: 1\nt3032-merge-recursive-options.sh                 (Wstat: 256 Tests: 11 Failed: 11)\n  Failed tests:  1-11\n  Non-zero exit status: 1\nt3003-ls-files-exclude.sh                        (Wstat: 256 Tests: 7 Failed: 3)\n  Failed tests:  1, 3, 6\n  Non-zero exit status: 1\nt2202-add-addremove.sh                           (Wstat: 256 Tests: 2 Failed: 1)\n  Failed test:  1\n  Non-zero exit status: 1\nt2203-add-intent.sh                              (Wstat: 256 Tests: 7 Failed: 2)\n  Failed tests:  5-6\n  Non-zero exit status: 1\nt2200-add-update.sh                              (Wstat: 256 Tests: 16 Failed: 3)\n  Failed tests:  1, 3, 5\n  Non-zero exit status: 1\nt2105-update-index-gitfile.sh                    (Wstat: 256 Tests: 4 Failed: 2)\n  Failed tests:  1, 3\n  Non-zero exit status: 1\nt2101-update-index-reupdate.sh                   (Wstat: 256 Tests: 7 Failed: 1)\n  Failed test:  4\n  Non-zero exit status: 1\nt2050-git-dir-relative.sh                        (Wstat: 256 Tests: 4 Failed: 3)\n  Failed tests:  2-4\n  Non-zero exit status: 1\nt2030-unresolve-info.sh                          (Wstat: 256 Tests: 8 Failed: 8)\n  Failed tests:  1-8\n  Non-zero exit status: 1\nt2023-checkout-m.sh                              (Wstat: 256 Tests: 4 Failed: 4)\n  Failed tests:  1-4\n  Non-zero exit status: 1\nt2022-checkout-paths.sh                          (Wstat: 256 Tests: 2 Failed: 2)\n  Failed tests:  1-2\n  Non-zero exit status: 1\nt2020-checkout-detach.sh                         (Wstat: 256 Tests: 19 Failed: 9)\n  Failed tests:  1-7, 13-14\n  Non-zero exit status: 1\nt2019-checkout-ambiguous-ref.sh                  (Wstat: 256 Tests: 9 Failed: 6)\n  Failed tests:  1-6\n  Non-zero exit status: 1\nt2018-checkout-branch.sh                         (Wstat: 256 Tests: 18 Failed: 15)\n  Failed tests:  1, 3-7, 9-10, 12-18\n  Non-zero exit status: 1\nt3404-rebase-interactive.sh                      (Wstat: 256 Tests: 51 Failed: 22)\n  Failed tests:  1, 11, 25-26, 30, 33-41, 43-49, 51\n  Non-zero exit status: 1\nt2017-checkout-orphan.sh                         (Wstat: 256 Tests: 12 Failed: 6)\n  Failed tests:  1-3, 7-9\n  Non-zero exit status: 1\nt2015-checkout-unborn.sh                         (Wstat: 256 Tests: 5 Failed: 2)\n  Failed tests:  1, 4\n  Non-zero exit status: 1\nt2016-checkout-patch.sh                          (Wstat: 256 Tests: 14 Failed: 14)\n  Failed tests:  1-14\n  Non-zero exit status: 1\nt2014-switch.sh                                  (Wstat: 256 Tests: 4 Failed: 2)\n  Failed tests:  1, 3\n  Non-zero exit status: 1\nt2013-checkout-submodule.sh                      (Wstat: 256 Tests: 6 Failed: 6)\n  Failed tests:  1-6\n  Non-zero exit status: 1\nt2011-checkout-invalid-head.sh                   (Wstat: 256 Tests: 3 Failed: 1)\n  Failed test:  1\n  Non-zero exit status: 1\nt2012-checkout-last.sh                           (Wstat: 256 Tests: 18 Failed: 10)\n  Failed tests:  1, 3-5, 7-8, 15-18\n  Non-zero exit status: 1\nt2010-checkout-ambiguous.sh                      (Wstat: 256 Tests: 8 Failed: 5)\n  Failed tests:  1, 3, 6-8\n  Non-zero exit status: 1\nt2009-checkout-statinfo.sh                       (Wstat: 256 Tests: 3 Failed: 3)\n  Failed tests:  1-3\n  Non-zero exit status: 1\nt2008-checkout-subdir.sh                         (Wstat: 256 Tests: 8 Failed: 1)\n  Failed test:  1\n  Non-zero exit status: 1\nt2007-checkout-symlink.sh                        (Wstat: 256 Tests: 4 Failed: 2)\n  Failed tests:  1, 4\n  Non-zero exit status: 1\nt1508-at-combinations.sh                         (Wstat: 256 Tests: 11 Failed: 9)\n  Failed tests:  1-9\n  Non-zero exit status: 1\nt1412-reflog-loop.sh                             (Wstat: 256 Tests: 3 Failed: 3)\n  Failed tests:  1-3\n  Non-zero exit status: 1\nt1506-rev-parse-diagnosis.sh                     (Wstat: 256 Tests: 17 Failed: 4)\n  Failed tests:  1-2, 11-12\n  Non-zero exit status: 1\nt1411-reflog-show.sh                             (Wstat: 256 Tests: 10 Failed: 1)\n  Failed test:  1\n  Non-zero exit status: 1\nt1410-reflog.sh                                  (Wstat: 256 Tests: 12 Failed: 12)\n  Failed tests:  1-12\n  Non-zero exit status: 1\nt1501-worktree.sh                                (Wstat: 256 Tests: 31 Failed: 3)\n  Failed tests:  23, 26, 28\n  Non-zero exit status: 1\nt1400-update-ref.sh                              (Wstat: 256 Tests: 41 Failed: 2)\n  Failed tests:  37-38\n  Non-zero exit status: 1\nt1401-symbolic-ref.sh                            (Wstat: 256 Tests: 4 Failed: 1)\n  Failed test:  4\n  Non-zero exit status: 1\nt1021-rerere-in-workdir.sh                       (Wstat: 256 Tests: 3 Failed: 2)\n  Failed tests:  1-2\n  Non-zero exit status: 1\nt1004-read-tree-m-u-wf.sh                        (Wstat: 256 Tests: 17 Failed: 9)\n  Failed tests:  9-17\n  Non-zero exit status: 1\nt1200-tutorial.sh                                (Wstat: 256 Tests: 27 Failed: 17)\n  Failed tests:  3-4, 6-8, 12-13, 15-24\n  Non-zero exit status: 1\nt1005-read-tree-reset.sh                         (Wstat: 256 Tests: 6 Failed: 6)\n  Failed tests:  1-6\n  Non-zero exit status: 1\nt0026-eol-config.sh                              (Wstat: 256 Tests: 5 Failed: 1)\n  Failed test:  1\n  Non-zero exit status: 1\nt1002-read-tree-m-u-2way.sh                      (Wstat: 256 Tests: 22 Failed: 6)\n  Failed tests:  3-4, 6, 13-14, 18\n  Non-zero exit status: 1\nt0025-crlf-auto.sh                               (Wstat: 256 Tests: 11 Failed: 1)\n  Failed test:  1\n  Non-zero exit status: 1\nt1001-read-tree-m-2way.sh                        (Wstat: 256 Tests: 28 Failed: 4)\n  Failed tests:  3-4, 13-14\n  Non-zero exit status: 1\nt0020-crlf.sh                                    (Wstat: 256 Tests: 34 Failed: 12)\n  Failed tests:  1, 10-17, 21, 25-26\n  Non-zero exit status: 1\nt0022-crlf-rename.sh                             (Wstat: 256 Tests: 2 Failed: 2)\n  Failed tests:  1-2\n  Non-zero exit status: 1\nt0000-basic.sh                                   (Wstat: 256 Tests: 48 Failed: 1)\n  Failed test:  43\n  Non-zero exit status: 1\nt7008-grep-binary.sh                             (Wstat: 0 Tests: 20 Failed: 0)\n  TODO passed:   12\nt0050-filesystem.sh                              (Wstat: 0 Tests: 10 Failed: 0)\n  TODO passed:   6\nFiles=579, Tests=8561, 893 wallclock secs ( 6.48 usr  2.29 sys + 349.46 cusr 473.32 csys = 831.55 CPU)\nResult: FAIL\n"},{"id":"190313","messageId":"87mx5tyy2a.fsf@thomas.inf.ethz.ch","threadId":"30356","inReplyTo":"441BE38F-E081-4ED8-B587-BF72AD6368EE@gernhardtsoftware.com","subject":"Re: XDL_FAST_HASH breaks git on OS X 10.7.3","fromName":"Thomas Rast","fromEmail":"trast@student.ethz.ch","sentAt":"2012-04-30T16:38:37Z","receivedAt":"2012-04-30T16:38:37Z","isPatch":false,"sender":{"key":"tr@thomasrast.ch","avatar":"https://avatars.githubusercontent.com/u/153510?v=4"},"body":"Hi Brian\n\nI can reproduce this.  The problem is that __WORDSIZE is not defined,\neither because it's Darwin or because the GCC is too old.  It winds up\ncompiling the 32-bit case, which of course doesn't work for 64-bit\nbuilds.\n\nPerhaps we can rewrite it in terms of sizeof(long) like this?\n\ndiff --git i/xdiff/xutils.c w/xdiff/xutils.c\nindex e05b5c9..1b3b471 100644\n--- i/xdiff/xutils.c\n+++ w/xdiff/xutils.c\n@@ -290,39 +290,33 @@ static inline unsigned long has_zero(unsigned long a)\n \treturn ((a - ONEBYTES) & ~a) & HIGHBITS;\n }\n \n-#if __WORDSIZE == 64\n-\n-/*\n- * Jan Achrenius on G+: microoptimized version of\n- * the simpler \"(mask & ONEBYTES) * ONEBYTES >> 56\"\n- * that works for the bytemasks without having to\n- * mask them first.\n- */\n static inline long count_masked_bytes(unsigned long mask)\n {\n-\treturn mask * 0x0001020304050608 >> 56;\n-}\n-\n-#else\t/* 32-bit case */\n-\n-/* Modified Carl Chatfield G+ version for 32-bit */\n-static inline long count_masked_bytes(long mask)\n-{\n-\t/*\n-\t * (a) gives us\n-\t *   -1 (0, ff), 0 (ffff) or 1 (ffffff)\n-\t * (b) gives us\n-\t *   0 for 0, 1 for (ff ffff ffffff)\n-\t * (a+b+1) gives us\n-\t *   correct 0-3 bytemask count result\n-\t */\n-\tlong a = (mask - 256) >> 23;\n-\tlong b = mask & 1;\n-\treturn a + b + 1;\n+\tif (sizeof(long) == 8) {\n+\t\t/*\n+\t\t * Jan Achrenius on G+: microoptimized version of\n+\t\t * the simpler \"(mask & ONEBYTES) * ONEBYTES >> 56\"\n+\t\t * that works for the bytemasks without having to\n+\t\t * mask them first.\n+\t\t */\n+\t\treturn mask * 0x0001020304050608 >> 56;\n+\t} else {\n+\t\t/*\n+\t\t * Modified Carl Chatfield G+ version for 32-bit *\n+\t\t *\n+\t\t * (a) gives us\n+\t\t *   -1 (0, ff), 0 (ffff) or 1 (ffffff)\n+\t\t * (b) gives us\n+\t\t *   0 for 0, 1 for (ff ffff ffffff)\n+\t\t * (a+b+1) gives us\n+\t\t *   correct 0-3 bytemask count result\n+\t\t */\n+\t\tlong a = (mask - 256) >> 23;\n+\t\tlong b = mask & 1;\n+\t\treturn a + b + 1;\n+\t}\n }\n \n-#endif\n-\n unsigned long xdl_hash_record(char const **data, char const *top, long flags)\n {\n \tunsigned long hash = 5381;\n\n-- \nThomas Rast\ntrast@{inf,student}.ethz.ch\n"},{"id":"190384","messageId":"3BE9DFB5-81F9-40D6-A637-6C3C232394A6@gernhardtsoftware.com","threadId":"30356","inReplyTo":"87mx5tyy2a.fsf@thomas.inf.ethz.ch","subject":"Re: XDL_FAST_HASH breaks git on OS X 10.7.3","fromName":"Brian Gernhardt","fromEmail":"brian@gernhardtsoftware.com","sentAt":"2012-05-01T02:13:09Z","receivedAt":"2012-05-01T02:13:09Z","isPatch":false,"sender":{"key":"brian@gernhardtsoftware.com","avatar":"https://avatars.githubusercontent.com/u/133455?v=4"},"body":"\nOn Apr 30, 2012, at 12:38 PM, Thomas Rast wrote:\n\n> I can reproduce this.  The problem is that __WORDSIZE is not defined,\n> either because it's Darwin or because the GCC is too old.  It winds up\n> compiling the 32-bit case, which of course doesn't work for 64-bit\n> builds.\n\nGreat.  I was worried about having to help you debug it via e-mail round-trips.  :-D\n\n> Perhaps we can rewrite it in terms of sizeof(long) like this?\n\nIt does work for me, and seems pretty valid to me since long is actually the type you're storing it in.\n\n~~ Brian G.\n"},{"id":"190393","messageId":"7v8vhccy6m.fsf@alter.siamese.dyndns.org","threadId":"30356","inReplyTo":"3BE9DFB5-81F9-40D6-A637-6C3C232394A6@gernhardtsoftware.com","subject":"Re: XDL_FAST_HASH breaks git on OS X 10.7.3","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-05-01T04:39:13Z","receivedAt":"2012-05-01T04:39:13Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Brian Gernhardt <brian@gernhardtsoftware.com> writes:\n\n> On Apr 30, 2012, at 12:38 PM, Thomas Rast wrote:\n>\n>> I can reproduce this.  The problem is that __WORDSIZE is not defined,\n>> either because it's Darwin or because the GCC is too old.  It winds up\n>> compiling the 32-bit case, which of course doesn't work for 64-bit\n>> builds.\n>\n> Great.  I was worried about having to help you debug it via e-mail round-trips.  :-D\n>\n>> Perhaps we can rewrite it in terms of sizeof(long) like this?\n>\n> It does work for me, and seems pretty valid to me since long is actually\n> the type you're storing it in.\n\nThomas, care to roll an incremental update with proper log message, so\nthat we can unbreak the tip of 'next' for Darwin users?\n\nThanks, both.\n"},{"id":"190394","messageId":"7v4ns0cy3l.fsf@alter.siamese.dyndns.org","threadId":"30356","inReplyTo":"7v8vhccy6m.fsf@alter.siamese.dyndns.org","subject":"Re: XDL_FAST_HASH breaks git on OS X 10.7.3","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-05-01T04:41:02Z","receivedAt":"2012-05-01T04:41:02Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Brian Gernhardt <brian@gernhardtsoftware.com> writes:\n>\n>> On Apr 30, 2012, at 12:38 PM, Thomas Rast wrote:\n>>\n>>> I can reproduce this.  The problem is that __WORDSIZE is not defined,\n>>> either because it's Darwin or because the GCC is too old.  It winds up\n>>> compiling the 32-bit case, which of course doesn't work for 64-bit\n>>> builds.\n>>\n>> Great.  I was worried about having to help you debug it via e-mail round-trips.  :-D\n>>\n>>> Perhaps we can rewrite it in terms of sizeof(long) like this?\n>>\n>> It does work for me, and seems pretty valid to me since long is actually\n>> the type you're storing it in.\n>\n> Thomas, care to roll an incremental update with proper log message, so\n> that we can unbreak the tip of 'next' for Darwin users?\n>\n> Thanks, both.\n\nOh, one thing I forgot to say.  The low-level code structure seems to\nbecome different, so the perf numbers may need to be measured again.\n"},{"id":"190396","messageId":"CAJDDKr778t=CufdtitbrhB-vJ3F=xSpSJ_G8e-VK8qCy8Fcfmg@mail.gmail.com","threadId":"30356","inReplyTo":"87mx5tyy2a.fsf@thomas.inf.ethz.ch","subject":"Re: XDL_FAST_HASH breaks git on OS X 10.7.3","fromName":"David Aguilar","fromEmail":"davvid@gmail.com","sentAt":"2012-05-01T05:32:50Z","receivedAt":"2012-05-01T05:32:50Z","isPatch":false,"sender":{"key":"davvid@gmail.com","avatar":"https://avatars.githubusercontent.com/u/13196?v=4"},"body":"On Mon, Apr 30, 2012 at 9:38 AM, Thomas Rast <trast@student.ethz.ch> wrote:\n> Hi Brian\n>\n> I can reproduce this.  The problem is that __WORDSIZE is not defined,\n> either because it's Darwin or because the GCC is too old.  It winds up\n> compiling the 32-bit case, which of course doesn't work for 64-bit\n> builds.\n>\n> Perhaps we can rewrite it in terms of sizeof(long) like this?\n>\n> diff --git i/xdiff/xutils.c w/xdiff/xutils.c\n> index e05b5c9..1b3b471 100644\n> --- i/xdiff/xutils.c\n> +++ w/xdiff/xutils.c\n> @@ -290,39 +290,33 @@ static inline unsigned long has_zero(unsigned long a)\n>        return ((a - ONEBYTES) & ~a) & HIGHBITS;\n>  }\n>\n> -#if __WORDSIZE == 64\n> -\n> -/*\n> - * Jan Achrenius on G+: microoptimized version of\n> - * the simpler \"(mask & ONEBYTES) * ONEBYTES >> 56\"\n> - * that works for the bytemasks without having to\n> - * mask them first.\n> - */\n>  static inline long count_masked_bytes(unsigned long mask)\n>  {\n> -       return mask * 0x0001020304050608 >> 56;\n> -}\n> -\n> -#else  /* 32-bit case */\n> -\n> -/* Modified Carl Chatfield G+ version for 32-bit */\n> -static inline long count_masked_bytes(long mask)\n> -{\n> -       /*\n> -        * (a) gives us\n> -        *   -1 (0, ff), 0 (ffff) or 1 (ffffff)\n> -        * (b) gives us\n> -        *   0 for 0, 1 for (ff ffff ffffff)\n> -        * (a+b+1) gives us\n> -        *   correct 0-3 bytemask count result\n> -        */\n> -       long a = (mask - 256) >> 23;\n> -       long b = mask & 1;\n> -       return a + b + 1;\n> +       if (sizeof(long) == 8) {\n\n\nIsn't the whole point of this code to be fast?\n\nThis should be a compile-time check... conditionals hurt perf.\n-- \nDavid\n"},{"id":"190398","messageId":"7vzk9sbf2l.fsf@alter.siamese.dyndns.org","threadId":"30356","inReplyTo":"CAJDDKr778t=CufdtitbrhB-vJ3F=xSpSJ_G8e-VK8qCy8Fcfmg@mail.gmail.com","subject":"Re: XDL_FAST_HASH breaks git on OS X 10.7.3","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-05-01T06:17:22Z","receivedAt":"2012-05-01T06:17:22Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"David Aguilar <davvid@gmail.com> writes:\n\n>> +       if (sizeof(long) == 8) {\n>\n> Isn't the whole point of this code to be fast?\n>\n> This should be a compile-time check... conditionals hurt perf.\n\nDepends on how good your compiler is, no?  The above if () selects based\non a constant expression, so on 64-bit archs with a good compiler, there\nwon't be a jump instruction nor a single opcode for the else clause.\n"},{"id":"190405","messageId":"399c9a1f0dd548da3144eff3c50d04a8f343ab24.1335860033.git.trast@student.ethz.ch","threadId":"30356","inReplyTo":"7v4ns0cy3l.fsf@alter.siamese.dyndns.org","subject":"[PATCH] Choose XDL_FAST_HASH code on sizeof(long) instead of __WORDSIZE","fromName":"Thomas Rast","fromEmail":"trast@student.ethz.ch","sentAt":"2012-05-01T08:36:51Z","receivedAt":"2012-05-01T08:36:51Z","isPatch":true,"sender":{"key":"tr@thomasrast.ch","avatar":"https://avatars.githubusercontent.com/u/153510?v=4"},"body":"Darwin does not define __WORDSIZE, and compiles the 32-bit code path\non 64-bit systems, resulting in a totally broken git.\n\nI could not find an alternative -- other than the platform symbols\n(__x86_64__ etc.) -- that does the test in the preprocessor.  However,\nwe can also just test for the size of a 'long', which is what really\nmatters here.  Any compiler worth its salt will leave only the branch\nrelevant for its platform, and indeed on Linux/GCC the numbers don't\nchange:\n\n Test                                  tr/darwin-xdl-fast-hash   origin/next              origin/master\n ------------------------------------------------------------------------------------------------------------------\n 4000.1: log -3000 (baseline)          0.09(0.07+0.01)           0.09(0.07+0.01) -5.5%*   0.09(0.07+0.01) -4.1%\n 4000.2: log --raw -3000 (tree-only)   0.47(0.41+0.05)           0.47(0.40+0.05) -0.5%    0.45(0.38+0.06) -3.5%.\n 4000.3: log -p -3000 (Myers)          1.81(1.67+0.12)           1.81(1.67+0.13) +0.3%    1.99(1.84+0.12) +10.2%***\n 4000.4: log -p -3000 --histogram      1.79(1.66+0.11)           1.80(1.67+0.11) +0.4%    1.96(1.82+0.10) +9.2%***\n 4000.5: log -p -3000 --patience       2.17(2.02+0.13)           2.20(2.04+0.13) +1.3%.   2.33(2.18+0.13) +7.4%***\n ------------------------------------------------------------------------------------------------------------------\n Significance hints:  '.' 0.1  '*' 0.05  '**' 0.01  '***' 0.001\n\nSigned-off-by: Thomas Rast <trast@student.ethz.ch>\n---\n\nIncidentally, on the OS X machine I have access to, the difference is\neven bigger, something like 14% for 'log -p -3000'.  I'm too lazy to\nwork out the exact numbers since the perf code doesn't work there.\n\n xdiff/xutils.c |   52 +++++++++++++++++++++++-----------------------------\n 1 file changed, 23 insertions(+), 29 deletions(-)\n\ndiff --git a/xdiff/xutils.c b/xdiff/xutils.c\nindex e05b5c9..1b3b471 100644\n--- a/xdiff/xutils.c\n+++ b/xdiff/xutils.c\n@@ -290,39 +290,33 @@ static inline unsigned long has_zero(unsigned long a)\n \treturn ((a - ONEBYTES) & ~a) & HIGHBITS;\n }\n \n-#if __WORDSIZE == 64\n-\n-/*\n- * Jan Achrenius on G+: microoptimized version of\n- * the simpler \"(mask & ONEBYTES) * ONEBYTES >> 56\"\n- * that works for the bytemasks without having to\n- * mask them first.\n- */\n static inline long count_masked_bytes(unsigned long mask)\n {\n-\treturn mask * 0x0001020304050608 >> 56;\n-}\n-\n-#else\t/* 32-bit case */\n-\n-/* Modified Carl Chatfield G+ version for 32-bit */\n-static inline long count_masked_bytes(long mask)\n-{\n-\t/*\n-\t * (a) gives us\n-\t *   -1 (0, ff), 0 (ffff) or 1 (ffffff)\n-\t * (b) gives us\n-\t *   0 for 0, 1 for (ff ffff ffffff)\n-\t * (a+b+1) gives us\n-\t *   correct 0-3 bytemask count result\n-\t */\n-\tlong a = (mask - 256) >> 23;\n-\tlong b = mask & 1;\n-\treturn a + b + 1;\n+\tif (sizeof(long) == 8) {\n+\t\t/*\n+\t\t * Jan Achrenius on G+: microoptimized version of\n+\t\t * the simpler \"(mask & ONEBYTES) * ONEBYTES >> 56\"\n+\t\t * that works for the bytemasks without having to\n+\t\t * mask them first.\n+\t\t */\n+\t\treturn mask * 0x0001020304050608 >> 56;\n+\t} else {\n+\t\t/*\n+\t\t * Modified Carl Chatfield G+ version for 32-bit *\n+\t\t *\n+\t\t * (a) gives us\n+\t\t *   -1 (0, ff), 0 (ffff) or 1 (ffffff)\n+\t\t * (b) gives us\n+\t\t *   0 for 0, 1 for (ff ffff ffffff)\n+\t\t * (a+b+1) gives us\n+\t\t *   correct 0-3 bytemask count result\n+\t\t */\n+\t\tlong a = (mask - 256) >> 23;\n+\t\tlong b = mask & 1;\n+\t\treturn a + b + 1;\n+\t}\n }\n \n-#endif\n-\n unsigned long xdl_hash_record(char const **data, char const *top, long flags)\n {\n \tunsigned long hash = 5381;\n-- \n1.7.10.512.g5bfc6\n"},{"id":"190444","messageId":"7vhavzajrp.fsf@alter.siamese.dyndns.org","threadId":"30356","inReplyTo":"399c9a1f0dd548da3144eff3c50d04a8f343ab24.1335860033.git.trast@student.ethz.ch","subject":"Re: [PATCH] Choose XDL_FAST_HASH code on sizeof(long) instead of __WORDSIZE","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-05-01T17:33:30Z","receivedAt":"2012-05-01T17:33:30Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Thomas Rast <trast@student.ethz.ch> writes:\n\n> Darwin does not define __WORDSIZE, and compiles the 32-bit code path\n> on 64-bit systems, resulting in a totally broken git.\n>\n> I could not find an alternative -- other than the platform symbols\n> (__x86_64__ etc.) -- that does the test in the preprocessor.  However,\n> we can also just test for the size of a 'long', which is what really\n> matters here.  Any compiler worth its salt will leave only the branch\n> relevant for its platform, and indeed on Linux/GCC the numbers don't\n> change:\n\nThanks.\n"}]}