そうだ! EuroPython 2011へ行こう

#3 PyPyについての講演,ハンズオン,スプリント

この記事を読むのに必要な時間:およそ 5 分

PyPyのバグフィックス

PyPy HANDS-ONセッションではPyPyのバグフィックスのハンズオンがありました。

実際のバグの事例は次の通りです。

  • html_fibo.py(フィボナッチ数を計算しHTMLを生成するプログラム)
  • このプログラムをCPythonで実行します
  • このプログラムをPyPyで実行します
  • 結果はCPythonとPyPyの挙動が異なり,PyPyのバグフィックスをします!

実際にCPythonでhtml_fibo.pyを実行してみましょう。

$ python html_fibo.py
<ul>
    <li>1</li>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>5</li>
    <li>8</li>
    <li>13</li>
    <li>21</li>
    <li>34</li>
    <li>55</li>
    <li>89</li>
    <li>144</li>
</ul>

PyPyでhtml_fibo.pyを実行すると,何も表示されません。参加者は,講師とともにこのバグフィックスに挑戦しましたが,結果的には誰もバグフィックスに至りませんでした。

Part2:PyPyを使用して独自のインタプリタを書く

PyPyはPythonインタプリタであるだけではなく,動的言語を実装するためのライブラリRPython Toolchainを持っています。Part2では,独自のプログラミング言語を実装する人,JITコンパイラの内部動作を詳しく知りたい人向けのパートを予定していました。

しかし時間の都合上,実際には行われませんでした(筆者は心から落胆しましたが,内容がハード過ぎます。仕方ないですね)⁠

現状,PyPyプロジェクトのサイトでRPython Toolchainを使った動的言語の実装が紹介されています。

もしあなたがRPython Toolchainを使って,独自の動的言語を作成したいのであれば,次の資料を参考するのがよいでしょう。

以上でPyPy HANDS-ONは終わりです。

本講演の資料と動画はPYPY HANDS-ONで公開されています。

SPRINTS

筆者はSPRINTSではDjango REST Frameworkに出る予定でした。しかし,あまりにPyPyの魅力に取りつかれてしまったために,PyPySPRINTSに急遽参加しました(Django REST Frameworkの皆さんごめんなさい。そしてPyPyの皆さん急にごめんなさい)⁠

PyPySPRINTSでは,周りのエンジニアは次のことをしていました。

  • PyPyメインコミッター同士で今後について打ち合わせ
  • List of issuesのバグフィックス(FreeBSDでのコンパイル失敗の原因調査,PyPyでのctypesのバグトレース)
  • はじめてPyPyの開発に参加するエンジニアが,シニアエンジニアからレクチャーを受ける

筆者は,SPRINTSの前日から開発ドキュメントの翻訳を始めました。翻訳を始めた理由をあげます。

  • 言語処理系の知識(言語処理系全般の基礎知識や,JITコンパイラについて)を有していないため,言語処理系の理解を深める
  • 英語が苦手であり,SPRINTSでいきなり会話するのは厳しい。そして,ドキュメント翻訳は英語に慣れる素晴らしい環境(英語重要)
  • 日本語翻訳ドキュメントがなく,日本人エンジニアには敷居が高いので敷居を下げる(英語超重要)

最大の理由は,開発者ドキュメントが整備されており,読まずにいきなりコードを修正する自信が筆者にはありません。ゆくゆくはPyPyの実装に取り掛かりたいのが本音です。

また,隣の席に,メインコミッターのArmin Rigo氏がおられたので,急遽作った資料でプレゼンテーションを行い,次のことを宣言してきました。

  • 日本で協力者を募りPyPyの開発者ドキュメントを日本語翻訳する。翻訳後はPyPyチームにIRCかe-mailで報告するよ!
  • PyPy Status Blogの日本語翻訳ブログのPyPy Status Blog JAを立ち上げる
  • 翻訳は,Google Groupsにpypy-jaというメーリングリストを作ります!
  • (筆者個人として,コード読んでコミッターになるべく頑張るね!そして,また会いましょう!)

そして,最後に日本のPythonistaを代弁し次のことを伝えました。

  • 日本のPythonistaはあなた方を追いかけます!

宣言してしまったからには仕方ありませんね。ええっ。日本のPythonistaとして一丸となって一緒に頑張って行きましょう。

というわけで,筆者は,協力者を募集しています。翻訳は始まったばかりで入りやすいのではないでしょうか?筆者もわからない事だらけです。

筆者は日本のPythonistaが翻訳に興味があるのを知っています。前回のPyCon mini JPの翻訳に関するPython界隈の翻訳プロジェクトにおいてQ.翻訳プロジェクトで協力者を募集していたら参加しますか?という設問に,日本のPythonistaが11%の方が翻訳に参加する58%の方が興味のある技術なら参加するとアンケートに答えたことを決して忘れません。

もちろん翻訳ではなく,PyPyコミッターに今すぐなる方も大歓迎です!

少しでも興味が有る方は,筆者(@rokujyouhitoma)までお気軽にお声がけ下さい。

次回予告

以上,池さんのPyPyの講演等に関するレポートです。PyPyに興味をもった人がいましたら是非,池さんに声をかけてみてください。

さて次回は,アプリケーションに関する講演について紹介したいと思います。

著者プロフィール

森本哲也(もりもとてつや)

一介のプログラマ。

自分で設計して,自分で開発して,自分で直せるような独立したプログラマを目指している。OSSコミュニティのゆるい人のつながりが性にあっていてPythonプログラミングが好き。共訳書に『エキスパート Pythonプログラミング』(アスキーメディアワークス)がある。

Twitter:@t2y

ブログ:http://d.hatena.ne.jp/t2y-1979/


池徹(いけとおる)

プログラミング言語全般を好み,特にJavaScriptとPythonを愛する。好奇心旺盛で学ぶことは大好きであるが,最近の関心はもっぱらPyPy。休日の楽しみは読書に,美術館巡り。現在はオーストラリアの会社で開発をしつつ忍者の肩書きを授かる。

Twitter:http://twitter.com/#!/rokujyouhitoma
ブログ:http://d.hatena.ne.jp/rokujyouhitoma

コメント

コメントの記入