餅ちゃんの備忘録

2015-12-28

【宣伝】C89にて「きつねさんのいない12月」を頒布します

f:id:motipizza:20151229000338p:image:mediumf:id:motipizza:20151229000345p:image:mediumf:id:motipizza:20151229000341p:image:medium



お久しぶりです。
C89開幕直前ですが、告知エントリです!
いつもながらの手遅れ感ですが、今回もよろしくお願いいたします!

おことわり


タイトル通り、C89にて新刊「きつねさんのいない12月」を頒布いたします。
タイトルにもある通り、今回きつねさんはいません。
まったくいません!
どこにもいません!
大事なことなのでもう一度いいますよ。
きつねさんはおやすみです!

スペースと頒布


さて、予防線もたっぷり張ったところで頒布の告知といきましょう。
まずはスペースから。

  • スペース

場所:東京ビッグサイト
日程:2015年12月31日(木)
スペース番号:東ム 43b

ツイッターで当初29日と言ってしまいましたが、三日目(31日)の参加です!
お間違えの無い様お願いいたします!

さて、次に頒布物です。
今回は新刊一種類と既刊一種類の持ち込みになります。
頒布価格と部数は以下の通りです。

  • 頒布物その1(新刊)】

タイトル:きつねさんのいない12月
ページ数:70ページ(総ページ数)
頒布価格:700円
持込部数:50部

  • 頒布物その2(既刊)】

タイトル:ばいなり、こんこん、こんぱいる。
ページ数:54ページ(総ページ数)
頒布価格:700円
持込部数:30部

ギリギリの告知でアレですが、今回は久しぶりに新刊の取り置きもやりますので
興味ある方はこちらをご確認ください。
なお、既刊の方は誤字脱字の訂正意外は基本的にC87時の内容です。
つまり、LLVM 3.5における解説となっています。
現在のLLVM 3.7での動作は保証できませんのでご了承ください。
(少なくともGCについてはLLVM 3.7で色々変わっているのでそのまま適用はできないと思います)

内容について


新刊の内容ですが、今回も前回と同様に
風薬と自分で好きなことをそれぞれ書いた形になっています。
風薬はC87の「ばいなり、こんこん、こんぱいる。」から引き続き、LLVMJITについて解説しています。
LLVM 3.7から入った新しいJITであるOrcMCJITについて解説していて、旬な内容で面白いと思います。
「ばいなり、こんこん、こんぱいる」の続編的な位置づけなので、既刊とセットで読むとわかりやすいと思いますよ!
自分の方は、NVPTXバックエンドを使ってGPGPU(CUDA)のコードを生成するお話です。
学生自体初めてLLVMを触ったきっかけがGPGPUだったこともあり、
以前から興味があったのですが今までなかなか手を出せず、ようやく今回取り上げることができました。
今更感も強い内容ですが、昔得た知識を頑張って思い出してGPGPUやCUDAの説明から記載しているので、
GPGPU初心者でも読み進めてもらえるのではないかなーと思っています。
余談ですが、きつねさんのお休みにより、今回初めて自分で表紙を作ることになりました。
うまく出来上がっているか、今でもかなりドキドキしています。
うまくいってるといいなー。

以下、目次を記載しておきます。
興味のある方は是非ふらっと立ち寄ってみてください!

  • はしがき i
  • 第1章 はじめに 1
    • 1.1 本書の構成
    • 1.2 本書内の記載について
    • 1.3 お断り
  • 第2章 環境構築
  • 第3章 頭痛で頭が痛くて JIT してられない 9
    • 3.1 諸注意
    • 3.2 LLVMJIT
    • 3.3 OrcMCJITとは
      • 3.3.1 互換API
    • 3.4 OrcMCJITのアーキテクチャ
    • 3.5 KaleidoscopeのOrcMCJIT使用例
      • 3.5.1 initial
      • 3.5.2 lazy_codegen
      • 3.5.3 lazy_irgen
      • 3.5.4 fully_lazy
    • 3.6 さいごに
  • 第4章 NVPTX であそぼう 31
    • 4.1 本章の概要
    • 4.2 NVPTXって何?
    • 4.3 CUDAのちょっとした説明
      • 4.3.1 GPUの構成
      • 4.3.2 GPUのメモリ階層
      • 4.3.3 CUDAの実行モデル
    • 4.4 NVVM
      • 4.4.1 Kernel関数の表現
      • 4.4.2 AddressSpace
      • 4.4.3 DataLayout
      • 4.4.4 IntrinsicFunction
    • 4.5 NVVMIRを試してみよう
      • 4.5.1 環境
      • 4.5.2 対象のコード
      • 4.5.3 IRBuilderでコードを吐いて見よう
      • 4.5.4 ホストコード
      • 4.5.5 こんぱいると実行
      • 4.5.6 libdeviceを利用する場合について
    • 4.6 最後に
  • あとがき
  • 著者/関係者一覧

【〆ました】【C89】きつねさんのいない12月 取り置き用エントリ

〆ました@2015/12/31 1:30


C89 で頒布する“きつねさんのいない12月”
の取り置き専用エントリになります.

基本的にこれまでと同様,下記のルールとしたいと思います。

  • 取り置き専用エントリ(本エントリ)のコメントにて名前と必要な部数を申請してください
  • C89 当日は専用エントリに記入した名前をスペースでつげてください
  • 取り置きは最大14時頃までとし,14時までにいらっしゃらなかった場合は販売分にまわします


というわけですので,取り置きを希望される方は本エントリにコメントをお願いします.
受付既刊は前日に餅が寝るまでとさせて頂きます.


※一応今のところ取り置きにも部数制限をかけるつもりはありませんが,
あまりにも伸びるような事があったら一旦受付をとめるかもです.

取り置き受付済の方々

返信済みの方々を随時追記いたします.
部数等にお間違いがないかご確認お願いします.


tellさん:新刊2部、既刊1部
iinodewaさん:新刊1部、既刊1部
yaruopoonerさん:新刊1部、既刊1部
wiredool さん:新刊1部、既刊1部
finalfusion さん:新刊1部
suzzsegv さん:新刊1部、既刊1部

2014-12-27 【宣伝】C87にて「ばいなり、こんこん、こんぱいる。」を頒布します このエントリーを含むブックマーク このエントリーのブックマークコメント

f:id:motipizza:20141228004310j:image:w360

相変わらず風薬(id:sabottenda)が先にエントリ書いていますが、
私からも一応宣伝・告知エントリです。
日付変わってコミケ初日に宣伝というこれまた相変わらずの出遅れっぷりです。

C87にて新刊「ばいなり、こんこん、こんぱいる。」を頒布します。
過去最薄の54ページ(本文41ページ)です!
やっと本当に薄い本ができました!やったね!

過去の頒布物では「LLVM」や「Clang」といったテーマを決めて
それにそって分担して解説する構成をとっていましたが、
今回は風薬と餅がそれぞれ緩く好きな話を書く形式になりました。
とはいっても新刊も相変わらずLLVM関連ネタで、
3章(風薬担当)はLLVMのOldJITとMCJITの違いについて解説なっています。
また、餅が書いた4章はLLVMGCサポートについて、
LLVMに組み込まれているGCプラグインであるShadowStackの利用方法と
LLVMを利用してGCを実装する際のポイントについて解説しています。
ShadowStackについてはyutopp氏がブログエントリ*1でやられていて、
正直新刊ネタとしてどうしようかなと思ったのですが、
LLVMの公式ドキュメントだけでは分からない人もいるだろうしとりあえず書いてみました。
流石にそれだけだとネタ不足なのでLLVMで独自GCを実装する方法についても取り上げましたが、
残念ながらこちらは時間と体力と能力の限界で実装はしていません。。。
公式ドキュメントの内容に従って手順を解説しつつ、
ソースコードを読んでいて理解できたことを捕捉情報として付け加えたような形になっています。

タイトルも「きつねさんでもXX」なシリーズから一新しました。
毎回タイトル考えるのも面倒だしこれからはタイトルを統一して執筆内容に囚われずに
"vol1"、"vol2"みたいな形で出していきたいよねーという話の流れだったのですが、
なかなかいい案がでないし決まらないしで、結局決まったのは12月に入ってからでした。
もっとよいタイトルがあったら変更してもいいかなーとか思ってたりもするので
皆さん何かいいタイトル案があったら餅か風にご連絡ください。お待ちしています。

最後になりましたが,頒布情報は下記のとおりです.
持込部数はちょっと控えめの70部、頒布価格は700円です。
ページ数は少なくなったのに価格は下げられなくてごめんなさい。

会場:東京ビッグサイト
日程:2014年12月30日(火)
スペース番号:西 く 16a
頒布物:ばいなり、こんこん、こんぱいる。
ページ数:54ページ(本文41ページ)
価格:1部 700円
※部数制限なし(70部持込)


以上です。
当日は皆さんよろしくお願いします!

2014-03-24

ABC 2014 Springで話してきましたよという話

@(id:hdk_embedded)さんに声をかけて頂いたので、
ABC(Android Bazaar and Conference) 2014 Springで
「ヒトがおしえる!LLVM
というタイトルでお話してきました。





Android 4.4で追加されたARTの実装でも使用されているLLVMについて
「きつねさんでもわかる!LLVM」の内容を踏襲しつつわかりやすいように説明する
という内容! のはずでした。。。

喋り終わってから何だかもう後悔と反省でその場で悶えそうになる程度に説明が下手だったと思います。
皆さんの反応を見ていて「あきらかに伝わってない!」と感じていたのですが
どう修正していいかわからず途中から「ほええええええ」な感じで頭まっしろになってました。
ちゃんとその場で臨機応変に対応できればよかったのですけど。
外でのプレゼンが初めてだったとか想定していたターゲットが間違ってたとか言い訳は色々とあるのですが
当日聞きにきてくださった方には不甲斐ない発表になってしまって申し訳ありませんでした。
柏餅の次回作にご期待ください。

と、自分のプレゼンの方は納得できる出来ではなかったのですが、
当日色々な人にであえたのはすごく良かったなーと思います。
普段なかなか公の場にでていかない私ですが、人脈ってこうやって広がっていくんだなー
と感動してました。
貴重な枠を下さった@(id:hdk_embedded)さんには大変感謝しています。
また、当日同じセッションでお話しされていたdemuyan(@)さんにはとても優しく貰えたので
もっちー大感激でした。


あ、そういえば当日スタッフさんに
柏木餅子さんって女の方だと思ってました!」
と言われたのですが、
残念ですが私は♂です。
大事なことなので気をつけてくださいね!

2013-12-31

C85、そして今年一年お疲れさまでした!ありがとうございました!

皆様もふもふ。
C85お疲れさまでした。
そしてありがとうございました!
今回も多くの方にお越しいただけてすごく嬉しかったです。

C85のご報告

今回は過去最高の200部(予備込で208部)刷ったのですが、
最終的に取り置き等除いて残り7部となり、
非常に多くの方にお手にとって頂けました。
興味を持って頂いている方で当日会場にいらっしゃた皆様については
今回は一通り見てもらう事ができたかなと思います。
狐耳をつけて気合を入れた甲斐がありました!
流石に200部はやりすぎたかなー思っていたのですが
思いの外妥当な数っぽくてOh...という感じです。

とは言え、あまりにもリスキーな数字ではあるので
今後どれくらい刷っていくかは検討しなければいけないなーとも。。。
スペースでよく「委託等されますか?」と質問されるので
委託まで考慮して多めに刷るとか。。。
と、サークルの内部的な課題は増えましたが、
兎にも角にもより多くの人に見てもらえて嬉しいです!
出来れば感想とかご意見とか貰えるともっとうれしいです!

ただ、内容/タイトル的に、
初めての人にとっつきずらい印象を与えてしまったかもしれない
という点は一つ反省点と考えています。
今日のスペースで「既刊なくてもわかりますか?」「既刊とどう違うんですか?」
といったことを聞かれましたし、
「既刊読んでないとわからなそうだからやめておこう」
という方もいたと思います。
一応、一冊の中でだけでもわかる様な記載を心がけているのですが、
今回は取り扱う内容的に、(餅担当分に関しては)多少説明を簡易化した部分もあったので
難しいなぁ。。。などと。

2013年の振り返り。

今年も本当に色んな事がありました。
達人出版会様で「きつねさんでもわかるLLVM
を出版させて頂いたり、
そうこうしている間にインプレスジャパン様からお声かけ頂いて
商業誌で同書籍を出版させて頂いたり。。。
ちなみに、達人出版会様の年間ランキング
「きつねさんでもわかるLLVM
が本年度2位となったようです。
応援してくださっている皆様には本当に感謝感謝です。
ありがとうございます!
また、β版のまま長期間アップデートできておらず大変申し訳ありません。
0.9.2版で頂いたコメントを修正したver1.0を現在作成中です。
近いうちにアップデートできると思いますので、
大変申し訳ありませんが、今しばらくお待ちください。

最後に

色々とありましたが、今年一番の出来事は彼女ができたことです。
大事なことなので改めて言いますね。
LLVMを始めたら彼女ができました。」

2013-12-23

【宣伝】C85にて「きつねさんとおぼえる!Clang おかわり」を頒布します【取り置きもあるよ】

f:id:motipizza:20131224004111j:image:medium:left








皆様お久しぶりです。
餅です。
C85に参加するので宣伝エントリです。

スペース/頒布価格

最初にスペース情報と頒布価格から記載しますね。
風ちゃんの暴走を止める立場の私ですが、
今回は風ちゃんの超強気に乗ってしまって200部と相成りました。
たまには余った本を持って帰るのもいいですよね。

  • 会場:東京ビッグサイト
  • 日程:2013年12月31日
  • スペース番号:西 す-05b

  • 頒布物その1:きつねさんとおぼえる!Clang おかわり
  • ページ数:110ページ
  • 価格:1部 800円
  • ※部数制限なし(200部持込)

  • 頒布物その2(再版):きつねさんとおぼえる!Clang
  • 価格:1部 700円
  • ※部数制限なし(50部持込)


内容紹介

内容についてですが、
今回も表紙とイラストは矢上先生(web)にお願いしています。
冬らしく素晴らしい絵を描いて頂きました。狐さまさまです。もふもふ。
本文の方は私と風薬(id:sabottenda)で分担していて
3章(LibClang AST の概要)、4章(LibClang チュートリアル)を風薬が、
2章(環境構築)と5章(LibTooling おかわり! )を自分が書いています。

自分の担当箇所についてもう少し。。。

今まであまりにもツールの紹介をさらっと済ませていましたが、
今回は2章において、clang-formatやclang-modernizeについて
オプションや指定できるスタイルも含め、使用方法を実行例を交えて記載しています。
特に、clang-formatについてはvim拡張の紹介として、
公式で配布されている「clang-format.py」と
rhysdさん(id:rhysd)が作成された「vim-clang-format」を紹介しています。
本文には書き損ねたのですが、実際に使ってみた感想としては
vim-clang-formatのオペレータマッピングが便利で使いやすいです。
本文で利用したコードにフォーマットをかけるときにもお世話になりました。
あとclang-format.pyの紹介では公式に従って<C-I>に割り当てるように書いたのですが
色々被って使いにくいので正直あまりお勧めできません。。。
(何で公式はあれにふっているんだろう?)
ちなみに本当は巻末か別紙でclangのオプション一覧をつけたくて
少し前から一つずつ整理してたのですが、
量が多いこともあり、普段使わないオプションを調べるのが間に合わなくて断念しました。
いつか全てが纏まったらエントリにでも書きますかねぇ。。。

5章はc84頒布物の内容をおさらいしつつ、
新たに機能を追加する形で改めてLibToolingの利用方法を解説しています。
今回新たに追加した機能は
・Replacementsの内容をYAML形式で出力する
オプションで指定した範囲をリファクタリングする
です。
どちらも特別複雑というわけではありませんが、
その他LibToolingの紹介とあわせて読むことで
LibToolingを利用してツールを作成する際のヒント情報にはなるかな?
と思っています。

取り置きについて

今回も前回に引き続き,取り置きの受付をしてみます.
200部もあるから取り置きしなくてもあまりそうですけどね!

とりあえず。。。前回同様取り置きのルールは以下の通りです。

  • 取り置き専用エントリ(こちら)にて名前と必要な部数を申請してください
  • C85 当日は専用エントリに記入した名前をスペースでつげてください
  • 取り置きは最大14時頃までとし,14時までにいらっしゃらなかった場合は通常頒布分にまわします

ご希望の方は取り置き用エントリの方にコメントをお願いします!

目次

目次は以下の様な感じです。
興味がありましたら是非是非おこしください!

  • はしがき
  • 第1 章 はじめに
    • 1.1 本書の構成
    • 1.2 本書の目的
    • 1.3 本書内の記載について
    • 1.4 お断り
  • 第2 章 環境構築とClang の使い方
  • 第3 章 LibClang AST の概要
    • 3.1 Clang の抽象構文木
    • 3.2 LibClang とは
    • 3.3 LibClang における抽象構文木の構造
    • 3.4 抽象構文木の操作関数
    • 3.4.1 インデックスと翻訳単位の操作
      • 3.4.2 翻訳単位とカーソル間の操作
      • 3.4.3 ソース位置と物理ファイル位置間の操作
      • 3.4.4 ソース位置とカーソル間の操作
      • 3.4.5 ソース位置とソース範囲間の操作
      • 3.4.6 カーソル間の移動
      • 3.4.7 カーソルの文字列表現
      • 3.4.8 カーソルの種類
      • 3.4.9 型に関する操作
      • 3.4.10 コメントの取得
  • 第4 章 LibClang チュートリアル
    • 4.1 LibClang の言語バインディングについて
    • 4.2 LibClang のクラスとRuby のクラスの対応
    • 4.3 翻訳単位を作成する
    • 4.4 抽象構文木を走査する
    • 4.5 注釈関数を作ってみる
    • 4.6 ファイル位置を指定してカーソルを取得する
    • 4.7 定義と宣言を取得する
    • 4.8 typedef された型を参照する
    • 4.9 マクロ展開の情報を取得する
    • 4.10 コメントを取得する
  • 第5 章 LibTooling おかわり!
    • 5.1 まえおき
    • 5.2 復習しましょう
      • 5.2.1 LibTooling ってなんだっけ?
      • 5.2.2 前回のおさらい
    • 5.3 今回は何するの?
    • 5.4 リファクタリング情報をファイル出力する
      • 5.4.1 YAML::Output で出力を試す
      • 5.4.2 TranslationUnitReplacements に変更する
      • 5.4.3 MatchCallback とNullptrDegrader の定義
      • 5.4.4 main 関数とoutputRepacementsYAML の修正
      • 5.4.5 コンパイルと実行
    • 5.5 指定した範囲のみ適用する
  • 目次
  • あとがき
  • 著者/関係者一覧

【〆ました】【C85】きつねさんとおぼえる!Clang おかわり 取り置き用エントリ

【〆ました】2013-12/31-0:36

C85 で頒布する“きつねさんとおぼえる!Clang おかわり”
の取り置き専用エントリです.

前回と同様,下記のルールとさせていただきます。

  • 取り置き専用エントリ(本エントリ)のコメントにて名前と必要な部数を申請してください
  • C85 当日は専用エントリに記入した名前をスペースでつげてください
  • 取り置きは最大14時頃までとし,14時までにいらっしゃらなかった場合は通常頒布分にまわします


というわけですので,取り置きを希望される方は本エントリにコメントをお願いします.
今回は200部用意したので大丈夫だとは思いますが。。。

取り置き確認済みの方々

henryさん:新刊1部、既刊1部
finalfusionさん:新刊2部
konnyakmannanさん:新刊1部、既刊1部
yaruopoonerさん:新刊1部、既刊1部
mnruさん:新刊1部、既刊1部
kerosukeさん:新刊1部、既刊1部
akita_morokosiさん:新刊1部
godai_0519 さん:新刊1部
tell さん: 新刊2部
haiju さん:新刊1部、既刊1部
ayunoshioyaki さん:新刊2部
wiredool さん:新刊1部、既刊1部
tamura さん:新刊1部、既刊1部
pengin さん:新刊1部
tkralia さん:新刊2部
oonoさん:新刊1部
torisuさん:新刊1部
papixさん:新刊1部、既刊1部
saintbayさん:新刊2部、既刊1部