21/04/27 00:14:36.96 H90KgUtd.net
>>20
moonshotって言ってるの割り込みコンテキストでallocator呼び出すことをコンパイル時にチェックできるようにしたいという話では
現実的には関数ごとにどのコンテキストで呼び出せるものなのかタグ付けしてるとかなんとか
綺麗じゃないけど、まあ動くわなという解決策
つまみ食いしかしてないから読み違えてるかも知れないけど
これをもってlinuxカーネルにrust取り込むのを否定するような話ではないようにみえた
他にもmoonshotって言ってる箇所ある?
24:デフォルトの名無しさん
21/04/27 01:12:51.08 VJIOoOWO.net
一通り読んだけど他にmoonshotって言ってるとこはなかったような。
25:デフォルトの名無しさん
21/04/27 08:00:23.09 /+bIFNU8.net
>>23
あのね。。書けばそうなるってものじゃなくてそれを実装しなきゃならんのよ。。
コンパイラにそういったコンテクストを判断させるのがめちゃくちゃ難しいっていってるでしょ?
なんでそんなに読み取れないの?
26:デフォルトの名無しさん
21/04/27 15:37:12.22 Nn42Sot0.net
>>25
当面はdoc commentにannotation書いて済ませておくって言ってるやん
何はともあれ大局的にはrustをlinux kernelに取り込む方向へ進んでいくことには間違いない
27:デフォルトの名無しさん
21/04/27 16:10:45.63 /+bIFNU8.net
>>26
だからそのコードじゃpanic捉えきれねーからカーネルに入れるわけねーだろって
言ってんじゃん。。何読んでんだよ。
28:デフォルトの名無しさん
21/04/27 18:23:48.67 n/AWrch2.net
まあ半年後どうなるかで誰が正しかったかは分かるわな
29:デフォルトの名無しさん
21/04/27 20:32:29.92 /+bIFNU8.net
半年も経たなくてももうわかってるっつーの。。だからちゃんと英語の勉強しましょうね。
30:デフォルトの名無しさん
21/04/28 03:52:50.81 v8E9sca8.net
C++で、n要素のint型の生配列を確保するには、
int *pBuf = new int [n];
だけど、Rustの
let a:Box<i32> = Box::new<x>;
値が x である 32BIT 整数を Heap に 1 つ確保する、という意味だよね?
Heapに n 要素の i32 型の配列を確保したい場合、
let a:Vec<i32> = vec![0; n];
かな?
31:デフォルトの名無しさん
21/04/28 03:55:12.80 v8E9sca8.net
>>30
あ、
let a:Box<i32> = Box::new<x>;
ではなく、
let a:Box<i32> = Box::new(x);
let a:Box<i32> = Box<i32>::new(x);
let a = Box::new(x);
let a = Box<i32>::new(x);
かな。
か
32:デフォルトの名無しさん
21/04/28 04:01:18.27 v8E9sca8.net
>>31
確保した領域の中身を書き換えたい場合は「mut」を付ける必要があり、
値が x である 32BIT 整数を Heap に 1 つ確保するのは:
let mut a:Box<i32> = Box::new(x);
let mut a:Box<i32> = Box<i32>::new(x);
let mut a = Box::new(x);
let mut a = Box<i32>::new(x);
のどれかの書き方で、Heapに n 要素の i32 型の配列を確保するのが、
let mut a:Vec<i32> = vec![0; n];
let mut a = vec![0; n];
のどちらかの書き方かな?
33:デフォルトの名無しさん
21/04/28 10:37:51.57 6K8rF/jG.net
let mut a = Box::new([0,n]);