00:23:40

名前ちゃんとするか

00:30:08

これ労働時間バグるやつだ

00:30:17

精神もバグる

01:07:10

design documentの修正したらやる気が尽きた

01:18:39

いやこれ寝ないと死ぬな

03:35:41

ねれん

09:41:43

36.5℃

09:50:56

void* がdoubleと同じくらい大きい環境だとtrue.object_idは20になるっぽい。見た感じFixnumと同じノリで小さめの値はVALUEに直接突っ込んでそう github.com/ruby/ruby/blob/9e41

ruby/include/ruby/internal/special_consts.h at 9e41a75255d15765648279629fd3134cae076398 · ruby/ruby
10:17:35

doubleを62bitに削るのどうやるんだろうと思ったら、上位3ビットが011か100のときだけ決め打ちで復元する前提で先頭2ビットを落としてるのか。なんでこのパターンなんだろう github.com/ruby/ruby/blob/1035

ruby/internal/numeric.h at 1035a3b202ee86bf2b0a1d00eefcfff0d7ab9f6b · ruby/ruby
10:23:45

011...は正の無限大(exponent=0x3ff)かなあ。100...はよく分からん

10:25:31

0x7ffだった

10:26:52

でもそんな変な値をVALUEに埋め込んでも嬉しくなくないか?なんか勘違いしてる気がする

10:32:49

いや違うわ、3ビットローテートしてるから符号ビットだけ保存してexponentの先頭2ビットを消し飛ばしてるのか。復元するときは符号ビットに応じて00か11を埋めるから、結局Fixnumと同じで小さめの値を埋め込んでる

10:33:16

当たり前体操

10:37:58

で、Float埋め込みの関係上、今までは即値フラグの1ビットだけをVALUEの下位ビットに持たせとけば良かったのが整数かFloatかの区別のためもう1ビット必要になったから、0x02にいたQtrueが空いてるところに動かされて0x14になったという話ですね

13:19:28

確かに謎の仕切りあるわ

13:27:13

いのちの輝き

13:38:35

1年分くらいの天一を摂取した

14:02:44

なんか完全に今日を生きるプランが破綻した

23:41:38

ポカリスエットおいしいわかる

23:42:10

酒を飲んだのでポカリスエットがうまい

23:49:47

あずさ

23:50:24

せいべついに割れてしまったん

23:54:27

あっ電車間違えた……

23:55:06

いやリカバリーできるっぽいな

23:55:50

田端に行こうとして田町に向かっていた

23:57:53

田無に行ったら完全に詰みですね……

23:59:08

いやどうなんだろう、埼玉に近付くという意味では悪くないのか?