[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:640

From: Shiro Kawai <shiro lava.net>
Date: Sun, 02 Oct 2005 00:05:48 -1000 (HST)
Subject: [yarv-dev:640] Re: thread support

From: SASADA Koichi <ko1 atdot.net>
Subject: [yarv-dev:638] Re: thread support
Date: Sun, 02 Oct 2005 18:15:05 +0900

>  パスカル文字列だっけ、文字列の先頭が長さ、というデータ構造。あんな感じ
> に作り変えたらこの辺の問題は解決するのかな、と少し思いました。ptr が文字
> 列の実体で *((int *)ptr-1) が長さ、とか。配列も同様。

それだと部分文字列の共有ができないんですな。
まあヘッダと実体がくっついているのと別々なのと2種類あってもいいんですが。

>  前、田中哲さんに指摘されたのですが、Ruby の処理系は SEGV などは *絶対
> に起こらないべきである* (たとえば、call/cc 関連で大量のバグが出たとき、
> これに対応するために大量のコード修正が行われた)と言われたことがあるの
> で、そういう、バグを一切許さないのが Ruby 流なのかなぁ、と思わないでもな
> いです。

言語のコアの部分はもちろんロバストであるべきなんですが、
Cライブラリにはそういう意味での安全性を保証するのが非常に高くつく、
もしくは不可能なAPIを持つものがあります。どこかで妥協するなら、
その妥協ラインをどこに引くかってとこですね。

本当に妥協しないなら、例えばconservative GCはダメだ、ってことにも
なりかねません (メモリが余ってるのにGCできない、という可能性をゼロに
することができないから。以前、Tom Lordがこの論理でprecise GCしかない、
と主張してました)。

--shiro

--
ML: yarv-dev quickml.atdot.net
使い方: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

       628 2005-09-30 20:11 [ko1 atdot.net       ] thread support                          
       631 2005-09-30 22:10 ┣[ko1 atdot.net       ]                                       
       633 2005-09-30 23:35 ┃┣[matz ruby-lang.org  ]                                     
       635 2005-10-01 23:41 ┃┃┗[ko1 atdot.net       ]                                   
       636 2005-10-02 10:58 ┃┃ ┗[shiro lava.net      ]                                 
       638 2005-10-02 18:15 ┃┃  ┗[ko1 atdot.net       ]                               
->     640 2005-10-02 19:05 ┃┃   ┗[shiro lava.net      ]                             
       641 2005-10-02 21:23 ┃┗[shudo computer.org  ]                                     
       643 2005-10-03 09:33 ┃ ┗[ko1 atdot.net       ]                                   
       632 2005-09-30 23:28 ┗[matz ruby-lang.org  ]                                       
       634 2005-10-01 23:30  ┗[ko1 atdot.net       ]