C++ vs Rust at TECH
[2ch|▼Menu]
13:デフォルトの名無しさん
21/04/26 17:27:49.70 oHxAx7LN.net
言うほどwelcomeか?

14:デフォルトの名無しさん
21/04/26 17:29:26.57 92SW7900.net
>>13
貶すまではいってないじゃん

15:デフォルトの名無しさん
21/04/26 18:48:21.42 pZ6mft9e.net
あわしろ氏もRustは凄いって言ってましたね。
C++をあまり好きじゃないところも同じ。

16:デフォルトの名無しさん
21/04/26 20:08:40.47 cN+lbm0F.net
>>12
c++にもだいぶ甘くはなってるよ。
ただそれでもrustに対してもそこまで容認的ではない。
試しにドライバー書いてみれば?って言って試させてるが、まだまともには考えてないわ。
URLリンク(lkml.org)

17:デフォルトの名無しさん
21/04/26 20:27:04.95 92SW7900.net
>>16
むしをrust側に対して例外処理の方法をカーネル内での往来の方法に変更してくれって促しているように見えるんだけど
導入したがってるやんけ

18:デフォルトの名無しさん
21/04/26 20:51:20.12 cN+lbm0F.net
>>17
続きを読めば?どういう流れかわかるから。

19:デフォルトの名無しさん
21/04/26 21:27:22.23 92SW7900.net
>>18
続きで懐疑的な立場取ってんのlinusじゃなくね?

20:デフォルトの名無しさん
21/04/26 22:53:32.32 cN+lbm0F.net
>>19
話の流れは大体予想できてただろうなという受け答えだろ。
んでもって実際、発案者自らmoonshot言うとるわ。
少しは内容を読んでくれ、なんで一から十まで説明しなきゃならんのか。

21:デフォルトの名無しさん
21/04/26 23:32:00.78 92SW7900.net
>>20
じゃあレスすんなよカス

22:デフォルトの名無しさん
21/04/26 23:47:01.17 cN+lbm0F.net
だから読めって。。文盲なんか?

23:デフォルトの名無しさん
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]);


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

1122日前に更新/10 KB
担当:undef