山城さんについて思い返す

第一回チキチキjava-ja ymsr送別会に行ってきた。

先日、知人の山城さんが亡くなった。山城さんについて思い返す。

初めて会ったのはjava-jaが新宿で開催されてた時の懇親会か、BBQやった時のどちらか。間違いなく神奈川のBBQで会ったのは覚えてる。山城さんは子供と遊んでいたのを鮮明に覚えてる。

技術的な懇親会で一緒に飲む機会があった。Rubykaigiの懇親会、渋谷で知人数人で飲んだりもした。

会った記憶で一番鮮明なのは近年行われたjava-ja.childrenとクルーザー貸切東京湾花火大会

人に打ち解けられない私だけど、私のことを山城さんは名前を覚えてくれてて、会うと話しかけてくれた。「ろくじょー。最近どう?」とか。最近だと「人生荒波にもまれている俺」について語ってくれたり、「不格好経営読み終わったしあげよか?」と気を使ってくれていた。

私の結婚祝いに『プログラミング言語の基礎概念』をプレゼントして頂いたのを覚えてる。
彼の誕生日に試しに、『サーバサイドJavaScript』を送ってみた。Amazonウィッシュリストからぽちっとな。山城さんは僕が送ったと気づいたようでわざわざ礼をしてきた。私が贈ったと伝えたのか、山城さんの勘かはわからない。

私には1歳と半年前後の息子がいる。

山城さんは子供がいないけど、java-ja.childrenという集まりに顔を出していた。身近な子持ち家族が参加して一緒に遊ぶ催しだ。そこで息子を抱っこしたり、相手してくれたのを覚えてる。

f:id:rokujyouhitoma:20140216224512j:plain
写真は私の息子を抱く山城さん。

山城さん本人はあまり関係ないが、おもちゃとして息子の身近にいる。

id:daisuke-mさんとのやりとりから、ある買ったおもちゃに『山城さん』と名付けた。完全にねたである。
残念なことに私の息子はその『山城さん』を見ると、避けたり泣いたりする。

f:id:rokujyouhitoma:20140216224034j:plain
私の家における『山城さん』二代目。一代目は今日の掃除で失踪中なので、気が向いたら一代目の写真もあげなおすかも。

また、クルーザー貸切東京湾花火大会の時には船酔いした私に変わって私の息子をあやしてくれてたりした。

こうやって書き出すとそこそこ交流してる。次回もjava-ja.childrenに参加したいなー。また、私の息子と一緒に遊んでほしいなと思っていた矢先に彼が亡くなった。

一報を頂いた時は落ち込んだ。java-jaの忘年会の日で、楽しみにしてた日だった。その日は仕事が手につかなかったのを覚えてる。

山城さんが亡くなってから思うことは、こうやってぽっくり逝くことがあるのは私だってそうだし、身の回りの全ての人がそうだなと。後悔しないようにみなと語り合う機会を作るようにしたいと考えるにいたる。

山城さんはあちらの世界でも楽しくやってそうだから、私が行ったら声をかけてくれるとうれしいな。ありがとう。さようなら。

『Pythonによるデータ分析入門』を献本頂きました

ちょっと早いクリスマスプレゼントを頂きました。こんな歳になってもサンタさんに出会えて感謝です。

表題の通り、オライリー・ジャパン様より献本頂きました。ありがとうございます。縁を感じる本です。

正式名称は『Pythonによるデータ分析入門――NumPy、pandasを使ったデータ処理』です。

Pandasのメインコミッターであり原著者のWesMcKinnery氏を初め、翻訳者のみなさん、編集や、この書籍に携わった全ての方々。お疲れ様でした。

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理

まず、初めに

私自身は、

  1. Pythonはある程度不自由なく触れる。
  2. NumPy, Scipy, Pandasの名称は知っている、ないしは軽く使った程度。適度な興味もある。
  3. Rは使ったことない。
  4. 計算機科学の知識は独学でかじる。統計学数値計算科学は独学でかじる、ないしは未学程度。

目次

  • 1章 はじめに
  • 2章 Pythonによるデータ分析事例
  • 3章 IPython:対話的な開発環境
  • 4章 NumPyの基本:配列とベクトル演算
  • 5章 pandas入門
  • 6章 データの読み込み、書き出しとファイル形式
  • 7章 データ管理:データのクリーニング、変換、マージ、再結成
  • 8章 プロットと可視化
  • 9章 データの集約とグループ演算
  • 10章 時系列データ
  • 11章 金融と経済データへの応用
  • 12章 NumPy:応用編

各章にコメント

1章 はじめに

1章では、なぜPythonを選ぶのかに始まり、紹介されるライブラリの簡易概要、環境やカンファレンス、コミュニティの紹介、そして謝辞です。

2章 Pythonによるデータ分析事例

2章では、 github.comで公開されてるデータを具体的に読み込んで、処理をしていきます。
Pythonのリスト内包表記の説明がごく少ないことであったり、Rの配列とインデックスの始まりが違うこと(具体的にはRは1から、Pythonは0から)が明確に説明されていました。

データの基本的な集計から、Matplotlibによる表示も紹介されています。

気づいたこととしては、私が使う時はMatplotlibに対して、pandasのデータをプロットしていました。書籍ではpandasのオブジェクトにplotメソッドを使っています。これは知りません。便利ですね!
他にも気づいたこととしては、IPythonと対話的に行うことでした。経験として、もちろんIPythonやPythonインタプリタと対話しながらという場面はありますが、ファイルに書いて実行が常だよな。と思うところです。

2.2ではとってもよい機能がありました。pandasのDataFrameオブジェクトのmergeメソッドです。このメソッドはpandasのデータフレームオブジェクト同士を結合する機能です。あたかもRDBMSのテーブルを結合するかのように。

3章 IPython:対話的な開発環境

3章はなんとまるまる1章IPythonに割かれています。
IPythonの作られた文化背景や、如何に野心的で高機能であるかを知ることができました。Python標準インタプリタの対話機能をちょっと強化しただけだと認識して使ってた私はどうやら馬鹿です。

様々なIPythonのコマンドが紹介されています。特に、IPythonのコマンドで処理時間を計測を計測する%timeと%timeitは活躍しそうです。

Matplotlibとの連携機能もあまり知られていないのではないでしょうか。

また、3.5でIPythonノートブック(書籍中ではIPython HTML ノートブック)が紹介されていました。
IPythonをブラウザから実行できたりと手軽感があるので、ちょっと使うだけの方は試してみてください。

書籍では語られていませんでしたが、IPythonは並列実行をサポートしています、もし興味がある方は公式ドキュメントの"Using IPython for parallel computing"を参考にしてみて下さい。

4章 NumPyの基本:配列とベクトル演算

この章はまるまるNumPyについて割かれています。ちなみに12章はNumPyの応用編です。

NumPyのndarrayに各種方法によってアクセスした際に、値コピーであるか参照であるかという基本的な仕組みから、インデックスによる参照、スライシング、ソートなどの操作が解説されています。

4.1.1 ndarrayの生成において、ndarray.ndimが説明されることなく使われていますが、これのメソッドは多次元配列の次元数を表します。

追記: 訳注しっかり付いてました。訳者++。

5章 pandas入門

5章ではpandasが提供するデータ構造のSeriesとDataFrameをはじめとしたpandasの機能を説明しています。特に欠損値(NaN)の除外や穴埋めは、7章でふれるマージの機能ととともに使う機会が多そうです。

正直、ちょっと私には難しいですねー。

6章 データの読み込み、書き出しとファイル形式

6章ではpandasに特に注目して、データのファイル入出力を解説しています。

これを読むまでははcsvやtsvのデータを集計する際に、Python標準ライブラリのcsvPythonのコードで集計してました。これからは、pandasのread_csvとpandasのDataFrameを駆使すれば良さそうです。

7章 データ管理:データのクリーニング、変換、マージ、再結成

この章では、pandasのマージが紹介されています。left join、right join、outer join、inner joinとRDBMSでよく馴染みがある結合についてです。

それ以外にも、配列同士の連結(≒concat)やピポット(行から列へ、列から行への旋回)が紹介されています。

後半はPythonによる正規表現を学んだあとに、データの正規化(Normalize)についてです。ごめんなさい。ここは飛ばし読みしました。

8章 プロットと可視化

8章は"matplotlib"による可視化の話です。

気になったのは、2012 Google Summer of Codeプログラムの一環で学生さんがフルタイムで改修かけたので、一気に変わってるよ!てへぺろ。という文でしょうか。pandas公式オンラインドキュメントのコード例が先を行っている可能性があることが明記されていました。

9章 データの集約とグループ演算
10章 時系列データ
11章 金融と経済データへの応用
12章 NumPy:応用編

さてはて私感。

全体的にスムーズに読めてよい翻訳本でした。誤字脱字も少なくて良いです。

本家のドキュメントを除き、pandas、NumPy、SciPy、matplotlibのいずれを考えても日本語のドキュメント、書籍が多いとは言えず、この一冊が重要な情報源になると思います。

ライブラリとしては興味あるので、継続して学んでみようと思います。
けれども、そもそもの数値を扱う学や、明確な機会がないので、現状過ぎたる物ですね。。気長に行きます。

正誤情報

本家の正誤表かレポート先ができたら連絡する。念のため原著は確認ずみ。

p.110 np.sqrtの引数

o > In [135]: z = np.sqrt(xs ** 2 + ys ** 2)
x > In [135]: z = np.sqrt(xs 2 + ys 2)

p.288

o > グループキーにkey1だけを指定する代わりに、
x > グループキーにkey1をだけを指定する代わりに、

余談:この書籍に縁を感じた話

どうやら、2013年はNumPy, Scipy, Pandasと縁がある年でした。

ひとつは、今回献本頂いた書籍。

もうひとつは、先月(あれ、もしかして今月だってっけ...)購入した電子書籍が今回献本頂いた書籍の原本でした。英語書籍に挫折しててgrep用途となっていたのでした。

更にもうひとつは、7月初旬に行われたEuroPython2013の会場で購入して、帰りの空港、飛行機の中で読んでた書籍。ページ数が82ページと極薄なのでちょうどよい分量でした。(内容も軽い

そして最後は、業務において少なからずPandasとMatplotlibによって業務データをビジュアル化し、知識を活かすことができました。

この業務の時に活きたのは、書籍『データサイエンティスト養成読本』による"Pythonのによる機械学習"という章でした。ここではNumPy、Scipy、Pandasに触れられているので、興味ある方は中身を覗いてみてください。

A*をPythonで

C++でA*が必要なのだけど、実装経験がなかったのでまずはPythonでリファレンス実装を行った。
という背景があるので、setとかは使ってない。neighbor_nodes関数のタプルもなくしたいのだががががが。

参考にしたのは、wikipediaのA*。wikipedia英語版のA*の擬似コードをPythonで実装した。ほぼ一緒。
wikipedia日本語版のA*は擬似コード載ってないからどんまい。

距離の評価関数は、マンハッタン距離とユークリッド距離の2つ。
となりのノードは上下左右のみでok。

コード

テストはない。

import math

def astar(start, goal, neighbor_nodes, dist_between, heuristic_cost_estimate):
    closedset = []
    openset   = [start]
    came_from = {}
    g_score   = {}
    f_score   = {}
    g_score[start] = 0
    f_score[start] = g_score[start] + heuristic_cost_estimate(start, goal)
    while openset:
        current = min((f_score[node], node) for node in openset)[1]
        if current == goal:
            return reconstruct_path(came_from, goal)
        openset.remove(current)
	closedset.append(current)
        for neighbor in neighbor_nodes(current):
            tentative_g_score = g_score[current] + dist_between(current, neighbor)
            tentative_f_score = tentative_g_score + heuristic_cost_estimate(neighbor, goal)
            if neighbor in closedset and tentative_f_score >= f_score[neighbor]:
		continue
            if neighbor not in openset or tentative_f_score < f_score[neighbor]:
                came_from[neighbor] = current
		g_score[neighbor] = tentative_g_score
                f_score[neighbor] = tentative_f_score
                if neighbor not in openset:
                    openset.append(neighbor)

    return False

def reconstruct_path(came_from, current_node):
    path = [current_node]
    while current_node in came_from:
        current_node = came_from[current_node]
        path.append(current_node)
    return path

MAP_ROW = 5
MAP_COL = 5
map = [[1,1,1,1,1],
       [1,0,0,0,1],
       [1,0,0,0,1],
       [1,0,0,0,1],
       [1,0,0,0,1],
       [1,1,1,1,1]]

def is_movable(p):
    x, y = p
    if x < 0 or x > MAP_COL-1 or y < 0 or y > MAP_ROW-1:
        return False
    if map[y][x] == 1:
        return False
    return True

def neighbor_nodes(p):
    x, y = p
    neighbors = [(x-1, y), (x, y-1), (x+1, y), (x, y+1)]
    return filter(is_movable, neighbors)

def heuristic_cost_estimate(p1, p2):
    return manhattan_distance(p1, p2)

def manhattan_distance(p1, p2):
    return abs(p1[0]-p2[0]) + abs(p1[1]-p2[1])

def euclidean_distance(p1, p2):
    return math.sqrt((p1[0]-p2[0])**2 + (p1[1]-p2[1])**2)

if __name__ == '__main__':
    start = (1, 1)
    goal  = (3, 4)
    path  = astar(start, goal, neighbor_nodes, heuristic_cost_estimate, heuristic_cost_estimate)
    if path:
        for position in reversed(path):
            x,y = position
            print(x,y)

感想

実装に手間取った。この後C++に書き換える。このPythonコードkivyで使えるなーと思った。
kivyはTMXフォーマット対応からしないと、自分が作りたいもの作れないのがががが。

そういえば、kivyといえば、kivyアドベントカレンダーid:cheeseshopさんにより進行中なので、興味ある方は読んでみるよろし。

気が向いたらgithubにもpushしとく。

追記2

そういえばNLPでもA*使われることあったの思い出した!

numpy, sciypy, matplotlib, pandas, scikit-learnの環境構築とかとか。

表題のライブラリ群の必要性が高まってきたので環境構築して遊ぶ。...のだけど環境構築に思った以上に手こずったので記す。

それにしてもPythonはこのあたりのライブラリが充実してるから逃げられないなぁ...。移行先希望。

環境

事前にvirtualenv, virtualenvwrapperでPythonの環境を切っておいた。

  • OSX 10.8.4
  • XCode4.8.2
  • Python 2.7.2
    • CPython2.7.2。今回はPyPyじゃないよ。PyPyじゃライブラリ動かないのあるから...。

インストール

% pip install numpy
% pip install scipy
% pip install matplotlib
% pip install pandas
% pip install scikit-learn


??tornadoがインストールされたのかはなぞである。

% pip freeze              
distribute==0.6.34
matplotlib==1.3.0
nose==1.3.0
numpy==1.7.1
pandas==0.12.0
pyparsing==2.0.1
python-dateutil==2.1
pytz==2013d
scikit-learn==0.14.1
scipy==0.12.0
six==1.4.1
tornado==3.1.1
wsgiref==0.1.2

ハマりどころ。

pip install scipyがコケる。

pip install sciypyすると、次のようなエラーが出た。

building 'dfftpack' library

error: library dfftpack has Fortran sources but no Fortran compiler found

----------------------------------------
Command /Users/rokujyouhitoma/.virtualenvs/analyze/bin/python -c "import setuptools;__file__='/Users/rokujyouhitoma/.virtualenvs/analyze/build/scipy/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/pip-gv6NBX-record/install-record.txt --single-version-externally-managed --install-headers /Users/rokujyouhitoma/.virtualenvs/analyze/include/site/python2.7 failed with error code 1 in /Users/rokujyouhitoma/.virtualenvs/analyze/build/scipy
Storing complete log in /Users/rokujyouhitoma/.pip/pip.log

どうやらdfftpackというライブラリが足りないとわかるので、ググり記事に行き着く。

gfortran

どうやらgfortranが必要。

http://r.research.att.com/tools/からgcc-4.2 (Apple build 5666.3) with GNU Fortran 4.2.4 for Mac OS X 10.7 (Lion)をダウンロードし、インストール。

正しくインストールされたことを確認。

% gfortran-4.2 
i686-apple-darwin11-gfortran-4.2.1: no input files

#でもgfortranはみあたらず...。
% gfortranx   
zsh: command not found: gfortranx

#シンボリックリンクを貼って対応。
% sudo ln -s /usr/bin/gfortran-4.2 /usr/bin/gfortran

% gfortran --version
GNU Fortran (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)
Copyright (C) 2007 Free Software Foundation, Inc.

GNU Fortran comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of GNU Fortran
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING

#再度pip instal scipy
% pip install scipy

scipyってfortranに依存してるのね。

pip install matplotlibがコケる。

freetypeがないと怒られる。

============================================================================

                        * The following required packages can not be built:

                        * freetype

----------------------------------------
Command python setup.py egg_info failed with error code 1 in /Users/rokujyouhitoma/.virtualenvs/analyze/build/matplotlib
Storing complete log in /Users/rokujyouhitoma/.pip/pip.log
freetypeのインストール
% curl -O http://ftp.twaren.net/Unix/NonGNU//freetype/freetype-2.5.0.1.tar.gz
% tar zxf freetype-2.5.0.1.tar.gz
% cd freetype-2.5.0.1
% ./configure
#エラー...libpngがないってさ( ꒪⌓꒪)...
checking for libpng... configure: error: `libpng-config' not found;
either set the LIBPNG_CFLAGS and LIBPNG_LDFLAGS environment variables,
or pass `--without-png' to the `configure' script.
make: *** [setup] Error 1
libpngのインストール
% http://jaist.dl.sourceforge.net/project/libpng/libpng16/1.6.3/libpng-1.6.3.tar.gz
% tar zxf libpng-1.6.3.tar.gz
% cd libpng-1.6.3
% ./configure
% make
% sudo make install
% libpng-config --version
1.6.3
再度freetypeのインストール
% cd freetype-2.5.0.1
% ./configure
% make
% sudo make install
追記: brew installでfreetypeとlibpng

そもそもbrewで入れれるっぽい...

% brew install freetype
% brew install libpng

以上。

matplotlibは業務でちょびっと使った。numpyも業務とkivyの経路探索でお世話になったけど、まだまだ知識不足。なのでこれでやっと取り掛かれる。

続:CPythonよりPyPyの方が遅かった話。

前回、PyPyでのRPythonコードのコンパイルがCPythonのそれより遅かったのだけど、その続きの話。

Topazを念のためCPythonとPyPyのそれぞれでコンパイルして、時間を比較した。

結果

TopazのコンパイルにおいてはCPythonよりPyPyの方が速かった。うーむ。

PyPy

[Timer] Total: --- 1311.6 s

CPython

[Timer] Total: --- 1631.5 s

PyPy

ログ貼ったら、262976文字に達して投稿できなかったので省略。

CPython

同上

CPythonよりPyPyの方が遅かった話。

書き始めたRPythonコードをCPythonとPyPyでコンパイルしたら、表題のとおりになった話。

  • PyPy2.0.2
(_)ike-no-MacBook-Air% pypy -V
Python 2.7.3 (5acfe049a5b0, May 21 2013, 13:47:22)
[PyPy 2.0.2 with GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)]
  • CPython
ike-no-MacBook-Air% python -V
Python 2.7.2

結果

PyPy

[Timer] Total: --- 69.8 s

CPython

[Timer] Total: --- 25.6 s

PyPy

(_)ike-no-MacBook-Air% make
python /Users/rokujyouhitoma/workspace/bitbucket.org/pypy.origin/rpython/bin/rpython --opt=2 targetr12a.py
[translation:info] 2.7.3 (5acfe049a5b0, May 21 2013, 13:47:22)
[translation:info] [PyPy 2.0.2 with GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)]
[platform:msg] Set platform with 'host' cc=None, using cc='clang'
[translation:info] Translating target as defined by targetr12a
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/gcctest.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/gcctest.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/gcctest.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/gcctest
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/gcctest.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/gcctest.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/gcctest.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/gcctest
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_0.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_0.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_0.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_0
[translation] translate.py configuration:
[translation] [translate]
[translation]     opt = 2
[translation]     targetspec = targetr12a
[translation] translation configuration:
[translation] [translation]
[translation]     gc = minimark
[translation]     gctransformer = framework
[translation]     list_comprehension_operations = True
[translation]     withsmallfuncsets = 5
[translation:info] Annotating&simplifying...
[d7] {translation-task
starting annotate
[translation:info] with policy: rpython.annotator.policy.AnnotatorPolicy
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_1.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_1.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_1.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_1
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_2.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_2.o
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_3.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_3.o
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_4.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_4.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_4.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_4
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_5.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_5.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_5.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_5
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_6.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_6.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_6.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_6
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_7.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_7.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_7.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_7
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_8.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_8.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_8.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_8
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_9.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_9.o
[platform:WARNING] /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_9.c:42:1: warning: expression result unused [-Wunused-value]
[platform:WARNING] utimes;
[platform:WARNING] ^~~~~~
[platform:WARNING] 1 warning generated.
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_9.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_9
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_10.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_10.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_10.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_10
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_11.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_11.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_11.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_11
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic -I/Users/rokujyouhitoma/workspace/bitbucket.org/pypy.origin/rpython/translator/c /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_12.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_12.o
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic -I/Users/rokujyouhitoma/workspace/bitbucket.org/pypy.origin/rpython/translator/c /Users/rokujyouhitoma/workspace/bitbucket.org/pypy.origin/rpython/translator/c/src/thread.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/rpython/translator/c/src/thread.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_12.o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/rpython/translator/c/src/thread.o -arch x86_64 -mmacosx-version-min=10.5 -Wl,-exported_symbols_list,/var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/dynamic-symbols-0 -I/Users/rokujyouhitoma/workspace/bitbucket.org/pypy.origin/rpython/translator/c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_12
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_13.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_13.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_13.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_13
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_14.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_14.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_14.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_14
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_15.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_15.o
[platform:WARNING] /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_15.c:50:1: warning: expression result unused [-Wunused-value]
[platform:WARNING] ftime;
[platform:WARNING] ^~~~~
[platform:WARNING] 1 warning generated.
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_15.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_15
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_16.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_16.o
[platform:WARNING] /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_16.c:50:1: warning: expression result unused [-Wunused-value]
[platform:WARNING] gettimeofday;
[platform:WARNING] ^~~~~~~~~~~~
[platform:WARNING] 1 warning generated.
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_16.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_16
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_17.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_17.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_17.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_17
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_18.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_18.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_18.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_18
...+++++++++++++++*****[19c] translation-task}

[translation:info] RTyping...
[19c] {translation-task
starting rtype_lltype
...+++++++++++++++*************************%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###################################################%###########%%
[rtyper] specializing: 100 / 602 blocks   (16%)
...+++++++++++++++*************************%%%%%%%%%%%
[rtyper] specializing: 200 / 839 blocks   (23%)
[rtyper] specializing: 300 / 839 blocks   (35%)
[rtyper] specializing: 400 / 839 blocks   (47%)
[rtyper] specializing: 500 / 839 blocks   (59%)
.
[rtyper] specializing: 600 / 844 blocks   (71%)
[rtyper] specializing: 700 / 844 blocks   (82%)
[rtyper] specializing: 800 / 844 blocks   (94%)
[rtyper] -=- specialized 844 blocks -=-
...+++++++++++++++*********
[rtyper] specializing: 900 / 1027 blocks   (87%)
[rtyper] specializing: 1000 / 1027 blocks   (97%)
..
[rtyper] -=- specialized 187 more blocks -=-
...
[rtyper] -=- specialized 7 more blocks -=-
[5f2] translation-task}
[translation:info] lltype back-end optimisations...
[5f2] {translation-task
starting backendopt_lltype
[backendopt:inlining] phase with threshold factor: 32.4
[backendopt:inlining] heuristic: rpython.translator.backendopt.inline.inlining_heuristic
...+++++++++++++++*************************%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###################################################%###########%%%##%**************
.++++++++++++++*
[backendopt:inlining] inlined 315 callsites.
[backendopt:malloc] starting malloc removal
.++++++++++++++*****************
[backendopt:malloc] removed 118 simple mallocs in total
[backendopt:mergeifblocks] starting to merge if blocks
[8ac] translation-task}
[translation:info] inserting stack checks...
[8ac] {translation-task
starting stackcheckinsertion_lltype
.+
[rtyper] -=- specialized 7 more blocks -=-
[translation:info] inserted 0 stack checks.
[8ba] translation-task}
[translation:info] Creating database for generating c source...
[8ba] {translation-task
starting database_c
.++++++++++
[rtyper] -=- specialized 25 more blocks -=-
.++++++++++++++*********************%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###################################################################%%#%%*************
++++++++++++*******************%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###################################################################%%%%%%%%
[rtyper:WARNING] prebuilt instance <rpython.memory.gctypelayout.GCData object at 0x000000010a2d9c90> has no attribute 'root_stack_top'
[rtyper:WARNING] prebuilt instance <rpython.memory.gctypelayout.GCData object at 0x000000010a2d9c90> has no attribute 'root_stack_base'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute 'young_objects_with_light_finalizers'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute 'initial_cleanup'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute 'young_rawmalloced_objects'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute 'rawmalloced_total_size'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute 'next_major_collection_initial'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute 'old_objects_with_light_finalizers'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute '_debug_pending'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute '_list_rpy'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute 'tmpstack'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute '_callback2_arg4'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute '_debug_seen'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute '_callback2_arg2'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute '_callback2_arg3'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute 'nursery_objects_shadows'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute 'young_objects_with_weakrefs'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute 'old_objects_with_weakrefs'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute 'next_major_collection_threshold'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute 'old_rawmalloced_objects'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute 'objects_to_trace'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute 'objects_with_finalizers'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute '_count_rpy'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute '_callback2_arg0'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute '_callback2_arg1'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute 'finalizer_lock_count'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x000000010a2d9948> has no attribute 'run_finalizers'
+
[rtyper] specializing: 1100 / 2574 blocks   (42%)
+++++
[rtyper] specializing: 1300 / 2588 blocks   (50%)
+++++++++++
[rtyper] specializing: 1500 / 2620 blocks   (57%)
++++++++++++*****
[rtyper] specializing: 1700 / 2656 blocks   (64%)
+++++++
[rtyper] specializing: 1900 / 2656 blocks   (71%)
++++++++++
[rtyper] specializing: 2100 / 2656 blocks   (79%)
+++
[rtyper] specializing: 2300 / 2660 blocks   (86%)
++++++
[rtyper] specializing: 2500 / 2660 blocks   (93%)
+++
[rtyper] specializing: 2600 / 2668 blocks   (97%)
[rtyper] -=- specialized 1598 more blocks -=-
+++++++++[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_19.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_19.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_19.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_19
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_20.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_20.o
[platform:WARNING] /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_20.c:44:1: warning: implicit declaration of function 'mremap' is invalid in C99 [-Wimplicit-function-declaration]
[platform:WARNING] mremap(NULL, 0, 0, 0);
[platform:WARNING] ^
[platform:WARNING] 1 warning generated.
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_20.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_20
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_21.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_21.o
[platform:WARNING] /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_21.c:45:20: warning: implicit declaration of function 'getpagesize' is invalid in C99 [-Wimplicit-function-declaration]
[platform:WARNING]         long int result = getpagesize();
[platform:WARNING]                           ^
[platform:WARNING] 1 warning generated.
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_21.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/platcheck_21
+++********
[rtyper] specializing: 2700 / 2941 blocks   (91%)
++++
[rtyper] specializing: 2900 / 2956 blocks   (98%)
+
[rtyper] -=- specialized 290 more blocks -=-
[backendopt:inlining] phase with threshold factor: 32.4
[backendopt:inlining] heuristic: rpython.translator.backendopt.inline.inlining_heuristic
++++++++++++*******************%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###################################################################%%%%%%%%%*********
++++++++++*****************%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##############
[backendopt:inlining] inlined 1001 callsites.
[backendopt:malloc] starting malloc removal
+++++
[backendopt:malloc] removed 26 simple mallocs in total
[backendopt:mergeifblocks] starting to merge if blocks
+++++++
[rtyper:WARNING] prebuilt instance Ellipsis has no attribute 'errno'
[rtyper] -=- specialized 15 more blocks -=-
++
[rtyper] specializing: 3000 / 3006 blocks   (99%)
[rtyper] -=- specialized 33 more blocks -=-
[backendopt:inlining] phase with threshold factor: 32.4
[backendopt:inlining] heuristic: rpython.translator.backendopt.inline.inlining_heuristic
+++
[backendopt:inlining] inlined 4 callsites.
[backendopt:malloc] starting malloc removal
[backendopt:malloc] removed 0 simple mallocs in total
[backendopt:mergeifblocks] starting to merge if blocks
[c:database] GC transformer: finished helpers
[c:database] GC transformer: finished tables
[gctransform:info] assigned 51 typeids
[gctransform:info] added 100 push/pop stack root instructions
[gctransform:info] inserted 9 write barrier calls
[gctransform:info] inserted 8 write_barrier_from_array calls
[gctransform:info] found 2 static roots
[c]      622 nodes  [ array: 109  framework rtti: 19  func: 181  group: 1  struct: 312 ]
[c:database] Completed
[translation:info] database for generating C source was created
[1702] translation-task}
[translation:info] Generating c source...
[1702] {translation-task
starting source_c
[c:writing] structdef.h
[c:writing] forwarddecl.h
[c:writing] preimpl.h
[c:writing] data_r12a_main.c
[c:writing] data_rpython_memory_gc_env.c
[c:writing] data_rpython_memory_gc_minimark.c
[c:writing] data_rpython_memory_gctransform_framework.c
[c:writing] data_rpython_rlib_rdtoa.c
[c:writing] data_rpython_rtyper_lltypesystem_rclass.c
[c:writing] data_rpython_rtyper_lltypesystem_rdict.c
[c:writing] nonfuncnodes.c
[c:writing] data_rpython_memory_gc_minimark_1.c
[c:writing] data_rpython_rlib_entrypoint.c
[c:writing] data_rpython_rtyper_lltypesystem_rffi.c
[c:writing] data_rpython_rtyper_module_ll_os.c
[c:writing] implement.c
[c:writing] r12a_main.c
[c:writing] rpython_memory_gc_base.c
[c:writing] rpython_memory_gc_env.c
[c:writing] rpython_memory_gc_minimark.c
[c:writing] rpython_memory_gc_minimarkpage.c
[c:writing] rpython_memory_gctransform_framework.c
[c:writing] rpython_memory_gctransform_shadowstack.c
[c:writing] rpython_memory_gctransform_transform.c
[c:writing] rpython_memory_lldict.c
[c:writing] rpython_memory_support.c
[c:writing] rpython_rlib_entrypoint.c
[c:writing] rpython_rlib_rdtoa.c
[c:writing] rpython_rlib_rgc.c
[c:writing] rpython_rlib_rposix.c
[c:writing] rpython_rtyper_exceptiondata.c
[c:writing] rpython_rtyper_lltypesystem_ll_str.c
[c:writing] rpython_rtyper_lltypesystem_rbuilder.c
[c:writing] rpython_rtyper_lltypesystem_rclass.c
[c:writing] rpython_rtyper_lltypesystem_rdict.c
[c:writing] rpython_rtyper_lltypesystem_rffi.c
[c:writing] rpython_rtyper_lltypesystem_rlist.c
[c:writing] rpython_rtyper_lltypesystem_rstr.c
[c:writing] rpython_rtyper_module_ll_os.c
[c:writing] rpython_rtyper_module_ll_os_environ.c
[c:writing] rpython_rtyper_module_ll_os_stat.c
[c:writing] rpython_rtyper_rlist.c
[c:writing] rpython_rtyper_rrange.c
[c:writing] rpython_rtyper_rstr.c
[c:writing] rpython_translator_c_extfunc.c
[c:writing] rpython_translator_exceptiontransform.c
[translation:info] written: /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/testing_1/testing_1.c
[1a7d] translation-task}
[translation:info] Compiling c source...
[1a7d] {translation-task
starting compile_c
[platform:execute] make -j 4 in /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45/testing_1
[platform:WARNING] rpython_rtyper_lltypesystem_rffi.c:28:12: warning: implicit declaration of function 'sysctlbyname' is invalid in C99 [-Wimplicit-function-declaration]
[platform:WARNING]         l_v8272 = sysctlbyname(l_v8271, l_stararg1_0, l_stararg2_3, ((void *) NULL), l_stararg4_0);
[platform:WARNING]                   ^
[platform:WARNING] 1 warning generated.
[translation:info] usession directory: /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-45
[translation:info] created: /Users/rokujyouhitoma/workspace/r12a/bin/r12a
[1a80] translation-task}
[Timer] Timings:
[Timer] annotate                       ---  3.0 s
[Timer] rtype_lltype                   --- 11.1 s
[Timer] backendopt_lltype              ---  7.1 s
[Timer] stackcheckinsertion_lltype     ---  0.1 s
[Timer] database_c                     --- 37.0 s
[Timer] source_c                       ---  8.9 s
[Timer] compile_c                      ---  2.5 s
[Timer] =========================================
[Timer] Total:                         --- 69.8 s

CPython

ike-no-MacBook-Air% make      
python /Users/rokujyouhitoma/workspace/bitbucket.org/pypy.origin/rpython/bin/rpython --opt=2 targetr12a.py
[translation:info] 2.7.2 (default, Jun 20 2012, 16:23:33)
[translation:info] [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)]
[platform:msg] Set platform with 'host' cc=None, using cc='clang'
[translation:info] Translating target as defined by targetr12a
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/gcctest.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/gcctest.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/gcctest.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/gcctest
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/gcctest.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/gcctest.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/gcctest.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/gcctest
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_0.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_0.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_0.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_0
[translation] translate.py configuration:
[translation] [translate]
[translation]     opt = 2
[translation]     targetspec = targetr12a
[translation] translation configuration:
[translation] [translation]
[translation]     gc = minimark
[translation]     gctransformer = framework
[translation]     list_comprehension_operations = True
[translation]     withsmallfuncsets = 5
[translation:info] Annotating&simplifying...
[65] {translation-task
starting annotate
[translation:info] with policy: rpython.annotator.policy.AnnotatorPolicy
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_1.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_1.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_1.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_1
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_2.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_2.o
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_3.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_3.o
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_4.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_4.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_4.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_4
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_5.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_5.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_5.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_5
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_6.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_6.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_6.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_6
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_7.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_7.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_7.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_7
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_8.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_8.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_8.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_8
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_9.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_9.o
[platform:WARNING] /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_9.c:42:1: warning: expression result unused [-Wunused-value]
[platform:WARNING] utimes;
[platform:WARNING] ^~~~~~
[platform:WARNING] 1 warning generated.
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_9.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_9
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_10.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_10.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_10.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_10
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_11.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_11.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_11.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_11
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic -I/Users/rokujyouhitoma/workspace/bitbucket.org/pypy.origin/rpython/translator/c /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_12.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_12.o
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic -I/Users/rokujyouhitoma/workspace/bitbucket.org/pypy.origin/rpython/translator/c /Users/rokujyouhitoma/workspace/bitbucket.org/pypy.origin/rpython/translator/c/src/thread.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/rpython/translator/c/src/thread.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_12.o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/rpython/translator/c/src/thread.o -arch x86_64 -mmacosx-version-min=10.5 -Wl,-exported_symbols_list,/var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/dynamic-symbols-0 -I/Users/rokujyouhitoma/workspace/bitbucket.org/pypy.origin/rpython/translator/c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_12
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_13.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_13.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_13.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_13
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_14.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_14.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_14.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_14
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_15.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_15.o
[platform:WARNING] /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_15.c:50:1: warning: expression result unused [-Wunused-value]
[platform:WARNING] ftime;
[platform:WARNING] ^~~~~
[platform:WARNING] 1 warning generated.
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_15.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_15
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_16.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_16.o
[platform:WARNING] /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_16.c:50:1: warning: expression result unused [-Wunused-value]
[platform:WARNING] gettimeofday;
[platform:WARNING] ^~~~~~~~~~~~
[platform:WARNING] 1 warning generated.
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_16.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_16
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_17.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_17.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_17.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_17
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_18.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_18.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_18.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_18
...+++++++++++++++*****[a3] translation-task}

[translation:info] RTyping...
[a3] {translation-task
starting rtype_lltype
...+++++++++++++++*************************%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###################################################%###########%%%##%**************
.++++++++++++++*****
[rtyper] specializing: 100 / 789 blocks   (12%)
.++++++++++++++*
[rtyper] specializing: 200 / 839 blocks   (23%)
[rtyper] specializing: 300 / 839 blocks   (35%)
.
[rtyper] specializing: 400 / 844 blocks   (47%)
[rtyper] specializing: 500 / 844 blocks   (59%)
[rtyper] specializing: 600 / 844 blocks   (71%)
[rtyper] specializing: 700 / 844 blocks   (82%)
[rtyper] specializing: 800 / 844 blocks   (94%)
[rtyper] -=- specialized 844 blocks -=-
.++++++++++++++************
[rtyper] specializing: 900 / 1027 blocks   (87%)
.+
[rtyper] specializing: 1000 / 1031 blocks   (96%)
[rtyper] -=- specialized 187 more blocks -=-
.++
[rtyper] -=- specialized 7 more blocks -=-
[1da] translation-task}
[translation:info] lltype back-end optimisations...
[1da] {translation-task
starting backendopt_lltype
[backendopt:inlining] phase with threshold factor: 32.4
[backendopt:inlining] heuristic: rpython.translator.backendopt.inline.inlining_heuristic
.++++++++++++++*********************%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###################################################################%%#%%*************
++++++++++++****
[backendopt:inlining] inlined 321 callsites.
[backendopt:malloc] starting malloc removal
++++++++++++*******************%
[backendopt:malloc] removed 118 simple mallocs in total
[backendopt:mergeifblocks] starting to merge if blocks
[258] translation-task}
[translation:info] inserting stack checks...
[258] {translation-task
starting stackcheckinsertion_lltype
++
[rtyper] -=- specialized 7 more blocks -=-
[translation:info] inserted 0 stack checks.
[25b] translation-task}
[translation:info] Creating database for generating c source...
[25b] {translation-task
starting database_c
+++++++++++
[rtyper] -=- specialized 25 more blocks -=-
++++++++++++*******************%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###################################################################%%%%%%%%%*********
++++++++++*****************%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########################################################################%%%%%%%%%%%%
[rtyper] specializing: 1100 / 2574 blocks   (42%)
++
[rtyper:WARNING] prebuilt instance <rpython.memory.gctypelayout.GCData object at 0x10698f090> has no attribute 'root_stack_top'
[rtyper:WARNING] prebuilt instance <rpython.memory.gctypelayout.GCData object at 0x10698f090> has no attribute 'root_stack_base'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute 'young_objects_with_light_finalizers'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute 'initial_cleanup'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute 'young_rawmalloced_objects'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute 'rawmalloced_total_size'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute 'next_major_collection_initial'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute 'old_objects_with_light_finalizers'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute '_debug_pending'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute '_list_rpy'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute 'tmpstack'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute '_callback2_arg4'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute '_debug_seen'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute 'finalizer_lock_count'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute '_callback2_arg3'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute 'nursery_objects_shadows'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute 'young_objects_with_weakrefs'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute 'old_objects_with_weakrefs'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute 'next_major_collection_threshold'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute 'old_rawmalloced_objects'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute 'objects_to_trace'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute 'objects_with_finalizers'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute '_count_rpy'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute '_callback2_arg0'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute '_callback2_arg1'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute '_callback2_arg2'
[rtyper:WARNING] prebuilt instance <rpython.memory.gc.minimark.MiniMarkGC object at 0x10698f0d0> has no attribute 'run_finalizers'
+++++
[rtyper] specializing: 1300 / 2593 blocks   (50%)
++++++++++******
[rtyper] specializing: 1500 / 2632 blocks   (56%)
++++++
[rtyper] specializing: 1700 / 2636 blocks   (64%)
++++++++
[rtyper] specializing: 1900 / 2645 blocks   (71%)
+++++
[rtyper] specializing: 2100 / 2656 blocks   (79%)
+++++++
[rtyper] specializing: 2300 / 2660 blocks   (86%)
++++++
[rtyper] specializing: 2500 / 2660 blocks   (93%)
+++
[rtyper] specializing: 2600 / 2660 blocks   (97%)
++
[rtyper] -=- specialized 1598 more blocks -=-
++++++++++*[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_19.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_19.o
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_19.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_19
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_20.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_20.o
[platform:WARNING] /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_20.c:44:1: warning: implicit declaration of function 'mremap' is invalid in C99 [-Wimplicit-function-declaration]
[platform:WARNING] mremap(NULL, 0, 0, 0);
[platform:WARNING] ^
[platform:WARNING] 1 warning generated.
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_20.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_20
[platform:execute] clang -c -arch x86_64 -O3 -fomit-frame-pointer -mmacosx-version-min=10.5 -mdynamic-no-pic /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_21.c -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_21.o
[platform:WARNING] /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_21.c:45:20: warning: implicit declaration of function 'getpagesize' is invalid in C99 [-Wimplicit-function-declaration]
[platform:WARNING]         long int result = getpagesize();
[platform:WARNING]                           ^
[platform:WARNING] 1 warning generated.
[platform:execute] clang /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_21.o -arch x86_64 -mmacosx-version-min=10.5 -o /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/platcheck_21
********
[rtyper] specializing: 2700 / 2926 blocks   (92%)
++++
[rtyper] specializing: 2900 / 2942 blocks   (98%)
++
[rtyper] -=- specialized 290 more blocks -=-
[backendopt:inlining] phase with threshold factor: 32.4
[backendopt:inlining] heuristic: rpython.translator.backendopt.inline.inlining_heuristic
++++++++++*****************%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##########################################################################%%%%%%%%%%%%%******
++++++++****************#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########
[backendopt:inlining] inlined 994 callsites.
[backendopt:malloc] starting malloc removal
+++++
[backendopt:malloc] removed 26 simple mallocs in total
[backendopt:mergeifblocks] starting to merge if blocks
+++++++
[rtyper:WARNING] prebuilt instance Ellipsis has no attribute 'errno'
[rtyper] -=- specialized 15 more blocks -=-
++
[rtyper] specializing: 3000 / 3006 blocks   (99%)
[rtyper] -=- specialized 33 more blocks -=-
[backendopt:inlining] phase with threshold factor: 32.4
[backendopt:inlining] heuristic: rpython.translator.backendopt.inline.inlining_heuristic
+++
[backendopt:inlining] inlined 4 callsites.
[backendopt:malloc] starting malloc removal
[backendopt:malloc] removed 0 simple mallocs in total
[backendopt:mergeifblocks] starting to merge if blocks
[c:database] GC transformer: finished helpers
[c:database] GC transformer: finished tables
[gctransform:info] assigned 51 typeids
[gctransform:info] added 100 push/pop stack root instructions
[gctransform:info] inserted 9 write barrier calls
[gctransform:info] inserted 8 write_barrier_from_array calls
[gctransform:info] found 2 static roots
[c]      622 nodes  [ array: 109  framework rtti: 19  func: 181  group: 1  struct: 312 ]
[c:database] Completed
[translation:info] database for generating C source was created
[757] translation-task}
[translation:info] Generating c source...
[757] {translation-task
starting source_c
[c:writing] structdef.h
[c:writing] forwarddecl.h
[c:writing] preimpl.h
[c:writing] data_r12a_main.c
[c:writing] data_rpython_memory_gc_env.c
[c:writing] data_rpython_memory_gc_minimark.c
[c:writing] data_rpython_memory_gctransform_framework.c
[c:writing] data_rpython_rlib_rdtoa.c
[c:writing] data_rpython_rtyper_lltypesystem_rclass.c
[c:writing] data_rpython_rtyper_lltypesystem_rdict.c
[c:writing] nonfuncnodes.c
[c:writing] data_rpython_memory_gc_minimark_1.c
[c:writing] data_rpython_rlib_entrypoint.c
[c:writing] data_rpython_rtyper_lltypesystem_rffi.c
[c:writing] data_rpython_rtyper_module_ll_os.c
[c:writing] implement.c
[c:writing] r12a_main.c
[c:writing] rpython_memory_gc_base.c
[c:writing] rpython_memory_gc_env.c
[c:writing] rpython_memory_gc_minimark.c
[c:writing] rpython_memory_gc_minimarkpage.c
[c:writing] rpython_memory_gctransform_framework.c
[c:writing] rpython_memory_gctransform_shadowstack.c
[c:writing] rpython_memory_gctransform_transform.c
[c:writing] rpython_memory_lldict.c
[c:writing] rpython_memory_support.c
[c:writing] rpython_rlib_entrypoint.c
[c:writing] rpython_rlib_rdtoa.c
[c:writing] rpython_rlib_rgc.c
[c:writing] rpython_rlib_rposix.c
[c:writing] rpython_rtyper_exceptiondata.c
[c:writing] rpython_rtyper_lltypesystem_ll_str.c
[c:writing] rpython_rtyper_lltypesystem_rbuilder.c
[c:writing] rpython_rtyper_lltypesystem_rclass.c
[c:writing] rpython_rtyper_lltypesystem_rdict.c
[c:writing] rpython_rtyper_lltypesystem_rffi.c
[c:writing] rpython_rtyper_lltypesystem_rlist.c
[c:writing] rpython_rtyper_lltypesystem_rstr.c
[c:writing] rpython_rtyper_module_ll_os.c
[c:writing] rpython_rtyper_module_ll_os_environ.c
[c:writing] rpython_rtyper_module_ll_os_stat.c
[c:writing] rpython_rtyper_rlist.c
[c:writing] rpython_rtyper_rrange.c
[c:writing] rpython_rtyper_rstr.c
[c:writing] rpython_translator_c_extfunc.c
[c:writing] rpython_translator_exceptiontransform.c
[translation:info] written: /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/testing_1/testing_1.c
[8fa] translation-task}
[translation:info] Compiling c source...
[8fa] {translation-task
starting compile_c
[platform:execute] make -j 4 in /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46/testing_1
[platform:WARNING] rpython_rtyper_lltypesystem_rffi.c:28:12: warning: implicit declaration of function 'sysctlbyname' is invalid in C99 [-Wimplicit-function-declaration]
[platform:WARNING]         l_v8273 = sysctlbyname(l_v8274, l_stararg1_0, l_stararg2_0, ((void *) NULL), l_stararg4_0);
[platform:WARNING]                   ^
[platform:WARNING] 1 warning generated.
[translation:info] usession directory: /var/folders/lc/vw5blb150gxd3_xwxj2k3s080000gn/T/usession-default-46
[translation:info] created: /Users/rokujyouhitoma/workspace/r12a/bin/r12a
[8fb] translation-task}
[Timer] Timings:
[Timer] annotate                       ---  1.6 s
[Timer] rtype_lltype                   ---  3.1 s
[Timer] backendopt_lltype              ---  1.3 s
[Timer] stackcheckinsertion_lltype     ---  0.0 s
[Timer] database_c                     --- 13.0 s
[Timer] source_c                       ---  4.2 s
[Timer] compile_c                      ---  2.4 s
[Timer] =========================================
[Timer] Total:                         --- 25.6 s

一言

何が原因でしょうね...ひとまず、原因究明よりCPythonで続きする。コードでかくなってきたら逆転するかもだから、コード増やす。

virtualenvのバージョンが古いとPyPyの環境がうまく作れない。

rubykaigi2013で@matzが言語作ろうよ!的な発表してたので、RPython toolchain使って以前作ったOok!を元にちょっと言語らしくしてみるかと思った。
RPythonのコンパイルはCPythonだと時間かかるので、PyPyでコンパイルすれば時間節約できてー(゚д゚)ウマー。というのを目指す。

で、表題の件で引っかかったので。

  • PyPy2.0.2

失敗した場合は下記の通り。(virtualenvwrapper使ってますが、virtualenvでも同様)

ike-no-MacBook-Air% virtualenv -p /Users/rokujyouhitoma/usr/local/src/pypy-2.0.2/bin/pypy _                                
Running virtualenv with interpreter /Users/rokujyouhitoma/usr/local/src/pypy-2.0.2/bin/pypy
New pypy executable in _/bin/pypy
debug: WARNING: Library path not found, using compiled-in sys.path.
debug: WARNING: 'sys.prefix' will not be set.
debug: WARNING: Make sure the pypy binary is kept inside its tree of files.
debug: WARNING: It is ok to create a symlink to it from somewhere else.
debug: OperationError:
debug:  operror-type: ImportError
debug:  operror-value: No module named os
ERROR: The executable _/bin/pypy is not functioning
ERROR: It thinks sys.prefix is u'/Users/rokujyouhitoma' (should be u'/Users/rokujyouhitoma/_')
ERROR: virtualenv is not compatible with this system or executable

解決策

virtualenvのバージョンを最新にする。

-no-MacBook-Air% sudo easy_install -U virtualenv
Password:
Searching for virtualenv
Reading http://pypi.python.org/simple/virtualenv/
Best match: virtualenv 1.9.1
Downloading http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.9.1.tar.gz#md5=07e09df0adfca0b2d487e39a4bf2270a
Processing virtualenv-1.9.1.tar.gz
Writing /tmp/easy_install-dDdnB2/virtualenv-1.9.1/setup.cfg
Running virtualenv-1.9.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-dDdnB2/virtualenv-1.9.1/egg-dist-tmp-NJo0g9
warning: no previously-included files matching '*' found under directory 'docs/_templates'
warning: no previously-included files matching '*' found under directory 'docs/_build'
Removing virtualenv 1.8.3 from easy-install.pth file
Adding virtualenv 1.9.1 to easy-install.pth file
Installing virtualenv script to /usr/local/bin
Installing virtualenv-2.7 script to /usr/local/bin

Installed /Library/Python/2.7/site-packages/virtualenv-1.9.1-py2.7.egg
Processing dependencies for virtualenv
Finished processing dependencies for virtualenv

再度トライ

ike-no-MacBook-Air% mkvirtualenv _ --no-site-packages --distribute --python=/Users/rokujyouhitoma/usr/local/src/pypy-2.0.2/bin/pypy
Running virtualenv with interpreter /Users/rokujyouhitoma/usr/local/src/pypy-2.0.2/bin/pypy
Overwriting _/lib-python/2.7/site.py with new content
New pypy executable in _/bin/pypy
Installing distribute...........................................................................................................................................................................................................................done.
Installing pip................done.

うまくいった。