文字とグリフの違いが気になって、
ISO/IEC TR 15285:1998 Information technology -- An operational model for characters and glyphs <URL:http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html>
というのを読んでみた
まぁ、テキストファイルにはいってるのが文字で、フォントに入ってるのがグリフなわけね
ところで、このページにはこれだけじゃなくていろいろある
いくつか気がついたこと
/proc/nnn/statm を読むとき、該当プロセスが死んでいると何が起きるか。
プロセスがなければ当然 No such file or directory であるが、タイミングによっては No such process になることもあるようだ。
% ruby -e 'p $$; sleep 10' 13585
としておいて、(10 秒以内に) 他の端末から
% cd /proc/13585 % while : do cat statm done
とする。そうすると、
... 1834 679 415 355 0 456 0 1834 679 415 355 0 456 0 1834 679 415 355 0 456 0 cat: statm: No such process cat: statm: No such file or directory cat: statm: No such file or directory cat: statm: No such file or directory ...
というように、No such file or directory に変化する前に No such process が起こる。
zombie かな、と思って、zombie 期間を長くとれるよう
% ruby -e 'pid = spawn("sleep 10; echo exit") p pid sleep 11 Process.wait pid '
とし、cat じゃなくて、open と read を直接呼んでどっちがエラーか調べられるプログラムを作ってやってみると、
... 1384 365 251 161 0 174 0 1384 365 251 161 0 174 0 1384 365 251 161 0 174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 read: No such process open: No such file or directory open: No such file or directory open: No such file or directory
zombie でもないようだ。zombie 期間は 0 の並びが返ってきて、wait されるタイミングの read が No such process になっている。
open したときはまだプロセスが (zombie ではあっても) 存在して、read したときにはもうない、というのが原因か。
思い立って、x86 のアセンブラっぽいものを書いてみる。
書きはじめてすぐにわかったのは、DSL の必要性である。命令がたくさんあって、それぞれにアドレッシングモードがあったりなかったり、というのを個々に書いていくと、重複が多くなりすぎてやってられない。
重複を削っていくと、結局、インストラクションセットリファレンスの記述 (00/r とか書いてある行) をだいたいそのまま書けば、アセンブラが生成される、というのもに落ち着いた。(16/32bit はさらに削れるので削ったが)
つまり、リファレンスの記述は DSL なわけだ。というのは考えてみれば当り前といえば当り前か。
できたものはこんなかんじ。
% ruby -Ilib -rdyasm -e ' p DyAsm.run(<<"End") eax = 100 eax += 2 ret End ' 102
あんまりアセンブラっぽくない。
IPA から「情報セキュリティ技術動向調査(2008 年上期)」が公開された。
<URL:http://www.ipa.go.jp/security/fy20/reports/tech1-tg/index1.html>
委員だったりするのだが、言語関係の話として Cコンパイラの最適化の話と、Debian の openssl の話を書いた。
[latest]