Monday 30 April 2018

LuaLaTeX and Agda symbol

まだで来てないんですが、

Missing character: There is no ⊔ (U+2294) in font IPAExMincho:mode=node;script

問題はこれで、要するに ⊔ の glyph が IPAExMincho にはないらしい。で、フォントを探すわけですが、

 High Sierra では Font の扱いが変わったらしく、TeXLive から OSX のSystem Font にはアクセスできない

あ、そうですか。でも、

 もうすぐでる TeXLive 2018は、付属のパッケージとして用意される

らしいです。つまり,今は動かない。

TeXLive のfontは、

/usr/local/texlive/2017/texmf-dist/fonts/opentype

とかにあり、これを(どうにかして) /Application/Font Book.app で読み込むと、表示できます。このサンプルに ⊔ を paste すると、そのフォントがglyphをもってるかどうかわかる。

STIX Math とかには入っているんですが、

\setmainfont{STIX Math}

とかしても変わってくれない。

Missing character: There is no ⊔ (U+2294) in font IPAExMincho:mode=node;script

のまま。日本語フォントの方は、 \setjmainfont で変えるとかある。ということは、⊔ が日本語として認識されているっぽい。

⊔ を欧文フォントで表示する方法はググり切れませんでした。まぁ、TeXLive 2018 で解決するのかも。

LuaLaTeX の環境持ってる人が、⊔ の表示を試してくれるとうれしいかも。
わかりました
\ltjsetparameter{jacharrange={-3}}
とすれば良いらしい。これで、 ⊔ が欧文フォントになるらしい。default は +3。

http://tinyurl.com/yadpzugj

Sunday 29 April 2018

薔薇

奥様が丹精した薔薇が咲いたそうです。

今年は冬寒かった分、花は良く咲いているみたい。

GWなので、名護側の沖縄自動車道は激混だったらしい。僕は歩きなので関係ないけどさ。

Saturday 28 April 2018

LuaTex

Agda の記号で、platex ではでないものがいくつか。そういえば、Atton が論文書いてたはずだけど、と思って見てみると、

  agda のUnicodeを TeX のコマンドに置き換える ruby script

なるほど。そうくるですか。それで問題なく動いたんですが、ググってみると、

  XeTeX とか LuaTeX なら Unicode がそのまま使える

まぁ、そうだよな。(実際にググると、Atton のとか、自分のとかが引っかかるわけですが...)

で、動かすんですが、

\documentclass[techrep]{ipsjpapers}

を、

\documentclass[ltechrep]{ipsjpapers}

として、package をいくつか入れ替えれば動きました。

なのだが、やっぱり、

Set (m ⊔ n)

の m と n の間の U みたいな奴がでない。log を見ると、

Missing character: There is no ⊔ (U+2294) in font IPAExMincho:mode=node;script

あ、そうですか。フォントの問題らしいです。フォントを切り替えるには、

\setmainfont{DejaVu Sans}

とかするらしいが、やっぱりでないな。

LuaLaTeX は、直接、PDFを吐くのが良いですが、少し遅い気がするのは気のせいか。

Friday 27 April 2018

バッテリー

Ingress ガチ勢なのでバッテリーは必須なわけですが、そろそろヘタってきてるのが...

昔、買った薄い奴が膨らんできてしまって、代わりのあるかなと思ったら、

  少し大きめのが出てる

なるほど。6000mAhから9000mAhに。Ingress の奴が12000mAhだったかな。

そろそろ汗かく季節なので、Ingressから一度家に戻ってから大学みたいなパターンになるのかな。

Thursday 26 April 2018

沖縄電子

なんか学生が USB3 の端子が足りないとか言ってるので、

  じゃぁ、買いに行こう

で、沖縄電子に行ったんですが、あそこはPC部品屋さんではないのだった。GoodWill に行くのが正しかったらしい。

なんか、でも微妙に違う感じだな。

  Volume がない

バリコンはあったけど。もうVolumeって意味ないよね。ロータリエンコーダだよな。直接デジタル入力するとすれば。学生が買ってきた、

  Switchのあれ

ですね。学生たちは、

  スイッチ

とかにひかれていたみたいです。LED付きが1200円するとか驚いていた。LEDなければ200円だけど。

これを箱に付けるには、ドリルで穴開けてリーマーで広げるみたいな話をしたんですが、

  リーマーはあるが、ドリルが見当たらない

いや、あったかも。もっとも、うちの4Fの研究室にいけばボール盤あるはずだから。

といっても、これやりたいとかいうと「ありません」とか言われる今日この頃。この前探してなかったのは、Oリングだった。

自分の実家あった、なんでもできるマイコン開発室の方が便利だったな...

Wednesday 25 April 2018

最近ヘリがうるさい

そもそも基地の上以外は、オスプレイは、

  ヘリモードで飛ぶな

というお達しなはずですが、無視なようですね。

友人の方でもうるさいらしく。きっと、トランプ大統領が、

  プレゼンスを上げろ

みたいなことを言ったんじゃないかと。そのうるさくするのは、

  珍走族と同じだから

でも、この間、琉大そばの通堂で見たバイク団は、静かな感じだったな。停めた後、手で移動させて詰めていた。

Tuesday 24 April 2018

Haskell

授業で教えるわけですが、いまいち、なっとくできないのが、

  関数を表示できない
  derived show でないdataを表示できない

こと。どっちも項なんだから表示できるべきだよね。なぜ、できない。

*Main> let f x = x
*Main> f
<interactive>:28:1: error:
No instance for (Show (a0 -> a0)) arising from a use of `print'
(maybe you haven't applied a function to enough arguments?)
In a stmt of an interactive GHCi command: print it


関数はアセンブラに変換されてはいるわけですが、元の項をとっておけば良いだけなの
で、まったく納得できないです。

絶対、わざとだろ。

Haskell は boot strap に既に Haskell が必要ですが、それがなかったらどうするのっ
て辺りも気になってます。

Prolog は .ql があれば、まぁ、なんとか。Haskell には boot strap 用の interprete
r とかあるんだろうか。

個体発生は系統発生を繰り返すべきだろ〜

Monday 23 April 2018

論文書いてます〜

もっと早く書けよとも思うが、この時期はな〜

学生には卒論でやったことは発表してもらいたいと思いますが、いろいろだからな。B3で研究室割り当てなので、B4で発表ってのも普通にあるんですが、今年はそこまでいかず。

ホテル側からは懇親会代上げたいとか言われていて、ちょっと困ってます。全体から見れば対した金額ではないんだけど、懇親会代って個人にひっかぶるものだからなぁ。ホテル側はその金閣を追求してなんかうれしいんだろうか? まぁ、めんどくさくなったら、那覇に戻せば良いだけだな。

毎年やってるものだけど、沖縄に人呼んで、自分にまったくメリットなくて、むしろ、ホテルにお金取られるという楽しい仕事です。いや、わりとそういうの好きだよ。

少なくとも学生旅費考えなくて良い学会があるのはうれしい。

Sunday 22 April 2018

チョコレート

割と好きですが、明治のブラックかな。普段使いは。Godiva の四角いのも好きなんですけどね。でも、いうほど食べないという問題があり、この前の2月にもらったものも放置気味。

なんか封筒に入っているんですが、開けてみると割と意表を突いた感じ。サクサク感があるので、Kitcut みたいです。

Saturday 21 April 2018

ご褒美ポータルな日

前回のIngress Mission で、まぁ、緑にやられてしまったわけですが、そのNovaのご褒美があるらしく。一応、緑にしか情報は落ちないはずなんですが、緑が集まっているところを見つければ良いだけなので。

  泡瀬の運動公園で12時から数人で探索〜

で、1時には見つかりました。4回ご褒美ハック。緑だけしか出ないなんてことはないので。緑と青と合わせて20人ぐらいかな。

浜浜リンクのではないので、まぁ、普通です。Inventry 空けるのにだいぶキーを消したが、重複を消すだけで十分でした。キーだけで1600あったからな。

まぁ、こんなことしていていいのか説もあるけど、まぁ、なんとかなるでしょう。

Friday 20 April 2018

不織布とBDメディア

なんか、去年あたり Goodwill でいつも使っているElecomの48枚箱が売ってなくて。と思ったら、

  BD用のを新しく売ってる

どうも「不織布が細かくなりました」みたいに書いてあります。

ググってみると、

  不織布の模様がBDメディアに転写されて読めなくなった

なんて話が。2009年あたりから使ってるわけなんだけど、この前もチェックしたが得に不都合はないんだけど。そもそも、縦置きの箱で転写するほどの圧力がかかるはずないし。

というと別に不織布でも大丈夫みたいな話も。どうも、

  溶剤が残ってる不織布だとだめ

とかいう情報もあったり。

新しい不織布は,まぁ、確かに少し凸凹は少ない気がするが、

  そんなに差があるとは思えず〜

なので、昔から使ってるのはそのままでいいか。全部箱を買い換えたりするとメーカの思うツボ的な。

check と言うのはたまに重複したもの取り除いたりしてると順番が狂うので、箱に入ってるのをplaylistだけ読み出して html な目次にするってのをやってたりするからですね。

そもそもコピ1とかでバックアップを制限するから問題になるんだろとも思います。

あぁでも場所食ってきたんだよな。そろそろテラバイトなメディアでないの?

エレコム BD ファイルケース http://amzn.asia/cDv3rzo

Thursday 19 April 2018

Open Source Conference のネタ

まぁ、毎年、ネタがないなか出してるんですけどね。

年末からLLVM/GCCやってたので、それでも出そうかなあ。それは x.v6 用にやってたので、それでもいいかな。

Agda やったり、TreeVNCやったり、去年は、

  cmake で聴衆一人をやらかしたり

ふむふむ。そういえば、

  Java9 の jigsaw と格闘

ってのもやったな。やぶれさりましたが。

締切り 4/23 らしいので、もう少し考えます。

Wednesday 18 April 2018

Prolog

去年もblogで書いてるんですが、授業で教えた方が良いよなってことで1講義使ってるんですが、

  去年真面目に書きすぎた

らしく、ちょっと難しすぎたんじゃないのか? と反省気味です。まぁ、時間内には収まるんだが...

たぶん、節形式は命題論理の範囲内で扱って、面倒くさい部分はリンクで外に出して、

  シーケント代数部分の例題

を入れるようにすると良いかな。

Tuesday 17 April 2018

Blog の勧め

自衛隊の日報が話題になってますが、

  Blog は読み返すと面白い

学生とかだと、そもそも書く練習をあまりしてない。なので、とにかく書けと。Twitter で意味不明なことをたくさん書くのも良いが、

読者は未来の自分

なんだよね。他人のブログは検索してみるくらい。なので、自分に向けて書く。

例えば、MBPの新規installした時に、

 あのソフトはどうやってinstallした? 設定どうした?

とかは、blog に書いておけば一発です。

自分が面白いと思ったことを書き留めるわけなので、自分がもっとも面白いと思うらしいです。自衛隊の日報でもそうですが、

 毎日ネタ探しするようになる

ということは、今日は何か面白いことあった? と考える。 あるいは、今日はなんか面白いことしよう(そしてblogに書こう)ということになります。これが結構いいと思う。

問題は Facebook は検索が実用的ではないということね。自分でサーバ建てて、そこで運用も良いけど、メンテも自分でするの? いや、やるけどさ。

 自分は Blogger (Blogspot)

使ってます。Google のサービスだな。なので、Ingress 関係は Blogger から G+ に publish してます。

Facebook とBloggerへのMHからのscriptによる同時投稿なので、人に勧められる方法でない所が残念。でも、Blogger からの連携方法はいくつかあるらしい。 Facebook からはzipで引き上げて、bloggerにAtomでuploadするというのが可能なはずです。(二度とやりたいとは思わないが...)

まぁ、Facebook の検索性がくそなので、Blog としては役に立たないってことではあるんですけどね。むしろ、その検索性の低さに安心する人もいるのかも知れないけど...

Sunday 15 April 2018

Docker and Kubernates

いろいろあって久しぶりにいじってますが。といっても、去年のOSの課題でもトラブってるので、そんな昔でもないか。

Dockerは何故か、

  DBとWeb Serverを別コンテナで上げる

とかの信条があるらしく、細かいコンテナが沢山上がる。別に一緒にしても良いんですけどね。で、結局、

  細かいコンテナをまとめて管理する

ってのが必要で、それが Kubernetes らしいです。複数のサーバ上のコンテナを管理できるらしい。

便利そうだけど、なんかいろいろめんどくさい。Ansible script ないの?

一昨年の Docker container をいじったら、

  Failed to get D-Bus connection: No connection to service manager

とか言われる問題と少し格闘してました。/etc/rd 以下のscriptを起動すると勝手に sytemd が動くらしく、systemdが文句を言うらしい。

  systemd また、お前か?!

という感じ。docker --privledged /sbin./init とかすれば回避できるのだそうです。ふーん。他にもいろいろ疑問はあるが... ここまでかな。

Saturday 14 April 2018

新歓LT

いや、さぼったんですけどね。結構、賑やかだったようです。なんと去年は1年次が10人しか来なかったらしい。今年は、

  ポスター貼りまくった
  當間先生が紹介してくれた

とかがあって、30人参加だったそうです。良かったね。ちゃんとすれば来てくれるものさ。

新B4の一人は研究室の居心地が良いらしく割と来てくれてます(本当は4人だけど)。別にB4でなくても研究室くれば良いのにと思うが。 LTでも、

  研究室の様子がわからない -> 行け!

なんてのがあったらしい。自分の研究に興味を持ってくれる人を歓迎しない先生はいないからさ。

自分も学部1年の頃から哲学の研究室に顔出してて楽しかったです。酒飲みな先生だったな〜

Agda の否定

前にもやったことあるんですが、また、勉強中です。

  http://seeker-s-eye.blogspot.jp/2017/03/agda.html

<,=,> の場合分けで、その計算型goto文を使うわけですが、

 data Tri {a b c} (A : Set a) (B : Set b) (C : Set c) :
      Set (a ⊔ b ⊔ c) where
  tri< : ( a :  A) (¬b : ¬ B) (¬c : ¬ C) → Tri A B C
  tri≈ : (¬a : ¬ A) ( b :  B) (¬c : ¬ C) → Tri A B C
  tri> : (¬a : ¬ A) (¬b : ¬ B) ( c :  C) → Tri A B C

なので、ばっちり否定が入っていて。こいつで、場合分けしたら、tri≈ なら、それ以外の場合は出てこないはずなんですが、場合分けは出てきてしまう。

  checkEQ ( x y : ℕ ) -> ( eq : x ≡ y ) -> compare x y ≡ tri≈ _ _ _
  checkEQ x y refl with compare x y
  ... | tri≈ _ refl _ = refl
  ... | tri> _ neq gt = ?
  ... | tri< lt neq _ = ?

みたいにしたいわけだけど。いや、 x ≡ y なんだから、tri> とかは出てこないはずだろ?

Agda での否定は、

  ¬ A = A -> ⊥

みたいに定義されていて、対偶 ( ¬ B -> ¬ A ) は、

   ( B -> ⊥ ) -> ( A -> ⊥ )

ならしい。つまり、 B -> ⊥ と A の二つの入力がある。A -> B があれば、B -> ⊥ から、三段論法で、A -> ⊥ がでる。つまり、

   contraposition : (A -> B) -> ( B -> ⊥ ) -> ( A -> ⊥ )
   contraposition f g x = g ( f x )

というわけ。この逆方向( ( ¬ B -> ¬ A ) -> ( A -> B ) ) は直観主義論理では証明できないらしいです。

そういえば、否定からはなんでも出てくるのあったなと思い出した。

  ⊥-elim : ⊥ -> _

あ、そうか。

  ... | tri> _ neq gt = ?

の neq の型は、( x ≡ y -> ⊥ ) なので、neq ( refl ) は ⊥ になる。そこから、これで生成してやればよいのか。

    ... | tri> _ neq gt = ⊥-elim (neq refl)

う、うーん。なんか、かっこわるいんだけど。こんなものかな。if 文みたいにできないのかな。

Friday 13 April 2018

OS研究会〜

5/21-22 (月火) です。去年と同じ、恩納村のホテルモントレーですね。例年ホテルパックを用意してくださいと頼むんですが、

 いろいろ行き違いでアナウンスが遅れる

とかって、あまり利用されてないみたい。今年は、既にリンクを渡したので使ってもらえるといいな〜 

  http://www.ipsj.or.jp/sig/os/index.php?2018%C7%AF5%B7%EE%B8%A6%B5%E6%B2%F1

昔はジャンボツアーの人が頑張ってくれてたんですけどね。今回はJTB。ジャンボツアー使ってと少しねばったがだめでした。

というわけで、論文でっち上げ中です。間に合うかな〜

土曜日は、新歓LT大会があるらしい。そっちの方は毎年だいたいさぼってるみたい。まぁ、そうだよな〜 新学期と研究会となんとかとか重なるからな〜

Thursday 12 April 2018

Facebook をさかのぼる

iPhone側はフリックでしか戻れないんですが、Web 側には年度タブが付いてるのを発見。2008年からですが、最初は twitter 連携だったらしい。しかし、

  2008年のtweetが多すぎてトレース不能

だぁぁぁ。Blog 連携は2010/12からだったようです。そこで twitter を流すのをやめたようですね。そこでも、ちょっと多いな。一番書いていた時期かも。

Blog 連携は最初はノートに blog を接続するだけ。それで自動的に Facebook にコピーしてくれていた。あれは便利だったのに〜

  メール一通送ると、mixi と blog と Facebook に全部同時に投稿される

という素晴らしいシステムだったのに。 しかし、2011には連携は廃止。そこからは script 経由で Blog と連携させてます(めんどくさ)。

おそるべきことに、Setting から 今までの Facebook 投稿を全部 download することが可能らしい。mixi の時には外部ツール使ったのだが。まぁ、Blogger あるから、使わないとは
思うんですが。

なので、Facebook の検索で困っている人は download して、検索できるblogに入れてしまうのが良いかも。いや、普通の人はやらないか。いや、

  Blog って読み返すと楽しい

です。さすがにネットニュースは読み返す気にはならないだが...

Wednesday 11 April 2018

自分の部屋

学生がなんか去年買った Displayを余らせていたので、自分の部屋に持ってきたので、偽HDからだいぶ解像度があがりました。といっても、

  サーバな Mac Mini

なので、Display 使うとかほとんどないんですけどね。

だいたい、学生に「ディスプレイ買うから、好きなの見積り取って」というわけなんですが、

  妙に小さい奴
  安くて大きいが、ちょっとだめな奴

とかを選んでくることが多くてなぁ。今回のはどうなんだろう?

ついでに、蛍光灯を交換。ほとんど切れてて、薄暗くて困ってた。なんと8本? 例の長い奴だが、それようのLEDもあるらしい。でも、それを買う予算はないっぽい。長期的にはLEDなんだろうけど。

でも、僕がいるうちは、これで持つんじゃないか?

Tuesday 10 April 2018

facebook 10年

らしいです。なんか、生成されたムービーみたいなのが来てたが、スマホだったので見損ねました。もう二度と見れないだろうな。残念なことです... イイネぐらいしておけば良かった。

blog を見てみると確かに2008/6/19になんか書いてる。

  http://seeker-s-eye.blogspot.jp/2008/06/facebook.html

登録はもう少し前ってことですね。Notes で blog 連携できて、早めに連携したはずなので、2008年辺りから結構書き込みはあったんじゃないかな。

FriendFeed って書いてあるけど、まだ、あるのかな。twitter 連携とともにさっさと切ったと思います。僕が facebook で twitter したら社会の迷惑だろう。日記のネタにも困るし。

mixi は劇的な移行が起きるかもしれなくて、それでも、しつこくユーザは残るとか書いてあって、その通りになっているのが笑えます。

twitter も facebook も広告が残念になりつつあるからな〜 そろそろ分散型のSNSの出番なはずだが、マストドンどうなった...

Monday 9 April 2018

ソースコード読み会

とかいうと、Martin Nilsson が「書き会しましょう」っていうんだよな。

修士の授業でやってるんですが、今年は x.v6 と qemu 読もうかという気になってます。学生たちの希望を聞くと、

  Pandas, OpenCV

あぁ、そういうライブラリ系ね。また、自分が使うんだろうけど。読んで面白いどうかは。Pandas は Python 系らしい。

Mattermost という golang で書かれた Messeging system があるらしい。

Emacs/LaTeX という話も出たんですが、ちょっと古すぎか。TeX は文芸的プログラミング本があるので面白いんですが、

  いかんせん、マクロプロセッサってのが絶望的に古い

Emacs は、

  undump する時に使う malloc のAPIを glib が廃止する

って問題があって、undump できなくなる説が... あれはどうなったんだ? TeXも undump 使っていたんですが、割と早めに自力でメモリdumpする方向に書き換えられました。

Linux kernel と言うのも出たんですが、

  最近のLinux kernelは最適化しないと動かない
  最適化するとソースコードデバッグできない

という問題が。

どうも、最近の人たちは

  ソースコードデバッグしない

みたいんだよね。おそらく、log と test が通る所までなおして、それで終わりみたいな感じか。どこを通るのかわかれば良いと言えばそうなんだけど。

log control とかも難しいんですけどね。Haskell とか log 書き出すと動作が変わるし。透過性ってのは観測によらずに結果が同じってことだったんじゃないのかよと思うが、まぁ、並行処理だとそうもいかず。

名前が出て準備ができるものは読む方針ですが、Microsoft Office? うーむ、Libbre Office でもいいけど、ちょっと気が重い。

Sunday 8 April 2018

バーガーベア

新城になるのかな。ユニゾンカフェの隣にできたハンバーガー屋さんです。黒人のおっちゃんがやってます。

 ベービー
 ダディ
 ビッグダディ

とあるのだが、ベービーでもかなり大きい。ワッパーぐらいあるんじゃないか? ビッグダディはパティ8枚とか書いてあって4千円らしいです。何人かで食べるものかも。量が多いことを除けば、美味しいです。

ここも二回目なんですが、既に覚えられてしまったらしく、

 飲み物サービス

とか言われました。いや、別にいらないんだけど。ウーロン茶置いて欲しいんだけどな。

ユニゾンカフェの休みが予想しにくくて... 閉まってる時に、隣で開いてると使う感じかな〜 

Saturday 7 April 2018

x.v6 読み会

新しい4年次も来たので、x.v6 を読み直し。GCC 版でも clang 版でも動くし、もう何回も読んだので楽勝だ。

なんだけど、新しい clang 版だけ ls の出力がおかしい。えーと、

  x.v6 ってユーザプログラムのデバッグってどうやるの?

kernel は trace できるんですけど、ユーザプログラムが停められるのは fork / exec からだし。で、fork 読んだのですが、

  page table を copy して、proc を複製するだけ

あぁ、まぁ、そうだよな。exec 読まないと。exec は、

  プログラム load して、page table を作って切り替えるだけ

あれ? あ、そうか。kernel から user space に戻るところを読まないと。trapret ですね。ARM では SVC mode (supervisor mode) から抜けて return するだけらしい。

ということは、

(1) ユーザプログラムが最初に呼ぶ system call にbreak point をかける

(2) 走らせて、shell からユーザプログラムを起動すると、gdb でそのsystem callが捕まる

(3) trapret に break point をかけて、continue

(4) trapret で、p *proc して、ターゲットのユーザプログラムかどうかをチェックする

(5) そこから stepi していくと、ユーザプログラムに到達

(6) この時点でユーザプログラムに break point がかけられるようになる

これで,良いらしい。ただし、ソースコードデバッグはできませんが。アセンブラ読めるから大丈夫。

いろいろ調べた所、printf が動いてないらしい。読んでみると「引数のアドレスを取って、それをincrementして」とかやってる。

なんと、それでgcc と古いclangは動くのですが、新しいclangでは動かない。いや、clang で arm で動く方がおかしいだろ。そういうの尊重していたのか。 結局、stdarg ( va_arg とか使う奴) に書き換えたら治りました。なるほどね。

Monday 2 April 2018

Inbox

Google のメーラですね。Gmail では昔から使っていたんですが、

  学科のでも使えます

っていつからだよ〜

iPhone アプリも軽快で良いんですが、

  複数アカウントは手動で巡回

だめじゃん。まあでも現状ではベストかな。MHも使ってますけどね。

MHも inbox 使うので、絶対、MH使いが設計したものだと思ってます。

Sunday 1 April 2018

GCC側

CbCを GCC 4.5 から GCC 8.0 に上げたんですが、なかなかCbCのテストが通らず。LLVMに乗り換えてから、GCCはもういいやと思っていたんですが、やっぱり欲しくなったので。

卒論が片付いてから始めたんですが、LLVM側はわりとすぐにすんだのだけど、GCCが、

  最適化すると、tail call をさぼる

という症状が出ていて。今まで最適化の部分は避けてたのですが、まぁ、やるしかない。inline で展開する時に、tail call のflagが落とされしまうらしい。

cfgexpand.c かと見当付けたんですが、そこで無理にtail call flag を付けると internal compile error 。うーん。

GCC はさまざまなdump file を生成できるので、それをやったのですが、

  どのpassで変化しているのかがわからない

なんだけど、そのpass名を表示するoptionもあった。

-fdump-passes

で、結局、ipa-inline.c だってのがわかったんですが、そこから治し方がわからない。

なのですが、カタンの日に、なんか学生が「できました」とか言ってる。おお、すごい。なんか、ssa 形式の下に vdef ってのがあって、そこに tail call flag が付いているとだめらしい。なので、そこにflagがあったら、展開しないという方法で良いらしいです。詳しい分析は、また、後でだな。

GCC/LLVMをいじる時には、なるべく学生と一緒にやってるわけだけど、学生が自力でいじれるようになれるのは素晴らしい。まぁ、そうなったころに卒業/修了してしまうわけですけどね。どっかの企業は、それに文句つけるらしいが、うちは、技術付けさせて、さっさと卒業させるのが仕事だからな。

家でLLVMの修正を勝手にやってきてしまう学生もいたんですが、ちょっと残念だったかな。もっと、いろいろできたと思う。

3月中に片付けるとか言ってたんですが、ちゃんと3月中にできたのは素晴らしい。