公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
公式ドキュメント
https://www.rust-lang.org/learn
Web上の実行環境
https://play.rust-lang.org
※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/
※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust
※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/
※次スレは原則>>980が立てること
前スレ
Rust part25
https://mevius.5ch.net/test/read.cgi/tech/1722354386/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
Rust part26
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2024/09/20(金) 22:18:38.38ID:c48cFuZJ783デフォルトの名無しさん
2024/11/11(月) 23:31:21.84ID:VT05MWRT >>774
Static items do not call drop at the end of the program.
https://doc.rust-lang.org/reference/items/static-items.html
Drop types placed in statics WILL leak.
https://github.com/rust-lang/rfcs/pull/1440
Static items do not call drop at the end of the program.
https://doc.rust-lang.org/reference/items/static-items.html
Drop types placed in statics WILL leak.
https://github.com/rust-lang/rfcs/pull/1440
784デフォルトの名無しさん
2024/11/11(月) 23:46:08.88ID:8PeapwRR785デフォルトの名無しさん
2024/11/11(月) 23:52:53.38ID:PqwBaVS/ staticはモジュールアンロードする可能性があるなら始末する時に手動dropできるように対処するしかないな
アンロードしないなら問題なし
アンロードしないなら問題なし
786デフォルトの名無しさん
2024/11/12(火) 00:02:28.18ID:h5v4AbHm >>782
えーとOptionがnoneのとき値を入れたいという場合はもっと簡単に書けて
fn do_something()->&mut [u8] {
self.get_or_insert(vec![1,2,3])
}
という感じ。
えーとOptionがnoneのとき値を入れたいという場合はもっと簡単に書けて
fn do_something()->&mut [u8] {
self.get_or_insert(vec![1,2,3])
}
という感じ。
787デフォルトの名無しさん
2024/11/12(火) 00:12:38.06ID:syNPHnUf >>781
&mut self.dataにも所有者がある
この匿名の所有者の寿命を'a
型を&'b mut T
とする
'bは'aより長いから'aがいくら短くても、借用された状態が続く
匿名をやめて名前をつければその名前でアクセスできる
&mut self.dataにも所有者がある
この匿名の所有者の寿命を'a
型を&'b mut T
とする
'bは'aより長いから'aがいくら短くても、借用された状態が続く
匿名をやめて名前をつければその名前でアクセスできる
788デフォルトの名無しさん
2024/11/12(火) 00:13:32.91ID:crz7XiUG なるほど、リークしちゃうんだ。
789デフォルトの名無しさん
2024/11/12(火) 00:50:59.75ID:d/AkYtUw get_mut OR (insert AND get_mut)を
1ステップにまとめるのは気持ち悪いな
1ステップにまとめていいなら
最初からデフォルト値を入れといてもいいのでは?
1ステップにまとめるのは気持ち悪いな
1ステップにまとめていいなら
最初からデフォルト値を入れといてもいいのでは?
790デフォルトの名無しさん
2024/11/12(火) 02:10:28.31ID:9at7I+bi791デフォルトの名無しさん
2024/11/12(火) 03:23:50.67ID:SFBl6mVs >>781
この辺のルールかなって思ったけど正直分からん
https://doc.rust-lang.org/reference/destructors.html
return x;をpanic!()に変えるとコンパイル通ってしまうのはどこかに明確な説明があるかね……
この辺のルールかなって思ったけど正直分からん
https://doc.rust-lang.org/reference/destructors.html
return x;をpanic!()に変えるとコンパイル通ってしまうのはどこかに明確な説明があるかね……
792デフォルトの名無しさん
2024/11/12(火) 03:24:11.27ID:SFBl6mVs >>781
drop scopeの決定時に制御フローは考慮されないってことなのかなって思ったけど正直分からなくなってきた
https://doc.rust-lang.org/reference/destructors.html
return x;をpanic!()に変えるとコンパイル通ってしまうのはどこかに明確な説明があるかね……
drop scopeの決定時に制御フローは考慮されないってことなのかなって思ったけど正直分からなくなってきた
https://doc.rust-lang.org/reference/destructors.html
return x;をpanic!()に変えるとコンパイル通ってしまうのはどこかに明確な説明があるかね……
793デフォルトの名無しさん
2024/11/12(火) 07:26:38.88ID:7hmoxDUg >>789
複おじの発想が気持ち悪い
複おじの発想が気持ち悪い
794デフォルトの名無しさん
2024/11/12(火) 10:15:49.34ID:m541/0mz >>781
省略せずに書くと
fn do_something<‘a>(&’a mut self) -> &’a mut [u8]
return xするとxのライフタイムは’a
xは&mut self.dataの一部なので&mut self.dataのライフタイムも’a
‘aのライフタイムに渡って&mut self.dataを借りておく必要があると解釈されるので
self.data = Some(vec![0u8; 10]);はエラーになる
マッチしない場合は借りないようにしてくれよと思うのはわかるが
これは今のバージョンのボローチェッカーの制約
nightlyで使える新しいボローチェッカーならエラーにならない
詳しいのは↓ここ
https://rust-lang.github.io/rfcs/2094-nll.html#problem-case-3-conditional-control-flow-across-functions
省略せずに書くと
fn do_something<‘a>(&’a mut self) -> &’a mut [u8]
return xするとxのライフタイムは’a
xは&mut self.dataの一部なので&mut self.dataのライフタイムも’a
‘aのライフタイムに渡って&mut self.dataを借りておく必要があると解釈されるので
self.data = Some(vec![0u8; 10]);はエラーになる
マッチしない場合は借りないようにしてくれよと思うのはわかるが
これは今のバージョンのボローチェッカーの制約
nightlyで使える新しいボローチェッカーならエラーにならない
詳しいのは↓ここ
https://rust-lang.github.io/rfcs/2094-nll.html#problem-case-3-conditional-control-flow-across-functions
795デフォルトの名無しさん
2024/11/12(火) 10:22:11.79ID:m541/0mz if self.data.is_some() {
return self.data.as_mut().unwrap();
}
や
if let Some(ref mut x) = self.data {
return x;
}
でも
エラーにならない
return self.data.as_mut().unwrap();
}
や
if let Some(ref mut x) = self.data {
return x;
}
でも
エラーにならない
796デフォルトの名無しさん
2024/11/12(火) 10:23:41.85ID:m541/0mz >>793
複おじではないよ
複おじではないよ
797デフォルトの名無しさん
2024/11/12(火) 11:06:54.00ID:POGIqTjB798デフォルトの名無しさん
2024/11/12(火) 11:26:31.07ID:syNPHnUf 仇討ちして英雄になりたいのか
とんでもねえ話だなこれ
とんでもねえ話だなこれ
799デフォルトの名無しさん
2024/11/12(火) 13:38:59.51ID:DUnFCq7X >>797
-Z poloniusで通る
-Z poloniusで通る
800デフォルトの名無しさん
2024/11/12(火) 14:07:23.60ID:SFBl6mVs801デフォルトの名無しさん
2024/11/12(火) 18:29:56.22ID:03t9MEqY >>781
左右の型が一致しない(右だけ参照)この部分を
if let Some(x) = &mut self.data {
昔からの正規にrefを使って左右の型を一致させて
if let Some(ref mut x) = self.data {
こう書けばコンパイル通る点は興味深いな
左右の型が一致しない(右だけ参照)この部分を
if let Some(x) = &mut self.data {
昔からの正規にrefを使って左右の型を一致させて
if let Some(ref mut x) = self.data {
こう書けばコンパイル通る点は興味深いな
802デフォルトの名無しさん
2024/11/12(火) 22:58:43.29ID:lrdX5dtV どうしてこのプログラムがコンパイル通るのかがわからん
明らかにyの寿命はxより短いはずなのに、xより長生きすることが仮定された引数にyを渡したらエラーになるはずでは?
x,yの型をどういうのに変えたらこれをエラーにすることができる?
fn test<'a, 'b:'a> (_x:&'a (), _y:&'b ()) {
}
fn main() {
let x = ();
{
let y = ();
test(&x,&y);
}
}
明らかにyの寿命はxより短いはずなのに、xより長生きすることが仮定された引数にyを渡したらエラーになるはずでは?
x,yの型をどういうのに変えたらこれをエラーにすることができる?
fn test<'a, 'b:'a> (_x:&'a (), _y:&'b ()) {
}
fn main() {
let x = ();
{
let y = ();
test(&x,&y);
}
}
803デフォルトの名無しさん
2024/11/13(水) 00:44:01.02ID:on0r5hse 貸し借りの実態を操作したつもりが、「借りられるのに誰も借りてない」状態が続いただけで
実態が変わらなければエラーも起きない
実態が変わらなければエラーも起きない
804デフォルトの名無しさん
2024/11/13(水) 01:07:05.96ID:04hNMT1D Rust信者って、説教くさいよね。
805デフォルトの名無しさん
2024/11/13(水) 01:22:28.48ID:DQQnUk/3 急にどしたの?
806デフォルトの名無しさん
2024/11/13(水) 02:11:38.53ID:lxEAsUm8 >>802
test画最適化されて消えてるんだろう
test画最適化されて消えてるんだろう
807デフォルトの名無しさん
2024/11/13(水) 08:18:30.90ID:DDTh9MDd >>803
変更を加えるとしたらどうしたらいいですか?
変更を加えるとしたらどうしたらいいですか?
808デフォルトの名無しさん
2024/11/13(水) 08:30:57.78ID:xIctxtN4 国内では生成AIに話題を奪われてハイプがめっきり落ち着いた感があるな
世界的には中華圏を中心にまだまだ上昇の余地がありそうだが、国内では残念ながら一部のアーリーアダプタが騒いだだけの言語で終わりそうだ
世界的には中華圏を中心にまだまだ上昇の余地がありそうだが、国内では残念ながら一部のアーリーアダプタが騒いだだけの言語で終わりそうだ
809デフォルトの名無しさん
2024/11/13(水) 08:46:31.60ID:18dRnPdZ 米ホワイトハウス「ソフトウェアはメモリ安全でなければならない」との声明を発表:「C」「C++」よりも「Rust」などの言語を推奨
https://atmarkit.itmedia.co.jp/ait/articles/2403/18/news045.html
米国国防総省のDARPA、CからRustへのコード変換を自動化する「TRACTOR」プログラムを開始
https://atmarkit.itmedia.co.jp/ait/spv/2408/14/news045.html
https://atmarkit.itmedia.co.jp/ait/articles/2403/18/news045.html
米国国防総省のDARPA、CからRustへのコード変換を自動化する「TRACTOR」プログラムを開始
https://atmarkit.itmedia.co.jp/ait/spv/2408/14/news045.html
810デフォルトの名無しさん
2024/11/13(水) 09:16:26.38ID:T0htHWVn お
refの出番あるじゃん
コンパイラのsuggestちゃんとしてくれよ
refの出番あるじゃん
コンパイラのsuggestちゃんとしてくれよ
811デフォルトの名無しさん
2024/11/13(水) 09:17:25.81ID:T0htHWVn >>807
変更を加えるには変更を加えれば良い
変更を加えるには変更を加えれば良い
812デフォルトの名無しさん
2024/11/13(水) 09:19:24.12ID:T0htHWVn813デフォルトの名無しさん
2024/11/13(水) 09:22:11.31ID:on0r5hse814デフォルトの名無しさん
2024/11/13(水) 09:43:08.15ID:QAOz5ViO >>802
x,yのスコープと&x,&yのライフタイムを混同してるように見える
fn test<'a, 'b: 'a>(x: &'a (), y: &'b ()) -> (&'b (), &'b ()){
(x, y)
}
とすれば’a: ‘bがなければ関数単体でエラー
fn test<'a, 'b: 'a>(x: &'a (), y: &'b ()) -> (&'a (), &'a ()){
(x, y)
}
fn main() {
let x = ();
let result: (&(), &());
{
let y = ();
result = test(&x, &y);
}
println!("{:?}", result);
}
↑のように&yのborrowをyのスコープを越えて利用すればエラー
でもこの場合の関数定義は’bを使わず全部’aにしても何も変わらない
x,yのスコープと&x,&yのライフタイムを混同してるように見える
fn test<'a, 'b: 'a>(x: &'a (), y: &'b ()) -> (&'b (), &'b ()){
(x, y)
}
とすれば’a: ‘bがなければ関数単体でエラー
fn test<'a, 'b: 'a>(x: &'a (), y: &'b ()) -> (&'a (), &'a ()){
(x, y)
}
fn main() {
let x = ();
let result: (&(), &());
{
let y = ();
result = test(&x, &y);
}
println!("{:?}", result);
}
↑のように&yのborrowをyのスコープを越えて利用すればエラー
でもこの場合の関数定義は’bを使わず全部’aにしても何も変わらない
815デフォルトの名無しさん
2024/11/13(水) 17:49:14.41ID:6VxXcvJp >>727
最近上がった孫さんの動画だと最新のchatgptはいいみたいだよ
最近上がった孫さんの動画だと最新のchatgptはいいみたいだよ
816デフォルトの名無しさん
2024/11/13(水) 19:43:07.11ID:hOqFwLmf コードの生成なら Claude ai にしておけって。
817デフォルトの名無しさん
2024/11/14(木) 00:17:38.18ID:KXRqkFBN >>815
こないだ試してみたら、さほど良くなってないみたいだったが。
こないだ試してみたら、さほど良くなってないみたいだったが。
818デフォルトの名無しさん
2024/11/14(木) 04:49:13.06ID:yxSXUQjo Claude ai 無料でも有能で笑った
819デフォルトの名無しさん
2024/11/14(木) 09:48:02.77ID:ftI5Ceve >>817
それはバージョン o1 だった?
それはバージョン o1 だった?
820デフォルトの名無しさん
2024/11/14(木) 17:17:13.60ID:9ejC22ly >>819
ChatGPTではなく、OpenAI o1 のことかいな?
ChatGPTではなく、OpenAI o1 のことかいな?
821デフォルトの名無しさん
2024/11/14(木) 20:42:25.26ID:ftI5Ceve すまん、違うものだったか
孫さんの動画でGPTの次のバージョンのような扱いしてたので同じかと思ってた
孫さんの動画でGPTの次のバージョンのような扱いしてたので同じかと思ってた
822デフォルトの名無しさん
2024/11/16(土) 05:20:14.39ID:Heg70qiV アメリカ政府が「安全な言語を強制する」姿勢は、
「規制」だね。それによりC/C++だけが排除される。
ずる賢い連中だ。日本の半導体もそれで駄目になった。
「規制」だね。それによりC/C++だけが排除される。
ずる賢い連中だ。日本の半導体もそれで駄目になった。
823デフォルトの名無しさん
2024/11/16(土) 06:03:12.01ID:KjVWfR2g824デフォルトの名無しさん
2024/11/16(土) 06:40:57.58ID:Oydl0g71 時間ライブラリ、chrono使いにくいなーと思ってtimeに乗り換えたけど
メンテ状態がいまいちだし、変な仕様がいくつもあるなーと悩んでた
今日 jiff を見つけて試してみたら、とても使いやすい
設計のベースがjsのTemporalということもあり、変な独自仕様が少なそう
作者が有名人だし、今後も期待できる
ただちょっとバイナリサイズが大きめかな
メンテ状態がいまいちだし、変な仕様がいくつもあるなーと悩んでた
今日 jiff を見つけて試してみたら、とても使いやすい
設計のベースがjsのTemporalということもあり、変な独自仕様が少なそう
作者が有名人だし、今後も期待できる
ただちょっとバイナリサイズが大きめかな
825デフォルトの名無しさん
2024/11/16(土) 09:37:53.01ID:buoPSpZk826デフォルトの名無しさん
2024/11/16(土) 14:25:13.85ID:YZsYA2TA プロが一番使っている言語であるところのC/C++だけが、
アメリカ当局の鶴の一声で潰されようとしている。
アメリカ当局の鶴の一声で潰されようとしている。
827デフォルトの名無しさん
2024/11/16(土) 14:55:20.01ID:KjVWfR2g 欠陥言語C/C++が一掃されるのは良いこと
無知と怠惰が欠陥言語にしがみつく
無知と怠惰が欠陥言語にしがみつく
828デフォルトの名無しさん
2024/11/16(土) 15:50:00.42ID:YZsYA2TA 市場やソフトウェア業界のプログラマや個々の経営者が決める
べきであり、政府が強制すべきではない。
べきであり、政府が強制すべきではない。
829デフォルトの名無しさん
2024/11/16(土) 16:25:18.89ID:/+LxZ+59 サイコパスは「痛みを伴う失敗」から学習できない!
2024.11.15
nazology.kusuguru.co.jp/archives/165730
「パワハラ上司が生き残る条件」みんな●●だった!
2024.07.12
nazology.net/archives/156599
2024.11.15
nazology.kusuguru.co.jp/archives/165730
「パワハラ上司が生き残る条件」みんな●●だった!
2024.07.12
nazology.net/archives/156599
830デフォルトの名無しさん
2024/11/16(土) 16:50:05.47ID:vdtMtO4q831デフォルトの名無しさん
2024/11/16(土) 16:59:51.39ID:YZsYA2TA832デフォルトの名無しさん
2024/11/16(土) 18:31:49.86ID:Pw6hvHrk 欠陥言語使わないといけない世界は改善したほうが良い
833デフォルトの名無しさん
2024/11/16(土) 18:48:21.70ID:buoPSpZk >>828
別に法律で何時までにどうしろと決めたわけでもないので好きにすればいいけど、技術力が無い会社は置いてかれる、それだけの事よ。
別に法律で何時までにどうしろと決めたわけでもないので好きにすればいいけど、技術力が無い会社は置いてかれる、それだけの事よ。
834デフォルトの名無しさん
2024/11/16(土) 20:55:43.27ID:KjVWfR2g 全盛を極めていたプログラミング言語たちが情勢の変化により落ちていった
今回はC++の番
今回はC++の番
835デフォルトの名無しさん
2024/11/16(土) 21:01:25.26ID:ri7JcYNG 特定の言語使うことを技術力と思うのは勘違いな
たいした価値を生まない
たいした価値を生まない
836デフォルトの名無しさん
2024/11/16(土) 21:26:15.37ID:M8rnPwhr Rustの採用って実のところ、既存の資産を捨ててゼロベースで書く、キャッチアップのためにコストをかける (慣れてる言語よりも時間がかかることを許容する) とかの思い切りの問題だと思う
837デフォルトの名無しさん
2024/11/16(土) 21:37:25.08ID:vdtMtO4q それはそう。
C++ が良い言語ではないことに C++ の設計者は自覚的で、それでもなお「今」目の前にある問題に対処可能であることを理念にしてる。
まだ不十分だけど良い言語だなんてのは実務者にはなんの救いにもならない。
汚くてもなんとかする方法はあるほうがありがたい。
ただ、無限に汚くなり続けることは許容できないのだから、どこかで新しいものが生まれてリセットする必要はあって今がその時なんだろう。
でもまあ現実に使われるものは汚いものだよ。
だって現実が汚いものだから。
Rust もいずれ汚くなって次のなにかに置き換わる。
それが半世紀くらい後だとよいね。
C++ が良い言語ではないことに C++ の設計者は自覚的で、それでもなお「今」目の前にある問題に対処可能であることを理念にしてる。
まだ不十分だけど良い言語だなんてのは実務者にはなんの救いにもならない。
汚くてもなんとかする方法はあるほうがありがたい。
ただ、無限に汚くなり続けることは許容できないのだから、どこかで新しいものが生まれてリセットする必要はあって今がその時なんだろう。
でもまあ現実に使われるものは汚いものだよ。
だって現実が汚いものだから。
Rust もいずれ汚くなって次のなにかに置き換わる。
それが半世紀くらい後だとよいね。
838デフォルトの名無しさん
2024/11/16(土) 22:52:16.06ID:yOVM5XGF C/C++しか使えないダメ人間だと他の言語に手を出したり習得したりするハードルも高くそんなスキルもないんだな
普通に色んな種類の言語をやってきていればすぐに対応できるようになる
普通に色んな種類の言語をやってきていればすぐに対応できるようになる
839デフォルトの名無しさん
2024/11/17(日) 00:10:11.34ID:QnncDtq4 C/C++ を「ちゃんと」使えているならかなり能力は高いはず。
あの無茶苦茶なのを把握してるわけだからな。
でもちゃんと理解せずに使っているやつもそれなりに多いのもそう。
あの無茶苦茶なのを把握してるわけだからな。
でもちゃんと理解せずに使っているやつもそれなりに多いのもそう。
840デフォルトの名無しさん
2024/11/17(日) 01:01:11.07ID:XcYTf0nE アメリカ政府がRustが欠陥言語であることに気づいて無いだけだ。
841デフォルトの名無しさん
2024/11/17(日) 09:50:13.04ID:e6wbF7Sw >>840
欠陥の無い言語教えれ
欠陥の無い言語教えれ
842デフォルトの名無しさん
2024/11/17(日) 10:45:30.77ID:tn0ahmRj RustはCの置き換えには最適だが
C++からRustはノーチャンス
C++からRustはノーチャンス
843デフォルトの名無しさん
2024/11/17(日) 11:09:03.35ID:LOC+6QAG844デフォルトの名無しさん
2024/11/17(日) 12:57:50.30ID:QnncDtq4 >>843
まあその過去資産がクソデカだって話なんだけどな。
まあその過去資産がクソデカだって話なんだけどな。
845デフォルトの名無しさん
2024/11/17(日) 13:22:59.92ID:dobbbVxQ 現実的なことを言うとRustの仕事は多くないからな
世の中的にはC++の方が多いし、それよりもC#やJava、JavascriptやPythonの方が多い
現状Rustを書ける人が少ないから組織としても採用しづらい、みたいなところもある
世の中的にはC++の方が多いし、それよりもC#やJava、JavascriptやPythonの方が多い
現状Rustを書ける人が少ないから組織としても採用しづらい、みたいなところもある
846デフォルトの名無しさん
2024/11/17(日) 14:04:38.06ID:+vBbiqfq Rustは欠陥が多すぎる。
847デフォルトの名無しさん
2024/11/17(日) 14:14:43.13ID:LOC+6QAG >>846
C++と比べても桁違いに欠陥ない
C++と比べても桁違いに欠陥ない
848デフォルトの名無しさん
2024/11/17(日) 14:17:04.13ID:+vBbiqfq849デフォルトの名無しさん
2024/11/17(日) 16:20:28.69ID:QnncDtq4 Rust に (まだ) 足りないものはあるという意味では欠陥はあるが、設計が間違ってて改善の余地がないような欠陥は少ないだろ。
C の場当たり過ぎる設計に比べれば Rust はだいぶん綺麗だわ。
C の場当たり過ぎる設計に比べれば Rust はだいぶん綺麗だわ。
850デフォルトの名無しさん
2024/11/17(日) 17:47:06.07ID:ZjcPAB2G C++は多段に増築して要らないものも多く
新しい仕様は良いけど広まっていなくて
標準ライブラリのインターフェイスを新たな仕様にすることもできなくて
初心者にとってC++はRustの何倍も複雑で学習難易度も高いのよ
Rustはシンプルに高機能でプログラミング効率もいいね
新しい仕様は良いけど広まっていなくて
標準ライブラリのインターフェイスを新たな仕様にすることもできなくて
初心者にとってC++はRustの何倍も複雑で学習難易度も高いのよ
Rustはシンプルに高機能でプログラミング効率もいいね
851デフォルトの名無しさん
2024/11/17(日) 21:11:05.44ID:8SN0eeCN C++はBoostあたりまでは良かったけどそれ以降は機能のゴミ箱
上品な言い方をすればキッチンシンク担当になった
上品な言い方をすればキッチンシンク担当になった
852デフォルトの名無しさん
2024/11/17(日) 21:56:59.22ID:/B1+r+jF >>849
そうでもない。
そうでもない。
853デフォルトの名無しさん
2024/11/17(日) 22:25:57.84ID:rGJZLWmT mordern c+で随分楽になったけど
854デフォルトの名無しさん
2024/11/17(日) 22:26:17.33ID:rGJZLWmT modern
855デフォルトの名無しさん
2024/11/17(日) 22:37:46.32ID:lBJAP2+3 CをRustで置き換えたら劇遅になるから重要な部分は無理じゃね
856デフォルトの名無しさん
2024/11/17(日) 22:55:33.70ID:HbSpYeRV >>855
デバイスドライバを両方で実装して速度がほぼ変わらないことが立証されている
デバイスドライバを両方で実装して速度がほぼ変わらないことが立証されている
857デフォルトの名無しさん
2024/11/17(日) 23:02:46.96ID:/B1+r+jF >>856
それは、一般にデバイスドライバはシンプルなアルゴリズムしか使ってないからだよ。
それは、一般にデバイスドライバはシンプルなアルゴリズムしか使ってないからだよ。
858デフォルトの名無しさん
2024/11/17(日) 23:11:47.34ID:vlQbYPk+ 同じアルゴリズムでRustが遅い例プリーズ
859デフォルトの名無しさん
2024/11/17(日) 23:14:29.54ID:/B1+r+jF860デフォルトの名無しさん
2024/11/17(日) 23:19:43.73ID:ZjcPAB2G >>859
ウソつき
ウソつき
861デフォルトの名無しさん
2024/11/17(日) 23:25:29.83ID:dobbbVxQ 安全側に寄せる部分でRustの方が基本的にコストかかるんじゃないの?
グローバルな可変状態はMutexが無いと書けない (アクセスの度にロックが必要) とか、Cellは実行時に借用チェックするとか、配列は基本的に範囲チェックされるとか
コンパイラは利用側を知り得ない (複数スレッドから呼ばれる可能性があると想定せざるを得ない) からMutexが必要だけど実際は無いと想定して良い、みたいなケースはありそう
グローバルな可変状態はMutexが無いと書けない (アクセスの度にロックが必要) とか、Cellは実行時に借用チェックするとか、配列は基本的に範囲チェックされるとか
コンパイラは利用側を知り得ない (複数スレッドから呼ばれる可能性があると想定せざるを得ない) からMutexが必要だけど実際は無いと想定して良い、みたいなケースはありそう
862デフォルトの名無しさん
2024/11/17(日) 23:28:19.03ID:/B1+r+jF863デフォルトの名無しさん
2024/11/17(日) 23:34:51.20ID:vlQbYPk+ >>859
unsafe使えば同等になるなら、どこかの誰かさん以外はRustが遅いとは思わないのでは?
とりま、unsafe使わない遅いコードさらしてみては?
ここの優秀な方々が「unsafeでもこうすればCと同等の速さだ!」ってコードを返してくれるかもしれん。
unsafe使えば同等になるなら、どこかの誰かさん以外はRustが遅いとは思わないのでは?
とりま、unsafe使わない遅いコードさらしてみては?
ここの優秀な方々が「unsafeでもこうすればCと同等の速さだ!」ってコードを返してくれるかもしれん。
864デフォルトの名無しさん
2024/11/17(日) 23:37:27.94ID:HbSpYeRV865デフォルトの名無しさん
2024/11/17(日) 23:41:13.09ID:8NoNC7dP 他のレスに「あなたは正しくない」とだけ書けば自分が賢いということになるなら、それほど楽なことは無いな
スマホさえ持ってれば小学生でも同じことはできるわけだし
スマホさえ持ってれば小学生でも同じことはできるわけだし
866デフォルトの名無しさん
2024/11/17(日) 23:53:16.59ID:wVREKDBU 100点オジと複オジはいつまでたっても進歩がないな
867デフォルトの名無しさん
2024/11/18(月) 00:24:33.99ID:GfaceI2A 基礎的なデータ構造に unsafe が必要になるのは本当だ。
基礎は std で提供されるのでその上では unsafe の仕様が少なくなるように巧妙に設計されている。
std を使えないときに std と同等なものを作らなければならないような状況だと C とあまり差はない。
逆に言えば unsafe を含む下回りをかっちり作りさえすれば Rust のほうが優秀だよ。
基礎は std で提供されるのでその上では unsafe の仕様が少なくなるように巧妙に設計されている。
std を使えないときに std と同等なものを作らなければならないような状況だと C とあまり差はない。
逆に言えば unsafe を含む下回りをかっちり作りさえすれば Rust のほうが優秀だよ。
868デフォルトの名無しさん
2024/11/18(月) 02:14:46.19ID:Ui+tF1gu あゝこんなときRustにもextern "C"があれば平和が訪れるのに
869デフォルトの名無しさん
2024/11/18(月) 04:44:45.38ID:IRvDm3R2 >>840
「欠陥のない言語は存在しない。だがデバッグの不可能な言語もまた存在しない」
「欠陥のない言語は存在しない。だがデバッグの不可能な言語もまた存在しない」
870デフォルトの名無しさん
2024/11/18(月) 07:01:58.78ID:rC7K9dh5 おれの作った言語はデバッグ機能ないけど?
871デフォルトの名無しさん
2024/11/18(月) 07:06:12.01ID:INV+aJIp 【ナゾロジー】サイコパスは「痛みを伴う失敗」から学習できない! [すらいむ★]
http://itest.5ch.net/egg/test/read.cgi/scienceplus/1731838156
http://itest.5ch.net/egg/test/read.cgi/scienceplus/1731838156
872デフォルトの名無しさん
2024/11/18(月) 08:33:03.50ID:boZQ3aHy >>868
あるやる
あるやる
873デフォルトの名無しさん
2024/11/18(月) 09:04:25.28ID:92FA8ffy874デフォルトの名無しさん
2024/11/18(月) 09:13:51.03ID:92FA8ffy >>865
ここに書かないのは、「企業秘密的」な意味も有るんだよ。
ここに書かないのは、「企業秘密的」な意味も有るんだよ。
875デフォルトの名無しさん
2024/11/18(月) 09:30:27.68ID:IRvDm3R2 >>862
競プロでもやってんの?
競プロでもやってんの?
876デフォルトの名無しさん
2024/11/18(月) 09:41:47.81ID:7J3JrtFR >>873
RustがC/C++に勝利した一番大きな要因は
メモリ操作など基本的にunsafeにたどり着く様々な操作を
中身でunsafeを使っていてもそれを外へ染み出さないsafeなインターフェイスを提供して実用的に使えることを示した点にある
これがRustの標準ライブラリの中核であり
同様にしてunsafeが外へ染み出さないsafeなライブラリを作ることもできる
RustがC/C++に勝利した一番大きな要因は
メモリ操作など基本的にunsafeにたどり着く様々な操作を
中身でunsafeを使っていてもそれを外へ染み出さないsafeなインターフェイスを提供して実用的に使えることを示した点にある
これがRustの標準ライブラリの中核であり
同様にしてunsafeが外へ染み出さないsafeなライブラリを作ることもできる
877デフォルトの名無しさん
2024/11/18(月) 10:43:14.43ID:92FA8ffy >>876
馬鹿発見。
馬鹿発見。
878デフォルトの名無しさん
2024/11/18(月) 12:57:29.84ID:0TuJxtFY879デフォルトの名無しさん
2024/11/18(月) 13:58:30.56ID:DtxKjacA unsafeが染み出すとか言っているの本気?
意図的に出さないと出てこないよ?
// 意図的なunsafe
pub unsafe fn dangerous_operation() {
// 何らかの危険な操作
}
// 利用者側
unsafe {
dangerous_operation(); // ここでunsafeが必要
}
普通はこう書く
// ライブラリ側
pub fn safe_wrapper() {
unsafe {
// 内部で危険な操作を行うが、
// 安全性を保証する条件をすべて満たしている
}
}
// 利用者側
safe_wrapper(); // unsafeは不要
意図的に出さないと出てこないよ?
// 意図的なunsafe
pub unsafe fn dangerous_operation() {
// 何らかの危険な操作
}
// 利用者側
unsafe {
dangerous_operation(); // ここでunsafeが必要
}
普通はこう書く
// ライブラリ側
pub fn safe_wrapper() {
unsafe {
// 内部で危険な操作を行うが、
// 安全性を保証する条件をすべて満たしている
}
}
// 利用者側
safe_wrapper(); // unsafeは不要
880デフォルトの名無しさん
2024/11/18(月) 20:31:59.79ID:7J3JrtFR881デフォルトの名無しさん
2024/11/18(月) 21:05:40.46ID:K2lQU8l5 >>874
説明は求めないけどね?
「自分は知ってるが説明する義理はない」なんて第三者からみれば「俺は分かりません説明できないです」と書くのと変わらないじゃない
分からないならスルーすればいいのに、それをわざわざ書くのはダサくない?
説明は求めないけどね?
「自分は知ってるが説明する義理はない」なんて第三者からみれば「俺は分かりません説明できないです」と書くのと変わらないじゃない
分からないならスルーすればいいのに、それをわざわざ書くのはダサくない?
882デフォルトの名無しさん
2024/11/18(月) 21:41:56.71ID:K2lQU8l5 実際にはunsafe使わないRustはCよりもいくらかオーバーヘッドが生じるとは思う
Cでなポインタのコピーで済むけどsafe RustだとArcが必要だからcloneの際にロックのコストがかかるとか、配列へのインデックスでのアクセスで境界チェックされるとか
Rustでは安全側に寄せる分のコストはかかるはず
Cでなポインタのコピーで済むけどsafe RustだとArcが必要だからcloneの際にロックのコストがかかるとか、配列へのインデックスでのアクセスで境界チェックされるとか
Rustでは安全側に寄せる分のコストはかかるはず
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で ★2 [ぐれ★]
- 高市のプライドはエベレストより高い。だから、発言を撤回できない [805596214]
- 台湾政党が高市首相「存立危機事態」発言に感謝の書簡「我々の心を強く奮い立たせるものでした」 [834922174]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 【正論】有識者「高市早苗に合理的配慮をしなかった野党が悪い」 [175344491]
- 日経平均、49000円割れ 国賊高市を許すな ★2 [402859164]
- 【悲報】中国を煽り運転に例えたネトウヨさん、完全に論破されてしまう [268718286]
