Subscribed unsubscribe Subscribe Subscribe

枕を欹てて聴く

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

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できるようになりました…

Function.prototype.bindは何がいいのか

ES5からFunction.prototype.bindが入りました. これに準ずるものは数々のFrameworkで提供され続けてきたので, あまり馴染みの無さはないのではないでしょうか. このFunction.ptototype.bindは実はとても面白いので. 結論から言えば, Function.prototype.bind…

ES5, Property Descriptor解説

JavaScript Advent Calendar 2010 6日目のid:Constellationです.ECMAScript5になって大きく変更されたといえば, strict mode, early error, Object extras, そしてProperty Descriptorの概念です. ということで今回はES5 PropertyDescriptorについてまるっと…

Re-Implement ECMA262 5th Engine@Firefox Developers Conference 2010

LTで話してきました. Constなんとか Constellation です. Firefox Developers Conference, 素晴らしい方々とお会いできて大変楽しかったです. ありがとうございました.Re-Implement ECMA262 5th Engine - Constellation Scorpiusこれが当日のLTの資料です. …

ECMA262 5th specification for Kindle

強烈な物欲によってKindleを購入し, 楽しくて仕方ないです. さっそくいろいろ読んでいます. 青空文庫も読めたり(pdf化), サクサク動いて, とても軽い + 小さい. とっても楽しい.が, 事前に聞いていたように, 確かに字の小さなPDFを見る際にはなかなか厳しい.…

LDRFullFeed update

html_sanitizerは安全なのだけれど, 衝撃的な速度を誇ったので, http://d.hatena.ne.jp/os0x/20080228/1204210085 ベースのwhite listに変更しました. LDRFullFeed 0.0.28 http://userscripts.org/scripts/show/22702 ChromeFullFeed 1.1.2 https://chrome.g…

LDR Full Feed security update

security上非常に問題があるので, 必ずupdateしてください.userscript 0.0.27 http://userscripts.org/scripts/show/22702Chrome extension (こちらは自動でupdateされます) 1.1.1 https://chrome.google.com/extensions/detail/hdcaeobehcekfkhjlkdlipnkmhg…

Math.random

JavaScriptのMath.random()のばらつき具合。 『JavaScript Math.random Test』 URL2010-10-06 17:21:54 via webで気になったので. ばらつきは上記のページで試してみるとして. まず, ES5thのMath.randomはimplementation-dependentです. 15.8.2.14 random ()…

Taberareloo 2.0.0 : context menus

stable channelがversion 6になりました. Chrome Releases: Stable and Beta Channel Updates といっても驚かれないかもしれませんが, context menusが追加できるようになったといえば, 感慨深くなりませんか?というわけでTaberarelooを2.0.0にmajor update…

Eval ContextとかInteractive JS Shellとかもろもろ

オレ標準JavaScript勉強会での発表のSlideです. IJS: Interactive JS Shell - Constellation Scorpius内容はInteractive JS Shellを実装する際に問題になる, Token Streamの問題, そして同一Contextでの評価の継続の問題です. Tumblrがまさかのmaintenanceだ…

LDRFullFeed on Safari

Safari拡張の証明書のsignのところで躓いて, はーどうしようかーとか思っていたのですが, id:os0xさんに Loox Uと初音ミクで行こう!: Safariの証明書作成でハマった。 を教えてもらい, 無事certreqすることができたので, とりあえずChromeFullFeedをSafari…

JavaScript Syntax探訪

blogめったに書いてない... 2.5年で110件...前々からJSのScannerを読んだりするのが楽しかったのですが, id:miya2000 さんからの「commentを削除するprogram」という話が出たときに, 結局JSのlexerというものは単体では生成できずParserと密着している(主にR…

tech talkの資料

連携周りのLTをさせていただきましたー. 超早口ですごい緊張していた記憶があるので, ustreamを見るのが怖い...拡張間連携とEvent Driven JavaScript - Constellation Scorpius

embed V8

embed V8がちょう楽しいので. 最近JSの処理系のソースコードを見るのが個人的な楽しみだったのだけれど, embed V8が思ってたよりもずっと手軽に処理系を触れると知って...原文 Embedder's Guide - Chrome V8 — Google Developers id:edvakf さんによる邦訳. …

Function#name

知らなかったのだけれど, こんなのできるんですね. 普通にerror stackをparseしてやろうとか思ってしまっていた. function debug(){ var funcname; if(arguments.callee.caller){ funcname = arguments.callee.caller.name; } if(!funcname) funcname = "ano…

NPAPI拡張 iTunes Daemon

iTunesで今なっている曲の情報を取得するAPIを提供するGoogle Chrome拡張, iTunes Daemonを書きました. Windowsでしか動きません. COMを使っているからです... Constellation/iTunesDaemon · GitHubまだまだ実験段階ですが, installしたい方はこちらのlinkか…

Taberarelooのタグ補完について

Taberarelooは基本的にid:ConstellationによるTombloo experimental branch on Chromiumだと思ってもらって結構で, 面白いと思ったことを放り込みます. そのためbugがでて急遽修正というreleaseも多いのですが... また一方で tomblooと違うというところは大…

ChromeFullFeed API

Chrome拡張は連携超楽しい!! という話になったので, ChromeFullFeedの外部APIを作成し, versionを1.1.0にしました.sample var CHROMEFULLFEED = 'hdcaeobehcekfkhjlkdlipnkmhgfcdpb'; chrome.extension.sendRequest(CHROMEFULLFEED, { action: 'fullfeed', u…

Selection内のHTML Textをいい感じに取得する

追記: Rangeを使うと, 86行に及ぶDOM操作がなんと2行に! 勝手に添削: Selection内のHTML Textをいい感じに取得する: Days on the Moon Tomblooの最新版ではEvernoteの取り込み機能がつき, これに伴いHTML Textを取得する周りで大規模な変更がありました. こ…

Chrome Dirty Hacks 01: fc2 image for LDR

続ける予定は未定ですが01と銘打ちました, ChromeのDirtyなHackをお届けするChrome Dirty Hacks.今回のレシピは, LDR上でfc2の画像を表示する です. 注意 Chrome Dirty Hacksはたまーに見つかるあんなのやこんなので, Chromeで実用性皆無のdirtyなhackを! と…

ReBlogできる, Taberareloo ver 1.0.0

Chrome Web Store - Taberareloo Taberareloo の ver 1.0.0を公開しました. ReBlog, Text, Photo, Quote, Videoなどなどに対応し, 一段落したのでmajor version番号を上げ, 1.0.0となります. 以下使い方および追加機能です. QuickPost 使い方 Chromeには標準…