Skip to content

Instantly share code, notes, and snippets.

View omasanori's full-sized avatar

Masanori Ogino omasanori

View GitHub Profile
@omasanori
omasanori / correct.py
Created December 21, 2013 01:19
https://twitter.com/shibukawa/status/414202404368678912 はこういうことでしょうか⇒こういうことではなかったようです。 cf. http://www.python.org/dev/peps/pep-0008/#blank-lines
class Foo:
# ...
class Bar:
# ...
@omasanori
omasanori / gist:8050782
Last active December 31, 2015 21:59
ClojureScriptでFirefoxアドオンを作りたかった

ClojureScriptでFirefoxアドオンを作りたかった

この文章はClojure Advent Calendar 2013の20日目分です。

はじめに

ClojureScriptの登場によって、私たちはWebアプリケーションのサーバサイドとクライアントサイドをClojureファミリーの言語で実装することができるようになった……ということは改めて触れるまでもなくご存知かと思います。しかし、私たちがWebを利用するときにはWebブラウザというコンポーネントを利用します。Clojurianがクライアントサイドで掌握したのはその一部分、ブラウザへ入力するデータです。Web系Clojurianの次のターゲットはブラウザ、となるのは自然な流れでしょう。

@omasanori
omasanori / after.cljs
Last active December 31, 2015 19:39
最適化回避ビフォーアフター
(def widgets ,,,)
((aget widgets "Widget") button)
@omasanori
omasanori / expected.js
Created December 19, 2013 06:06
ClojureScriptの最適化でハマっているところ。:optimizations :advanced
;(function(){
baz({Bar:1});
})();
@omasanori
omasanori / gist:8023683
Last active December 31, 2015 17:59
R'0'RSを読む

R'0'RSを読む

これはLisp Advent Calendar 2013の19日目の文章です。

はじめに

表題に出てくるR'0'RSは正式な名称ではありません。表題で私がR'0'RSと呼んでいる文章はSchemeの言語仕様を記述した報告書、いわゆるRnRSの元祖といえる"Scheme: An Interpreter for Extended Lambda Calculus"です。この文章はAI Memo 349としても知られています。以下ではAIM 349と呼びます。

@omasanori
omasanori / gist:8015215
Last active December 31, 2015 16:39
進捗どうですか、と青年は問いかけた

進捗どうですか、と青年は問いかけた

この文章は進捗Advent Calendar 2013の18日目です。

進捗ダメです

アドベントカレンダーの進捗

@omasanori
omasanori / tml-day-1.rst
Last active December 29, 2015 23:39
Teach Myself Lojban Advent Calendar 2013: Day 1

Teach Myself Lojban Advent Calendar 2013, Day 1

これはTeach Myself Lojban Advent Calendar 2013の1日目のコラムです。

Teach Myself Lojban Advent Calenadar 2013とは

最近、私はロジバン (Lojban) という人工言語に興味を持ったので、アドベントカレンダーを口実にロジバンについて学び、理解したことを日々文章に書き出し、この年末を過ごそうという企画。初日から大遅刻。先が思いやられる……。

fn seq_lt<A: Eq + Ord, T: Iterator<A>>(mut a: T, mut b: T) -> bool {
loop {
match (a.next(), b.next()) {
(None, None) => return false,
(None, _ ) => return true,
(_, None) => return false,
(Some(x), Some(y)) => if !x.eq(&y) { return x.lt(&y) }
}
}
}
@omasanori
omasanori / gist:6137580
Created August 2, 2013 04:52
an error log when I tried to build extra::unicode.
cfg: build triple x86_64-unknown-linux-gnu
cfg: host triples x86_64-unknown-linux-gnu
cfg: target triples x86_64-unknown-linux-gnu
cfg: host for x86_64-unknown-linux-gnu is x86_64
cfg: os for x86_64-unknown-linux-gnu is unknown-linux-gnu
cfg: using gcc
cfg: no node found, omitting docs
cfg: no llnextgen found, omitting grammar-verification
compile_and_link: x86_64-unknown-linux-gnu/stage0/lib/rustc/x86_64-unknown-linux-gnu/bin/rustc
error: linking with `cc` failed with code 1
@omasanori
omasanori / garbage-collection-advent-calendar-2012.mkd
Created December 20, 2012 05:42
20th article on Garbage Collection Advent Calendar 2012

PyPyのGCに挑戦した……けど……な話

これは[Garbage Collection Advent Calendar 2012][gcac2012]の20日目の文書として @omasanori がPyPyのGCを解説する……はずでしたが、期日までに理解しきれませんでした。すみません。

そこで、ここでは私が現時点でどこまで理解できたか、これからどこを読んでいくか、という途中経過を記すことにします。GC初心者視点なのでGC上級者には物足りない文章になっていると思います。

はじめに

[PyPy][pypy]はRestricted Python (RPython)と呼ばれるPythonのサブセットを中心としたインタプリタ実装ツールキットと、それを利用したPythonの処理系です。Pythonの処理系としての印象が強いですが、RPythonとツールキットの部分は他のインタプリタを実装するために利用することも可能です。