2010-01-01から1年間の記事一覧

raw_write.h

よく、 libc の関数呼べるかどうかはあやしい部分を printf デバッグしたいことがあると思います。あるんですよ!そういう時にシステムコールってどう呼ぶんだっけ…みたいなことを調べたり、ええと数字を出力したい…とかいうのは結構かったるいので、 #includ…

πのケタ数世界記録の話

TCC の作者であるところの Fabrice Bellard という人は何やらものすごくて、 TCC のスライドにも書いたように、 qemu とか ffmpeg の作者であると同時に、πの任意桁を比較的高速に求めるアルゴリズムを開発したり、πをたくさんの桁数計算して、8ヶ月ほど世界…

TCC の話の追記

http://d.hatena.ne.jp/shinichiro_h/20101217#1292521642のスライドは ELF のあたりから前の晩に適当に書いたとかなので、正直気合い入ってないというかグダグダというか ELF の話をすると言いつつ ELF の話が無かったりして、ひどかったです。まあやってか…

TCC とか x86-64 とかの話

を会社でしたのでそのスライドを置いておきます。http://shinh.skr.jp/slide/tcc64/000.htmlいつかこういうのまとめたいなあと思っていたのですが、特に後半とか色々グダグダになったり、記憶が消し飛んでて何に苦労したか忘れていたりと、まぁ色々適当にな…

GCC Compile Server

http://per.bothner.com/papers/GccSummit03/gcc-server.pdfを読んでみました。7年前の話で、かつ今実現してる気配がないので失敗したんでしょうけど、まぁコンパイラの state を再利用するには何をしなければならなくて、何が難しいか、みたいなことがざっ…

中二病の話の続き

そこはかとなくどうでもいいことを色々。まとめるとか大変なので、関係あること無いこと散慢と。 バカさが重要という話 よく話してるバカさが重要ですよねーという話とかと近いなあと思った。年喰うと経験積んだおかげで要領良くなるけど、バカな時にあった…

傲慢

気付いたけど傲慢な人は職業プログラマとしては傲慢さを抑えないといけないシーンがありますね。自分としてはまだ満足いってないんだけど、納期は数ヶ月前に…みたいな。仕事なんだから中途半端ではなくて面倒で時間のかかる最後の仕上げやテストも書かないと…

中二病と三大美徳とプロプログラマ

プログラマに取って重要な能力というか気質として、中二病というのがあるんじゃないかなーとかふと思ったのだった。なんかちょっとしたことを達成した時に、「おおなんてこったオレすげー!!やばいオレ新世界の神だ!!!」みたいなことを思ったことがある…

StringPiece というライブラリの話

例えばこう、ディレクトリの名前とその中のファイル名を / でくぎって結合する関数を書くとします。引数が std::string でも使いたいし const char* でも使いたい、ということで、たいていは void JoinFilePathStr(const string& dir, const string& base, s…

MikuMikuDance 遊び

MikuMikuDance のデータについて結構 web に情報があるみたいだったので、適当に parser 書いて 2D canvas とか WebGL で動かして遊んでみて、 SDL off 2010 summer で紹介してみたりしました。で、動く URL にリンクはろうかと思ったんですが、よく考えると…

wake 続き

http://shinh.skr.jp/wake/なんか忘れてた $+ を足しました。一番最後にマッチした正規表現をひっかけるアレ。 primitive brainfuck code 書いてて忘れてたことに気付いた。eban さんに文字列の外でも \ でエスケープできた方が空白含むアクションとか作れて…

bfint.wake

書けた。ただ、 \xab とかをサポートしてないのでバイナリが混じってしまった。http://shinh.skr.jp/wake/bfint.wakeあと num.wake もパッケージの外に置いておいた。今思うに、意外と sub が一番大変だった気がする。あとたぶん mul は高速化できると思う。…

wake 続き

http://d.hatena.ne.jp/shinichiro_h/20100709#1278603483の続き。ドキュメントとか書きました。http://shinh.skr.jp/wake/パッケージもアップデートしました。http://shinh.skr.jp/wake/wake.tgz変更点は C++ 実装のインタプリタ (PCRE に依存) を追加した…

alphabet only quine

も簡単。 s zz xor print lc q ys ZZy xor print xor print lc q yZy xor printz xor print lc q ys ZZy xor print xor print lc q yZy xor print

s XXchr length q YThisPerlCodeConvertsAnyPerlCodeIntY Xe xor s XXchr length q Y ThisPerlCodeConvertsAnyPerlCodeIntoAlphabetOnlyPerlCodeThisPerlCodeConvertsAnyP erlCodeIntoAlphabetOn Y Xe xor s XXchr length q YThisPerlCodeConvertsAnyP erlCo…

s XXchr length q YThisPerlCodeConvertsAnyPerlCodeIntY Xe xor s XXchr length q YThisPerlCodeConvertsAnyPerlCodeIntoAlphabetOnlyPerlCodeThisPerlCodeCon vertsAnyPerlCodeIntoAlphabetOnlyPerlCY Xe xor s XXchr length q YThisPerlC odeConvertsAnyP…

プログラム言語 wake

Makefile と正規表現とパターンマッチを混ぜたような、トイ言語を作ってみました。http://shinh.skr.jp/wake/wake.tgz Hello, world! all: "Hello, world!" wake のプログラムは Makefile のように書きます。つまり、 : で区切って左辺にターゲットを書いて…

Befunge をゲームにしたい

なんというか、映画とかマンガとかで、不慮の事態に対してプログラマががーと動いてるコードを修正しちゃうシーンとかがあると、そんなことできるわけねー、と思いつつも、やはりかっこいいわけです。で、まぁ Befunge なら動いてる最中のもの修正するくらい…

ICFPC 2010 の回路ゴルフ

http://shinh.skr.jp/dat_dir/icfpc-2010/factory/genkey6.rb任意の要求出力に対して、出力数 + 7 で回路を作れるコードです。とりあえず key prefix と Car #10060 への答えくらいは動いてることを確認したので、まぁ動いてるんじゃないかと。説明を試みる…

ICFP のコンテスト 2010

頑張りはしたんですが、正直もっとやれたんじゃないかとくやしい。最後まで有効なソルバ書けなかったって感じですし…コードはこのへん。こいうのって tgz とかよりディレクトリ置いとく方が面白いかなーと思ってそうした。 tern.rb あたりがひどい感じ。結果…

C1X

なんか tgmath.h について調べてて、 GCC 拡張にある type generic macro をサポートする機能を C に入れてはどうすかという提案があることに気付きました。http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1404.htmでなんか C1X ってどういう感じなのか…

tgmath.h の話

このプレゼンで紹介した tgmath.h の実装が素晴らしいという話なんですが、資料は口頭で説明する前提すぎて、イマイチ詳しくないので別に書いておこうかなぁと思います。これは C で型計算やってると言えると思うのでなかなかなもんなのです。そもそも tgmat…

コードを愛でる話

今まで見たり書いたりしたトリッキーなコードというか hacky なコードを適当に紹介するプレゼンを作ったので置いておきます。http://shinh.skr.jp/dat_dir/mederu/000.html書いてみて思ったのは、なんか結構今までにメモってないトピックがあったなーという…

symmetric hello

見た目が対称ってのはどうかなぁと思って作ってみました。端末で見やすくしたくて、横幅を 80 文字以内におさえようとしてたら、何故か横幅ゴルフみたいな感じになってきて無駄に細くなりました。 ______={}//\\{}=______ _=+[]//\\[]+=_ ______.___=""+[][+…

回文

http://d.hatena.ne.jp/TAKESAKO/20100519/1274240074回文ってのは一行コメントある言語だとゴルフでもしない限り自明すぎてどうでもいいわけですけど、一行コメントが無い言語とかだとそれなりに面白くて、 OCaml なんかだと ksk さんが \ をうまく使ってお…

LLVM hackathon

http://atnd.org/events/4295書いたのだけどはるの忘れてた。行ってきた。 tanakh さん主催ごくろうさまでした。現状ではイマイチ使い道が…みたいな雰囲気は以前見た時からあまり変わってないかなぁと感じた。でもなんか前見た時よりは bit code の instruct…

GC本読書会

記憶をダンプ。どれも別に本当に正しい議論であるかは不明。もっと重要な論点とかあったら教えていただければとてもうれしいです。 「GCってスループットvsレイテンシってよく言うわけですけど」 「実際 GC する言語でスループット欲しいとか思ってるユーザ…

fugatrace

なんか TCC だの WebKit だのを触っていると、ツリー構造を何度もなめてて同じコードを何度も通る感じになって、デバッガの breakpoint がイマイチ機能しない時があります。そういう時は printf を仕込んだり条件付き break を使ったりとかするわけですが、…

TLE

なんか問題作るの手伝うとか言いつつほとんど何もしなかったものの私の出題の問題もあるしなーという微妙な状況だったのですが、良ければテストしてちょ、と始まってから言われたので、適当に参加した。ちょうど入賞圏外の4位というのはうまいところにおさま…

2009年度言語雑談会

なんか例年あるよくわからない雑談会を id:kmizushima さんが主催してくれました。最初は6人とかだったけど今年は15人とかいたらしい。私は最近うなされがちなメモリがどうこうという話をしてみました。言語機能の紹介とかじゃなくて俺の欲しい機能を喋るだ…

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h