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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

9,427
views

Published on

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

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

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
9,427
On Slideshare
0
From Embeds
0
Number of Embeds
20
Actions
Shares
0
Downloads
1
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×