[split] significant whitespace

RB_ID=66198
[split] cowboy OWNERS file change

RB_ID=66202
[split] that whitespace change was wrong

RB_ID=66204
[split] util-core: Add efficient base 64 for longs

This specialized implementation is for use in cache keys, where we
want an ASCII representation, but we also want space-efficiency. This
implementation is not compatible with converting to a byte array and
then converting directly to base 64. It uses the base 64 alphabet, but
it represents the number as it would be represented in any other base,
from most to least significant digit, with leading zeros stripped.

Resulting maximum output String lengths:

  base 64: 11
  base 16: 16
  base 10: 20

Micro-benchmarked, this implementation is about as CPU efficient
and generates less garbage than converting to base 10 or base 16.

  base 64 (Base64Long.toBase64): 73.nanoseconds, 63.9 bytes of garbage
  base 16 (Long.toHexString)   : 67.nanoseconds, 208.0 bytes of garbage
  base 10 (Long.toString)      : 66.nanoseconds, 95.6 bytes of garbage

These measurements came from the Benchmark module from Decider's
tests.

RB_ID=66405
[split] Add Future.None

This is a helper for a common pattern in application code where you know that the
future need not be executed and its ultimate optional value will be missing.
Once this is in the main library, we can remove many places where this pattern is
already in use.

RB_ID=67072
[split] Use new git-review with simplified OWNERS/GROUPS

RB_ID=67049
[split] Merge commit 'bf7ee4b8c6e4dc8fae87a871596bfcdd13ab69ff'

Conflicts:
	util/OWNERS
	util/project/Build.scala
	util/util-core/src/test/scala/com/twitter/util/FutureSpec.scala
	util/util-eval/src/main/scala/com/twitter/util/Eval.scala
[split] JDK7 more stringently enforces requirements on the manifest for class transformers.

RB_ID=67765
[split] Util: Add pom wiring for class preloader subproject.

RB_ID=67644
[split] util: 4.0.3, stabilized

RB_ID=68041
TBR=true
[split] finagle 4.0.5

RB_ID=68078
TBR=true
[split] Bump all versions to include -SNAPSHOT (if they didn't already) This ensures future CI builds don't publish over what we published this afternoon.

RB_ID=68151
[split] util, finagle, ostrich => port to scala 2.9.2, bump majors

RB_ID=68247
TBR=true
[split] void -> voided

RB_ID=63215
[split] util 5.0.4, finagle 5.0.2

RB_ID=68767
[split] util-jvm: gc monitoring

Provide GC monitoring through sampling of performance counters. We
provide two interfaces for this:

  /**
   * Invoke `f` for every Gc event in the system. This samples `snap`
   * in order to synthesize a unique stream of Gc events. It's
   * important that `f` is not constructed so that it's likely to, by
   * itself, trigger another Gc event, causing an infinite loop. The
   * same is true of the internal datastructures used by foreachGc,
   * but they are svelte.
   */
  def foreachGc(f: Gc => Unit)

 and one that builds on top of it:

   /**
   * Monitors Gcs using `foreachGc`, and returns a function to query
   * its timeline (up to `buffer` in the past). Querying is cheap, linear
   * to the number of Gcs that happened since the queried time. The
   * result is returned in reverse chronological order.
   */
  def monitorGcs(bufferFor: Duration): Time => Seq[Gc]

RB_ID=69136
[split] Use a CountDownLatch rather than an AbstractBlockingQueue in IVar

RB_ID=63967
[split] Use specs for scala 2.9.2

Eric Torreborre cut a specs for scala 2.9.2 release for us last Friday.

RB_ID=69307
[split] kill com.twitter.concurrent.Channel We're a sweetspot and can finally kill it: we've bumped major, and nothing downstream uses it (that has been converted to 2.9).

The only downstream dep at this point is birdfeeder, but as far as I
can tell this is obsolete, too, and if resurrected should be converted
to offer/broker.

RB_ID=69438
[split] fixes util-logging handling of relative paths in filename logs

rotateCount inside util-logging fails if the filename used for
a log is relative. This change is a fix plus a new test that
fails if the fix isn't applied.

RB_ID=69445