Nodejs 0.8 on the Edge!

nodejs的開發小組在幾天前也正式釋出最新的實驗版本0.7.8,除了例行性的bugfix以及性能優化之外,可以偷偷發現幾個未來的新功能也悄悄放進來了 :p

有關新版號0.8.x的初步規劃,可以參考社群討論的文章所提到的內容:v0.8 Roadmap

裡面有提到幾項0.8中會做的改變及增加的功能: Change nodejs build tool from WAF to GYP

WAF 是目前nodejs中用來建構模組的工具,當你的nodejs module有包含到C or C++之類需要編譯的動作的時候,你可以發現有個wscript的檔案,就是node-waf的設定檔,可以讓利用npm安裝模組時一併處理好編譯、建構的動作(不過其實我也沒寫過,可以參考一下強者的範例 XD)

不過這不是重點(喂!!

因為nodejs即將在0.8中從原有的WAF改為GYP,似乎GYP對於多平台有更好的兼容性,不過GYP的文件沒有WAF來的齊全 ,所以可能要參考一下一些教學文,可以協助上手 :p

目前gyp還沒有放進node,想嘗鮮的話可以下載master自行編譯,或者先試著用node-gyp這個模組

Isolates 原本預計加入的功能,要把child_process.fork()的行為改為thread,而不是process,希望可以讓fork的行為更有效率、減低資源的使用,不過後來影響的層面太大被移掉了,可能會移到未來的版本中

Domains Domain應該算是0.8中相當重要的功能之一,不過現在我還有點搞不懂到底能拿來做甚麼(大誤)。目前從文件test case看來,有點像是透過同一個domain可以同時處理不同的IO行為,譬如Error Handle,透過把事件加到同一個domain裡,當事件被觸發或是error的時候,domain物件就會被呼叫,所以應該可以集中處理同一domain的事件。

不太確定有沒有誤會它的用法,不過目前沒有太多的範例,如果有錯誤的話麻煩指點我一下...0rz

Better allocator 這個是windows下的問題,基本上無視(誤

Addons 看起來是跟第一點提到的GYP有關連,要改善在不同平台上都能夠順利編譯出原生module。目前有切出一個node-gyp的專案來處理這部份的問題(之後應該會merge進node?? 不負責猜測XD),有興趣也可以直接看那邊的範例及文件。

看到node的社群不斷向前邁進,參與者也增加不少的情況,實在是讓人熱血沸騰(無理由自嗨 xDD)既然看到預定功能已經放進0.7的分支中,看來0.8應該也在不遠處了 :p

PS: 順帶一提,npm上的modules數量也已經超過9000個了!大賀!

Ferrari Lee

Read more posts by this author.

Subscribe to Ferrari != Ferrari

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!