<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/node.git/src/node_buffer.h, branch v0.10-merge</title>
<subtitle>github.com: joyent/node.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/'/>
<entry>
<title>buffer: DRY string encoding using StringBytes</title>
<updated>2013-05-14T20:51:42+00:00</updated>
<author>
<name>isaacs</name>
<email>i@izs.me</email>
</author>
<published>2013-05-02T17:44:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=119354f7356de47cb36b5a1cebf9423e89c7f10b'/>
<id>119354f7356de47cb36b5a1cebf9423e89c7f10b</id>
<content type='text'>
This also templatizes the Buffer::*Slice functions, and the template
function probably cannot be safely used outside of Node.  However, it
also SHOULD not be used outside of Node, so this is arguably a feature
as well as a caveat.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This also templatizes the Buffer::*Slice functions, and the template
function probably cannot be safely used outside of Node.  However, it
also SHOULD not be used outside of Node, so this is arguably a feature
as well as a caveat.
</pre>
</div>
</content>
</entry>
<entry>
<title>buffer: optimize Buffer.prototype.write(s, 'hex')</title>
<updated>2013-02-02T00:01:42+00:00</updated>
<author>
<name>Ben Noordhuis</name>
<email>info@bnoordhuis.nl</email>
</author>
<published>2013-02-01T23:40:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=cd42f56178c929da84046e750b9306b5656e3144'/>
<id>cd42f56178c929da84046e750b9306b5656e3144</id>
<content type='text'>
Move the implementation to C++ land. This is similar to commit 3f65916
but this time for the write() function and the Buffer(s, 'hex')
constructor.

Speeds up the benchmark below about 24x (2.6s vs 1:02m).

  var s = 'f';
  for (var i = 0; i &lt; 26; ++i) s += s;  // 64 MB
  Buffer(s, 'hex');
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move the implementation to C++ land. This is similar to commit 3f65916
but this time for the write() function and the Buffer(s, 'hex')
constructor.

Speeds up the benchmark below about 24x (2.6s vs 1:02m).

  var s = 'f';
  for (var i = 0; i &lt; 26; ++i) s += s;  // 64 MB
  Buffer(s, 'hex');
</pre>
</div>
</content>
</entry>
<entry>
<title>buffer: optimize Buffer.prototype.toString('hex')</title>
<updated>2013-02-01T22:07:17+00:00</updated>
<author>
<name>Ben Noordhuis</name>
<email>info@bnoordhuis.nl</email>
</author>
<published>2013-02-01T21:35:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=3f65916fa995c74b0db2064911fe76d18d3509b6'/>
<id>3f65916fa995c74b0db2064911fe76d18d3509b6</id>
<content type='text'>
Move the implementation to C++ land. The old JS implementation used
string concatenation, was dog slow and consumed copious amounts of
memory for large buffers. Example:

  var buf = Buffer(0x1000000);  // 16 MB
  buf.toString('hex')           // Used 3+ GB of memory.

The new implementation operates in O(n) time and space.

Fixes #4700.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move the implementation to C++ land. The old JS implementation used
string concatenation, was dog slow and consumed copious amounts of
memory for large buffers. Example:

  var buf = Buffer(0x1000000);  // 16 MB
  buf.toString('hex')           // Used 3+ GB of memory.

The new implementation operates in O(n) time and space.

Fixes #4700.
</pre>
</div>
</content>
</entry>
<entry>
<title>buffer: floating point read/write improvements</title>
<updated>2013-01-16T18:17:20+00:00</updated>
<author>
<name>Trevor Norris</name>
<email>trev.norris@gmail.com</email>
</author>
<published>2012-12-22T21:06:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=22b84e6216b86f9d5178e7d8a4d1a577209b7008'/>
<id>22b84e6216b86f9d5178e7d8a4d1a577209b7008</id>
<content type='text'>
Improvements:
* floating point operations are approx 4x's faster
* Now write quiet NaN's
* all read/write on floating point now done in C, so no more need for
  lib/buffer_ieee754.js
* float values have more accurate min/max value checks
* add additional benchmarks for buffers read/write
* created benchmark/_bench_timer.js which is a simple library that
  can be included into any benchmark and provides an intelligent tracker
  for sync and async tests
* add benchmarks for DataView set methods
* add checks and tests to make sure offset is greater than 0
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Improvements:
* floating point operations are approx 4x's faster
* Now write quiet NaN's
* all read/write on floating point now done in C, so no more need for
  lib/buffer_ieee754.js
* float values have more accurate min/max value checks
* add additional benchmarks for buffers read/write
* created benchmark/_bench_timer.js which is a simple library that
  can be included into any benchmark and provides an intelligent tracker
  for sync and async tests
* add benchmarks for DataView set methods
* add checks and tests to make sure offset is greater than 0
</pre>
</div>
</content>
</entry>
<entry>
<title>src: use static_cast where appropriate</title>
<updated>2013-01-04T23:16:23+00:00</updated>
<author>
<name>Ben Noordhuis</name>
<email>info@bnoordhuis.nl</email>
</author>
<published>2013-01-04T23:11:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=5664dd2fc1e872a850c2891ee11f86e98b69106d'/>
<id>5664dd2fc1e872a850c2891ee11f86e98b69106d</id>
<content type='text'>
Use static_cast instead of reinterpret_cast when casting from void*
to another type.

This is mostly an aesthetic change but may help catch bugs when the
affected code is modified.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use static_cast instead of reinterpret_cast when casting from void*
to another type.

This is mostly an aesthetic change but may help catch bugs when the
affected code is modified.
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "buffer: allocate memory with mmap()"</title>
<updated>2012-12-17T18:47:17+00:00</updated>
<author>
<name>isaacs</name>
<email>i@izs.me</email>
</author>
<published>2012-12-17T16:45:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=6c5356bfe26abcac24276681805744ea2d2d3af3'/>
<id>6c5356bfe26abcac24276681805744ea2d2d3af3</id>
<content type='text'>
Also Revert "buffer: use MAP_ANON, fix OS X build"

This reverts commit ddb15603e74e9aa865f3e1099dc2cc5886f9c46e.
This reverts commit 2433ec8276838e90136669d5b1215ba597f15fdd.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also Revert "buffer: use MAP_ANON, fix OS X build"

This reverts commit ddb15603e74e9aa865f3e1099dc2cc5886f9c46e.
This reverts commit 2433ec8276838e90136669d5b1215ba597f15fdd.
</pre>
</div>
</content>
</entry>
<entry>
<title>buffer: allocate memory with mmap()</title>
<updated>2012-12-16T09:19:09+00:00</updated>
<author>
<name>Ben Noordhuis</name>
<email>info@bnoordhuis.nl</email>
</author>
<published>2012-11-18T00:14:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=2433ec8276838e90136669d5b1215ba597f15fdd'/>
<id>2433ec8276838e90136669d5b1215ba597f15fdd</id>
<content type='text'>
Work around an issue with the glibc malloc() implementation where memory blocks
are never returned to the operating system when they are allocated with brk()
and have overlapping lifecycles.

Fixes #4283.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Work around an issue with the glibc malloc() implementation where memory blocks
are never returned to the operating system when they are allocated with brk()
and have overlapping lifecycles.

Fixes #4283.
</pre>
</div>
</content>
</entry>
<entry>
<title>buffer: update constructor prototype</title>
<updated>2012-09-13T14:31:04+00:00</updated>
<author>
<name>Pavel Lang</name>
<email>langpavel@phpskelet.org</email>
</author>
<published>2012-09-13T06:31:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=7ab4a77d6fdb2b98b3c34fda9d001ed9d91297c7'/>
<id>7ab4a77d6fdb2b98b3c34fda9d001ed9d91297c7</id>
<content type='text'>
Change Buffer::New(char*, size_t) to Buffer::New(const char*, size_t).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change Buffer::New(char*, size_t) to Buffer::New(const char*, size_t).
</pre>
</div>
</content>
</entry>
<entry>
<title>buffer: change prototype of Data() and Length()</title>
<updated>2012-09-11T16:33:30+00:00</updated>
<author>
<name>Ben Noordhuis</name>
<email>info@bnoordhuis.nl</email>
</author>
<published>2012-09-11T16:33:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=c8c638a84195e5571f4ece881375909e1f4b82a8'/>
<id>c8c638a84195e5571f4ece881375909e1f4b82a8</id>
<content type='text'>
Make Buffer:Data() and Buffer::Length() accept a Value instead of an Object.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make Buffer:Data() and Buffer::Length() accept a Value instead of an Object.
</pre>
</div>
</content>
</entry>
<entry>
<title>buffer: fix signedness compiler warnings</title>
<updated>2012-03-30T12:52:38+00:00</updated>
<author>
<name>Ben Noordhuis</name>
<email>info@bnoordhuis.nl</email>
</author>
<published>2012-03-30T12:49:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=b82b4f2993b5feaa51ce8edce60d945a34b88d26'/>
<id>b82b4f2993b5feaa51ce8edce60d945a34b88d26</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
