C++WGアドホック会議〜C(略さんを問い詰める会

5/28(土)、C++0xのFCDに対するNBコメントを決めるためのC++WGアドホック会議が開催されました。
このエントリは、議事録というわけではなく単なる日記なので、具体的にどんなコメントを出すことになったのか、どんな議論があったかは割愛します。


まず、C++WGアドホック会議に参加したブロガーには、id:redboltz, id:melpon, id:wraith13, id:xyuyux, id:DigitalGhost, id:Cryolite, id:y-hamigaki, id:gintenlabo, id:kikairoya, id:nagoya313, id:ntnek, id:dark-yoshi, egtra, 光成, shelarcy, 江添亮がいました(敬称略)。
今回初めてお会いしたのはkikairoyaさんとnagoyaさんでした。kikairoyaさんは、ストイックな方を想像してたのですが、いい意味でイメージが違ってました。
Cryoliteさんが、会うたびに髪型が変わるので会ってすぐは誰だかわからないことに。


午前中の議論は滞りなく進み、「このコメント、元々はめるぽんが出したものだけどまだ本人が来てないから結論は出せないな」というところで午前中の議論終了。
お昼休憩に入った瞬間にめるぽん遅れて登場。

めるぽん:「ごはんはまだですか!」

いま来たばっかりやん。


お昼は近藤(redboltz)さん、Cryoliteさん、郵便はみがきさん、江添さん、D.Gさん、kikairoyaさんと一緒にとることに。昼食タイムのお話は主に近藤さんのBoostConお土産話で、Dave Abrahamsと話してるビデオを見せてもらったり、rypplの話だったり、セッションでの議論の仕方だったりを話してました。


午後は、文字列リテラルのconstの話から再スタートして、リンケージの話がからんだりでけっこう長くなった。
規格の英語が読めないところがあったので翻訳ソフトを起動しようとしたら隣の江添さんからすかさず「そんなものに頼っちゃだめですよ!」とつっこまれた。すいません・・・。


Cryoliteさんから提案のあった、shared_ptrの所有権ベースでのハッシュサポートの議論が一番長く、最初に議論したときに決まらなくて、全てのコメントに対する議論が終わったあとに、shared_ptrを議論するグループを作って10数人で集まって議論してました。
あれだけのメンバがホワイトボードの前に集まってあーでもないこーでもないと議論してる状況はすごくレアで、おもしろかった。こんな場は今までなかったなぁ。ちょっと感動。
私がiPhoneでその状況を写真とビデオ撮ったりしたので、全員が公開OKすればどこかに置きます。音は全然拾えてなかったですが。


全ての議論が終了したあと、お待ちかねの近藤さんによるBoostCon2010参加報告セッション。
BoostConに参加するには2000ドルくらいかかる、とか。
Exceptionのセッションは、10年くらい前の話だったので、スピーカーの人がDave AbrahamsにフルボッコにされたのでBoostConでスピーカーやるときはしっかり理論武装しましょう、とか。
Boost.Asioのセッションはストーリーがおもしろかったけど、登場人物の名前が覚えられなくて(向こうの名前になれてないから)逆にわかりにくい、とか。
あと、標準のIostreamや、Boost.Iostreamsが使いにくいので新しいIostreamライブラリをBoostで作ろうというプロジェクトが行われているらしく、BoostConで毎日朝に1時間議論され、その後少人数のMLを作って進められているようです。
C++勢力図なんてのも紹介されてましたね。PCの壁紙にしました。

http://www.david-amador.com/wp-content/uploads/2009/10/cpplands.png


BoostConの話も終わり、C++WGアドホック会議無事終了。
その後、C(略さんを問い詰める会に出発・・・迷いました。地図が苦手な私に道案内させるのが間違い。
お店に着いたらshinhさん、yamasaさん、nihaさんが待ってて「遅いですよ!」と第一声。ごめんなさい。

ちょうど乾杯直前にsuper_rtiさんとk.inabaさんが到着して、はじまりはじまり。
今回はお店をコースとかにせず、席だけ予約したのでこの会はグダグダになるか終電になるかするまで続きます。
Cryoliteさんがyamasaさんに「ぼくがdata raceを完全に理解するまで問い詰めます!」と宣言して、その後yamasaさんの隣に移動してノートを広げて質問攻めしてました。あのCryoliteさんが!・・・すごくレアでした。
そうこうしてる間にzakさんが到着し、みんなに紹介して回ったり。
ちょっと人数が増えてきて狭かったので店員さんに言ってもう1テーブル使わせてもらい、道化師さんにiPadを借りて自分のゲームで遊んだりしてました。iPadほしい。
あとは、近藤さんの会社のひとが「近藤さんの周りにC++かわいいよC++って言ってるひといますよね」と言ってたらしく、すかさず「すばるさんすばるさん!ちょっと来て下さい!」と召喚したらめっちゃビクビクしてました。
Fusionにくわしいegtraさんがいたので、「Fusion、というかタプルってクラスを作るのがめんどくさい時にしか使わないんですけど、どういうとき使うんですか!」とネタ振りした。関数でとくに意味のない多値を返すとき・・・いやいや意味はないわけないです名前付けるべきじゃないかな。setに入れるためにoperator<を定義するのがめんどくさいとき・・・これはたしかに。Fusionのタプルに対するアルゴリズムはときどき欲しくなる、for_eachとか。Haskellのタプルは便利・・・え、Haskellのタプル使いにくくないですかN番目取り出すとか、Fusionなら簡単ですよ。
あとは、こないだすばるさんが作ったeitherがBoostにほしいという話になって、いやBoostに入れるなら2引数じゃ足りないからN引数にしないと、とか。
あとなんだっけ、稲葉さんが最近のSpiritがすごく使いやすいと言ってたんだ。


終電近くになって解散し、D.Gさんが「カラオケ行きたい!」と言い出したので、めるぽん、ゆーゆさん、Cryoliteさん、郵便はみがきさん、egtraさんを連れてカラオケに。その道中、あるるさんがコンパイラと会話してるという話になり、Cryoliteさんが「コンパイラと会話なんて頭おかしいですよ」と。「20年も連れ添った妻とは会話なんてしなくたって通じるんですよ」と。


カラオケ開始!・・・OFF AIR・・・ジジジ。


C++WGアドホック会議後にCryoliteさんとkikairoyaさんとzakさんを問い詰める会

こういう指令が来たので

そーいえば,5月29日に私の体は東京にあるはずなので,5月30日に私が東京で怖い人たちに囲まれて盛大にボコられる会とか誰か開いてくれないかしら? (チラチラッless than a minute ago via web


企画しました。

http://typewith.me/mNp8MBQ9HD

http://groups.google.co.jp/group/boostjp/web/c-wgcryolitekikairoyazak


(5/30日は予定がどうなるかわからないので他のひとに・・・)



あけましておめでとうございます

今年もC++0xをよろしくお願いします。


2009年中に『マルチパラダイムデザイン』『論理学をつくる』『いかにして問題をとくか』を
消化しきれなかったので、今年はとりあえずそこから始めます。
それと、2月にDevelopers Summit 2010でC++0xについてしゃべる予定です。



Boost.勉強会 備忘通知

募集ページが更新されても自動で参加者には通知されないのでこっちで書きます。


Boost.勉強会 - ATND


Boost.勉強会はおかげさまで満員になっておりますが
キャンセルされた方が何人かいます。
それにより、キャンセル待ちされていた方が何人か参加できるようになりましたのでご確認ください。


日程は現在のところ、以下のように予定しています。



【日時】
2009/12/12(土) 10:00〜18:00


【場所】
グリー株式会社
東京都港区六本木4-1-4 黒崎ビル3F

http://gree.co.jp/corporate/location/


【タイムテーブル】
09:30〜10:00:開場、準備
10:00〜10:10:最初のご挨拶
10:10〜11:00:Boost.MultiIntrusivedex(k.inaba)
11:10〜12:00:Boostライブラリ一周の旅(faith_and_brave)
13:00〜13:30:LT:egtra, tt_clown, dark-yoshi ひとり10分くらい
13:30〜14:00:Boost.Coroutine(melpon)
14:10〜14:40:Boost.Asio(xyuyux)
14:50〜15:20:Boost.Preprocessor(DigitalGhost)
15:30〜16:00:バグベアード入門(wraith13)
16:10〜17:00:Boost.SmartPtr:shared_ptr + weak_ptr(Cryolite)
17:10〜18:00:Boost.MPL(uskz)




それと、Boost.懇親会のほうはまだまだ空きがありますので
Boost.勉強会の参加者以外の方でもぜひご参加ください。


Boost.懇親会 - ATND



ここが好き

これが好き - ときどきの雑記帖 i戦士篇


私もあげてみよう。



C++
・デストラクタ
・テンプレートの部分特殊化
・ライブラリだけど、Boost.Function、Boost.Bind、Boost.MultiIndex、Boost.MPL、PStade.Oven


D
・定数畳み込み


Haskell
・副作用がないところ
・入門書の1章で多相型を教えられるところ
・Unit
・パターンマッチ
・リスト内包表記
・Maybeモナド、Eitherモナド、Errorモナド


Scala
・Implicit Conversion
・ケースクラス
・抽象メンバ型



id:DigitalGhostさんがあらわれた

今日はC++標準化委員会の会議でした。
会議ではid:uskzさんとid:hito_hppさんがADLについてホワイトボードを
使ってお互い納得いくまで議論してたりしてました。


コンセプトがなくなった影響で変更になったRange-base for文は
まだまだ問題ありそうですね。


会議が終わったあとはいつも通りみんなでご飯食べに行って、
はるばる大阪から来てくれたid:DigitalGhostさんも合流して
なんだかんだで23時くらいまでずっと話してました。


Multi-Dimensional Analog Literalsの話とか、
シャーペン vs ボールペンとか、
Boost.Category作ろうぜとか、
id:melponがコンパイルタイムCoroutineを作ったので近々公開予定だとか!
自衛隊の話とかAdaとか
Dはへんたいだー、とかとか。


ほんとに充実した一日でした。
明日のFLTVもきっと今日以上に楽しいはず!



手続き型言語と関数型言語における型

関数型言語における型理論(pdf)


いま型理論を勉強中です。
ちょっと古いドキュメントですがおもしろい内容だったのでメモ。


CやPascalのような手続き型言語では、変数宣言の際に型を指定するが、
ここでの型は、その型がどれくらいのメモリを必要とするのかを知るためにある。


LispやMLのような関数型言語の場合、変数は値を表す名前であり
値はS式や関数のようにサイズ制限がないのでヒープ上に置かれ、
変数にはその値へのポインタのみが置かれる。
なので、手続き型言語のように変数に型を書く必要はない。
関数型言語での型は、手続き型言語のそれとは異なり、
プログラムの整合性をチェックするために使われる。