mirror of https://github.com/lukechilds/node.git
Ryan Dahl
14 years ago
7 changed files with 137 additions and 12 deletions
@ -0,0 +1,94 @@ |
|||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
||||
|
<html xmlns="http://www.w3.org/1999/xhtml"> |
||||
|
<head> |
||||
|
<style type="text/css"> |
||||
|
ul { |
||||
|
padding: 0; |
||||
|
margin: 0; |
||||
|
} |
||||
|
</style> |
||||
|
<link type="text/css" rel="stylesheet" href="pipe.css" /> |
||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> |
||||
|
<title>node v0.4 announcement</title> |
||||
|
</head> |
||||
|
<body> |
||||
|
<h2>Second Stable Branch of Node released</h2> |
||||
|
|
||||
|
<p> |
||||
|
<a |
||||
|
href="https://github.com/ry/node/wiki/Migrating-from-v0.2-to-v0.3">Wiki |
||||
|
page detailing API changes between v0.4 and v0.2</a> |
||||
|
|
||||
|
<p> |
||||
|
Major changes since v0.2: |
||||
|
|
||||
|
<ul> |
||||
|
<li> Major overhaul of TLS/SSL system. Previously the binding to |
||||
|
OpenSSL was heavily interwoven into the socket code. This binding was |
||||
|
reworked to present each connection as a pair of "streams" instead: a |
||||
|
duplex encrypted stream and a duplex cleartext stream. The encrypted |
||||
|
stream is piped to a raw TCP socket using the general purpose |
||||
|
<code>Stream.prototype.pipe()</code> method. Functionality was |
||||
|
enhanced and API simplified. |
||||
|
|
||||
|
<li> Cheaper <code>Buffer</code> allocation. Node uses |
||||
|
<code>Buffer</code> objects in many places - it was noticed that they |
||||
|
were relatively slow to allocate and difficult to garbage collect. The |
||||
|
implementation changed to use pure javascript objects instead of |
||||
|
an <code>ObjectWrap</code> which improved performance. |
||||
|
|
||||
|
<li> With a good amount of experience now, some modifications to the |
||||
|
module loading system were made to better support package managers. |
||||
|
In particular, NPM was forced to resort to deep symlinks and "shim" |
||||
|
modules to work around missing features in <code>require()</code>. The main |
||||
|
changes are: |
||||
|
<ol> |
||||
|
<li><code>require()</code> calls realpath. That is, |
||||
|
it resolves symbolic links. This allows symlinked modules to make |
||||
|
relative requires. |
||||
|
|
||||
|
<li><code>require()</code> now has a primitive understanding of |
||||
|
<code>package.json</code>. It looks for the <code>main</code> |
||||
|
script. This allows <code>require()</code> to work on package |
||||
|
directories directly. |
||||
|
|
||||
|
<li>A specially named directory, <code>node_modules/</code>, is |
||||
|
searched in the current directory for any modules. This will |
||||
|
hopefully encourage programmers to bundle modules rather than |
||||
|
rely on a global namespace. |
||||
|
</ol> |
||||
|
Read more about these features in <a |
||||
|
href="https://github.com/ry/node/blob/01a864a29d64119054401784cd9255c3a813bdbc/doc/api/modules.markdown">the |
||||
|
module documentation</a>. |
||||
|
|
||||
|
<li> A half-complete but good start a native windows build with MinGW |
||||
|
is underway by Bert Builder. Build instructions can be found <a |
||||
|
href="https://github.com/ry/node/wiki/Building-node.js-on-mingw">on |
||||
|
the wiki</a>. |
||||
|
|
||||
|
<li> Node upgraded to the latest version of V8, <code>v3.1.2</code>. |
||||
|
This includes much work including V8's new compilation infrastructure |
||||
|
and a GDB plugin on Linux. |
||||
|
Read <a |
||||
|
href="https://github.com/ry/node/blob/583f2e599962f2664dbaafa0ae98a8d6c1242441/deps/v8/ChangeLog">the |
||||
|
full V8 ChangeLog</a>. |
||||
|
|
||||
|
<li>A new built-in client for V8's debugger was added to Node. It is |
||||
|
still very primitive but usable for simple task. There is a <a |
||||
|
href="http://vimeo.com/19465332">small introduction video</a> and |
||||
|
some <a |
||||
|
href="https://github.com/ry/node/blob/01a864a29d64119054401784cd9255c3a813bdbc/doc/api/debugger.markdown">documentation</a>. |
||||
|
|
||||
|
<li>An <code>os</code> module was added by Brian White which exposes |
||||
|
a lot of basic but useful system information: <code>os.cpus(), |
||||
|
os.freemem(), os.totalmem(), os.loadavg()</code> |
||||
|
|
||||
|
<li> And, of course, many of bug fixes. See the |
||||
|
<a |
||||
|
href="https://github.com/ry/node/blob/01a864a29d64119054401784cd9255c3a813bdbc/ChangeLog">full |
||||
|
changelog</a>. |
||||
|
|
||||
|
</ul> |
||||
|
|
||||
|
</body> |
||||
|
</html> |
Loading…
Reference in new issue