icon

@tadd false->true->false->trueとかもありえるかも。
たぶん、isConnectedとGCは関係ないかなと思ってる。

icon

@tadd 関係してそうだね。

icon

@tadd いや、GCの方>いけじが昔「リーク」と書いたのは、isConnectedの方でGCじゃない、であってるかな。

```
var a = {};
var b = {};
a.b = b;
b.a = a;
a = null;
b = null;
```
は、JavaScriptはaもbもGCできる。
しかし、aかbがDOM elementだったら、GCできなくなる。

DOM側は、イベントハンドラに設定されてるJSのオブジェクトがGCされると困るので、イベントハンドラをGCのルートに指定する(ピンする)。
JavaScriptは、イベントハンドラから参照されてるDOM ElementがGCされると困るので、DOM側のGCのルートに指定する(ピンする)。
と、どっちのGCもルートに指定されてるaやbをGCできなくなる。

(ピンするはC#で使われてた用語だった。GCのルートに指定するが正しい?)

icon

@tadd ピンは、メモリアドレスを変えないという意味も含んでる気がする。

icon

@tadd いや、rb_gc_register_address の方のつもりだった。

icon

@tadd https://i.loveruby.net/ja/rhg/book/gc.html
RHG呼んでた。

rb_gc_markはGCの処理の中で呼んでるやつ。
rb_gc_register_addressは、次のGCの時に配慮してくれって頼むやつ。

第5章 ガ−ベージコレクション
icon

@tadd s/呼ん/読ん/

icon

ふるさと納税の返礼品は上限があるとして、
ふるさと納税しない人に返礼品をあげることにしたら、上限なかったりしない?

icon

@tadd
なつかしい。

rb_global_variable は rb_gc_register_address のaliasらしい。
https://github.com/ruby/ruby/blob/master/gc.c#L9075

M&S中に、各Decimalインスタンスがマークされる時に、dec_markが呼ばれるから、inumをマークしてるんだね。

例えば、VALUE_PINFというCの変数があって、ここに入ってるVALUEが、GCされてしまうと嫌だから、GCで消さないでおいてね、という。
https://github.com/tadd/decimal/blob/master/decimal.c#L2244

https://i.loveruby.net/ja/rhg/book/images/ch_gc_gcimage.jpg
この絵で、一番上の行に、3つ丸があって、真ん中の丸を黒くマークする時に、
右の丸もマークするのが、rb_gc_markで、
丸を縦線の左に移動するのがrb_global_variable(かrb_gc_register_address)じゃないかな。

icon

@tadd こんな感じ?

Attach image
icon

GCの話ししてて、そういやcSRUのGCはどうやって実装したっけ?ってなって、実装したらオブジェクトに自分がルートかどうかのフラグが用意されてた。
しかも、カウンタで。
大味な実装だし、デバッグ用のアサーションが大量にあって苦労が忍ばれる。(覚えてないけど)

icon

絵を書こうとしたら、アップルペンシルがどっか行った。もう一本買うか?

icon

いっそ、筆圧検知できるペンが使えるAndroidタブレット買うか!と思ったけど、検索して出てくるやつが高すぎて退散してきた。

icon

今月は2G使い切らなかったな。最近ネットが遅いから?

icon

角度あたりの解像度の単位はあるのだろうか?
スマホとデスクトップだとdpiが同じでも、見え方がだいぶ違うよな。

icon

@zundan おお、確かに自分の視力以上の解像度はいらないですからね。

icon

neovimに移行したさはあるんだけど、gvimでXのクリップボード使ってると厳しいんじゃないかと思ってる。