emacs22 for pdaXrom も update していただいたようで大変ありがたいが、floor error は元のまま。このエラーはカーソルの点滅程度でも頻発するので厄介だ。例えば display-time を実行すると
Debugger entered--Lisp error:
(range-error "floor" 192460.0 1.4501223522371425e
floor(192460.0 1.4501223522371425e-306)
timer-next-integral-multiple-of-time((17124 14383 192460) 60)
run-at-time(t 60 display-time-event-handler)
display-time-mode(1)
display-time()
call-interactively(display-time)
execute-extended-command(nil)
call-interactively(execute-extended-command)
のようなエラーが出る。emacs21 では出なかったと思う(気のせいかも)。
コメントで
kernel math emulation の問題じゃないかと言われたので見てみることに。pdaXrom の kernel version は
Linux zaurus 2.4.18-rmk7-pxa3-embedix #1 (2005-05-15) なので、一応 ezaurus.com で配られているものじゃないかと思われる。持ってきた v2.4.18-rmk7-pxa3-embedix から arch/arm/def-configs/husky-j を読み込ませて make menuconfig を見てみると
--- At least one math emulation must be selected
<*> NWFPE math emulation
< >Fast FPE math emulation (experimental)
というものが入っている (CONFIG_FPE_NWFPE=y) ので、kernel Math Emulation は入っているようだ。そうするとやはり emacs22 側に問題があるのかな。
ざっと見てみた感じ、floor 自体がまずいわけじゃなく、timer.el のいくつかの function (例えば timer-event-handler や timer-next-integral-multiple-of-time) で floor() に渡す数値が既に INF だったり 0 に限りなく近い値での divide が起きているようで、そのへんの関数を使ういくつかの機能でこうした問題が起こる様子。
試しに比較対象として i686 linux 上で build した emacs22.0.50 だと問題が起きていないから、やはり pdaXrom の固有事情なんだとは思います。元気があればもう少し追ってみるつもり。
本来のpdaXromに特有の話なのか、日本語化する中で出てくるローカルな話なのか、ちょっと切り分けの時間を下さい。徒然さんと一緒に悩んでみます。