Shibuya.lisp #6




○○ からはじめる Scheme
    Shibuya.lisp #6 LT
     HAYASHI Kentaro
   <kenhys@gmail.com>




                                   1
自己紹介
■   東京の西の方でソフトウェアの保守とかやってます
       お仕事は PHP/C/C++/C#
       趣味で Ruby/Gauche あたりをちょこちょこ
■   Scheme プログラマのレベル
       まだレベル 2
       参考 : 「私家版 scheme プログラマのレベル 10 」
■   TrackPoint 愛好家 ( ソフト・ドーム・キャップ派 )
       ThinkPlus トラベルキーボード ( 旧モデル )
       ThinkPad トラックポイントキーボード ( 新モデル )




                   資料 1

                                                     資料 2

    * 資料 1 wikipedia ポインティング・スティックの項目より
    * 資料 2 lenovo ThinkPlus トラックポイント・キャップ・コレクションより          2
Q.




Q. あなたが処理系を選んだ決め手は何でしたか ?




                        3
いろんな処理系
■   Scheme 処理系といってもいろいろ
       Bigloo
       Chez
       Gambit
       Gauche
       Guile
       Larceny
       MIT Scheme
       Racket( 旧 PLT Scheme)
       Scheme48
       SCM
       SISC




                                      4
■   なかには Hatena で質問した人もいることでしょう




                                  5
はじめての Scheme
■   Scheme との出会い
       Scheme サブセットを積んだ製品用のスクリプト
         ➔
           R4RS のサブセット



                   (略)




            Gauche を使ってみよう



                                    6
Gauche のここ最近の動向を振り返ってみると……




                             7
2007 年
■   GaucheNight




                       8
2008 年
■   gauche.night




                        9
プログラミング Gauche
■   プログラミング Gauche 発売 (2008 年 )




                                  10
2009 年と Gauche
■   Gauche 0.9 リリース (2009/11/22)
       C API の非互換な変更
       新規モジュールの追加 (rfc.zlib など )
       新規手続きの追加
       不具合修正や改善
       Windows サポート強化




                                          11
Gauche と Windows
■   Gauche MinGW 版
       コンパイル済みバイナリ
       インストーラ形式 ( 以前は zip アーカイブ )


            既に Emacs(Meadow) 環境がある人


■   Gauchebox
       Gauche MinGW 版
       Meadow をバンドル


          新規に Emacs(Meadow) 環境を構築する人



                                          12
Gauche と拡張パッケージ
■   Gauche で使えるパッケージ
       Gauche-gl
       Gauche-gtk
       readline
       Gauche Garbage Collection
       他にもいろいろ Wiliki:Gauche:Packages
         ➔   http://practical-scheme.net/gauche/packages-j.html




                                                                  13
プリコンパイル済みバイナリが
 提供されているとは限らない




                 14
■   マイナーな OS を使うと悲しいことに




                          15
MinGW 版と Cygwin 版
■   MinGW 版
       インストールが楽
       Cygwin なくてもいい
       MinGW 版のみ使えない / 動作が異なる機能あり
■   Cygwin 版
       まずは Cygwin のインストールから
       configure;make;make install
       MinGW 版に比べて制限は少ない
       みんな大好き c-wrapper も対応



               Cygwin に依存したくない人はどうする ?



                                           16
言語とインストーラ
■   Perl
       Active Perl
■   Python
       Active Python
■   Ruby
       rumix(1.8/1.9 系 )
       Ruby Installer(1.9 系 )




                                         17
Gauche でもお手軽に導入できるようにならないだろうか ?




                                  18
始めたきっかけ
■   Shibuya.lisp #5(2010/03/20) に参加した
       刺激受けた
       なぜか OpenGL をビルド
       インストーラまで作った




                                        19
Gauche Nightly Tester Builds
■   Gauche Nightly Tester Builds
       基本は Gauche MinGW 版
       コンパイル済み svn HEAD
       インストーラで環境構築
       拡張添付
       Windows 向けの一時しのぎのパッチ適用




                                               20
■   Gauche Nightly Tester Builds の位置付け
       Meadow はすでにインストール済み
       標準添付されていない拡張を使いたい
       trunk の機能を使いたくなるかも知れない




                                      Gauche
                                      Nightly
         Gauchebox   Gauche MinGW 版
                                      Tester
                                      Builds




                                                21
グラフィックは ?




            22
添付済み拡張 - グラフィック編
■   グラフィック
       OpenGL
         ➔   Gauche-gl 0.4.4
       SDL
         ➔ Gauche-sdl 0.5.1
         ➔
           SDL_mixer,SDL_gfx 等非対応
       GTK+
         ➔   Gauche-gtk(github)
       FLTK
         ➔ Gauche fltk 0.0.1
         ➔ FLTK 2.0.x-r7755




                                       23
データベースは使える ?




               24
添付済み拡張 - データベース編
■   データベース
       PostgreSQL
         ➔   Gauche-dbd-pg 0.2.1
       SQLite
         ➔   Gauche-dbd-sqlite3 0.1.3




                                        25
他には ?




        26
添付済み拡張 - その他
■   その他
       slib 3b3
       dyncomp 0.2.0
       info の日本語表示パッチ
       ggc Gauche Garbage Collection rel-0-17( 一部 )
       拡張子関連付け




                                                       27
■   ダウンロード総数     104 件 (2010/03-2010/11 現在 )
       hatena でちょろっと日記書いた
                                         クローラ
                         利用者の比率         (yandex.ru
                                  crawl.yahoo.net など )


                大学
           企業            俺
                                               その他
                                               企業
                                               大学
                                               俺
                                               クローラ




                                                         28
デモ



     29
拡張のエコシステム



         Gauche 使う人


パッケージングする人                       拡張書く人
        gauche-package compile




         コンパイルする人



                                         30
まとめ




拡張の


コンパイルからはじめる Scheme




                     31
さいごに




ご静聴いただきありがとうございました。
 ※Gauche 0.9.1 だと OpenGL(Gauche-gl) が添付されるようですね




                                                  32

Shibuyalisp6lt