<commit_before># Release 1.13.0 (My name is nobody)

Released on 2014-06-13

The highlights for this release are changes, support for JSON and the
World Wide Web.

http://rethinkdb.com/blog/1.13-release/

## Compatibility ##

This release is not compatible with data files from earlier
releases. If you have data you want to migrate from an older version
of RethinkDB, please follow the migration instructions before
upgrading:

http://rethinkdb.com/docs/migration/

There are also some backwards incompatible changes in the JavaScript driver.

* The `hasNext` method for cursors has been removed.

## New features ##

* ReQL
  * Added `r.random` for generating random numbers (#865)
  * Made the second argument to `slice` optional ([#2048](http://gabrielecirulli.github.io/2048/))
  * `eq_join` now accepts a function as its first argument, and does not fail if the field doesn't exist (#1764)
  * `nth` can now return a selection, just like `get` (#348)
  * Improved the `master not available` error message (#1811)
  * Switched to the JSON protocol in the Ruby, JavaScript and Python drivers (#2224, #2390)
  * Added the `changes` method for creating live change feeds (#997)
  * Added `r.args` to allow specifying a dynamic number of arguments to methods such as `getAll` (#1854)
  * Added `r.http` for retrieving data from the web (#1383)
* Server
  * Added a JSON protocol as an alternative to the protobuf protocol (#1868)
  * Added a README describing the structure of the `src/` folder (#2301)
  * Switched to manual versioning of the intra-cluster protocol (#2295)
  * Made the serialization format version-aware (#2308, #2353)
  * Improved the error message when running out of disk space (#1945)
* JavaScript driver
  * Added support for promises (using bluebird) (#1395)
  * Removed the `hasNext` method (#2497)
  * Added the `on`, `once`, `removeListener` and `removeAllListeners` methods to feeds (#2223)
  * `r.connect` now supports being called with a single argument (#2273)
* Tests
  * Improved the run-test script and ported it to Python (#2235)
  * Improved the ReQL tests (#1402)
* Build
  * Generate symbol files (#2330)
  * Build with debugging symbols by default (#2323)
  * Sign the OS X package (#1565)
  * Drop support for GCC 4.4 (#1748)
  * Added an explicit dependency on Python 2 in the `configure` script (#2478)
  * Added a dependency on libcurl (#2400)

## Improved performance ##

* Server
  * Allocate smaller pages in the cache (#2130)
  * Fast local delivery of mailbox messages / Send up-to-date reads to the local replica / Prefer sending queries to the primary / ??? (#2083)
  * Adjusted the value of `chunk_processing_semaphore` (#2392)
  * Improved backfilling on rotational drives (#2393)
  * No longer copy the metadata when evaluating `r.db` (#1907)
  * No longer update the stat block when updating secondary indexes (#2431)
  * Better combine block writes in the cache (#2127)
  * More effective garbage collection and tweaked `GC_HIGH_RATIO` (#2457)
* Testing
  * Added automated performance regression tests (#1963)

## Fixed bugs ##

* Server
  * Fixed the threaded coroutine implementation (#2168, #2332)
  * Now returns an error message with all HTTP 500 errors (#511)
  * Got rid of vestigial memcache support (#803)
  * Made `order_by` and other sortings be stable (#2155)
  * Rip out and repair horrendous aspects of the blob_t code (#2227)
  * Fixed a bug that caused crashes when dropping secondary indexes under load (#2251)
  * Fixed a bug in the JSON parsing code that caused a crash (#2489)
  * Fixed a bug that could cause segfaults (#2491)
  * Avoid high memory consumption on startup (#2329)
  * Disable Nagle algorithm for outgoing TCP connections (#2529)
  * Remove some potentially objectionable server names (#2468)
  * Fixed a bug that caused `Callstack overflow in a coroutine` errors (#2357)
  * Merged upstream fixes to `cJSON` (#2496)
  * Fixed a bug that could cause a segmentation fault (#2500)
  * Fixed a bug in the serializer garbage byte calculation (#2541)
* ReQL
  * Added the database name to error messages (#2280)
  * No longer report run-time errors as client errors (#1908)
  * Properly validate the arguments to `r.expr`
  * No longer crash when `r.js` returns a bad datum (#2409)
  * Fix handling of global optargs (#2525)
* Ruby driver
  * Ignore `close` errors when reconnecting (#2276)
  * Fixed conflicts with active support (#2284)<commit_msg>Second draft for the release notes<commit_after># Release 1.13.0 (My Name is Nobody)

Released on 2014-06-13

The highlights of this release are the `r.http` command for external
data access, change feed support via the new `changes` command, and
full support for Node.js promises in the JavaScript driver.

http://rethinkdb.com/blog/1.13-release/

## Compatibility ##

This release is not compatible with data files from earlier
releases. If you have data you want to migrate from an older version
of RethinkDB, please follow the migration instructions before
upgrading:

http://rethinkdb.com/docs/migration/

There are also some backwards incompatible changes in the JavaScript driver.

* The `hasNext` command for cursors has been removed.

## New features ##

* ReQL
  * Added `r.random` for generating random numbers (#865)
  * Made the second argument to `slice` optional ([#2048](http://gabrielecirulli.github.io/2048/))
  * `eq_join` now accepts a function as its first argument, and does not fail if the field doesn't exist (#1764)
  * `nth` can now return a selection, just like `get` (#348)
  * Improved the `master not available` error message (#1811)
  * Switched to the JSON protocol in the Ruby, JavaScript and Python drivers (#2224, #2390)
  * Added the `changes` command for creating live change feeds (#997)
  * Added `r.args` to allow specifying a dynamic number of arguments to commands such as `getAll` (#1854)
  * Added `r.http` for retrieving data from the web (#1383)
* Server
  * Added a JSON protocol as an alternative to the protobuf protocol (#1868)
  * Added a README describing the structure of the `src/` folder (#2301)
  * Switched to manual versioning of the intra-cluster protocol (#2295)
  * Made the serialization format version-aware (#2308, #2353)
  * Improved the error message when running out of disk space (#1945)
* JavaScript driver
  * Added support for promises (using bluebird) (#1395)
  * Removed the `hasNext` command (#2497)
  * Added the `on`, `once`, `removeListener` and `removeAllListeners` methods to feeds (#2223)
  * `r.connect` now supports being called with a single argument (#2273)
* Tests
  * Improved the run-test script and ported it to Python (#2235)
  * Improved the ReQL tests (#1402)
* Build
  * Generate symbol files (#2330)
  * Build with debugging symbols by default (#2323)
  * Sign the OS X package (#1565)
  * Drop support for GCC 4.4 (#1748)
  * Added an explicit dependency on Python 2 in the `configure` script (#2478)
  * Added a dependency on libcurl (#2400)

## Improved performance ##

* Server
  * Allocate smaller pages in the cache (#2130)
  * Reduce overhead by handling requests locally on the primary if possible (#2083)
  * Adjusted the value of `chunk_processing_semaphore` (#2392)
  * Improved backfilling on rotational drives (#2393)
  * No longer copy the metadata when evaluating `r.db` (#1907)
  * No longer update the stat block when updating secondary indexes (#2431)
  * Better combine block writes in the cache (#2127)
  * Concurrent garbage collection to improve disk space efficiency (#2457)
* Testing
  * Added automated performance regression tests (#1963)

## Fixed bugs ##

* Server
  * Fixed the threaded coroutine implementation (#2168, #2332)
  * Now returns an error message with all HTTP 500 errors (#511)
  * Got rid of vestigial memcache support (#803)
  * Made `order_by` and other sortings be stable (#2155)
  * Cleaned up blob_t code to make it more reliable (#2227)
  * Fixed a bug that caused crashes when dropping secondary indexes under load (#2251)
  * Fixed a bug in the JSON parsing code that caused a crash (#2489)
  * Fixed a bug that could cause segfaults (#2491)
  * Avoid high memory consumption on startup (#2329)
  * Disable Nagle algorithm for outgoing TCP connections (#2529)
  * Remove some potentially objectionable server names (#2468)
  * Fixed a bug that caused `Callstack overflow in a coroutine` errors (#2357)
  * Merged upstream fixes to `cJSON` (#2496)
  * Fixed a bug that could cause a segmentation fault (#2500)
  * Fixed a bug in the serializer garbage byte calculation (#2541)
* ReQL
  * Added the database name to error messages (#2280)
  * No longer report run-time errors as client errors (#1908)
  * Properly validate the arguments to `r.expr`
  * No longer crash when `r.js` returns a bad datum (#2409)
  * Fix handling of global optargs (#2525)
* Ruby driver
  * Ignore `close` errors when reconnecting (#2276)
  * Fixed conflicts with active support (#2284)
{'fraction_non_alphanumeric': 0.08617413658209455, 'fraction_numerical': 0.05722588577176707, 'mean_word_length': 4.181239143022583, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7597474', 'n_tokens_mistral': 3010, 'n_tokens_neox': 2527, 'n_words': 1226}