<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/node.git/src/node_internals.h, branch move-debugger-tests</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>src: remove container_of, use CONTAINER_OF</title>
<updated>2013-11-08T21:26:23+00:00</updated>
<author>
<name>Ben Noordhuis</name>
<email>info@bnoordhuis.nl</email>
</author>
<published>2013-11-08T20:44:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=0619467bd349af64c89ac0c325e8663026364bbf'/>
<id>0619467bd349af64c89ac0c325e8663026364bbf</id>
<content type='text'>
CONTAINER_OF was introduced a while ago but was not used consistently
everywhere yet.  This commit fixes that.

Why CONTAINER_OF instead of container_of?  The former makes it crystal
clear that it's a macro, not a function.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CONTAINER_OF was introduced a while ago but was not used consistently
everywhere yet.  This commit fixes that.

Why CONTAINER_OF instead of container_of?  The former makes it crystal
clear that it's a macro, not a function.
</pre>
</div>
</content>
</entry>
<entry>
<title>node: add AsyncListener support</title>
<updated>2013-10-31T21:17:51+00:00</updated>
<author>
<name>Trevor Norris</name>
<email>trev.norris@gmail.com</email>
</author>
<published>2013-09-24T21:12:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=efa62fd9cc817434206d9fd8592b7bbeaa240e9c'/>
<id>efa62fd9cc817434206d9fd8592b7bbeaa240e9c</id>
<content type='text'>
AsyncListener is a JS API that works in tandem with the AsyncWrap class
to allow the user to be alerted to key events in the life cycle of an
asynchronous event. The AsyncWrap class has its own MakeCallback
implementation that core will be migrated to use, and uses state sharing
techniques to allow quicker communication between JS and C++ whether the
async event callbacks need to be called.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
AsyncListener is a JS API that works in tandem with the AsyncWrap class
to allow the user to be alerted to key events in the life cycle of an
asynchronous event. The AsyncWrap class has its own MakeCallback
implementation that core will be migrated to use, and uses state sharing
techniques to allow quicker communication between JS and C++ whether the
async event callbacks need to be called.
</pre>
</div>
</content>
</entry>
<entry>
<title>src: use function to get internal pointer</title>
<updated>2013-10-29T22:09:44+00:00</updated>
<author>
<name>Trevor Norris</name>
<email>trev.norris@gmail.com</email>
</author>
<published>2013-10-29T19:27:24+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=93f75a86bf6c87aa897312740aab61282b0eff1d'/>
<id>93f75a86bf6c87aa897312740aab61282b0eff1d</id>
<content type='text'>
Remove the NODE_{WRAP,UNWRAP} macros and instead use template functions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove the NODE_{WRAP,UNWRAP} macros and instead use template functions.
</pre>
</div>
</content>
</entry>
<entry>
<title>cpplint: disallow if one-liners</title>
<updated>2013-10-16T20:34:19+00:00</updated>
<author>
<name>Fedor Indutny</name>
<email>fedor.indutny@gmail.com</email>
</author>
<published>2013-10-16T16:57:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=2bc30f239be3e56d642eda38df98c656d55b4d86'/>
<id>2bc30f239be3e56d642eda38df98c656d55b4d86</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>src: add multi-context support</title>
<updated>2013-09-06T03:51:42+00:00</updated>
<author>
<name>Ben Noordhuis</name>
<email>info@bnoordhuis.nl</email>
</author>
<published>2013-08-10T22:26:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=756b6222956b5d25b2e7db81f4e79033a3a4d20e'/>
<id>756b6222956b5d25b2e7db81f4e79033a3a4d20e</id>
<content type='text'>
This commit makes it possible to use multiple V8 execution contexts
within a single event loop.  Put another way, handle and request wrap
objects now "remember" the context they belong to and switch back to
that context when the time comes to call into JS land.

This could have been done in a quick and hacky way by calling
v8::Object::GetCreationContext() on the wrap object right before
making a callback but that leaves a fairly wide margin for bugs.

Instead, we make the context explicit through a new Environment class
that encapsulates everything (or almost everything) that belongs to
the context.  Variables that used to be a static or a global are now
members of the aforementioned class.  An additional benefit is that
this approach should make it relatively straightforward to add full
isolate support in due course.

There is no JavaScript API yet but that will be added in the near
future.

This work was graciously sponsored by GitHub, Inc.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit makes it possible to use multiple V8 execution contexts
within a single event loop.  Put another way, handle and request wrap
objects now "remember" the context they belong to and switch back to
that context when the time comes to call into JS land.

This could have been done in a quick and hacky way by calling
v8::Object::GetCreationContext() on the wrap object right before
making a callback but that leaves a fairly wide margin for bugs.

Instead, we make the context explicit through a new Environment class
that encapsulates everything (or almost everything) that belongs to
the context.  Variables that used to be a static or a global are now
members of the aforementioned class.  An additional benefit is that
this approach should make it relatively straightforward to add full
isolate support in due course.

There is no JavaScript API yet but that will be added in the near
future.

This work was graciously sponsored by GitHub, Inc.
</pre>
</div>
</content>
</entry>
<entry>
<title>src: add MakeCallback() that takes an array index</title>
<updated>2013-08-15T17:33:06+00:00</updated>
<author>
<name>Ben Noordhuis</name>
<email>info@bnoordhuis.nl</email>
</author>
<published>2013-08-15T17:22:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=7a3f7780dc9eed1391b389dec82849137ac9d5f5'/>
<id>7a3f7780dc9eed1391b389dec82849137ac9d5f5</id>
<content type='text'>
Internal helper function for dispatching by array index rather than
named property.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Internal helper function for dispatching by array index rather than
named property.
</pre>
</div>
</content>
</entry>
<entry>
<title>src: fix build break from generic macro name</title>
<updated>2013-08-12T19:54:49+00:00</updated>
<author>
<name>Trevor Norris</name>
<email>trev.norris@gmail.com</email>
</author>
<published>2013-08-12T19:54:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=35f789b02795ed8dd177b65f80b53f408dc7fe09'/>
<id>35f789b02795ed8dd177b65f80b53f408dc7fe09</id>
<content type='text'>
WRAP is too generic a macro name and causes the build to fail from
conflicts. They have been prepended with NODE_.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
WRAP is too generic a macro name and causes the build to fail from
conflicts. They have been prepended with NODE_.
</pre>
</div>
</content>
</entry>
<entry>
<title>src: centralize class wrap/unwrap</title>
<updated>2013-08-12T18:49:53+00:00</updated>
<author>
<name>Trevor Norris</name>
<email>trev.norris@gmail.com</email>
</author>
<published>2013-08-06T00:58:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=756ae2c5360b7ab64649cb7587242a2fbd8dc95d'/>
<id>756ae2c5360b7ab64649cb7587242a2fbd8dc95d</id>
<content type='text'>
While almost all cases were handled by simple WRAP/UNWRAP macros, this
extends those to cover all known occurrences.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While almost all cases were handled by simple WRAP/UNWRAP macros, this
extends those to cover all known occurrences.
</pre>
</div>
</content>
</entry>
<entry>
<title>domain: share object and state with native land</title>
<updated>2013-08-09T23:54:45+00:00</updated>
<author>
<name>Trevor Norris</name>
<email>trev.norris@gmail.com</email>
</author>
<published>2013-08-07T00:01:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=3f5d5847e2f4f7e6d6f6557badda63b4cbf83e45'/>
<id>3f5d5847e2f4f7e6d6f6557badda63b4cbf83e45</id>
<content type='text'>
Change process.domain to use a getter/setter and access that property
via an array index. These are much faster to get from c++, and it can be
passed to _setupDomainUse and stored as a Persistent&lt;Array&gt;.

InDomain() and GetDomain() as trivial ways to access the domain
information in the native layer. Important because we'll be able to
quickly access if a domain is active. Instead of just whether the domain
module has been loaded.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change process.domain to use a getter/setter and access that property
via an array index. These are much faster to get from c++, and it can be
passed to _setupDomainUse and stored as a Persistent&lt;Array&gt;.

InDomain() and GetDomain() as trivial ways to access the domain
information in the native layer. Important because we'll be able to
quickly access if a domain is active. Instead of just whether the domain
module has been loaded.
</pre>
</div>
</content>
</entry>
<entry>
<title>src: use v8::String::NewFrom*() functions</title>
<updated>2013-08-09T09:44:50+00:00</updated>
<author>
<name>Ben Noordhuis</name>
<email>info@bnoordhuis.nl</email>
</author>
<published>2013-08-07T19:50:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/node.git/commit/?id=f674b09f40d22915e15b6968aafc5d25ac8178a2'/>
<id>f674b09f40d22915e15b6968aafc5d25ac8178a2</id>
<content type='text'>
* Change calls to String::New() and String::NewSymbol() to their
  respective one-byte, two-byte and UTF-8 counterparts.

* Add a FIXED_ONE_BYTE_STRING macro that takes a string literal and
  turns it into a v8::Local&lt;v8::String&gt;.

* Add helper functions that make v8::String::NewFromOneByte() easier to
  work with. Said function expects a `const uint8_t*` but almost every
  call site deals with `const char*` or `const unsigned char*`. Helps
  us avoid doing reinterpret_casts all over the place.

* Code that handles file system paths keeps using UTF-8 for backwards
  compatibility reasons. At least now the use of UTF-8 is explicit.

* Remove v8::String::NewSymbol() entirely. Almost all call sites were
  effectively minor de-optimizations. If you create a string only once,
  there is no point in making it a symbol. If you are create the same
  string repeatedly, it should probably be cached in a persistent
  handle.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Change calls to String::New() and String::NewSymbol() to their
  respective one-byte, two-byte and UTF-8 counterparts.

* Add a FIXED_ONE_BYTE_STRING macro that takes a string literal and
  turns it into a v8::Local&lt;v8::String&gt;.

* Add helper functions that make v8::String::NewFromOneByte() easier to
  work with. Said function expects a `const uint8_t*` but almost every
  call site deals with `const char*` or `const unsigned char*`. Helps
  us avoid doing reinterpret_casts all over the place.

* Code that handles file system paths keeps using UTF-8 for backwards
  compatibility reasons. At least now the use of UTF-8 is explicit.

* Remove v8::String::NewSymbol() entirely. Almost all call sites were
  effectively minor de-optimizations. If you create a string only once,
  there is no point in making it a symbol. If you are create the same
  string repeatedly, it should probably be cached in a persistent
  handle.
</pre>
</div>
</content>
</entry>
</feed>
