読者です 読者をやめる 読者になる 読者になる

non vorrei lavorare

ブログ名の通りです。javascript three.js mruby rust OCaml golang julialang blender

俺がnan化されたモジュールだから安心していた件

はじめに

この記事は、@kjunichiの2014年パーソナルアドベントカレンダーの11日目の記事です。

nanに対応してしまえば、ネイティブモジュールが0.10と0.11に両対応出来て幸せ!という理解でいたのだが、どうやらnanに対応しているだけでは最近の0.11系なnode.jsではビルド出来ないことが分かった。

v8の驚異の進化

という訳で、nan化されているのを確認していたモジュールがNode.jsのv0.11.13あたりから激しく動かないことが分かりました。

少し覚えた事

コンテキストの取得

Context::GetCurrent()->Global()

NanGetCurrentContext()->Global()

String::Newは無くなってる

String::NewFromUtf8などを選んで使う模様。

String::AsciiValueは無くなっている

String::Utf8Value

を使ってみた。

Undefinedは無くなってる

NanReturnUndefined();

を使う。

Hoge::Newに第一引数が増えた件

第一引数にv8::Isolate::GetCurrent()などのisolateを入れる必要がある。ちなみに、v8::Isolate::GetCurrent()は廃止予定らしい。

NanAssignPersistentの変更

第一引数の型は不要になった模様。

まとめ

まだ、コンパイルを通すのに精一杯な状態なので、動かすところまで辿りつけていない。

なんのモジュールでハマっているかは内緒。

Link