2010-02-01から1ヶ月間の記事一覧

log(3) と 1ulp

log(3.0) は 1.0986122886681096913952452369225 くらいの値になるはずです (Windows 付録の電卓調べ)。これがC言語の log(3) で log(3) した場合、double に丸められるので、実際の値は 1.0986122886681098 になります。言い換えると、だいたい 0x1.193ea7a…

観察日記 2010-02-26

ちょっと忙しいので概略だけ。 Rubyの例外と博物学 「Ruby の例外クラスは分類が粗すぎる or 細かすぎる - まめめも」という話。 RubySpec mameさんが作業していた、Ruby 1.9.2 RubySpecサポート計画がとりあえず Debian について達成された。[ruby-dev:4048…

「プログラマのための文字コード技術入門」書評

珍しく書評です。まだ書きかけなんですが、完成を待つと忘れそうなのでとりあえず。断片的に見た感じとして、現在ある文字コード本では最高峰なんじゃないでしょうか。人に勧める文字コード本としては*1、長らく文字コード超研究がベストだったと思うのです…

観察日記 2010-02-22

Math モジュール仕様の方針 It is good to decide the policy of Math. Please choice: 1) Math is still just a wrapper of libm 2) Math is (aims to be) platform-independent math module (though it is very similar to libm's API) I choose #2. I als…

観察日記 2010-02-18

EDOM と ERANGE EDOM とか ERANGE とかに思想の違いがあることは一応わかったんだけど 現実問題としてそれらを区別する意味ってあるんかいな 思想じゃなくて歴史的事情なんでは >nurseerror->ERANGEなので必ずしもそうではなかったりも pole error はそうで…

観察日記 2010-02-17

Float の仕様 Ruby の Float は C の double 型のラッパーなのだが、C の double 型の定義は隅の方は曖昧になっていると言う話。 C の double 型ってどの程度の事が保証されてたっけー。 1未満0より大きい値が表現できる 残念ながら Float って spec に耐え…

観察日記 2010-02-16

Here comes a new committer! mrkn さんがコミッタになりました。「bigdecimalの修正もお願いしますね。」 mvm comes to github http://github.com/nobu/ruby {hermit_} nobu's ruby at mvm - GitHub [text/html; charset=utf-8] ビルドする拡張ライブラリを…

DragonFly BSD

DragonFly BSD にも先日の「NetBSD 5.0 における pthread と fork」と同種の問題があるように見えたので、master版を入れてみる。そのついでに、初期設定メモを書き残しておこうと思う。 インストール ISO のダウンロードは CD Images からできる。インスト…

観察日記 2010-02-12

BigDecimal 精度の話題が続く。JavaのBigDecimalスケールが有効数字と違うという話など。その後精度を気にしない場合の話や10進の話になって発散。結局、ユースケースがわからないとなんともいえないよねといういつものところに落ち着く。 Early return opti…

観察日記 2010-02-09

NetBSDにかまけていてサボっていましたが、まぁぼちぼち。 make clean (mame) make clean してもえらいいろいろ残るな (mame) parse.c とか prelude.c とか (eban) parse.cはtarballでいしょに配布してるので消すわけにはいかない (mame) tarball のパッケー…

NetBSD 5.0 における pthread と fork

概要 NetBSD 5.0 において、複数の pthread が生きている状態で fork するとおかしくなる。 再現 再現プログラムではfork前に一度3つのpthreadを作り、その後1つ殺して lwpid 1 と 3 が残っている。この状態で3からforkすると子では3が残り、これにlwpid 1が…

スレッドのスタック領域情報の取得

Unix 系でもそれぞれ異なるので調べた。スタックオーバーフローのハンドリング (Stack Overflow Handling) Linux manpage pthread_getattr_np(3) header #define _GNU_SOURCE pthread.h API int pthread_getattr_np(pthread_t thread, pthread_attr_t *attr)…

観察日記 2010-02-03

RubySpecの人に怒られた あまりに頭の悪いミスなのでぐうの音も出ない。 library/socket/tcpserver/gets_spec.rb で止まる Thread.new { sleep } TCPServer.new(0).gets mameさんが追跡中 FreeBSDでGC中にSEGV e = [1,2,3].each 10000.times { e = [e].each …

観察日記 2010-02-01

RubySpecのバグの潰し方 (mame) http://regional.rubykaigi.org/tokyo03 豪華講師陣だな (hermit_) 東京Ruby会議03 - Regional RubyKaigi [text/html; charset=utf-8] (ko1_ndk) mameさん講師やればいいのに (mame) 話すことないし (ko1_ndk) RubySpecのバグ…