Shibuya.lisp

Logo

Shibuya.lispは渋谷周辺半径2万キロのLispコミュニティです

Hosted on GitHub Pages — Theme by orderedlist

2021年09月30日Repmeetup100

shibuya lisp 100が開催されました

前置き

運営のNiyarinです。今回から内容の記録をとることにしました。

100回というきりの良い数字ということでひさびさに参加する方が何人か来ていました。 長い発表枠が埋まっていて、予定した時間を少しオーバーする位でした。

発表枠1

- 発表者 池上さん
- タイトル「C言語でじっそうするオレオレLispっぽい処理系」

小さいLisp処理系を実装中という内容でした。 計算機を理解したいというモチベーションからプログラミング言語を実装することにしたそうです。 普通のパソコン向けでない、マイコン向けやFPGA向け処理系の紹介が冒頭にありました。 実装したLispは純Lisp風のものだそうです。 実際に動いている機能が紹介され、今後に期待ですね。 強そうな人たちに処理系の挙動の質問をされていたのがおもしろかったです。

発表枠2

- 発表者 y2q_actionman さん
- タイトル 「おもしろマクロ with-c-syntax の最近の進捗」

with-c-syntaxという、C言語の文法をマクロを用いてCommon lispに持ち込んだという内容でした。 かなりの文法を模倣できているそうです。Cの仕様書に対して忠実に再現しようとしておりすごそうです。 レポジトリ(https://github.com/y2q-actionman/with-c-syntax)の例が充実しており、 #{}で囲った部分にC言語風の文法を書くという使い方で、さらにその中でcommon lispを呼び出すこともできるような例もみられました。

本題の最近の進捗の内容は、Cのプリプロセッサの文法とmath.hの導入についてでした。 どちらも実装済みで、マイナーな機能などの実装の苦労話が聞けました。 他のlibcも検討しているようで、おもしろい方向に向かっているなという印象でした。

発表枠3

- 発表者 athosさん
- タイトル 「Trenchmanを題材にしたnREPLクライアント自作入門」

nREPL/preplクライアントをGo言語で実装したという内容とnREPLのプロトコルについての内容でした。 既存のクライアントがビルドできなくなったりするので、移植やメンテが容易であることを重要視しているそうです。

printデバッグ用にビルドしたものを用いて、サーバーとどんなやりとりがなされているか見せてもらえ、よく理解できました。 nREPLクライアントは比較的簡単なそうで、言語の入門に良いそうです。


2015年06月17日Lisp Meet Up presented by Shibuya.lisp #28 が開催されました。

5月27日(水)に第28回Lisp Meet Upが開催されました。 全19名の参加者のみなさま、お疲れさまでした。

会場は前回と同じ「渋谷センタープレイス4F テックラウンジ」でした。

イベントページ: https://atnd.org/events/66264

当日の活動内容

主催の挨拶の後、参加者の自己紹介をしてから、告知されていた発表に移りました。 今回は4件の発表が登録されていました。

yuugoさん : 奴に鉄槌を

発表の1件目はyuugoさんから、「奴に鉄槌を」と題したお話でした。職場で電話応対に不慣れな人のために、抽象的な単語から自分たちの扱う商品を絞り込んで検索するためのプログラムをCommon Lispで作ってみた、というお話でした。

録画映像 : https://drive.google.com/file/d/0B_H0_8eqWuVAbkRZajBFNFVlckk/view?usp=sharing

一瀬昌史さん : Chestnutについて

続いて一瀬さんから、Clojure/Omのためのアプリケーションテンプレートであるchestnutの紹介がありました。chestnutの概要を軽く述べた後はデモに移り、デモが発表の中心でした。単に手軽にwebサーバが起動できるというだけではなく、ClojureScriptファイルの変更が即座にブラウザ側にも反映されたり、REPLをブラウザに接続するといった機能もデモを通して紹介されました。

スライド : http://www.slideshare.net/izy00466/start-chestnut
録画映像 : https://drive.google.com/file/d/0B_H0_8eqWuVAN1JrOERnSXpvTlU/view?usp=sharing

snmstsさん: 詳解roswell

3件目はsnmstsさんから、Roswellというソフトウェアの紹介でした。Roswellは佐野さんが作っているCommon Lisp処理系の管理を行なうソフトウェアで、処理系のインストールの自動化の他、コマンドライン引数の差異を吸収したり、実行可能ファイルを生成したりといった機能があります。

Common Lispの使い方や、Roswellの解決しようとしている問題について丁寧に説明した後、Roswellを用いて実際に処理系をインストールしたり、バージョンの違う処理系で実行させたり、といった内容のデモが行われました。

Roswellのソース : https://github.com/snmsts/roswell
録画映像 : https://drive.google.com/file/d/0B_H0_8eqWuVAT0RZMGNPRzFJY1U/view?usp=sharing

tnoda\_さん : Rについて

最後はtnoda\_さんが実装中のClojureからRを使うRashinbanというライブラリについてのお話でした。

前半はRの簡単な説明と、Java以外の言語で書かれたプログラムとClojureを連携する場合に考えられる戦略、そしてRを利用するライブラリを作る場合に考えられるいくつかのアプローチについての説明でした。後半は、特にRとClojureの間のデータの通信に際して生じるディスパッチの問題をClojureのprotocolとmultimethod、そしてmetadataをうまく使って切り分けた方法について詳述していました。

発表スライドはtnoda\_さんのブログで公開されています。RashinbanのソースコードはGithubで公開されているようです。

ブログ : http://tnoda-clojure.tumblr.com/post/120124360112/shibuya-lisp-28-r
ソース : https://github.com/tnoda/rashinban

</dl>

懇親会

懇親会は、会場付近の「和来場娯」というお店で懇親会をしました。参加者は16名でした。


2015年06月17日Lisp Meet Up presented by Shibuya.lisp #27 が開催されました。

4月27日(月)に第27回Lisp Meet UpがCommon Lispをテーマに開催されました。 全19名の参加者のみなさま、お疲れさまでした。

今回の会場「渋谷センタープレイス4F テックラウンジ」は、今までと雰囲気が違い、ソファーなどが置かれていて談話室といった雰囲気でした。

イベントページ: https://atnd.org/events/64988

当日の活動内容

主催の挨拶の後、すぐに発表に移りました。

Masayuki Takagiさん : (続) 8-bit PIC マイコン用ネイティブコンパイラの作成

第25回Lisp Meet Upでのお話の続きとして発表者自身で実装中の8-bit PICマイコン用ネイティブコンパイラPICの詳細についてお話いただきました。今回はコンパイラの処理の流れに始まり、各ステージについて詳細な説明がありました。例も豊富でわかりやすかったです。
他に、おまけとしてGC用ハードウェアについての論文の紹介がありました。

PICのソースコード: https://github.com/takagi/pic
発表スライド: http://www.slideshare.net/masayukitakagi/2015-0422
録画映像: https://drive.google.com/file/d/0B_H0_8eqWuVAci1kVFFadnkyYUE/view?usp=sharing
</dd>

chikuさん : readerの基礎

Common LispのReaderについて基礎的な事柄のお話でした。大雑把な挙動を説明した後、文字の属性ごとに詳細を解説し、ちょっとした応用や個人的に実現して欲しい性質などについて話していました。入門者に向けて、CLの面白い機能や機能の詳細を説明し、モチベーションの維持に役立ててもらえることを目的とした話でした。 </dd>

スライド: http://www.slideshare.net/samugari/before-lisps-just-part-of-the-past-reader-pub
録画映像: https://drive.google.com/file/d/0B_H0_8eqWuVAdm9hSVotdzJZblE/view?usp=sharing

</dl>

懇親会

懇親会は、会場付近の「和来場娯」というお店で懇親会をしました。参加者は14名でした。 発表内容についての質問や議論の他、4月なので新社会人の方が数人参加しており、会社でなにをやっているかとか研修の話などにも話題が及んでいました。


2015年06月17日Lisp Meet Up presented by Shibuya.lisp #26 が開催されました。

3月24日(火)に第26回Lisp Meet UpがClojureをテーマに開催されました。 全17名の参加者のみなさま、お疲れさまでした。

イベントページ: https://atnd.org/events/63547

当日の活動内容

通例通り、主催の挨拶と自己紹介の後、予定されていた3件の発表が開始されました。

athos0220さん : Clojureのチャットボットフレームワーク

チャットボットフレームワークはWebサービス運用のための様々な要求をチャットコマンドに集約するChatOpsで主要な位置を占めるチャットボットのためのフレームワークです。発表では、athos0220さんご自身が実装中のチャットボットフレームワークであるparabolaの解説のほか、チャットボットフレームワークのアーキテクチャについての解説、Hubotjubotといった他の実装でのアプローチについての言及もありました。 parabolaでは、core.asyncを用いて抽象化レイヤーの並行実行可能にしたり、スクリプトを関数として記述できるようにするなど、Clojureの特徴を活かした実装になっているとのことでした。

parabolaのソース: https://github.com/liquidz/jubot
発表映像: https://drive.google.com/open?id=0B_H0_8eqWuVAdGNJQmt4ZGdNVEk&authuser=0
</dd>

にだーさん : Typed Clojureの紹介
Clojureに漸進的片付けを導入したTyped Clojureについて、その歴史や現状、基本的な使い方、欠点などがデモを交えて解説されました。

録画映像: https://drive.google.com/open?id=0B_H0_8eqWuVAd3JlS3oybmM4VzA&authuser=0

haijuさん : Nightcodeの紹介

NightcodeはClojureで書かれた初心者向けのClojure開発環境で、GameやWeb、あるいはデスクトップアプリなど、プロジェクトの性格ごとにテンプレートが利用できる点に大きな特徴があるとのことでした。利用者が少ないためか情報が極めて少なく、ヘルプファイルもあまり充実していないそうです。

</p>
録画映像: https://drive.google.com/open?id=0B_H0_8eqWuVAbDdPbnJtTFBMLU0&authuser=0
</p> </dl>

懇親会

会場近くの「とら」というお店で懇親会をしました。懇親会では、Lispを学んだきっかけやScheme(r)の話の他、4月からの新生活や湯治の話が話題に上っていました。


2015年05月09日Lisp Meet Up presented by Shibuya.lisp #25 が開催されました。

2月25日(水)に第25回Lisp Meet Upが開催されました。全16名の方にご参加いただけました。 参加者のみなさん、お疲れさまでした。

イベントページ: https://atnd.org/events/62568

当日の活動内容

今回は4件の発表が予約されていたので、通例となっている参加者の自己紹介は省き、主催の挨拶の後はすぐに発表が開始されました。

hyotang666さん: packageの局所的なuseのためのユーティリティ

packageを局所的にuseするための自作ユーティリティWITH-PACKAGEについてのお話でした。Common LispではREAD時に各シンボルのホームパッケージが決まってしまうので、useしていないパッケージのシンボルをある静的な範囲でパッケージ修飾せずにアクセスするには何らかの工夫を要します。WITH-PACKAGEではマクロ展開時にシンボル名を根拠にインターンし直すことでこの問題に対処しています。

WITH-PACKAGEのソース: https://github.com/hyotang666/with-package
発表映像: https://drive.google.com/file/d/0B_H0_8eqWuVAVFRVaHB6NXEtYlk/view?usp=sharing
</dd>

深町さん: Woo: The way to the fastest web server in Common Lisp

発表者がご自身で実装中の高速なHTTPサーバ:Wooについてその設計や現状についてのお話でした。WooはNode.jsよりも高速なHTTPサーバとなることを目標に開発が開始され、これを達成するためのアーキテクチャの選定、使用した既存ライブラリ、新規に開発したライブラリなどについて詳細に説明していました。既存のHTTPサーバのアプローチやライブラリの問題点についても触れていて、とても充実した内容でした。 なお、当初の目標は既に達成され、現在はすべてのHTTPサーバよりも高速なHTTPサーバとなることに目標が変更されたそうです。

スライド: http://www.slideshare.net/fukamachi/woo-writing-a-fast-web-server
Wooのソース: https://github.com/fukamachi/woo
発表映像
1: https://drive.google.com/file/d/0B_H0_8eqWuVAaG82TjJWbFVvR28/view?usp=sharing
2: https://drive.google.com/file/d/0B_H0_8eqWuVAbW5iclRrWHRRRTg/view?usp=sharing

egiさん: Egisonについて

発表者ご自身が研究・開発中のプログラミング言語Egisonについて紹介がありました。Egisonは幅広いデータ構造に対しパターンマッチを記述できる言語で、そのパターンの記述能力は既存の言語を上回るものです。パターンマッチがプログラミング言語においてなぜ重要と考えられるか、といった言語の設計についてのご自身の考えや日本および世界でのEgisonの盛り上がりについても言及されていました。

以下の公式ページは詳細な説明やチュートリアル、Egisonを簡単に試せるインタプリタなどを備えています。

Egison公式ページ: http://www.egison.org/ja/
Egisonのソース: https://github.com/egison/egison
発表映像
1: https://drive.google.com/file/d/0B_H0_8eqWuVALUpDcUUtajd2cGM/view?usp=sharing
2: https://drive.google.com/file/d/0B_H0_8eqWuVARWwzZEN5alBYUnM/view?usp=sharing

Takagiさん: 8-bit PIC マイコン用ネイティブコンパイラの作成

発表者がご自身で実装中のCommon Lisp製の8bit PICマイコン用のネイティブコンパイラ:PICについてのお話がありました。PICマイコンの大まかな仕様や使い方に始まり、ホスト言語のベースとなったMinCamlの紹介、そしてネイティブコンパイラPICの説明とデモがありました。

時間が押していた関係で最後が端折り気味になってしまいましたが、次のCommon Lisp回であるLisp Meet Up #27にて続きをお話ししていただけました。

スライド: http://www.slideshare.net/masayukitakagi/2015-0225-45131616
PICのソース: https://github.com/takagi/pic
発表映像
1: https://drive.google.com/file/d/0B_H0_8eqWuVAbGhuT2ZTcVpvWDQ/view?usp=sharing
2: https://drive.google.com/file/d/0B_H0_8eqWuVAT2dnVkVhYThVWjQ/view?usp=sharing

</dl>

懇親会

本体終了後は、会場付近の「串茶屋」というお店で懇親会をしました。もっと変な人になる方法の話、NICEとNEATの話やclfreaksの話、MinCamlやEgisonの話などが話題に挙がっていました。

今後のMeet Up

Scheme回は参加者にSchemerがほとんどいらっしゃらないので、夏まで休止することになりました。