You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by ji...@apache.org on 2017/01/29 06:40:45 UTC

[28/54] [partial] incubator-quickstep git commit: Make the third party directory leaner.

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/9661f956/third_party/glog/src/windows/raw_logging.cc
----------------------------------------------------------------------
diff --git a/third_party/glog/src/windows/raw_logging.cc b/third_party/glog/src/windows/raw_logging.cc
deleted file mode 100644
index 7a7409b..0000000
--- a/third_party/glog/src/windows/raw_logging.cc
+++ /dev/null
@@ -1,172 +0,0 @@
-// Copyright (c) 2006, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Author: Maxim Lifantsev
-//
-// logging_unittest.cc covers the functionality herein
-
-#include "utilities.h"
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <errno.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>               // for close() and write()
-#endif
-#include <fcntl.h>                 // for open()
-#include <time.h>
-#include "config.h"
-#include "glog/logging.h"          // To pick up flag settings etc.
-#include "glog/raw_logging.h"
-#include "base/commandlineflags.h"
-
-#ifdef HAVE_STACKTRACE
-# include "stacktrace.h"
-#endif
-
-#if defined(HAVE_SYSCALL_H)
-#include <syscall.h>                 // for syscall()
-#elif defined(HAVE_SYS_SYSCALL_H)
-#include <sys/syscall.h>                 // for syscall()
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#if defined(HAVE_SYSCALL_H) || defined(HAVE_SYS_SYSCALL_H)
-# define safe_write(fd, s, len)  syscall(SYS_write, fd, s, len)
-#else
-  // Not so safe, but what can you do?
-# define safe_write(fd, s, len)  write(fd, s, len)
-#endif
-
-_START_GOOGLE_NAMESPACE_
-
-// Data for RawLog__ below. We simply pick up the latest
-// time data created by a normal log message to avoid calling
-// localtime_r which can allocate memory.
-static struct ::tm last_tm_time_for_raw_log;
-static int last_usecs_for_raw_log;
-
-void RawLog__SetLastTime(const struct ::tm& t, int usecs) {
-  memcpy(&last_tm_time_for_raw_log, &t, sizeof(last_tm_time_for_raw_log));
-  last_usecs_for_raw_log = usecs;
-}
-
-// CAVEAT: vsnprintf called from *DoRawLog below has some (exotic) code paths
-// that invoke malloc() and getenv() that might acquire some locks.
-// If this becomes a problem we should reimplement a subset of vsnprintf
-// that does not need locks and malloc.
-
-// Helper for RawLog__ below.
-// *DoRawLog writes to *buf of *size and move them past the written portion.
-// It returns true iff there was no overflow or error.
-static bool DoRawLog(char** buf, int* size, const char* format, ...) {
-  va_list ap;
-  va_start(ap, format);
-  int n = vsnprintf(*buf, *size, format, ap);
-  va_end(ap);
-  if (n < 0 || n > *size) return false;
-  *size -= n;
-  *buf += n;
-  return true;
-}
-
-// Helper for RawLog__ below.
-inline static bool VADoRawLog(char** buf, int* size,
-                              const char* format, va_list ap) {
-  int n = vsnprintf(*buf, *size, format, ap);
-  if (n < 0 || n > *size) return false;
-  *size -= n;
-  *buf += n;
-  return true;
-}
-
-static const int kLogBufSize = 3000;
-static bool crashed = false;
-static CrashReason crash_reason;
-static char crash_buf[kLogBufSize + 1] = { 0 };  // Will end in '\0'
-
-void RawLog__(LogSeverity severity, const char* file, int line,
-              const char* format, ...) {
-  if (!(FLAGS_logtostderr || severity >= FLAGS_stderrthreshold ||
-        FLAGS_alsologtostderr || !IsGoogleLoggingInitialized())) {
-    return;  // this stderr log message is suppressed
-  }
-  // can't call localtime_r here: it can allocate
-  struct ::tm& t = last_tm_time_for_raw_log;
-  char buffer[kLogBufSize];
-  char* buf = buffer;
-  int size = sizeof(buffer);
-
-  // NOTE: this format should match the specification in base/logging.h
-  DoRawLog(&buf, &size, "%c%02d%02d %02d:%02d:%02d.%06d %5u %s:%d] RAW: ",
-           LogSeverityNames[severity][0],
-           1 + t.tm_mon, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec,
-           last_usecs_for_raw_log,
-           static_cast<unsigned int>(GetTID()),
-           const_basename(const_cast<char *>(file)), line);
-
-  // Record the position and size of the buffer after the prefix
-  const char* msg_start = buf;
-  const int msg_size = size;
-
-  va_list ap;
-  va_start(ap, format);
-  bool no_chop = VADoRawLog(&buf, &size, format, ap);
-  va_end(ap);
-  if (no_chop) {
-    DoRawLog(&buf, &size, "\n");
-  } else {
-    DoRawLog(&buf, &size, "RAW_LOG ERROR: The Message was too long!\n");
-  }
-  // We make a raw syscall to write directly to the stderr file descriptor,
-  // avoiding FILE buffering (to avoid invoking malloc()), and bypassing
-  // libc (to side-step any libc interception).
-  // We write just once to avoid races with other invocations of RawLog__.
-  safe_write(STDERR_FILENO, buffer, strlen(buffer));
-  if (severity == GLOG_FATAL)  {
-    if (!sync_val_compare_and_swap(&crashed, false, true)) {
-      crash_reason.filename = file;
-      crash_reason.line_number = line;
-      memcpy(crash_buf, msg_start, msg_size);  // Don't include prefix
-      crash_reason.message = crash_buf;
-#ifdef HAVE_STACKTRACE
-      crash_reason.depth =
-          GetStackTrace(crash_reason.stack, ARRAYSIZE(crash_reason.stack), 1);
-#else
-      crash_reason.depth = 0;
-#endif
-      SetCrashReason(&crash_reason);
-    }
-    LogMessage::Fail();  // abort()
-  }
-}
-
-_END_GOOGLE_NAMESPACE_

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/9661f956/third_party/glog/src/windows/utilities.cc
----------------------------------------------------------------------
diff --git a/third_party/glog/src/windows/utilities.cc b/third_party/glog/src/windows/utilities.cc
deleted file mode 100644
index a6d1961..0000000
--- a/third_party/glog/src/windows/utilities.cc
+++ /dev/null
@@ -1,347 +0,0 @@
-// Copyright (c) 2008, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Author: Shinichiro Hamaji
-
-#include "utilities.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <signal.h>
-#ifdef HAVE_SYS_TIME_H
-# include <sys/time.h>
-#endif
-#include <time.h>
-#if defined(HAVE_SYSCALL_H)
-#include <syscall.h>                 // for syscall()
-#elif defined(HAVE_SYS_SYSCALL_H)
-#include <sys/syscall.h>                 // for syscall()
-#endif
-#ifdef HAVE_SYSLOG_H
-# include <syslog.h>
-#endif
-
-#include "base/googleinit.h"
-
-using std::string;
-
-_START_GOOGLE_NAMESPACE_
-
-static const char* g_program_invocation_short_name = NULL;
-static pthread_t g_main_thread_id;
-
-_END_GOOGLE_NAMESPACE_
-
-// The following APIs are all internal.
-#ifdef HAVE_STACKTRACE
-
-#include "stacktrace.h"
-#include "symbolize.h"
-#include "base/commandlineflags.h"
-
-GLOG_DEFINE_bool(symbolize_stacktrace, true,
-                 "Symbolize the stack trace in the tombstone");
-
-_START_GOOGLE_NAMESPACE_
-
-typedef void DebugWriter(const char*, void*);
-
-// The %p field width for printf() functions is two characters per byte.
-// For some environments, add two extra bytes for the leading "0x".
-static const int kPrintfPointerFieldWidth = 2 + 2 * sizeof(void*);
-
-static void DebugWriteToStderr(const char* data, void *) {
-  // This one is signal-safe.
-  if (write(STDERR_FILENO, data, strlen(data)) < 0) {
-    // Ignore errors.
-  }
-}
-
-void DebugWriteToString(const char* data, void *arg) {
-  reinterpret_cast<string*>(arg)->append(data);
-}
-
-#ifdef HAVE_SYMBOLIZE
-// Print a program counter and its symbol name.
-static void DumpPCAndSymbol(DebugWriter *writerfn, void *arg, void *pc,
-                            const char * const prefix) {
-  char tmp[1024];
-  const char *symbol = "(unknown)";
-  // Symbolizes the previous address of pc because pc may be in the
-  // next function.  The overrun happens when the function ends with
-  // a call to a function annotated noreturn (e.g. CHECK).
-  if (Symbolize(reinterpret_cast<char *>(pc) - 1, tmp, sizeof(tmp))) {
-      symbol = tmp;
-  }
-  char buf[1024];
-  snprintf(buf, sizeof(buf), "%s@ %*p  %s\n",
-           prefix, kPrintfPointerFieldWidth, pc, symbol);
-  writerfn(buf, arg);
-}
-#endif
-
-static void DumpPC(DebugWriter *writerfn, void *arg, void *pc,
-                   const char * const prefix) {
-  char buf[100];
-  snprintf(buf, sizeof(buf), "%s@ %*p\n",
-           prefix, kPrintfPointerFieldWidth, pc);
-  writerfn(buf, arg);
-}
-
-// Dump current stack trace as directed by writerfn
-static void DumpStackTrace(int skip_count, DebugWriter *writerfn, void *arg) {
-  // Print stack trace
-  void* stack[32];
-  int depth = GetStackTrace(stack, ARRAYSIZE(stack), skip_count+1);
-  for (int i = 0; i < depth; i++) {
-#if defined(HAVE_SYMBOLIZE)
-    if (FLAGS_symbolize_stacktrace) {
-      DumpPCAndSymbol(writerfn, arg, stack[i], "    ");
-    } else {
-      DumpPC(writerfn, arg, stack[i], "    ");
-    }
-#else
-    DumpPC(writerfn, arg, stack[i], "    ");
-#endif
-  }
-}
-
-static void DumpStackTraceAndExit() {
-  DumpStackTrace(1, DebugWriteToStderr, NULL);
-
-  // Set the default signal handler for SIGABRT, to avoid invoking our
-  // own signal handler installed by InstallFailedSignalHandler().
-  struct sigaction sig_action;
-  memset(&sig_action, 0, sizeof(sig_action));
-  sigemptyset(&sig_action.sa_mask);
-  sig_action.sa_handler = SIG_DFL;
-  sigaction(SIGABRT, &sig_action, NULL);
-
-  abort();
-}
-
-_END_GOOGLE_NAMESPACE_
-
-#endif  // HAVE_STACKTRACE
-
-_START_GOOGLE_NAMESPACE_
-
-namespace glog_internal_namespace_ {
-
-const char* ProgramInvocationShortName() {
-  if (g_program_invocation_short_name != NULL) {
-    return g_program_invocation_short_name;
-  } else {
-    // TODO(hamaji): Use /proc/self/cmdline and so?
-    return "UNKNOWN";
-  }
-}
-
-bool IsGoogleLoggingInitialized() {
-  return g_program_invocation_short_name != NULL;
-}
-
-bool is_default_thread() {
-  if (g_program_invocation_short_name == NULL) {
-    // InitGoogleLogging() not yet called, so unlikely to be in a different
-    // thread
-    return true;
-  } else {
-    return pthread_equal(pthread_self(), g_main_thread_id);
-  }
-}
-
-#ifdef OS_WINDOWS
-struct timeval {
-  long tv_sec, tv_usec;
-};
-
-// Based on: http://www.google.com/codesearch/p?hl=en#dR3YEbitojA/os_win32.c&q=GetSystemTimeAsFileTime%20license:bsd
-// See COPYING for copyright information.
-static int gettimeofday(struct timeval *tv, void* tz) {
-#define EPOCHFILETIME (116444736000000000ULL)
-  FILETIME ft;
-  LARGE_INTEGER li;
-  uint64 tt;
-
-  GetSystemTimeAsFileTime(&ft);
-  li.LowPart = ft.dwLowDateTime;
-  li.HighPart = ft.dwHighDateTime;
-  tt = (li.QuadPart - EPOCHFILETIME) / 10;
-  tv->tv_sec = tt / 1000000;
-  tv->tv_usec = tt % 1000000;
-
-  return 0;
-}
-#endif
-
-int64 CycleClock_Now() {
-  // TODO(hamaji): temporary impementation - it might be too slow.
-  struct timeval tv;
-  gettimeofday(&tv, NULL);
-  return static_cast<int64>(tv.tv_sec) * 1000000 + tv.tv_usec;
-}
-
-int64 UsecToCycles(int64 usec) {
-  return usec;
-}
-
-WallTime WallTime_Now() {
-  // Now, cycle clock is retuning microseconds since the epoch.
-  return CycleClock_Now() * 0.000001;
-}
-
-static int32 g_main_thread_pid = getpid();
-int32 GetMainThreadPid() {
-  return g_main_thread_pid;
-}
-
-bool PidHasChanged() {
-  int32 pid = getpid();
-  if (g_main_thread_pid == pid) {
-    return false;
-  }
-  g_main_thread_pid = pid;
-  return true;
-}
-
-pid_t GetTID() {
-  // On Linux and MacOSX, we try to use gettid().
-#if defined OS_LINUX || defined OS_MACOSX
-#ifndef __NR_gettid
-#ifdef OS_MACOSX
-#define __NR_gettid SYS_gettid
-#elif ! defined __i386__
-#error "Must define __NR_gettid for non-x86 platforms"
-#else
-#define __NR_gettid 224
-#endif
-#endif
-  static bool lacks_gettid = false;
-  if (!lacks_gettid) {
-    pid_t tid = syscall(__NR_gettid);
-    if (tid != -1) {
-      return tid;
-    }
-    // Technically, this variable has to be volatile, but there is a small
-    // performance penalty in accessing volatile variables and there should
-    // not be any serious adverse effect if a thread does not immediately see
-    // the value change to "true".
-    lacks_gettid = true;
-  }
-#endif  // OS_LINUX || OS_MACOSX
-
-  // If gettid() could not be used, we use one of the following.
-#if defined OS_LINUX
-  return getpid();  // Linux:  getpid returns thread ID when gettid is absent
-#elif defined OS_WINDOWS || defined OS_CYGWIN
-  return GetCurrentThreadId();
-#else
-  // If none of the techniques above worked, we use pthread_self().
-  return (pid_t)(uintptr_t)pthread_self();
-#endif
-}
-
-const char* const_basename(const char* filepath) {
-  const char* base = strrchr(filepath, '/');
-#ifdef OS_WINDOWS  // Look for either path separator in Windows
-  if (!base)
-    base = strrchr(filepath, '\\');
-#endif
-  return base ? (base+1) : filepath;
-}
-
-static string g_my_user_name;
-const string& MyUserName() {
-  return g_my_user_name;
-}
-static void MyUserNameInitializer() {
-  // TODO(hamaji): Probably this is not portable.
-#if defined(OS_WINDOWS)
-  const char* user = getenv("USERNAME");
-#else
-  const char* user = getenv("USER");
-#endif
-  if (user != NULL) {
-    g_my_user_name = user;
-  } else {
-    g_my_user_name = "invalid-user";
-  }
-}
-REGISTER_MODULE_INITIALIZER(utilities, MyUserNameInitializer());
-
-#ifdef HAVE_STACKTRACE
-void DumpStackTraceToString(string* stacktrace) {
-  DumpStackTrace(1, DebugWriteToString, stacktrace);
-}
-#endif
-
-// We use an atomic operation to prevent problems with calling CrashReason
-// from inside the Mutex implementation (potentially through RAW_CHECK).
-static const CrashReason* g_reason = 0;
-
-void SetCrashReason(const CrashReason* r) {
-  sync_val_compare_and_swap(&g_reason,
-                            reinterpret_cast<const CrashReason*>(0),
-                            r);
-}
-
-void InitGoogleLoggingUtilities(const char* argv0) {
-  CHECK(!IsGoogleLoggingInitialized())
-      << "You called InitGoogleLogging() twice!";
-  const char* slash = strrchr(argv0, '/');
-#ifdef OS_WINDOWS
-  if (!slash)  slash = strrchr(argv0, '\\');
-#endif
-  g_program_invocation_short_name = slash ? slash + 1 : argv0;
-  g_main_thread_id = pthread_self();
-
-#ifdef HAVE_STACKTRACE
-  InstallFailureFunction(&DumpStackTraceAndExit);
-#endif
-}
-
-void ShutdownGoogleLoggingUtilities() {
-  CHECK(IsGoogleLoggingInitialized())
-      << "You called ShutdownGoogleLogging() without calling InitGoogleLogging() first!";
-  g_program_invocation_short_name = NULL;
-#ifdef HAVE_SYSLOG_H
-  closelog();
-#endif
-}
-
-}  // namespace glog_internal_namespace_
-
-_END_GOOGLE_NAMESPACE_
-
-// Make an implementation of stacktrace compiled.
-#ifdef STACKTRACE_H
-# include STACKTRACE_H
-#endif

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/9661f956/third_party/glog/src/windows/utilities.h
----------------------------------------------------------------------
diff --git a/third_party/glog/src/windows/utilities.h b/third_party/glog/src/windows/utilities.h
deleted file mode 100644
index 5f79968..0000000
--- a/third_party/glog/src/windows/utilities.h
+++ /dev/null
@@ -1,226 +0,0 @@
-// Copyright (c) 2008, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Author: Shinichiro Hamaji
-//
-// Define utilties for glog internal usage.
-
-#ifndef UTILITIES_H__
-#define UTILITIES_H__
-
-#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
-# define OS_WINDOWS
-#elif defined(__CYGWIN__) || defined(__CYGWIN32__)
-# define OS_CYGWIN
-#elif defined(linux) || defined(__linux) || defined(__linux__)
-# define OS_LINUX
-#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
-# define OS_MACOSX
-#elif defined(__FreeBSD__)
-# define OS_FREEBSD
-#elif defined(__NetBSD__)
-# define OS_NETBSD
-#elif defined(__OpenBSD__)
-# define OS_OPENBSD
-#else
-// TODO(hamaji): Add other platforms.
-#endif
-
-// printf macros for size_t, in the style of inttypes.h
-#ifdef _LP64
-#define __PRIS_PREFIX "z"
-#else
-#define __PRIS_PREFIX
-#endif
-
-// Use these macros after a % in a printf format string
-// to get correct 32/64 bit behavior, like this:
-// size_t size = records.size();
-// printf("%"PRIuS"\n", size);
-
-#define PRIdS __PRIS_PREFIX "d"
-#define PRIxS __PRIS_PREFIX "x"
-#define PRIuS __PRIS_PREFIX "u"
-#define PRIXS __PRIS_PREFIX "X"
-#define PRIoS __PRIS_PREFIX "o"
-
-#include "base/mutex.h"  // This must go first so we get _XOPEN_SOURCE
-
-#include <string>
-
-#if defined(OS_WINDOWS)
-# include "port.h"
-#endif
-
-#include "config.h"
-#include "glog/logging.h"
-
-// There are three different ways we can try to get the stack trace:
-//
-// 1) The libunwind library.  This is still in development, and as a
-//    separate library adds a new dependency, but doesn't need a frame
-//    pointer.  It also doesn't call malloc.
-//
-// 2) Our hand-coded stack-unwinder.  This depends on a certain stack
-//    layout, which is used by gcc (and those systems using a
-//    gcc-compatible ABI) on x86 systems, at least since gcc 2.95.
-//    It uses the frame pointer to do its work.
-//
-// 3) The gdb unwinder -- also the one used by the c++ exception code.
-//    It's obviously well-tested, but has a fatal flaw: it can call
-//    malloc() from the unwinder.  This is a problem because we're
-//    trying to use the unwinder to instrument malloc().
-//
-// Note: if you add a new implementation here, make sure it works
-// correctly when GetStackTrace() is called with max_depth == 0.
-// Some code may do that.
-
-#if defined(HAVE_LIB_UNWIND)
-# define STACKTRACE_H "stacktrace_libunwind-inl.h"
-#elif !defined(NO_FRAME_POINTER)
-# if defined(__i386__) && __GNUC__ >= 2
-#  define STACKTRACE_H "stacktrace_x86-inl.h"
-# elif defined(__x86_64__) && __GNUC__ >= 2 && HAVE_UNWIND_H
-#  define STACKTRACE_H "stacktrace_x86_64-inl.h"
-# elif (defined(__ppc__) || defined(__PPC__)) && __GNUC__ >= 2
-#  define STACKTRACE_H "stacktrace_powerpc-inl.h"
-# endif
-#endif
-
-#if !defined(STACKTRACE_H) && defined(HAVE_EXECINFO_H)
-# define STACKTRACE_H "stacktrace_generic-inl.h"
-#endif
-
-#if defined(STACKTRACE_H)
-# define HAVE_STACKTRACE
-#endif
-
-// defined by gcc
-#if defined(__ELF__) && defined(OS_LINUX)
-# define HAVE_SYMBOLIZE
-#elif defined(OS_MACOSX) && defined(HAVE_DLADDR)
-// Use dladdr to symbolize.
-# define HAVE_SYMBOLIZE
-#endif
-
-#ifndef ARRAYSIZE
-// There is a better way, but this is good enough for our purpose.
-# define ARRAYSIZE(a) (sizeof(a) / sizeof(*(a)))
-#endif
-
-_START_GOOGLE_NAMESPACE_
-
-namespace glog_internal_namespace_ {
-
-#ifdef HAVE___ATTRIBUTE__
-# define ATTRIBUTE_NOINLINE __attribute__ ((noinline))
-# define HAVE_ATTRIBUTE_NOINLINE
-#else
-# define ATTRIBUTE_NOINLINE
-#endif
-
-const char* ProgramInvocationShortName();
-
-bool IsGoogleLoggingInitialized();
-
-bool is_default_thread();
-
-int64 CycleClock_Now();
-
-int64 UsecToCycles(int64 usec);
-
-typedef double WallTime;
-WallTime WallTime_Now();
-
-int32 GetMainThreadPid();
-bool PidHasChanged();
-
-pid_t GetTID();
-
-const std::string& MyUserName();
-
-// Get the part of filepath after the last path separator.
-// (Doesn't modify filepath, contrary to basename() in libgen.h.)
-const char* const_basename(const char* filepath);
-
-// Wrapper of __sync_val_compare_and_swap. If the GCC extension isn't
-// defined, we try the CPU specific logics (we only support x86 and
-// x86_64 for now) first, then use a naive implementation, which has a
-// race condition.
-template<typename T>
-inline T sync_val_compare_and_swap(T* ptr, T oldval, T newval) {
-#if defined(HAVE___SYNC_VAL_COMPARE_AND_SWAP)
-  return __sync_val_compare_and_swap(ptr, oldval, newval);
-#elif defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
-  T ret;
-  __asm__ __volatile__("lock; cmpxchg %1, (%2);"
-                       :"=a"(ret)
-                        // GCC may produces %sil or %dil for
-                        // constraint "r", but some of apple's gas
-                        // dosn't know the 8 bit registers.
-                        // We use "q" to avoid these registers.
-                       :"q"(newval), "q"(ptr), "a"(oldval)
-                       :"memory", "cc");
-  return ret;
-#else
-  T ret = *ptr;
-  if (ret == oldval) {
-    *ptr = newval;
-  }
-  return ret;
-#endif
-}
-
-void DumpStackTraceToString(std::string* stacktrace);
-
-struct CrashReason {
-  CrashReason() : filename(0), line_number(0), message(0), depth(0) {}
-
-  const char* filename;
-  int line_number;
-  const char* message;
-
-  // We'll also store a bit of stack trace context at the time of crash as
-  // it may not be available later on.
-  void* stack[32];
-  int depth;
-};
-
-void SetCrashReason(const CrashReason* r);
-
-void InitGoogleLoggingUtilities(const char* argv0);
-void ShutdownGoogleLoggingUtilities();
-
-}  // namespace glog_internal_namespace_
-
-_END_GOOGLE_NAMESPACE_
-
-using namespace GOOGLE_NAMESPACE::glog_internal_namespace_;
-
-#endif  // UTILITIES_H__

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/9661f956/third_party/glog/src/windows/vlog_is_on.cc
----------------------------------------------------------------------
diff --git a/third_party/glog/src/windows/vlog_is_on.cc b/third_party/glog/src/windows/vlog_is_on.cc
deleted file mode 100644
index 8a79df5..0000000
--- a/third_party/glog/src/windows/vlog_is_on.cc
+++ /dev/null
@@ -1,249 +0,0 @@
-// Copyright (c) 1999, 2007, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Author: Ray Sidney and many others
-//
-// Broken out from logging.cc by Soren Lassen
-// logging_unittest.cc covers the functionality herein
-
-#include "utilities.h"
-
-#include <string.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <cstdio>
-#include <string>
-#include "base/commandlineflags.h"
-#include "glog/logging.h"
-#include "glog/raw_logging.h"
-#include "base/googleinit.h"
-
-// glog doesn't have annotation
-#define ANNOTATE_BENIGN_RACE(address, description)
-
-using std::string;
-
-GLOG_DEFINE_int32(v, 0, "Show all VLOG(m) messages for m <= this."
-" Overridable by --vmodule.");
-
-GLOG_DEFINE_string(vmodule, "", "per-module verbose level."
-" Argument is a comma-separated list of <module name>=<log level>."
-" <module name> is a glob pattern, matched against the filename base"
-" (that is, name ignoring .cc/.h./-inl.h)."
-" <log level> overrides any value given by --v.");
-
-_START_GOOGLE_NAMESPACE_
-
-namespace glog_internal_namespace_ {
-
-// Implementation of fnmatch that does not need 0-termination
-// of arguments and does not allocate any memory,
-// but we only support "*" and "?" wildcards, not the "[...]" patterns.
-// It's not a static function for the unittest.
-GOOGLE_GLOG_DLL_DECL bool SafeFNMatch_(const char* pattern,
-                                       size_t patt_len,
-                                       const char* str,
-                                       size_t str_len) {
-  size_t p = 0;
-  size_t s = 0;
-  while (1) {
-    if (p == patt_len  &&  s == str_len) return true;
-    if (p == patt_len) return false;
-    if (s == str_len) return p+1 == patt_len  &&  pattern[p] == '*';
-    if (pattern[p] == str[s]  ||  pattern[p] == '?') {
-      p += 1;
-      s += 1;
-      continue;
-    }
-    if (pattern[p] == '*') {
-      if (p+1 == patt_len) return true;
-      do {
-        if (SafeFNMatch_(pattern+(p+1), patt_len-(p+1), str+s, str_len-s)) {
-          return true;
-        }
-        s += 1;
-      } while (s != str_len);
-      return false;
-    }
-    return false;
-  }
-}
-
-}  // namespace glog_internal_namespace_
-
-using glog_internal_namespace_::SafeFNMatch_;
-
-int32 kLogSiteUninitialized = 1000;
-
-// List of per-module log levels from FLAGS_vmodule.
-// Once created each element is never deleted/modified
-// except for the vlog_level: other threads will read VModuleInfo blobs
-// w/o locks and we'll store pointers to vlog_level at VLOG locations
-// that will never go away.
-// We can't use an STL struct here as we wouldn't know
-// when it's safe to delete/update it: other threads need to use it w/o locks.
-struct VModuleInfo {
-  string module_pattern;
-  mutable int32 vlog_level;  // Conceptually this is an AtomicWord, but it's
-                             // too much work to use AtomicWord type here
-                             // w/o much actual benefit.
-  const VModuleInfo* next;
-};
-
-// This protects the following global variables.
-static Mutex vmodule_lock;
-// Pointer to head of the VModuleInfo list.
-// It's a map from module pattern to logging level for those module(s).
-static VModuleInfo* vmodule_list = 0;
-// Boolean initialization flag.
-static bool inited_vmodule = false;
-
-// L >= vmodule_lock.
-static void VLOG2Initializer() {
-  vmodule_lock.AssertHeld();
-  // Can now parse --vmodule flag and initialize mapping of module-specific
-  // logging levels.
-  inited_vmodule = false;
-  const char* vmodule = FLAGS_vmodule.c_str();
-  const char* sep;
-  VModuleInfo* head = NULL;
-  VModuleInfo* tail = NULL;
-  while ((sep = strchr(vmodule, '=')) != NULL) {
-    string pattern(vmodule, sep - vmodule);
-    int module_level;
-    if (sscanf(sep, "=%d", &module_level) == 1) {
-      VModuleInfo* info = new VModuleInfo;
-      info->module_pattern = pattern;
-      info->vlog_level = module_level;
-      if (head)  tail->next = info;
-      else  head = info;
-      tail = info;
-    }
-    // Skip past this entry
-    vmodule = strchr(sep, ',');
-    if (vmodule == NULL) break;
-    vmodule++;  // Skip past ","
-  }
-  if (head) {  // Put them into the list at the head:
-    tail->next = vmodule_list;
-    vmodule_list = head;
-  }
-  inited_vmodule = true;
-}
-
-// This can be called very early, so we use SpinLock and RAW_VLOG here.
-int SetVLOGLevel(const char* module_pattern, int log_level) {
-  int result = FLAGS_v;
-  int const pattern_len = strlen(module_pattern);
-  bool found = false;
-  MutexLock l(&vmodule_lock);  // protect whole read-modify-write
-  for (const VModuleInfo* info = vmodule_list;
-       info != NULL; info = info->next) {
-    if (info->module_pattern == module_pattern) {
-      if (!found) {
-        result = info->vlog_level;
-        found = true;
-      }
-      info->vlog_level = log_level;
-    } else if (!found  &&
-               SafeFNMatch_(info->module_pattern.c_str(),
-                            info->module_pattern.size(),
-                            module_pattern, pattern_len)) {
-      result = info->vlog_level;
-      found = true;
-    }
-  }
-  if (!found) {
-    VModuleInfo* info = new VModuleInfo;
-    info->module_pattern = module_pattern;
-    info->vlog_level = log_level;
-    info->next = vmodule_list;
-    vmodule_list = info;
-  }
-  RAW_VLOG(1, "Set VLOG level for \"%s\" to %d", module_pattern, log_level);
-  return result;
-}
-
-// NOTE: Individual VLOG statements cache the integer log level pointers.
-// NOTE: This function must not allocate memory or require any locks.
-bool InitVLOG3__(int32** site_flag, int32* site_default,
-                 const char* fname, int32 verbose_level) {
-  MutexLock l(&vmodule_lock);
-  bool read_vmodule_flag = inited_vmodule;
-  if (!read_vmodule_flag) {
-    VLOG2Initializer();
-  }
-
-  // protect the errno global in case someone writes:
-  // VLOG(..) << "The last error was " << strerror(errno)
-  int old_errno = errno;
-
-  // site_default normally points to FLAGS_v
-  int32* site_flag_value = site_default;
-
-  // Get basename for file
-  const char* base = strrchr(fname, '/');
-  base = base ? (base+1) : fname;
-  const char* base_end = strchr(base, '.');
-  size_t base_length = base_end ? size_t(base_end - base) : strlen(base);
-
-  // Trim out trailing "-inl" if any
-  if (base_length >= 4 && (memcmp(base+base_length-4, "-inl", 4) == 0)) {
-    base_length -= 4;
-  }
-
-  // TODO: Trim out _unittest suffix?  Perhaps it is better to have
-  // the extra control and just leave it there.
-
-  // find target in vector of modules, replace site_flag_value with
-  // a module-specific verbose level, if any.
-  for (const VModuleInfo* info = vmodule_list;
-       info != NULL; info = info->next) {
-    if (SafeFNMatch_(info->module_pattern.c_str(), info->module_pattern.size(),
-                     base, base_length)) {
-      site_flag_value = &info->vlog_level;
-        // value at info->vlog_level is now what controls
-        // the VLOG at the caller site forever
-      break;
-    }
-  }
-
-  // Cache the vlog value pointer if --vmodule flag has been parsed.
-  ANNOTATE_BENIGN_RACE(site_flag,
-                       "*site_flag may be written by several threads,"
-                       " but the value will be the same");
-  if (read_vmodule_flag) *site_flag = site_flag_value;
-
-  // restore the errno in case something recoverable went wrong during
-  // the initialization of the VLOG mechanism (see above note "protect the..")
-  errno = old_errno;
-  return *site_flag_value >= verbose_level;
-}
-
-_END_GOOGLE_NAMESPACE_

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/9661f956/third_party/googletest
----------------------------------------------------------------------
diff --git a/third_party/googletest b/third_party/googletest
deleted file mode 160000
index d225acc..0000000
--- a/third_party/googletest
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit d225acc90bc3a8c420a9bcd1f033033c1ccd7fe0

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/9661f956/third_party/gperftools/AUTHORS
----------------------------------------------------------------------
diff --git a/third_party/gperftools/AUTHORS b/third_party/gperftools/AUTHORS
deleted file mode 100644
index 3995ed4..0000000
--- a/third_party/gperftools/AUTHORS
+++ /dev/null
@@ -1,2 +0,0 @@
-google-perftools@googlegroups.com
-

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/9661f956/third_party/gperftools/COPYING
----------------------------------------------------------------------
diff --git a/third_party/gperftools/COPYING b/third_party/gperftools/COPYING
deleted file mode 100644
index e4956cf..0000000
--- a/third_party/gperftools/COPYING
+++ /dev/null
@@ -1,28 +0,0 @@
-Copyright (c) 2005, Google Inc.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    * Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above
-copyright notice, this list of conditions and the following disclaimer
-in the documentation and/or other materials provided with the
-distribution.
-    * Neither the name of Google Inc. nor the names of its
-contributors may be used to endorse or promote products derived from
-this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/9661f956/third_party/gperftools/ChangeLog
----------------------------------------------------------------------
diff --git a/third_party/gperftools/ChangeLog b/third_party/gperftools/ChangeLog
deleted file mode 100644
index 4b334be..0000000
--- a/third_party/gperftools/ChangeLog
+++ /dev/null
@@ -1,646 +0,0 @@
-Fri Feb 03 15:40:45 2012  Google Inc. <go...@googlegroups.com>
-
-	* gperftools: version 2.0
-	* Renamed the project from google-perftools to gperftools (csilvers)
-	* Renamed the .deb/.rpm packagse from google-perftools to gperftools too
-	* Renamed include directory from google/ to gperftools/ (csilvers)
-	* Changed the 'official' perftools email in setup.py/etc
-	* Renamed google-perftools.sln to gperftools.sln
-	* PORTING: Removed bash-isms & grep -q in heap-checker-death_unittest.sh
-	* Changed copyright text to reflect Google's relinquished ownership
-
-Tue Jan 31 10:43:50 2012    Google Inc. <op...@google.com>
-
-	* google-perftools: version 1.10 release
-	* PORTING: Support for patching assembly on win x86_64! (scott.fr...)
-	* PORTING: Work around atexit-execution-order bug on freebsd (csilvers)
-	* PORTING: Patch _calloc_crt for windows (roger orr)
-	* PORTING: Add C++11 compatibility method for stl allocator (jdennett)
-	* PORTING: use MADV_FREE, not MADV_DONTNEED, on freebsd (csilvers)
-	* PORTING: Don't use SYS_open when not supported on solaris (csilvers)
-	* PORTING: Do not assume uname() returns 0 on success (csilvers)
-	* LSS: Improved ARM support in linux-syscall-support (dougkwan)
-	* LSS: Get rid of unused syscalls in linux-syscall-support (csilvers)
-	* LSS: Fix broken mmap wrapping for ppc (markus)
-	* LSS: Emit .cfi_adjust_cfa_offset when appropriate (ppluzhnikov)
-	* LSS: Be more accurate in register use in __asm__ (markus)
-	* LSS: Fix __asm__ calls to compile under clang (chandlerc)
-	* LSS: Fix ARM inline assembly bug around r7 and swi (lcwu)
-	* No longer log when an allocator fails (csilvers)
-	* void* -> const void* for MallocExtension methods (llib)
-	* Improve HEAP_PROFILE_MMAP and fix bugs with it (dmikurube)
-	* Replace int-based abs with more correct fabs in a test (pmurin)
-
-Thu Dec 22 16:22:45 2011    Google Inc. <op...@google.com>
-
-	* google-perftools: version 1.9 release
-	* Lightweight check for double-frees (blount)
-	* BUGFIX: Fix pprof to exit properly if run with no args (dagitses)
-	* Suggest ASan as a way to diagnose buggy code (ppluzhnikov)
-	* Get rid of unused CACHELINE_SIZE (csilvers)
-	* Replace atexit() calls with global dtors; helps freebsd (csilvers)
-	* Disable heap-checker under AddressSanitizer (kcc)
-	* Fix bug in powerpc stacktracing (ppluzhnikov)
-	* PERF: Use exponential backoff waiting for spinlocks (m3b)
-	* Fix 64-bit nm on 32-bit binaries in pprof (csilvers)
-	* Add ProfileHandlerDisallowForever (rsc)
-	* BUGFIX: Shell escape when forking in pprof (csilvers)
-	* No longer combine overloaded functions in pprof (csilvers)
-	* Fix address-normalizing bug in pprof (csilvers)
-	* More consistently call abort() instead of exit() on failure (csilvers)
-	* Allow NoGlobalLeaks to be safely called more than once (csilvers)
-	* PORTING/BUGFIX: Fix ARM cycleclock to use volatile asm (dougkwan)
-	* PORTING: 64-bit atomic ops for ARMv7 (dougkwan)
-	* PORTING: Implement stacktrace for ARM (dougkwan)
-	* PORTING: Fix malloc_hook_mmap_linux for ARM (dougkwan)
-	* PORTING: Update linux_syscall_support.h for ARM/etc (evannier, sanek)
-	* PORTING: Fix freebsd to work on x86_64 (chapp...@gmail.com)
-	* PORTING: Added additional SYS_mmap fixes for FreeBSD (chappedm)
-	* PORTING: Allow us to compile on OS X 10.6 and run on 10.5 (raltherr)
-	* PORTING: Check for mingw compilers that *do* define timespec
-	* PORTING: Add "support" for MIPS cycletimer
-	* PORTING: Fix fallback cycle-timer to work with Now (dougkwan)
-	* PERF: Move stack trace collecting out of the mutex (taylorc)
-	* PERF: Get the deallocation stack trace outside the mutex (sean)
-	* Make PageHeap dynamically allocated for leak checks (maxim)
-	* BUGFIX: Fix probing of nm -f behavior in pprof (dpeng)
-	* BUGFIX: Fix a race with the CentralFreeList lock before main (sanjay)
-	* Support /pprof/censusprofile url arguments (rajatjain)
-	* Change IgnoreObject to return its argument (nlewycky)
-	* Update malloc-hook files to support more CPUs
-	* BUGFIX: write our own strstr to avoid libc problems (csilvers)
-	* Use simple callgrind compression facility in pprof
-	* Print an error message when we can't run pprof to symbolize (csilvers)
-	* Die in configure when g++ is't installed (csilvers)
-	* DOC: Beef up the documentation a bit about using libunwind (csilvers)
-
-Fri Aug 26 13:29:25 2011    Google Inc. <op...@google.com>
-
-	* google-perftools: version 1.8.3 release
-	* Added back the 'pthreads unsafe early' #define, needed for FreeBSD
-
-Thu Aug 11 15:01:47 2011    Google Inc. <op...@google.com>
-
-	* google-perftools: version 1.8.2 release
-	* Fixed calculation of patchlevel, 'make check' should all pass again
-
-Tue Jul 26 20:57:51 2011    Google Inc. <op...@google.com>
-
-	* google-perftools: version 1.8.1 release
-	* Added an #include to fix compile breakage on latest gcc's
-	* Removed an extra , in the configure.ac script
-
-Fri Jul 15 16:10:51 2011    Google Inc. <op...@google.com>
-
-	* google-perftools: version 1.8 release
-	* PORTING: (Disabled) support for patching mmap on freebsd (chapp...)
-	* PORTING: Support volatile __malloc_hook for glibc 2.14 (csilvers)
-	* PORTING: Use _asm rdtsc and __rdtsc to get cycleclock in windows (koda)
-	* PORTING: Fix fd vs. HANDLE compiler error on cygwin (csilvers)
-	* PORTING: Do not test memalign or double-linking on OS X (csilvers)
-	* PORTING: Actually enable TLS on windows (jontra)
-	* PORTING: Some work to compile under Native Client (krasin)
-	* PORTING: deal with pthread_once w/o -pthread on freebsd (csilvers)
-	* Rearrange libc-overriding to make it easier to port (csilvers)
-	* Display source locations in pprof disassembly (sanjay)
-	* BUGFIX: Actually initialize allocator name (mec)
-	* BUGFIX: Keep track of 'overhead' bytes in malloc reporting (csilvers)
-	* Allow ignoring one object twice in the leak checker (glider)
-	* BUGFIX: top10 in pprof should print 10 lines, not 11 (rsc)
-	* Refactor vdso source files (tipp)
-	* Some documentation cleanups
-	* Document MAX_TOTAL_THREAD_CACHE_SIZE <= 1Gb (nsethi)
-	* Add MallocExtension::GetOwnership(ptr) (csilvers)
-	* BUGFIX: We were leaving out a needed $(top_srcdir) in the Makefile
-	* PORTING: Support getting argv0 on OS X
-	* Add 'weblist' command to pprof: like 'list' but html (sanjay)
-	* Improve source listing in pprof (sanjay)
-	* Cap cache sizes to reduce fragmentation (ruemmler)
-	* Improve performance by capping or increasing sizes (ruemmler)
-	* Add M{,un}mapReplacmenet hooks into MallocHook (ribrdb)
-	* Refactored system allocator logic (gangren)
-	* Include cleanups (csilvers)
-	* Add TCMALLOC_SMALL_BUT_SLOW support (ruemmler)
-	* Clarify that tcmalloc stats are MiB (robinson)
-	* Remove support for non-tcmalloc debugallocation (blount)
-	* Add a new test: malloc_hook_test (csilvers)
-	* Change the configure script to be more crosstool-friendly (mcgrathr)
-	* PORTING: leading-underscore changes to support win64 (csilvers)
-	* Improve debugallocation tc_malloc_size (csilvers)
-	* Extend atomicops.h and cyceclock to use ARM V6+ optimized code (sanek)
-	* Change malloc-hook to use a list-like structure (llib)
-	* Add flag to use MAP_PRIVATE in memfs_malloc (gangren)
-	* Windows support for pprof: nul and /usr/bin/file (csilvers)
-	* TESTING: add test on strdup to tcmalloc_test (csilvers)
-	* Augment heap-checker to deal with no-inode maps (csilvers)
-	* Count .dll/.dylib as shared libs in heap-checker (csilvers)
-	* Disable sys_futex for arm; it's not always reliable (sanek)
-	* PORTING: change lots of windows/port.h macros to functions
-	* BUGFIX: Generate correct version# in tcmalloc.h on windows (csilvers)
-	* PORTING: Some casting to make solaris happier about types (csilvers)
-	* TESTING: Disable debugallocation_test in 'minimal' mode (csilvers)
-	* Rewrite debugallocation to be more modular (csilvers)
-	* Don't try to run the heap-checker under valgrind (ppluzhnikov)
-	* BUGFIX: Make focused stat %'s relative, not absolute (sanjay)
-	* BUGFIX: Don't use '//' comments in a C file (csilvers)
-	* Quiet new-gcc compiler warnings via -Wno-unused-result, etc (csilvers)
-
-Fri Feb 04 15:54:31 2011    Google Inc. <op...@google.com>
-
-	* google-perftools: version 1.7 release
-	* Reduce page map key size under x86_64 by 4.4MB (rus)
-	* Remove a flaky malloc-extension test (fdabek)
-	* Improve the performance of PageHeap::New (ond..., csilvers)
-	* Improve sampling_test with no-inline additions/etc (fdabek)
-	* 16-byte align debug allocs (jyasskin)
-	* Change FillProcSelfMaps to detect out-of-buffer-space (csilvers)
-	* Document the need for sampling to use GetHeapSample (csilvers)
-	* Try to read TSC frequency from tsc_freq_khs (adurbin)
-	* Do better at figuring out if tests are running under gdb (ppluzhnikov)
-	* Improve spinlock contention performance (ruemmler)
-	* Better internal-function list for pprof's /contention (ruemmler)
-	* Speed up GoogleOnce (m3b)
-	* Limit number of incoming/outgoing edges in pprof (sanjay)
-	* Add pprof --evince to go along with --gv (csilvers)
-	* Document the various ways to get heap-profiling information (csilvers)
-	* Separate out synchronization profiling routines (ruemmler)
-	* Improve malloc-stats output to be more understandable (csilvers)
-	* Add support for census profiler in pporf (nabeelmian)
-	* Document how pprof's /symbol must support GET requests (csilvers)
-	* Improve acx_pthread.m4 (ssuomi, liujisi)
-	* Speed up pprof's ExtractSymbols (csilvers)
-	* Ignore some known-leaky (java) libraries in the heap checker (davidyu)
-	* Make kHideMask use all 64 bits in tests (ppluzhnikov)
-	* Clean up pprof input-file handling (csilvers)
-	* BUGFIX: Don't crash if __environ is NULL (csilvers)
-	* BUGFIX: Fix totally broken debugallocation tests (csilvers)
-	* BUGFIX: Fix up fake_VDSO handling for unittest (ppluzhnikov)
-	* BUGFIX: Suppress all large allocs when report threshold is 0 (lexie)
-	* BUGFIX: mmap2 on i386 takes an off_t, not off64_t (csilvers)
-	* PORTING: Add missing PERFTOOLS_DLL_DECL (csilvers)
-	* PORTING: Add stddef.h to make newer gcc's happy (csilvers)
-	* PORTING: Document some tricks for working under OS X (csilvers)
-	* PORTING: Don't try to check valgrind for windows (csilvers)
-	* PORTING: Make array-size a var to compile under clang (chandlerc)
-	* PORTING: No longer hook _aligned_malloc and _aligned_free (csilvers)
-	* PORTING: Quiet some gcc warnings (csilvers)
-	* PORTING: Replace %PRIxPTR with %p to be more portable (csilvers)
-	* PORTING: Support systems that capitalize /proc weirdly (sanek)
-	* PORTING: Treat arm3 the same as arm5t in cycletimer (csilvers)
-	* PORTING: Update windows logging to not allocate memory (csilvers)
-	* PORTING: avoid double-patching newer windows DLLs (roger.orr)
-	* PORTING: get dynamic_annotations.c to work on windows (csilvers)
-	* Add pkg-config .pc files for the 5 libraries we produce (csilvers)
-	* Added proper libtool versioning, so this lib will be 0.1.0 (csilvers)
-	* Moved from autoconf 2.64 to 2.65
-
-Thu Aug  5 12:48:03 PDT 2010  Google Inc. <op...@google.com>
-
-	* google-perftools: version 1.6 release
-	* Add tc_malloc_usable_size for compatibility with glibc (csilvers)
-	* Override malloc_usable_size with tc_malloc_usable_size (csilvers)
-	* Default to no automatic heap sampling in tcmalloc (csilvers)
-	* Add -DTCMALLOC_LARGE_PAGES, a possibly faster tcmalloc (rus)
-	* Make some functions extern "C" to avoid false ODR warnings (jyasskin)
-	* pprof: Add SVG-based output (rsc)
-	* pprof: Extend pprof --tools to allow per-tool configs (csilvers)
-	* pprof: Improve support of 64-bit and big-endian profiles (csilvers)
-	* pprof: Add interactive callgrind suport (weidenri...)
-	* pprof: Improve address->function mapping a bit (dpeng)
-	* Better detection of when we're running under valgrind (csilvers)
-	* Better CPU-speed detection under valgrind (saito)
-	* Use, and recommend, -fno-builtin-malloc when compiling (csilvers)
-	* Avoid false-sharing of memory between caches (bmaurer)
-	* BUGFIX: Fix heap sampling to use correct alloc size (bmauer)
-	* BUGFIX: Avoid gcc 4.0.x bug by making hook-clearing atomic (csilvers)
-	* BUGFIX: Avoid gcc 4.5.x optimization bug (csilvers)
-	* BUGFIX: Work around deps-determining bug in libtool 1.5.26 (csilvers)
-	* BUGFIX: Fixed test to use HAVE_PTHREAD, not HAVE_PTHREADS (csilvers)
-	* BUGFIX: Fix tls callback behavior on windows when using wpo (wtc)
-	* BUGFIX: properly align allocation sizes on Windows (antonm)
-	* BUGFIX: Fix prototypes for tcmalloc/debugalloc wrt throw() (csilvers)
-	* DOC: Updated heap-checker doc to match reality better (fischman)
-	* DOC: Document ProfilerFlush, ProfilerStartWithOptions (csilvers)
-	* DOC: Update docs for heap-profiler functions (csilvers)
-	* DOC: Clean up documentation around tcmalloc.slack_bytes (fikes)
-	* DOC: Renamed README.windows to README_windows.txt (csilvers)
-	* DOC: Update the NEWS file to be non-empty (csilvers)
-	* PORTING: Fix windows addr2line and nm with proper rc code (csilvers)
-	* PORTING: Add CycleClock and atomicops support for arm 5 (sanek)
-	* PORTING: Improve PC finding on cygwin and redhat 7 (csilvers)
-	* PORTING: speed up function-patching under windows (csilvers)
-
-Tue Jan 19 14:46:12 2010  Google Inc. <op...@google.com>
-
-	* google-perftools: version 1.5 release
-	* Add tc_set_new_mode (willchan)
-	* Make memalign functions + realloc respect tc_set_new_mode (willchan)
-	* Add ReleaseToSystem(num_bytes) (kash)
-	* Handle zero-length symbols a bit better in pprof (csilvers)
-	* Prefer __environ to /proc/self/environ in cpu profiler (csilvers)
-	* Add HEAP_CHECK_MAX_LEAKS flag to control #leaks to report (glider)
-	* Add two new numeric pageheap properties to MallocExtension (fikes)
-	* Print alloc size when mmap fails (hakon)
-	* Add ITIMER_REAL support to cpu profiler (csilvers, nabeelmian)
-	* Speed up symbolizer in heap-checker reporting (glider)
-	* Speed up futexes with FUTEX_PRIVATE_FLAG (m3b)
-	* Speed up tcmalloc but doing better span coalescing (sanjay)
-	* Better support for different wget's and addr2maps in pprof (csilvres)
-	* Implement a nothrow version of delete and delete[] (csilvers)
-	* BUGFIX: fix a race on module_libcs[i] in windows patching (csilvers)
-	* BUGFIX: Fix debugallocation to call cpp_alloc for new (willchan)
-	* BUGFIX: A simple bugfix for --raw mode (mrabkin)
-	* BUGFIX: Fix C shims to actually be valid C (csilvers)
-	* BUGFIX: Fix recursively-unmapped-region accounting (ppluzhnikov)
-	* BUGFIX: better distinguish real and fake vdso (ppluzhnikov)
-	* WINDOWS: replace debugmodule with more reliable psai (andrey)
-	* PORTING: Add .bundle as another shared library extension (csilvers)
-	* PORTING: Fixed a typo bug in the ocnfigure PRIxx m4 macro (csilvers)
-	* PORTING: Augment sysinfo to work on 64-bit OS X (csilvers)
-	* PORTING: Use sys/ucontext.h to fix compiing on OS X 10.6 (csilvers)
-	* PORTING: Fix sysinfo libname reporting for solaris x86 (jeffrey)
-	* PORTING: Use libunwind for i386 when using --omitfp (ppluzhnikov)
-	
-Thu Sep 10 13:51:15 2009  Google Inc. <op...@google.com>
-
-	* google-perftools: version 1.4 release
-	* Add debugallocation library, to catch memory leaks, stomping, etc
-	* Add --raw mode to allow for delayed processing of pprof files
-	* Use less memory when reading CPU profiles
-	* New environment variables to control kernel-allocs (sbrk, memfs, etc)
-	* Add MarkThreadBusy(): performance improvement
-	* Remove static thread-cache-size code; all is dynamic now
-	* Add new HiddenPointer class to heap checker
-	* BUGFIX: pvalloc(0) allocates now (found by new debugalloc library)
-	* BUGFIX: valloc test (not implementation) no longer overruns memory
-	* BUGFIX: GetHeapProfile no longer deadlocks
-	* BUGFIX: Support unmapping memory regions before main
-	* BUGFIX: Fix some malloc-stats formatting
-	* BUGFIX: Don't crash as often when freeing libc-allocated memory
-	* BUGFIX: Deal better with incorrect PPROF_PATH when symbolizing
-	* BUGFIX: weaken new/delete/etc in addition to malloc/free/etc
-	* BUGFIX: Fix return value of GetAllocatedSize
-	* PORTING: Fix mmap-#define problem on some 64-bit systems
-	* PORTING: Call ranlib again (some OS X versions need it)
-	* PORTING: Fix a leak when building with LLVM
-	* PORTING: Remove some unneeded bash-ishs from testing scripts
-	* WINDOWS: Support library unloading as well as loading
-	* WINDOWS/BUGFIX: Set page to 'xrw' instead of 'rw' when patching
-	
-Tue Jun  9 18:19:06 2009  Google Inc. <op...@google.com>
-
-	* google-perftools: version 1.3 release
-	* Provide our own name for memory functions: tc_malloc, etc (csilvers)
-	* Weaken memory-alloc functions so user can override them (csilvers)
-	* Remove meaningless delete(nothrow) and delete[](nothrow) (csilvers)
-	* BUILD: replace clever libtcmalloc/profiler.a with a new .a (csilvers)
-	* PORTING: improve windows port  by using google spinlocks (csilvers)
-	* PORTING: Fix RedHat 9 memory allocation in heapchecker (csilvers)
-	* PORTING: Rename OS_WINDOWS macro to PLATFORM_WINDOWS (mbelshe)
-	* PORTING/BUGFIX: Make sure we don't clobber GetLastError (mbelshe)
-	* BUGFIX: get rid of useless data for callgrind (weidenrinde)
-	* BUGFIX: Modify windows patching to deadlock sometimes (csilvers)
-	* BUGFIX: an improved fix for hook handling during fork (csilvers)
-	* BUGFIX: revamp profiler_unittest.sh, which was very broken (csilvers)
-	
-Fri Apr 17 16:40:48 2009  Google Inc. <op...@google.com>
-
-	* google-perftools: version 1.2 release
-	* Allow large_alloc_threshold=0 to turn it off entirely (csilvers)
-	* Die more helpfully when out of memory for internal data (csilvers)
-	* Refactor profile-data gathering, add a new unittest (cgd, nabeelmian)
-	* BUGFIX: fix rounding errors with static thread-size caches (addi)
-	* BUGFIX: disable hooks better when forking in leak-checker (csilvers)
-	* BUGFIX: fix realloc of crt pointers on windows (csilvers)
-	* BUGFIX: do a better job of finding binaries in .sh tests (csilvers)
-	* WINDOWS: allow overriding malloc/etc instead of patching (mbelshe)
-	* PORTING: fix compilation error in a ppc-specific file (csilvers)
-	* PORTING: deal with quirks in cygwin's /proc/self/maps (csilvers)
-	* PORTING: use 'A' version of functions for ascii input (mbelshe)
-	* PORTING: generate .so's on cygwin and mingw (ajenjo)
-	* PORTING: disable profiler methods on cygwin (jperkins)
-	* Updated autoconf version to 2.61 and libtool version to 1.5.26
-
-Wed Mar 11 11:25:34 2009  Google Inc. <op...@google.com>
-
-	* google-perftools: version 1.1 release
-	* Dynamically resize thread caches -- nice perf. improvement (kash)
-	* Add VDSO support to give better stacktraces in linux (ppluzhnikov)
-	* Improve heap-profiling sampling algorithm (ford)
-	* Rewrite leak-checking code: should be faster and more robust (sanjay)
-	* Use ps2 instead of ps for dot: better page cropping for gv (csilvers)
-	* Disable malloc-failure warning messages by default (csilvers)
-	* Update config/Makefile to disable tests on a per-OS basis (csilvers)
-	* PORTING: Get perftools compiling under MSVC 7.1 again (csilvers)
-	* PORTING: Get perftools compiling under cygwin again (csilvers)
-	* PORTING: automatically set library flags for solaris x86 (csilvers)
-	* Add TCMALLOC_SKIP_SBRK to mirror TCMALLOC_SKIP_MMAP (csilvers)
-	* Add --enable flags to allow selective building (csilvers)
-	* Put addr2line-pdb and nm-pdb in proper output directory (csilvers)
-	* Remove deprecated DisableChecksIn (sanjay)
-	* DOCUMENTATION: Document most MallocExtension routines (csilvers)
-	
-Tue Jan  6 13:58:56 2009  Google Inc. <op...@google.com>
-
-	* google-perftools: version 1.0 release
-	* Exactly the same as 1.0rc2
-
-Sun Dec 14 17:10:35 2008  Google Inc. <op...@google.com>
-
-	* google-perftools: version 1.0rc2 release
-	* Fix compile error on 64-bit systems (casting ptr to int) (csilvers)
-
-Thu Dec 11 16:01:32 2008  Google Inc. <op...@google.com>
-
-	* google-perftools: version 1.0rc1 release
-	* Replace API for selectively disabling heap-checker in code (sanjay)
-	* Add a pre-mmap hook (daven, adlr)
-	* Add MallocExtension interface to set memory-releasing rate (fikes)
-	* Augment pprof to allow any string ending in /pprof/profile (csilvers)
-	* PORTING: Rewrite -- and fix --  malloc patching for windows (dvitek)
-	* PORTING: Add nm-pdb and addr2line-pdb for use by pprof (dvitek)
-	* PORTING: Improve cygwin and mingw support (jperkins, csilvers)
-	* PORTING: Fix pprof for mac os x, other pprof improvements (csilvers)
-	* PORTING: Fix some PPC bugs in our locking code (anton.blanchard)
-	* A new unittest, smapling_test, to verify tcmalloc-profiles (csilvers)
-	* Turn off TLS for gcc < 4.1.2, due to a TLS + -fPIC bug (csilvers)
-	* Prefer __builtin_frame_address to assembly for stacktraces (nlewycky)
-	* Separate tcmalloc.cc out into multiple files -- finally! (kash)
-	* Make our locking code work with -fPIC on 32-bit x86 (aruns)
-	* Fix an initialization-ordering bug for tcmalloc/profiling (csilvers)
-	* Use "initial exec" model of TLS to speed up tcmalloc (csilvers)
-	* Enforce 16-byte alignment for tcmalloc, for SSE (sanjay)
-	
-Tue Sep 23 08:56:31 2008  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.99.2 release
-	* COMPILE FIX: add #include needed for FreeBSD and OS X (csilvers)
-
-Sat Sep 20 09:37:18 2008  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.99.1 release
-	* BUG FIX: look for nm, etc in /usr/bin, not /usr/crosstool (csilvers)
-
-Thu Sep 18 16:00:27 2008  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.99 release
-	* Add IsHeapProfileRunning (csilvers)
-	* Add C shims for some of the C++ header files (csilvers)
-	* Fix heap profile file clean-up logic (maxim)
-	* Rename linuxthreads.c to .cc for better compiler support (csilvers)
-	* Add source info to disassembly in pprof (sanjay)
-	* Use open instead of fopen to avoid memory alloc (csilvers)
-	* Disable malloc extensions when running under valgrind (kcc)
-	* BUG FIX: Fix out-of-bound error by reordering a check (larryz)
-	* Add Options struct to ProfileData (cgd)
-	* Correct PC-handling of --base in pprof (csilvers)
-	* Handle 1 function occurring twice in an image (sanjay)
-	* Improve stack-data cleaning (maxim)
-	* Use 'struct Foo' to make header C compatible (csilvers)
-	* Add 'total' line to pprof --text (csilvers)
-	* Pre-allocate buffer for heap-profiler to avoid OOM errors (csilvers)
-	* Allow a few more env-settings to control tcmalloc (csilvers)
-	* Document some of the issues involving thread-local storage (csilvers)
-	* BUG FIX: Define strtoll and friends for windows (csilvers)
-
-Mon Jun  9 16:47:03 2008  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.98 release
-	* Add ProfilerStartWithOptions() (cgd)
-	* Change tcmalloc_minimal to not do any stack-tracing at all (csilvers)
-	* Prefer mmap to sbrk for 64-buit debug mode (sanjay)
-	* Fix accounting for some tcmalloc stats (sanjay)
-	* Use setrlimit() to keep unittests from killing the machine (odo)
-	* Fix a bug when sbrk-ing near address 4G (csilvers)
-	* Make MallocHook thread-safe (jyasskin)
-	* Fix windows build for MemoryBarrier (jyasskin)
-	* Fix CPU-profiler docs to mention correct libs (csilvers)
-	* Fix for GetHeapProfile() when heap-profiling is off (maxim)
-	* Avoid realloc resizing ping-pongs using hysteresis (csilvers)
-	* Add --callgrind output support to pprof (klimek)
-	* Fix profiler.h and heap-profiler.h to be C-compatible (csilvers)
-	* Break malloc_hook.h into two parts to reduce dependencies (csilvers)
-	* Better handle systems that don't implement mmap (csilvers)
-	* PORTING: disable system_alloc_unittest for msvc (csilvers)
-	* PORTING: Makefile tweaks to build better on cygwin (csilvers)
-	
-Mon Apr 21 15:20:52 2008  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.97 release
-	* Refactor GetHeapProfile to avoid using malloc (maxim)
-	* Fix heap-checker and heap-profiler hook interactions (maxim)
-	* Fix a data race in MemoryRegionMap::Lock (jyasskin)
-	* Improve thread-safety of leak checker (maxim)
-	* Fix mmap profile to no longer deadlock (maxim)
-	* Fix rpm to have devel package depend on non-devel (csilvers)
-	* PORTING: Fix clock-speed detection for Mac OS X (csilvers)
-
-Tue Mar 18 14:30:44 2008  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.96 release
-	* major atomicops rewrite; fixed atomic ops code for linux/ppc (vchen)
-	* nix the stacktrace library; now build structure is simpler (csilvers)
-	* Speed up heap-checker, and reduce extraneous logging (maxim)
-	* Improve itimer code for NPTL case (cgd)
-	* Add source code annotations for use by valgrind, etc (kcc)
-	* PORTING: Fix high resolution timers for Mac OS X (adlr)
-
-Tue Feb 19 12:01:31 2008  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.95.1 release  (bugfix release)
-	* x86_64 compile-fix: nix pread64 and pwrite64 (csilvers)
-	* more heap-checker debug logging (maxim)
-	* minor improvement to x86_64 CycleClock (gpike)
-
-Tue Feb 12 12:28:32 2008  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.95 release
-	* Better -- not perfect -- support for linux-ppc (csilvers)
-	* Fix race condition in libunwind stacktrace (aruns)
-	* Speed up x86 spinlock locking (m3b)
-	* Improve heap-checker performance (maxim)
-	* Heap checker traverses more ptrs inside heap-alloced objects (maxim)
-	* Remove deprecated ProfilerThreadState function (cgd)
-	* Update libunwind documentation for statically linked binaries (aruns)
-
-Mon Dec  3 23:51:54 2007  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.94.1 release  (bugfix release)
-	* Fix missing #includes for x86_64 compile using libunwind (csilvers)
-
-Thu Nov 29 07:59:43 2007  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.94 release
-	* PORTING: MinGW/Msys support -- runs same code as MSVC does (csilvers)
-	* PORTING: Add NumCPUs support for Mac OS X (csilvers)
-	* Work around a sscanf bug in glibc(?) (waldemar)
-	* Fix Windows MSVC bug triggered by thread deletion (csilvers)
-	* Fix bug that triggers in MSVC /O2: missing volatile (gpike)
-	* March-of-time support: quiet warnings/errors for gcc 4.2, OS X 10.5
-	* Modify pprof so it works without nm: useful for windows (csilvers)
-	* pprof: Support filtering for CPU profiles (cgd)
-	* Bugfix: have realloc report to hooks in all situations (maxim)
-	* Speed improvement: replace slow memcpy with std::copy (soren)
-	* Speed: better iterator efficiency in RecordRegionRemoval (soren)
-	* Speed: minor speed improvements via better bitfield alignment (gpike)
-	* Documentation: add documentation of binary profile output (cgd)
-	
-Fri Aug 17 12:32:56 2007  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.93 release
-	* PORTING: everything compiles on Solaris, OS X, FreeBSD (see INSTALL)
-	* PORTING: cpu-profiler works on most platforms (much better GetPC())
-	* PORTING: heap-profiler works on most platforms
-	* PORTING: improved windows support, including release builds
-	* No longer build or run ptmalloc tests by default
-	* Add support for using memfs filesystem to allocate memory in linux
-	* WINDOWS: give debug library and release library different names
-	
-Tue Jul 17 22:26:27 2007  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.92 release
-	* PERFORMANCE: use a packed cache to speed up tcmalloc
-	* PORTING: preliminary windows support! (see README.windows)
-	* PORTING: better support for solaris, OS X, FreeBSD (see INSTALL)
-	* Envvar support for running the heap-checker under gdb
-	* Add weak declarations to maybe_threads to fix no-pthreads compile bugs
-	* Some 64bit fixes, especially with pprof
-	* Better heap-checker support for some low-level allocations
-	* Fix bug where heap-profiles would sometimes get truncated
-	* New documentation about how to handle common heap leak situations
-	* Use computed includes for hash_map/set: easier config
-	* Added all used .m4 templates to the distribution
-
-Wed Apr 18 16:43:55 2007  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.91 release
-	* Brown-paper-bag bugfix: compilation error on some x86-64 machines
-
-Fri Apr 13 14:50:51 2007  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.90 release
-	* (As the version-number jump hints, this is a major new release:
-	  almost every piece of functionality was rewritten.  I can't do
-	  justice to all the changes, but will concentrate on highlights.)
-	*** USER-VISIBLE CHANGES:
-	* Ability to "release" unused memory added to tcmalloc
-	* Exposed more tweaking knobs via environment variables (see docs)
-	* pprof tries harder to map addresses to functions
-	* tcmalloc_minimal compiles and runs on FreeBSD 6.0 and Solaris 10
-	*** INTERNAL CHANGES:
-	* Much better 64-bit support
-	* Better multiple-processor support (e.g. multicore contention tweaks)
-	* Support for recent kernel ABI changes (e.g. new arg to mremap)
-	* Addition of spinlocks to tcmalloc to reduce contention cost
-	* Speed up tcmalloc by using __thread on systems that support TLS
-	* Total redesign of heap-checker to improve liveness checking
-	* More portable stack-frame analysis -- no more hard-coded constants!
-	* Disentangled heap-profiler code and heap-checker code
-	* Several new unittests to test, e.g., thread-contention costs
-	* Lots of small (but important!) bug fixes: e.g., fixing GetPC on amd64
-	*** KNOWN PROBLEMS:
-	* CPU-profiling may crash on x86_64 (64-bit) systems.  See the README
-	* Profiling/heap-checking may deadlock on x86_64 systems.  See README
-
-Wed Jun 14 15:11:14 2006  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.8 release
-	* Experimental support for remote profiling added to pprof (many)
-	* Fixed race condition in ProfileData::FlushTable (etune)
-	* Better support for weird /proc maps (maxim, mec)
-	* Fix heap-checker interaction with gdb (markus)
-	* Better 64-bit support in pprof (aruns)
-	* Reduce scavenging cost in tcmalloc by capping NumMoveSize (sanjay)
-	* Cast syscall(SYS_mmap); works on more 64-bit systems now (menage)
-	* Document the text output of pprof! (csilvers)
-	* Better compiler support for no-THREADS and for old compilers (csilvers)
-	* Make libunwind the default stack unwinder for x86-64 (aruns)
-	* Somehow the COPYING file got erased.  Regenerate it (csilvers)
-
-Thu Apr 13 20:59:09 2006  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.7 release
-	* Major rewrite of thread introspection for new kernels (markus)
-	* Major rewrite of heap-checker to use new thread tools (maxim)
-	* Add proper support for following data in thread registers (maxim)
-	* Syscall support for older kernels, including _syscall6 (markus)
-	* Support PIC mode (markus, mbland, iant)
-	* Better support for running in non-threaded contexts (csilvers)
-
-Fri Jan 27 14:04:27 2006  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.6 release
-	* More sophisticated stacktrace usage, possibly using libunwind (aruns)
-	* Update pprof to handle 64-bit profiles (dehnert)
-	* Fix GetStackTrace to correctly return top stackframe (sanjay)
-	* Add ANSI compliance for new and new[], including new_handler (jkearney)
-	* More accuracy by reading ELF files directly rather than objdump (mec)
-	* Add readline support for pprof (addi)
-	* Add #includes for PPC (csilvers)
-	* New PC-detection routine for ibook powerpc (asbestoshead)
-	* Vastly improved tcmalloc unittest (csilvers)
-	* Move documentation from /usr/doc to /usr/share/doc
-
-Mon Nov 14 17:28:59 2005  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.5 release
-	* Add va_start/va_end calls around vsnprintf() (csilvers)
-	* Write our own __syscall_return(), since it's not defined
-	  consistently on all 64-bit linux distros (markus)
-
-Wed Oct 26 15:19:16 2005  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.4 release
-	* Decrease fragmentation in tcmalloc (lefevere)
-	* Support for ARM in some of the thread-specific code (markus)
-	* Turn off heap-checker for statically-linked binaries, which
-	  cause error leak reports now (etune)
-	* Many pprof improvements, including a command-line interface (jeff)
-	* CPU profiling now automatically affects all threads in linux 2.6.
-	  (Kernel bugs break CPU profiling and threads in linux 2.4 a bit.)
-	  ProfilerEnable() and ProfilerDisable() are deprecated.  (sanjay)
-	* tcmalloc now correctly intercepts memalign (m3b, maxim)
-	* Syntax fix: added missing va_end()s.  Helps non-gcc compiling (etune)
-	* Fixed a few coredumper bugs: race condition after PTRACE_DETACH,
-	  ignore non-aligned stackframe pointers (markus, menage)
-	* 64-bit cleanup, especially for spinlock code (etune) and mmap (sanjay)
-	* Better support for finding threads in linux (markus)
-	* tcmalloc now tracks those stack traces that allocate memory (sanjay)
-	* Work around a weird setspecific problem (sanjay)
-	* Fix tcmalloc overflow problems when an alloc is close to 2G/4G (sanjay)
-
-Fri Jun 24 18:02:26 2005  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.3 release
-	* Add missing errno include for one of the unittests (csilvers)
-	* Reduce tcmalloc startup memory from 5M to 256K (sanjay)
-	* Add support for mallopt() and mallinfo (sanjay)
-	* Improve stacktrace's performance on some 64-bit systems (etune)
-	* Improve the stacktrace unittest (etune)
-
-Tue May 31 08:14:38 2005  Google Inc. <op...@google.com>
-
-	* google-perftools: version 0.2 release
-	* Use mmap2() instead of mmap(), to map more memory (menage)
-	* Do correct pthread-local checking in heap-checker! (maxim)
-	* Avoid overflow on 64-bit machines in pprof (sanjay)
-	* Add a few more GetPC() functions, including for AMD (csilvers)
-	* Better method for overriding pthread functions (menage)
-	* (Hacky) fix to avoid overwriting profile files after fork() (csilvers)
-	* Crashing bugfix involving dumping heaps on small-stack threads (tudor)
-	* Allow library versions with letters at the end (csilvers)
-	* Config fixes for systems that don't define PATH_MAX (csilvers)
-	* Confix fixes so we no longer need config.h after install (csilvers)
-	* Fix to pprof to correctly read very big cpu profiles (csilvers)
-	* Fix to pprof to deal with new commandline flags in modern gv's
-	* Better error reporting when we can't access /proc/maps (etune)
-	* Get rid of the libc-preallocate code (which could crash on some
-	  systems); no longer needed with local-threads fix (csilvers)
-
-Tue Feb 8 09:57:17 2005  Google Inc. <op...@google.com>
-
-	* google-perftools: initial release:
-	  The google-perftools package contains some utilities to improve
-	  and analyze the performance of C++ programs.  This includes an
-	  optimized thread-caching malloc() and cpu and heap profiling
-	  utilities.