managed で新しいインスタンスつくってるのでそこでOutOfMemoryError出たらリークするじゃん
2013-01-10 23:22:20@lyrical_logical 今日話題にしたのは例外安全関係です. 本当は基底の言語に依存しないのがいいのでしょうが... .NetだろうとJVMだろうと基底がどうだろうと統一されていたほうたいいですね, 言語としては. 言語の普及としては必ずしもそうではないでしょう.
2013-01-10 23:36:19@lyrical_logical まず, scala-armやhttp://t.co/s0sB9lAz, さらにjavaなLuceneはThrowable安全でないです. それは残念に思っています.
2013-01-10 23:39:49@lyrical_logical ただし JVM じゃない基底の言語/環境があってそこの面倒を見てくれるのなら, (制限はあるにせよ)よい方向だとは思っています. .NETやそれ以外の基底の環境で面倒を見てくれたらいいなとは思っています
2013-01-10 23:42:15@haruyama えーと、うーん、やっぱりよくわかってないんですが、ファイナライザがやってくれればいいのにという話ですか?
2013-01-10 23:43:11@lyrical_logical いやいまのJVMでのファイナライザの呼ばれるタイミングは決まってないのでだめですね.
2013-01-10 23:44:54@haruyama もっと precise なリソース管理のための仕組みくれという話でしょうかうーん、なんかちょっと基底がどうのの話と例外安全の話がつながらないです
2013-01-10 23:46:04@lyrical_logical Javaだとpreciseなリソース管理の手間が大きいですね. これはJVMに乗っている以上しょうがなさそうです. 別の環境でそこの面倒を見てくれたら嬉しいなという話しです.
2013-01-10 23:49:03@haruyama JVM は関係ない、というか JVM 上で動く言語で precise なリソース管理を自然に書けるようにはできると思うのですが…とはいえ GC からは逃れられないのでリソースとしてのメモリに関してはまあ無理かなという感じはします。
2013-01-10 23:51:49@lyrical_logical JavaでもC++でも言語の範囲でpreciseなリソース管理は可能です. ただ, 世の中を見ているとどちらも難しいようです(C++ でも Javaでもできてない例は多いです). もっと簡単にできたほうがいいのだろうなとは思います
2013-01-10 23:58:02寝る寝る詐欺1 scala-arm ってそもそも例外安全の話(OutOfMemoryError出たらリークするというのは、そもそもOutOfMemoryErrorに対して対処してないプログラムが大半な状態でいってもあんまし意味無い気がするけど)以前に、普通使われてないような…
2013-01-11 00:00:32@haruyama Java はしんどいですね Java7 でなんか入ってたけどあれもなあ…C++ は細かくできるけど難しいというかだるい(C++11 でましにはなるけど)ですね。Haskell の ResourceT とかはどうなのかなあ…まあ根本的に難しい問題な気がしてます
2013-01-11 00:00:52scala-arm は実験的なライブラリだし。あれはdelimited continuation使ってflatなスタイルでも書けるという実験がミソであって、それ以外は結構どうでもいい。
2013-01-11 00:02:38@lyrical_logical try-with-resouces は Eclipse 4.2.1 がちゃんと対応してなかったので, まだ全面的には採用してません. いろいろな意味でリソース管理は鬼門なのですかね...
2013-01-11 00:02:53リソースは所有者がころころ変わるために、構文的にサポートすることが難しい(ころころ変わらない場合は構文的サポートのあるなしに関係なく簡単)と思ってるんですけど、どうなんでしょうね。となると矢張り計算のコンテキストみたいになるのでモナドとか継続とかになっちゃうのかなあ…ぬぬ…
2013-01-11 00:03:21@haruyama リソースをもっと抽象的に見て、状態を持っていて所有者がころころ変わる(こともある)もの、と捉えると、なんかもう日本語の時点で難しさが出てきまくりですよね…
2013-01-11 00:06:07