CIM - Common Lisp Implementation Managerを作りました
Upcoming SlideShare
Loading in...5
×
 

CIM - Common Lisp Implementation Managerを作りました

on

  • 7,222 views

Shibuya.lispのLisp Meet Up #13での発表資料です

Shibuya.lispのLisp Meet Up #13での発表資料です

Statistics

Views

Total Views
7,222
Views on SlideShare
698
Embed Views
6,524

Actions

Likes
1
Downloads
1
Comments
0

18 Embeds 6,524

http://blog.8arrow.org 4337
http://shibuya.lisp-users.org 1731
http://keens.github.io 221
http://feedly.com 56
http://127.0.0.1 45
http://ichisse-masashi.hatenablog.com 38
http://blog.hatena.ne.jp 32
https://twitter.com 24
http://www.feedspot.com 14
http://localhost 10
http://www.google.co.jp 3
http://digg.com 3
http://translate.googleusercontent.com 3
http://reader.fufabu.com 2
http://reader.aol.com 2
http://www.inoreader.com 1
http://webcache.googleusercontent.com 1
https://www.google.co.jp 1
More...

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    CIM - Common Lisp Implementation Managerを作りました CIM - Common Lisp Implementation Managerを作りました Presentation Transcript

    • CIMの紹介 Shibuya.lisp/Lisp Meet Up #13 κeen(@blackendgold)
    • 自己紹介 ● Twitter: κeen(@blackenedgold) ● Github: KeenS ● ブログ: κeenのHappy Hacκing Blog ● 東大数学科の三年生 ● 最近までandroidアプリ作るバイトしてた ● 就活中! ● Common Lisp, Ruby, Emacs Lispが好き ● 最近Real World OCaml読んでる(今15章くらい)
    • 今回作ったもの CIM – Common Lisp Implementation Manager
    • CIMとは? ● Rubyのrvm真似して作った ● 大きく分けると – – 統一CLIのcl – ● 処理系のインストール/管理のcim QuicklispのCLIのql デファクトスタンダードを目指して…
    • きっかけ ● 「shly loadでファイルを実行できる」発言 ● 自作関数でオプション処理とか付けたりした ● Shellyの制約に当たる->独立プロジェクト化 ● Shell Script勉強したいしShell Scriptで書こう
    • できること ● https://github.com/KeenS/CIM ● README読んでね ● 主なコマンドは – – cim use cclで切り替え – cl file.lispで実行 – ● cim install sbclでインストール ql installで(ql:quickload)相当 Help充実させたのでHelp読んで下さい
    • できること ● 管理できるのは – SBCL – CLISP – ECL – GCL – CCL – ABCL – Allegro CL
    • できること ● ● ● ql deps –path ./quicklisp myappでquicklisp分 離 cim for sbcl ccl clisp do foo.lispで処理系毎に 繰り返し clのオプションはrubyっぽくしてある – 割とワンライナーも意識
    • 実装 ● cimコマンド群とclはBourne Shell Script ● 800行くらい ● qlはCommon Lisp ● 500行くらい ● 依存ライブラリなし(Quicklispは使う) ● 極力依存を無くす方針 – 「インストール直後のFreeBSDで動く」を目安
    • 実装 ● 出来る限り汚さない – – 関数とかもexportしない – ● 環境変数は2つしかexportしない 尚、rvmは… 副産物としてoption-parser – ● 需要があれば別ライブラリで公開 テストしてない… – テストってどうやれば良いの?
    • 苦労話 ● Shell Script難しい – – おもいっきり状態に依存してる – ● OSによってコマンドの挙動が違ったり そもそも知識と経験がない ビルドが難しい処理系とか – ● SBCLはビルドもバイナリインストールも難しい Quicklispが思いの外貧弱 – バージョンを指定してインストールとか出来ないっぽい
    • 今後 ● テスト ● コアダンプ ● syset (rvmのgemset) ● quicklispにpull-req? ● plugin? – clコマンドを生かしたい
    • 以上 みんな使ってね