枕を欹てて聴く

香炉峰の雪は簾を撥げて看る

How to carry native executables for (almost) all platforms

NOTE: If you find some bugs, please inform me :) Abstract (in 10 seconds) By investigating Ninja & Chromium depot_tools approach, I'll introduce the way to carry your C++ executable for (almost) all platforms. Introduction You sometimes wo…

tumblr reblogging enviroment Advent Calendar 2013 - 17th day - Taberareloo Canary

特に関係のない UNIX 画像 This is posted for tumblr reblogging enviroment Advent Calendar 2013 17th day 予定地です, 現在進行形で作業しています... すみません...公開しました 3 秒でわかる版 CI によって Taberareloo を commit ごとに自動 build し…

YieldExpression with delegate

In the latest ECMA262 6th draft (rev15), YieldExpression with delegate detailed algorithm is defined. Reading the spec algortithm, I think this is very useful to put together iterators to make a complex iterator. edit: I've reported issues…

Polymorphic Inline Cache implementation of iv / lv5

This is a blog post for 12/22 VM advent calendar. See http://qiita.com/advent-calendar/2012/vm for more nice blog posts :) この記事は更新中です... 完成しました Introduction ECMA262 engine, iv / lv5 には, Polymorphic Inline Cache(以下PIC)が…

Introducing ibrik - code coverage tool for CoffeeScript by using istanbul

Image: © lorises 2010 Istanbul made by Krishnan Anantheswaran from the Yahoo! Cocktail team is great code coverage tool for JavaScript. (see usage by Ariya Hidayat) Internally it uses Esprima to parse JavaScript code and Escodegen to gener…

JSC Array optimization for adding new property

This is a blog post for 12/6 VM advent calendar. See http://qiita.com/advent-calendar/2012/vm for more nice blog posts :) Introduction ECMA262にとってArrayは最も重要なObjectの1つであり, loop内で高い頻度でアクセスされる性質上, Arrayの最適化…

LL Decadeに参加してきました

LL Decadeに参加してきましたー! プログラミング言語処理系を自作してわかったこと | LL Decadeこのメンツ, サンドバックになる気配を敏感に感じ取り, 「やばいっ!」と思っていたのですが, 皆さん優しい方ばかりで, 意外にサンドバックになりませんでした. …

サイボウズ・ラボユースの最終成果報告会にて発表しました

3/26に発表してきました. 資料は以下にあります.iv / lv5, ECMA262 Engine内容は主に, ECMA262 5.1th Engine, lv5の独自性である仕様準拠性, Register VM概説, またrailgun::Compilerの独自のRegisterの割り当て方による効率的なRegister Allocation(個人的…

サイボウズ・ラボユース 最終成果報告会

が, 3/26にあります. サイボウズ・ラボユース学生支援制度: 3/26(月)第1期サイボウズ・ラボユース最終成果報告会&第2期募集説明会を開催します自分は主にRegisterVMの話をしていると思います. 特に, 副作用を含んだexpressionにおける適切なRegisterの割り…

iv / js ES.next, update for February 27, 2012 Draft

iv / js ES.next parser (my original ES.next parser, see this entry) is updated to follow February 27, 2012 Draft ArrayComprehension ArrayComprehension is supported. [ v * v for (v of [1, 2, 3])]; to [ { "type": "ExpressionStatement", "expr…

ECMAScript code generator: escodegen

Keeping Esprima core simple Esprimaのcoreをparser levelに保つということで, code generatorが単一のmoduleになりました.escodegen Install npm install escodegen example simple example: (from http://ariya.ofilabs.com/2012/02/primavera-updates-of…

How to write JS code generator

esprimaに入りました. 次のversionからesprima.generateで利用可能です. Issue 89 - esprima - Code generator: convert AST to source code - ECMAScript parsing infrastructure for multipurpose analysis - Google Project Hosting JSのpretty printerを…

Announcing Lv5 new RegisterVM

lv5がRegisterVMになりました. これを持ってversion 0.0.2とします. 次の目標は, さらなるtuning, RegExp JIT, 部分的なES.next対応の開始です. benchmark RegisterVM ============================================ RESULTS (means and 95% confidence inte…

香炉峰の雪は簾を撥げて看る

という訳でよろしくお願いします.

lv5.current 2011/12/18

lv5の実装進捗 test262はもちろん全てpassしているので安心です. 8bit string is landed in lv5 「天下のJSCさんもやってないからー」と言いつつやってなかったのですが... ある日, https://lists.webkit.org/pipermail/webkit-dev/2011-November/018618.htm…

constへの異常な愛情, または私は如何にして心配するのを止めてConstDeclarationを愛するようになったか

JS Advent Calendar, オレ標準コース 1日目, id:Constellation です. あれから1年ですか... 前半で, ES.nextに導入されたDeclarationについてさっと, そして後半でタイトルの説明をします.この文書は, 2011/12/01現在のES5 Engineの実装とES.next draftに基…

ES.next parser / lexer in JS

現時点でのdraftに対応したES.nextのparser / lexerをJSで書きました.iv / js, ES.next testASTを表示します. BNF baseの方を信用したので, super()とかはSyntax Errorとします. BNFはdraftと ECMAScript 6th の構文をまとめてみた - hogehoge @teramako を…

iv / lv5, ECMA262 5.1th full support

https://github.com/Constellation/iviv / lv5というECMA262 5.1th完全準拠を目指したengineを書いておりました (highly inspired from V8, JSC)で, もうほぼ仕様準拠しておりました, が, 正規表現のみJSCREを使っていて, そこだけECMA262と挙動が異なってい…

Let's WeakMap

ES.nextとして入っていて, ECMAScript 6にも入りそうな気配がするWeakMap. という訳で. WeakMapとは WeakMapとは, harmony:weak_maps [ES Wiki] keyへの参照が弱参照 keyが任意のObject valueはなんでもあり というものです.弱参照であるため, WeakMapのkey…

固定長配列

id:uupaa さんが固定長配列があるといいなあと思う時があるという話を受けて. 食いついてしまいましたー... 固定長配列 ECMA262 5.1thにおいては固定長配列を利用することができます. Arrayのlengthの[[Writable]]をfalseにしてしまえばいいですー! 仕様では…

NaN boxing

書いておかないと将来自分が意味不明になるので, NaN boxingについて. LuaJITが古くから(wingologさんの素晴らしい記事によると), JSCが前から, SpiderMonkeyはfatvalsで, NaN boxingすることによりJSValを64bitに収めることを行っています. iv / lv5は以前…

発表してきました

というわけで以前の記事でお伝えした2つのeventが終了しまして, 発表してきました. サイボウズ・ラボユース中間成果報告会 発表資料です.iv / lv5, az slideこれまでやってきたことや現在ユースの方で取り組んでいることということで, iv / lv5の話の概要とs…

サイボウズ・ラボユース中間成果報告会, LL Planets

サイボウズ・ラボユース中間成果報告会 https://job.rikunabi.com/2012/company/blog/detail/r646010018/42/というものがありまして, そちらで最近やってきたこと(iv / lv5)と, 現在ユースの方でやらせていただいていることについてお話させていただく機会が…

iv / lv5 VM engine

『ゆるゆり』 のOPが頭から離れなかったのですが, 最近EDも頭から離れなくなってきました...https://github.com/Constellation/iviv / lv5のVM engine化がとりあえず完了し, byte codeにcompileしてstack VMで実行するengineになりました!! 今まで「ECMAScri…

サイボウズ・ラボユースに採択されました!

id:TAKESAKO さんに応募のお誘いをいただき, ラボユースの方に応募させていただきまして, 採択をいただきました! そして本日(と言いましてもすでに昨日ですが...), サイボウズ・ラボの方におじゃまさせていただきました!サイボウズ・ラボ : 人材募集 : サイ…

decodeURIComponentのもろもろについて

追記1 SpiderMonkeyのサロゲートエリアのbug issue は修正されました! (該当commit) 記事の一番下を御覧ください. 追記2 V8のサロゲートエリアのbug issue は修正されました!(該当commit)これで以下の記事のサロゲートエリアのbugはV8, SpiderMonkey, JSCで…

ChromeFullFeedが公開停止になった話

ChromeFullFeedがGoogleのiconっぽいとかいう理由で一撃必殺, 公開停止になった id:Constellation です! 中身とかいちいち見てるはず無いので, おそらくあのFのアイコンだと思うのですが, あれってGoogleを暗示してますかね? いやいやいやいや, それはどうな…

vs UTF-8, UTF-16, UCS4

前置き おはミルキィ! ChromeFullFeedが公開停止になった話を前置きとして書いていたのですが, あまり関係がないのと, 長くなりそうになってきたので, 別の記事に分けました. http://d.hatena.ne.jp/Constellation/20110530/1306701693 概要 という前置きで.…

subsetじゃない悲しい話 (JSON編)

JSON編以外はありません. Edge case "JSON: The JavaScript subset that isn't Timeless" URL2011-05-16 15:49:26 via PNBT このような記事が JSON: The JavaScript subset that isn't — Timelessつまり, LineTerminatorに\u2028 / \u2029が含まれない(JSON)…

Taberareloo + upload from cache

というわけでversion 2.0.13にて, Taberarelooにupload from cache相当を実装しました. 結果, ある種のreferer checkを行うserviceの画像がTumblrにpostできたり, なにより, screen captureの結果がHatena Fotolife以外のTumblrにpostできるようになりました…