You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Over the past couple of months, we have implemented support for BigInts in V8, as currently specified by this proposal, to be included in a future version of ECMAScript. The following post tells the story of our adventures. TL;DR #As a JavaScript programmer, you now[1] have integers with arbitrary[2] precision in your toolbox: const a = 2172141653n; const b = 15346349309n; a * b; // → 333344445555
概要 新しいプリミティブ型であるSIMD型及びAPIがV8で実装されてきている。 SIMDとは、複数の数値を並べて1つの値としたようなデータ型である。 これはCPUによって効率良くサポートされているデータ型であり、 1 + 2 -> 3 をするように [ 1, 2, 3, 4 ] + [ 2, 3, 4, 5 ] -> [ 3, 5, 7, 9 ] を1回の演算ですることができる。 つまり、沢山の数値を扱う場面でSIMD型を利用することで、何倍ものパフォーマンス向上が期待できる。 (※WASMに入ることとなり、ESからは一旦取り除かれました。) 実装される型 float32x4 32bit浮動小数点型を4つ並べた128bitのデータ型 float32はJSの通常のnumberであるところのfloat64より精度が低い int32x4 32bit符号付き整数型を4つ並べた128bitのデータ
概要 待ち焦がれた人も多いことだろう。ES2015の一番の目玉機能とも言えるクラス構文が、ついにV8でサポートされた。 Class構文は、『関数(コンストラクタ)定義』+『.prototypeへのメソッド定義』の糖衣構文である。 JSで今まで様々に工夫されてきたクラスの書き方を、綺麗に統一してくれる可能性を秘めている。 クラスを作る 従来、Catクラスを作ろうとした場合このように書いてきた。 function Cat(name) { this.name = name } Cat.prototype.meow = function () { alert( this.name + 'はミャオと鳴きました' ) } しかしこの書き方だとどうしても、コンストラクタとメソッドの定義が分離されているため、クラスとしてまとまりがなく分かりづらく感じる。 メソッドが増えてきた時も、Cat.prototyp
概要 サロゲートペアを考慮して、String.fromCharCodeとString.prototype.charCodeAtと同じ働きをする String.fromCodePointとString.prototype.codePointAtメソッドが実装された。 例 var str = '𠮟る' str.length // 3 str[0] // (文字にならない) str[1] // (文字にならない) str[2] // "る" str.charCodeAt(0) // 55362 str.charCodeAt(1) // 57247 str.codePointAt(0) // 134047 // (55362 << 10) + 57247 - 0x35fdc00 str.codePointAt(1) // 57247 String.fromCharCode(55362, 5724
node.js/v8のgeneratorsのパフォーマンスについてちょっと調べた 初めに断っておきますが、今回の調査は、node v0.11.5 (Linux)で試したもので、他の環境では異なるかもしれません。さらに、今後のバージョンアップによっては全く異なる結果となることも十分ありえます。ご注意を。 ES6にgeneratorsが入るとのことで、JavaScriptでcontinuationが使えないかなぁと思っていた自分としては、興味を持ちました。 ちなみに、generator, coroutine, continuationの順に記述力が上がるそうです。こちらが参考になるかもしれません。 さて、generatorsの説明は他に任せるとして、いきなりコードです。 function* es6_generator() { yield 1; yield 2; yield 3; yield 4
※ネタです ※UDFです Mysql 5.1 Plugin Development 作者: Andrew Hutchings,Sergei Golubchik出版社/メーカー: Packt Publishing発売日: 2010/08/30メディア: ペーパーバック購入: 1人 クリック: 45回この商品を含むブログ (2件) を見る しばらく積ん読していたこの本をちょっと眺めてみたら、MySQLのUDFって簡単に作れるんだなー、と思った && そういやV8ってライブラリとして簡単にリンクできるはずだな、と思い出した ので、ついカッとなって作った。 http://github.com/zentooo/mysqludf-jseval UDFうんぬn ほとんど↑の本の受け売りになるけど、一応MySQLのUDFについて備忘録代わりに軽く紹介しておくと UDFを追加する場合、MySQLの再コンパイ
時系列で並べたメモ nodeをv8以外でも走らせる可能性等々 node界隈の活発なやりとりは面白い node on spidermonkeyは当初検討されてた nodeクリエータRyan Dahlによると ただし2日だけ 却下理由は、他のシステムへの依存関係がストレス。v8の方がモダン v8はパッケージ化されてるし、他にも利点多かったのでずっとv8一筋 リソース The Node Ahead 4ページ目あたり。前に斜め読みした Cade Metz「好調Node」 - クライアント・サイド・スクリプティング with Web Standards 以降ずっとnodeプロジェクトはv8を唯一のVMとして開発 v8チームとnodeチームは相互に連携 バグ直してもらったり crankshaftリリースされれば取り込んだり リソース 割愛。「The Node Ahead」の中にもエピソードは紹介されて
最近どのブログでも node.js ばかりでもう飽き飽きしてる皆さんこんばんわ。 node.js 面白いですよね!ェ node.js ってアプリケーションを作る側(つまりライブラリを使う側)からすると、Web周りの便利なライブラリが既に色々あって、そのライブラリが一体どうやって動いてるのか気にすることってあんまり無いかと思います。 pure javascriptな物ならばコードを読むのは簡単です。ただしやれる事に限りがあります。node.js はGoogle製のJavaScript Engineであるv8をベースに作られているのですが、このv8はアプリケーションに組み込むのに適した構成になっていて、関数テンプレートやインスタンス、プロトタイプという各機能がC++のクラステンプレートで上手く表現出来ているライブラリです。Spidermonkeyも確かに扱うのは簡単なのですが、僕からすると若干
node.js のドキュメントを見ていたら C/C++ で簡単に拡張が書けそうだったので試してみた。 addons - Node.js Manual & Documentation ドキュメントに載っている hello.cc をみてみると: #include <v8.h> using namespace v8; extern "C" void init (Handle<Object> target) { HandleScope scope; target->Set(String::New("hello"), String::New("world")); } この extern "C" void init (Handle<Object> target) というやつが、jsで require("hello") したときに呼ばれる感じらしい。この関数だけは必ず実装する必要がある。 この中の Ha
google chrome にも搭載されている V8 engine を VS2010 (VC++ 2010 / visual studio 2010) でビルドしようというお話です。 環境構築 その1 svn を導入。 svn 入れます。 windowsユーザなら、tortoisesvn(とーたす えすぶいえぬ)がオススメです。遅いけど。 ここから落とせます。 http://tortoisesvn.net/downloads.html インストール後に PC の再起動がかかるので、注意してください。 環境構築 その2 python を導入。 python入れます。 python ってver2系とver3系で違うらしいので、とりあえず2系を入れます。 #もしかしたら 3系でもうごくかもしれんが。 http://www.python.jp/Zope/download/pythoncore ht
JavaScript Advent Calendar 2010 という企画をやっています。既にもう7日目なのですが、まだまだ os0x さんや hasegawayosuke さんや nanto_vi さんや secondlife さんといったすごい方々が記事を書いてくれる予定になっていますので、是非チェックしてみてください。 今日は、最近話題の node.js を読んでみます。僕自身は node.js を追っかけてたのは今年の5月ぐらいで、ソースは半年以上見てなかったのですが、この機会にまた読みました。この記事は、C++ は一応読めるけど V8 とか libev はあまり知らない node.js 好きの人を念頭に置いています。 拙訳の Embedder's Guide - V8 JavaScript Engine に書いてあるようなことは説明なしでいきたいと思います。また、適宜 libev
Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く