<?xml version="1.0" encoding="euc-jp"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="ja">
  <title>正直日記</title>
  <tagline>柏のアレ</tagline>
  <link rel="alternate" type="text/html" href="http://www.liarsoft.org/diary/" />
  <id>http://www.liarsoft.org/diary/</id>
  <generator url="http://www.liarsoft.org/" version="0.1">Honesty Diary</generator>
  <copyright>Copyright (c) Kashiwa</copyright>
  <modified>2010-04-06T12:17:10Z</modified>
  <entry>
    <title>Breakpoint 10 wild部門を見た</title>
    <link rel="alternate" type="text/html" href="http://www.liarsoft.org/diary/20100405.html#20100405p1" />
    <id>http://www.liarsoft.org/diary/20100405.html#20100405p1</id>
    <issued>2010-04-06T16:48:32Z</issued>
    <modified>2010-04-06T16:48:32Z</modified>
    <summary type="text/plain">今年もリアルタイムに見ていたので雑感を。  --  　1. Descent by Karoshier    lolcode という言語を使ったデモ。 ASCII 文字オンリーで、マンデルブロや CAVE などのデモを実行。  この言語で書かれたソースは俗に言う「厨房臭い」見た目になるようで、これ でマンデルブロ...</summary>
    <author>
      <name>Kashiwa</name>
    </author>
    <content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.liarsoft.org/diary/">
      <![CDATA[<tt>今年もリアルタイムに見ていたので雑感を。<br /><br />--<br /><br />　1. Descent by Karoshier<br /><br /><img src="/data/bp2010/bp2010_wild_1.jpg" /><br /><br /><a href="http://lolcode.com/">lolcode</a> という言語を使ったデモ。 ASCII 文字オンリーで、マンデルブロや<br />CAVE などのデモを実行。<br /><br />この言語で書かれたソースは俗に言う「厨房臭い」見た目になるようで、これ<br />でマンデルブロを仕上げるのは、それはそれで気合が入っているのかもしれず。<br /><br />冒頭のネコは lolcode が生まれるきっかけとなった lolcat が元ネタ。<br /><br />参考リンク：<a href="http://sourceforge.jp/magazine/07/06/12/0152242">LOLCODE入門 - SouceForge.JP Magazine</a><br /><br /><br />　2. Finally made it by TMT<br /><br /><img src="/data/bp2010/bp2010_wild_2.jpg" /><br /><br />EOS500 によるストップモーション・アニメーション。 6x4 のビールケースか<br />らビールを抜いたり入れたりすることで、スネークや pong を再現したりなど。<br /><br />写真の雰囲気から、どうやらパーティ会場で作られたもののようで（いわゆる<br />party coding）。題名が「遂にやり終えたぜ」なのも、そういうことなんだろ<br />うな。<br /><br /><br />　3. Tentacle Band by Dienstagstreff<br /><br /><img src="/data/bp2010/bp2010_wild_3.jpg" /><br /><br />全身着ぐるみの二人組みが即興で踊るデモ。これはその場で見ないと面白くな<br />いタイプのワイルドかな。<br /><br /><br />　4. K1 by knizz<br /><br /><img src="/data/bp2010/bp2010_wild_4.jpg" /><br /><br />Linux 上でのデモ、ということだけど詳しいことは分からず。Linux/PC なら<br />PC demo になるはずなので、実は特殊なプラットフォームなのかもしれない。<br /><br /><br />　5. Etch-a-sketch by Cybernetics Genethics<br /><br /><img src="/data/bp2010/bp2010_wild_5.jpg" /><br /><br />Morph OS 上での単色デモ。なぜ単色なのか？<br />おそらく何かを再現しているのだろうけどよく分からず。<br /><br /><br />　6. Xnth Demo v1.08 by VJ Bensky and Optics<br /><br /><img src="/data/bp2010/bp2010_wild_6.jpg" /> <a href="http://www.youtube.com/watch?v=2Na1Ib36bpI">動画</a><br /><br />自作の VJ ツールを紹介するデモらしいのだけど説明が無いのでよく分からず。<br />色々出来る様子。<br /><br /><br />　7. Elixir Android's Wild by Bixo<br /><br /><img src="/data/bp2010/bp2010_wild_7.jpg" /><br /><br />HTC Magic を使ったデモ。日本では HT-03A として知られている。<br /><br /><br />　8. Das Shuttlebus by The Alberts<br /><br /><img src="/data/bp2010/bp2010_wild_8.jpg" /><br /><br />PowerPoint 製のデモ。タイトルが示している通り、パーティ会場につくまでの<br />シャトルバスの道のりをストップモーションで繋げたドキュメンタリ。<br /><br />会場にいる人達の中には、このシャトルバスに乗った人もいるわけで、その場で<br />は盛り上がっているものの、ストリーミングで見ているこちらは……。<br /><br /><br />　9. No Future by Digital Sounds Sistems<br /><br /><img src="/data/bp2010/bp2010_wild_9.jpg" /><br /><br />Yes, this demo runs on mIRC :) なデモ。IRC クライアントということで文字<br />だけしか表示できないのかと思いきや、様々なグラフィックを表示。<br /><br /><a href="http://en.wikipedia.org/wiki/MIRC_scripting_language">mIRC scripting language - Wikipedia:en</a> によると、簡単な図形描画がスクリ<br />プトだけで行えるらしく、また COM による拡張も出来る模様。<br /><br />mIRC 上でデモを作ろうと、思いついた時点で勝ち組だよ。<br /><br /><br />　10. <a href="http://www.pouet.net/prod.php?which=54554">High School Love</a> by <a href="http://www.pouet.net/groups.php?which=10557">adinpsz</a><br /><br /><img src="/data/bp2010/bp2010_wild_10.jpg" /> <a href="http://www.youtube.com/watch?v=1qRyu7qc36g">動画</a><br /><br /><a href="http://ja.wikipedia.org/wiki/TI-89_%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA">TI-89</a> という関数電卓によるデモ。思春期真っ盛りな少年が一通のラブレター<br />をしたため、彼女と世界中を旅する妄想をする……という若干ストーリー仕立<br />てのデモ。その淡い雰囲気のためか会場では合唱が起こったりなど。<br /><br />結果的に少年は振られてしまうのだけど「でも問題ないさ。デモシーンはまだ<br />続くのだから」と締めて喝采。BGM が無いので会場の様子そのものが BGM に<br />なるんだけど、このライブ感がたまらないよ。<br /><br /><br />　11. <a href="http://www.pouet.net/prod.php?which=54660">strobborts</a> by <a href="http://www.pouet.net/groups.php?which=2658">K2</a> &amp; <a href="http://www.pouet.net/groups.php?which=679">WD</a><br /><br /><img src="/data/bp2010/bp2010_wild_11.jpg" /><br /><br />Commodore VC20 によるデモ。日本では <a href="http://ja.wikipedia.org/wiki/VIC-1001">VIC-1001</a> として知られる。単音 BEEP<br />を時分割で鳴らし和音生成するなど。<br /><br /><br />　12. <a href="http://www.pouet.net/prod.php?which=54587">going lowres</a> by <a href="http://www.pouet.net/groups.php?which=280">TRSI</a><br /><br /><img src="/data/bp2010/bp2010_wild_12.jpg" /> <a href="http://www.youtube.com/watch?v=5qtx9q-AMkc">動画</a><br /><br />上と同じく、VC20 によるデモ。プラズマ、トンネル、ツイストなど。相当メ<br />モリが厳しいらしく、いくつかデモを表示し終わるたびにローディングが入る。<br /><br /><br />　13. Loopback by Altair<br /><br /><img src="/data/bp2010/bp2010_wild_13.jpg" /> <a href="http://www.youtube.com/watch?v=F-JH-fUrdi4">動画</a><br /><br /><a href="http://www.retroleum.co.uk/electronics-articles/v6z80p/">V6Z80P</a> によるデモ。Spartan II をベースにした基板らしく、スペック的には<br />MSX2 turboR に近い性能を持っている模様。<br /><br /><br />　14. <a href="http://www.pouet.net/prod.php?which=54656">Wobble</a> by <a href="http://www.pouet.net/groups.php?which=10932">CRTC</a><br /><br /><img src="/data/bp2010/bp2010_wild_14.jpg" /><br /><br />ドリームキャストによるデモ。今回は PowerVR 勢が強いのかなぁと思いつつ<br />見ていた。<br /><br /><br />　15. <a href="http://www.pouet.net/prod.php?which=54560">Para 'N' Droid</a> by <a href="http://www.pouet.net/groups.php?which=280">TRSI</a> &amp; <a href="http://www.pouet.net/groups.php?which=4778">Rabenauge</a> &amp; <a href="http://www.pouet.net/groups.php?which=2961">Brain Control</a><br /><br /><img src="/data/bp2010/bp2010_wild_15.jpg" /><br /><br />Android によるデモ。使用機種は Motorola Milestone だとか。画面を触ると<br />ロゴが入れ替わったり、傾けると星の流れる方向が変わったり、とマシンの特<br />性を生かしたデモかな。<br /><br /><br />　16. <a href="http://www.pouet.net/prod.php?which=54572">delta</a> by <a href="http://www.pouet.net/groups.php?which=3483">DMA</a><br /><br /><img src="/data/bp2010/bp2010_wild_16.jpg" /> <a href="http://www.youtube.com/watch?v=hewhr0IKi4g">動画</a><br /><br />iPhone によるデモ。Android デモのすぐ後にぶつけてくる辺り、運営は狙って<br />いるだろう？ こちらはスタイリッシュな正統派デモ（先のデモも正統派といえ<br />ば正統派なのだけど）で、iPhone ユーザと Android ユーザの違いを垣間見た<br />感じがする。ソースが公開されている。<br /><br /><br />　17. <a href="http://www.pouet.net/prod.php?which=54555">Led it be</a> by <a href="http://www.pouet.net/groups.php?which=4167">Darklite</a><br /><br /><img src="/data/bp2010/bp2010_wild_17.jpg" /> <a href="http://www.youtube.com/watch?v=b0tkYIWKM2g">動画</a><br /><br />4x4x4 に並べた 多色 LED によるデモ。音楽に同期していて美しい「空間」を<br />演出している。動画はまず製作記から始まり、なんだか「作ってみた」臭を感<br />じた人は恐らくニコ厨なので(以下略)<br /><br /><br />　18. <a href="http://www.pouet.net/prod.php?which=54575">BluREU</a> by <a href="http://www.pouet.net/groups.php?which=471">Crest</a><br /><br /><img src="/data/bp2010/bp2010_wild_18.jpg" /> <a href="http://www.youtube.com/watch?v=M-qEzv_IxuU">動画</a><br /><br />C64REU (<a href="http://en.wikipedia.org/wiki/Commodore_REU">REU</a> とは RAM Expansion Unit の略)による、ほぼ全編が動画で構成<br />されたデモ。16MB に拡張された RAM の力で <a href="http://www.youtube.com/watch?v=XtCW-axRJV8">Second Reality</a> や <a href="http://www.youtube.com/watch?v=pq-aLBNwpPQ">fr-25</a> など<br />を動画としてそのまま取り込んでいたり、とやりたい放題。<br /><br />日本で言うところの「<a href="http://www.nicovideo.jp/watch/sm4530956">MZ-700 に不可能は無い</a>」みたいな感じかな。<br /><br /><br />　19. <a href="http://www.pouet.net/prod.php?which=54642">Lineart</a> by <a href="http://www.pouet.net/groups.php?which=359">Nuance</a> &amp; <a href="http://www.pouet.net/groups.php?which=1378">METALVOTZE</a><br /><br /><img src="/data/bp2010/bp2010_wild_19.jpg" /> <a href="http://www.youtube.com/watch?v=OrtNayGNWHE">動画</a><br /><br />MB Vectrex によるデモ。日本で言うところの高速船。ワイヤフレームによる<br />3D 描画。Vectrex を持ち込もうとするのが凄いと思うのだ。<br /><br /><br />　20. <a href="http://www.pouet.net/prod.php?which=54558">Phasor</a> by <a href="http://www.pouet.net/groups.php?which=6356">lft</a><br /><br /><img src="/data/bp2010/bp2010_wild_20.jpg" /> <a href="http://www.youtube.com/watch?v=8DDVUzouIzA">動画</a><br /><br />ATmega88 を CPU に据えた自作基板によるデモ。この作者は昨年と一昨年もワ<br />イルド部門で参加していて、今年も同様に１位を取るのかと思われたが、その<br />座は BluREU に奪われた模様。音楽も映像もクールでいいんだけど、今回は相<br />手が悪かったか。<br /><br />--<br /><br />今年はコンソールゲーム機によるエントリーが一つしかなく、代わりにスマー<br />トフォンによるエントリーが多かったのが印象的だった。<br /><br />掲載画像は<a href="http://easyjohn.livejournal.com/149573.html">こちら</a>から拝借しました。</tt>]]>
    </content>
  </entry>

  <entry>
    <title>gnu makeからpcmconv.comを呼び出す</title>
    <link rel="alternate" type="text/html" href="http://www.liarsoft.org/diary/20100105.html#20100105p1" />
    <id>http://www.liarsoft.org/diary/20100105.html#20100105p1</id>
    <issued>2010-01-05T07:31:56Z</issued>
    <modified>2010-01-05T07:31:56Z</modified>
    <summary type="text/plain">MS-DOS Player for Win32-x64が素晴らしい。 私はいまだに x86 環境なので恩恵無いかな、と思ったら、GNU make から COM 形 式の実行ファイルが呼び出せるようになった。ちょー便利。  [pconv.mk] pcm := $(patsubst %.wav, %.pc8, $(wildcard *.wav)) all: $(pcm)  .SUFFIXES...</summary>
    <author>
      <name>Kashiwa</name>
    </author>
    <content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.liarsoft.org/diary/">
      <![CDATA[<tt><a href="http://homepage3.nifty.com/takeda-toshiya/msdos/index.html">MS-DOS Player for Win32-x64</a>が素晴らしい。<br />私はいまだに x86 環境なので恩恵無いかな、と思ったら、GNU make から COM 形<br />式の実行ファイルが呼び出せるようになった。ちょー便利。<br /><br /><blockquote class="quote">[pconv.mk]<br />pcm := $(patsubst %.wav, %.pc8, $(wildcard *.wav))<br />all: $(pcm)<br /><br />.SUFFIXES: .pc8 .wav<br />%.pc8: %.wav<br />&nbsp;&nbsp;msdos pcmconv //v $&lt; //b $@</blockquote><br /><br />というルールを作れば<br /><br /><blockquote class="quote">$ make -f pconv.mk<br />msdos pcmconv //v sound_bassdrum.wav //b sound_bassdrum.pc8<br />PCM converter PCMCONV ver1.8</blockquote><br /><br />符号付 8bit PCM (ヘッダ無し)への変換および更新が楽に行える。<br /><br />更に一歩進めば、ppz の更新が make で出来るということになり pmdppz データ<br />を作る際の心理的障壁がひとつ取り除かれたということであるのだった。</tt>]]>
    </content>
  </entry>

  <entry>
    <title>今年こそ、と毎年思っている俺</title>
    <link rel="alternate" type="text/html" href="http://www.liarsoft.org/diary/20100101.html#20100101p2" />
    <id>http://www.liarsoft.org/diary/20100101.html#20100101p2</id>
    <issued>2010-01-01T03:03:17Z</issued>
    <modified>2010-01-01T03:03:17Z</modified>
    <summary type="text/plain">去年は何もしなかったなぁと思っていたのだが、日記を振り返ってみると、どう やら私はゲーム機用 OS を作っていたようである。その過程でコンパイラも作っ ていたようだ。（あと麻雀を作ろうとして投げたり、思いつきで手を出しては色 々投げてもいたようだ……）  趣味プロ...</summary>
    <author>
      <name>Kashiwa</name>
    </author>
    <content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.liarsoft.org/diary/">
      <![CDATA[<tt>去年は何もしなかったなぁと思っていたのだが、<a href="http://www.liarsoft.org/diary/summary2009.html">日記を振り返ってみる</a>と、どう<br />やら私はゲーム機用 OS を作っていたようである。その過程でコンパイラも作っ<br />ていたようだ。（あと麻雀を作ろうとして投げたり、思いつきで手を出しては色<br />々投げてもいたようだ……）<br /><br />趣味プログラマが一度は作りたがるものとして OS とオレオレ言語、あとはテキ<br />ストエディタがあげられるだろう。 OS と言語は一応達成してしまった？わけで、<br />となると残るはテキストエディタか。ネタとしてはバッファ構造、無限アンドゥ、<br />grep、置換、色分け、入力補完といったところだろうか。 <a href="http://www.kmonos.net/alang/texted/">GreenPad</a> の後追いを<br />するだけでも相当力がつきそうな気がする。<br /><br />まぁテキストエディタはもう秀丸と Vim があればいいので……。<br /><br />あと今年は<a href="http://www.ne.jp/asahi/hzk/kommander/2010top.html">ギャラクシーポリスの年</a>なのでこれ系のネタをやりたい気がする。<br /><br />いい加減あれの移植も再開したい……。<br /><br />それとそろそろ PC 向けに何かを作りたい。具体的には CD もしくは DVD 一枚<br />あれば起動できるゲーム環境を一から作ってみたい。現時点ではこれが有力かな。</tt>]]>
    </content>
  </entry>

  <entry>
    <title>そうか。もう年末なんだな。（・ω・）</title>
    <link rel="alternate" type="text/html" href="http://www.liarsoft.org/diary/20100101.html#20100101p1" />
    <id>http://www.liarsoft.org/diary/20100101.html#20100101p1</id>
    <issued>2010-01-01T02:25:34Z</issued>
    <modified>2010-01-01T02:25:34Z</modified>
    <summary type="text/plain">ネンマツー。(’ω`)</summary>
    <author>
      <name>Kashiwa</name>
    </author>
    <content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.liarsoft.org/diary/">
      <![CDATA[<tt>ネンマツー。(’ω`)</tt>]]>
    </content>
  </entry>

  <entry>
    <title>世界初！ C++ でメガドラソフトを作るおとこ</title>
    <link rel="alternate" type="text/html" href="http://www.liarsoft.org/diary/20091208.html#20091208p1" />
    <id>http://www.liarsoft.org/diary/20091208.html#20091208p1</id>
    <issued>2009-12-08T14:31:14Z</issued>
    <modified>2009-12-08T14:31:14Z</modified>
    <summary type="text/plain">と言うネタを温存していたのだが、さすがに温存しすぎたらしく、気づいたら既 にやっている方がいた。これでは今から始めても２位になってしまう。別に１位 でなくても構わない話ではありますが。（←時事ネタは風化するわよ）  メガドラでオブジェクト指向プログラミング   ...</summary>
    <author>
      <name>Kashiwa</name>
    </author>
    <content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.liarsoft.org/diary/">
      <![CDATA[<tt>と言うネタを温存していたのだが、さすがに温存しすぎたらしく、気づいたら既<br />にやっている方がいた。これでは今から始めても２位になってしまう。別に１位<br />でなくても構わない話ではありますが。（←時事ネタは風化するわよ）<br /><br /><a href="http://naruishi.hp.infoseek.co.jp/program/mdcpp.html">メガドラでオブジェクト指向プログラミング</a><br /><br /><br />どうやら私の手抜きのせいで面倒をお掛けてしまったようで申し訳なし。<br /><br />malloc その他の関数が 68020 の命令を使っているのはバグではなくて、 gcc <br />のビルド時に --enable-multilib を指定して、かつ適切なビルドオプションを<br />指定しないとデフォルトのリンクライブラリが 68020 用になるという仕様に起<br />因していて<br /><br /><blockquote class="quote">$ wine m68k-gen-elf-gcc -dumpspecs<br /><br />...snip...<br /><br />*multilib_defaults:<br />m68020 m68881</blockquote><br /><br />という風に確認できる。<br />ついでに multilib も確認しておくと…<br /><br /><blockquote class="quote">$ wine m68k-gen-elf-gcc -print-multi-lib<br />.;<br />m68000;@m68000<br />m5200;@m5200<br />m5206e;@m5206e<br />m528x;@m528x<br />m5307;@m5307<br />m5407;@m5407<br />mcpu32;@mcpu32<br />m68040;@m68040<br />m68060;@m68060<br />msoft-float;@msoft-float</blockquote><br /><br />と 68000 用のライブラリも用意されているので、リンクオプションで -A 68000<br />もしくは --architecture 68000 と指定すればそっちがリンクされるようになる<br />はず。しかし紛らわしいので最初からそちらがリンクされるように（私の方で配<br />慮を）しておけよって話ですね……。<br /><br />--<br /><br />devkitGenesis と謳っている割にはメガドラ用の C ランタイムとリンカスクリ<br />プトが入ってなくて、それは何故かというと非 GPL なライブラリを GPL なソフ<br />ツに混ぜるとどうなるのか分からなかったので保留していたのだよな……。<br /><br />crt0.o は自分で用意したいとずっと思っているのだけど、セキュリティコード<br />の辺りがよく分からない。これはこういうもんだと割り切って既存のを使わせて<br />もらっちゃうのが正解なのかな。<br /><br />あとの手順としてはこんなもんだろうか。<br /><br /><ul><li>MPU(68000) 初期化（モード, 割り込み, スタック）</li><br /><li>CPU(Z80) リセット＆ HALT</li><br /><li>VDP 初期化</li><br /><li>OPN2, DCSG 初期化</li><br /><li>RAM 初期化（.bss と .sbss をゼロクリアし .data のコピー）</li><br /><li>libc 初期化（__libc_preinit_array, __libc_init_array, __libc_fini_array ?）</li><br /><li>グローバルコンストラクタ呼び出し（__do_global_ctors_aux ?）</li><br /><li>main 呼び出し</li></ul><br /><br />68 アセンブリが微妙に書けないので、手始めに C で書いて吐かれたコードを手<br />直しするかと見てみたら、明らかに dbra が使える局面でそれが使われてなかっ<br />たりする。うーむどうしたら使ってくれるのだろう。<br /><br /><blockquote class="quote">void <br />Copy(u32 dst, u32 src, size_t n)<br />{<br />  char* s = (char*)src;<br />  char* d = (char*)dst;<br />  do {<br />    *dst++ = *src++;<br />  } while (--n);<br />}</blockquote><br /><br />が、こうなる。<br /><br /><blockquote class="quote">Copy:<br />  move.l 12(%sp),%d0<br />  move.l 8(%sp),%a1<br />  move.l 4(%sp),%a0<br />.L2:<br />  move.b (%a1)+,(%a0)+<br />  subq.l #1,%d0<br />  jne .L2<br />  rts</blockquote><br /><br />gcc/config/m68k/m68k.md を見ると dbra を使ってくれる局面は２種類存在する<br />のだけど、よく分からない。つーかどんどん脱線していくな……。</tt>]]>
    </content>
  </entry>

  <entry>
    <title>クウォータービューで頭身の高い歩行アニメを描く</title>
    <link rel="alternate" type="text/html" href="http://www.liarsoft.org/diary/20091204.html#20091204p1" />
    <id>http://www.liarsoft.org/diary/20091204.html#20091204p1</id>
    <issued>2009-12-03T17:40:11Z</issued>
    <modified>2009-12-03T17:40:11Z</modified>
    <summary type="text/plain">オウガサイズならなんとかなりそうだけど、なぜか頭身の高いものを描く羽目に なってしまった。なんだか難しそうだ。     まず腰から下を棒人間でざっと描いて、太ももの付け根と、かかとを基準とした 歩幅の位置にマークをつけた。     次にかかとを動かしてみる。     かか...</summary>
    <author>
      <name>Kashiwa</name>
    </author>
    <content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.liarsoft.org/diary/">
      <![CDATA[<tt>オウガサイズならなんとかなりそうだけど、なぜか頭身の高いものを描く羽目に<br />なってしまった。なんだか難しそうだ。<br /><br /><br /><img src="/data/walker0.gif" /><br /><br />まず腰から下を棒人間でざっと描いて、太ももの付け根と、かかとを基準とした<br />歩幅の位置にマークをつけた。<br /><br /><br /><img src="/data/walker1.gif" /><br /><br />次にかかとを動かしてみる。<br /><br /><br /><img src="/data/walker2.gif" /><br /><br />かかとと腰をラインで結んで、それを基準に膝マークをつける。<br /><br /><br /><img src="/data/walker3.gif" /><br /><br />腰と膝と踵をそれぞれラインで結んだ。平行投影なので、足が一本出来れば奥の<br />もコピペで使いまわせるはず。<br /><br /><br /><img src="/data/walker_anime1.gif" /><br /><br />実際にアニメしてみる。腰が広すぎた！<br />要調整だけどまぁ歩いてるようには見えるかな。<br /><br /><br /><img src="/data/walker_anime2.gif" /><br /><br />鳥足でも多脚でもなんでもござれですね！<br />もう怖いものは無い……といいな。</tt>]]>
    </content>
  </entry>

  <entry>
    <title>golangクロスコンパイラを捏造する</title>
    <link rel="alternate" type="text/html" href="http://www.liarsoft.org/diary/20091114.html#20091114p1" />
    <id>http://www.liarsoft.org/diary/20091114.html#20091114p1</id>
    <issued>2009-11-17T22:45:33Z</issued>
    <modified>2009-11-17T22:45:33Z</modified>
    <summary type="text/plain">go 社を会場に繰り広げられた勉強会に赴き、そこで何故か一人黙々と ARM 版 go のビルドを行ってきた。恥ずかしい話だけど、諸事情で二日寝ておらず目が血走っ ており、なんだか気を使わせてしまって申し訳ないことをした。寝ぼけたことも 多分言った。  --  (追記：下記で 5c...</summary>
    <author>
      <name>Kashiwa</name>
    </author>
    <content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.liarsoft.org/diary/">
      <![CDATA[<tt><a href="http://atnd.org/events/2115">go 社を会場に繰り広げられた勉強会</a>に赴き、そこで何故か一人黙々と ARM 版 go<br />のビルドを行ってきた。恥ずかしい話だけど、諸事情で二日寝ておらず目が血走っ<br />ており、なんだか気を使わせてしまって申し訳ないことをした。寝ぼけたことも<br />多分言った。<br /><br />--<br /><br />(追記：下記で 5c と書いている部分と 5c に絡む解説部分は全て勘違いでした。<br />エラーが出るのは libcgo のみで、 5c 自体はコンパイル出来るようです)<br /><br />まず普通の go コンパイラ。 <s>5c</s> libcgo のコンパイル時に、 arm.o の生成ルー<br />ルを見つけられずにエラー終了する。<br /><br />golang だけ使う分には 5g と 5l があればいいのだが、 C と連携したい場合に<br />こま……いや困ることは無いかなぁ。<br /><br /><s>5c</s> libcgo には go と C の関数を仲介する arm.S と、スレッドを仲介する <br />linux_arm.c が必要なのだけど、取り合えず arm.S を捏造して前者だけまかな<br />うことにする。どちらにしても <s>5c</s> libcgo が使えないことは変わりないけど。<br /><br />arm.S のアセンブルには x86-gcc が使われてしまうので、一筋縄ではいかない。<br />結局 arm-gcc -fPIC でコンパイルしたコードからバイナリを抽出して直接 .long<br />で埋め込んでやった。バイナリサイコー。<br /><br />更に linux_arm.c の中身を賄ったとして、こちらも arm-gcc でコンパイルする<br />必要がある（しかも ARM 版の pthread ライブラリが要るはず）と思うけどどう<br />するんだろう？ <s>libcgo を 5c の外に出して、 5l で使うようにしないといけな<br />い気がする。</s><br /><br /><br />objdump で 5.out を逆アセンブルしたら r0-r3, sp, lr, pc しかレジスタを使っ<br />ていないようだ。おかげでかなり冗長なコードになっていた。まぁ RISC のコー<br />ドなんて冗長なものだろという伝説もある。ARM は CISC 的なにおいもするけど。<br /><br />ちなみに、 5g / 5l で生成した 5.out を qemu-arm (0.11.0) で実行したら<br />Segmentation Fault が返ってきた……。いつか beagleboard でも試してみたい<br />ところ。<br /><br />--<br /><br />次に gccgo。<br /><br />gccgo のソースには <a href="http://gcc.gnu.org/wiki/SplitStacks">Split Stacks</a> という拡張が加えられており、goroutine の<br />（gccgo 版の）肝になっているようなのだが、ARM 版はまだ着手されていないの<br />で 386 版を参考に同様の変更をする必要がある。えーとどこだったかな、もう<br />忘れてしまった……。(diff とれば一発だけど面倒くさい)<br /><br />configure オプションは以下の通り。<br /><br />../gccgo/configure \<br />  --enable-languages=c,go \<br />  --build=i686-pc-linux-gnu \<br />  --host=i686-pc-linux-gnu \<br />  --target=arm-eabi \<br />  --with-cpu=arm9tdmi \<br />  --enable-interwork \<br />  --enable-multilib \<br />  --with-gcc \<br />  --with-gnu-ld \<br />  --with-gnu-as \<br />  --disable-shared \<br />  --disable-debug \<br />  --disable-nls \<br />  --disable-libmudflap \<br />  --disable-libssp \<br />  --disable-libgomp \<br />  --disable-zlib \<br />  --disable-libstdcxx-pch \<br />  --prefix=$HOME/gccgo-arm<br /><br />多分 libffi で詰まると思うので、3.0.9rc3 を落としてきて差し替えると吉。<br /><br />で、えーと libgo の移植が済んでないのでビルドは途中で終わるよ……。<br /><br /><br />あまり関係ないけど gccgo/gcc/go/gogo.cc と、[/gco.]だけで構成されている<br />ディレクトリがあって、なんだか面白かった。イケイケだ。<br /><br />あとマスコットはかわいいと思うんだよ俺は。</tt>]]>
    </content>
  </entry>

  <entry>
    <title>ubuntu 9.10 にしたら Web のスクリーンショットを取りまくれなくなったよ</title>
    <link rel="alternate" type="text/html" href="http://www.liarsoft.org/diary/20091031.html#20091031p1" />
    <id>http://www.liarsoft.org/diary/20091031.html#20091031p1</id>
    <issued>2009-11-02T19:18:26Z</issued>
    <modified>2009-11-02T19:18:26Z</modified>
    <summary type="text/plain">xulrunner が 1.9.1 になって、いくつかの API が他のクラスに移動したため、 1.9.0 の libxul を当て込んでいる Mozilla::DOM が動かなくなりました。  具体的には nsIDOMNSHTMLElement の scrollXXX, clientXXX が nsIDOMNSElement に移動したらしい。offsetXXX だけ移動し...</summary>
    <author>
      <name>Kashiwa</name>
    </author>
    <content type="text/html" mode="escaped" xml:lang="ja" xml:base="http://www.liarsoft.org/diary/">
      <![CDATA[<tt>xulrunner が 1.9.1 になって、いくつかの API が他のクラスに移動したため、<br />1.9.0 の libxul を当て込んでいる Mozilla::DOM が動かなくなりました。<br /><br />具体的には nsIDOMNSHTMLElement の scrollXXX, clientXXX が nsIDOMNSElement<br />に<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=111034#c8">移動したらしい</a>。offsetXXX だけ移動してないのはなぜと思ったら、その理由<br />についても件のレポートで挙がっていました。なるへそ。<br /><br />んで、Mozilla::DOM::NSElement を新設して、メソッドをそちらに移動したらコ<br />ンパイルもインストールも QueryInterface も出来るようになったので（続く）<br /><br />（続き）<a href="http://rt.cpan.org/Public/Bug/Display.html?id=51011">パッチ</a>を投げておきました。windows からアップしたら octet-stream<br />になってしまった。なんか恥ずい。</tt>]]>
    </content>
  </entry>


</feed>
