公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
Web上の実行環境
https://play.rust-lang.org
日本語の情報
https://rust-jp.rs/
※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 part16
探検
Rust part17
レス数が950を超えています。1000を超えると書き込みができなくなります。
2022/10/06(木) 22:43:13.96ID:Re0G7B20
856デフォルトの名無しさん
2022/12/07(水) 00:35:34.36ID:21cwGaas857デフォルトの名無しさん
2022/12/07(水) 00:41:52.20ID:xT6Hu5AC C/C++ の書き方の何が危ないのか、Rustはどうやって回避しているのかは何を読めば分かるの?
Out of memory なんか防げるんだっけ?
Out of memory なんか防げるんだっけ?
858デフォルトの名無しさん
2022/12/07(水) 00:58:54.43ID:fQ3/NsZR kLOCあたり1つ以上の脆弱性があったものが1500kLOCでゼロ
unsafeが量も気になるな
unsafeが量も気になるな
859デフォルトの名無しさん
2022/12/07(水) 01:00:43.82ID:+scmKVbE Google製のRustライブラリはどんなのがあんの?
860デフォルトの名無しさん
2022/12/07(水) 04:00:04.20ID:0xPH+d9p861デフォルトの名無しさん
2022/12/07(水) 04:05:04.23ID:+scmKVbE ってか、Googleはその分野で使うためにCarbon開発したんじゃなかったのか?
862デフォルトの名無しさん
2022/12/07(水) 04:17:31.35ID:21cwGaas CarbonもRust使えるならRust使えと言ってる
863デフォルトの名無しさん
2022/12/07(水) 09:06:42.16ID:Mw8qZqut google発のOSSって社員の個人プロジェクトをgoogle名義で公開してるだけの場合もあるからな
864はちみつ餃子 ◆8X2XSCHEME
2022/12/07(水) 09:19:24.95ID:vqEtcxl0 どれがいい感じに発展するか事前にわかるもんではないからな。 狙いとは違う方向で結実することもあるし。
色々やっておく (それが出来る環境を用意する) とどれかは上手くいくし、上手くいかずに消えるものも多いってだけのこと。
色々やっておく (それが出来る環境を用意する) とどれかは上手くいくし、上手くいかずに消えるものも多いってだけのこと。
865デフォルトの名無しさん
2022/12/07(水) 10:24:44.39ID:G2nMx9FR そこまで誤訳だと言うならコントリビューションすれば良いのではないの?
866デフォルトの名無しさん
2022/12/07(水) 10:39:11.42ID:KNXoSnHr867デフォルトの名無しさん
2022/12/07(水) 11:16:25.80ID:6Eaq6nhz868デフォルトの名無しさん
2022/12/07(水) 12:26:52.65ID:El0pJGUF >>867
2chで文句言って他の話題を出にくくする方が有意義だと思うやつもいるんだな。
2chで文句言って他の話題を出にくくする方が有意義だと思うやつもいるんだな。
869デフォルトの名無しさん
2022/12/07(水) 12:31:58.03ID:74PfFudB 複おじ以前と以後で明らかに話題の質が落ちてるよね
おのれ複おじ
おのれ複おじ
870デフォルトの名無しさん
2022/12/07(水) 12:39:55.04ID:m46mCwKQ871デフォルトの名無しさん
2022/12/07(水) 12:46:13.68ID:g3+WCnxI872デフォルトの名無しさん
2022/12/07(水) 12:53:44.84ID:Mw8qZqut >>860
元記事に以下とあるから既存のコードをrustで書き換えることまではしないという意味だと思われる
As we noted in the original announcement, our goal is not to convert existing C/C++ to Rust, but rather to shift development of new code to memory safe languages over time.
元記事に以下とあるから既存のコードをrustで書き換えることまではしないという意味だと思われる
As we noted in the original announcement, our goal is not to convert existing C/C++ to Rust, but rather to shift development of new code to memory safe languages over time.
873デフォルトの名無しさん
2022/12/07(水) 12:54:18.57ID:Mw8qZqut874デフォルトの名無しさん
2022/12/07(水) 15:17:49.39ID:Xzjw4n/l875デフォルトの名無しさん
2022/12/07(水) 15:24:21.27ID:3HHCfxiv マジでrust本腰入れよ
ゾワってしたわ
C/C++書いてたけど取り残される
ゾワってしたわ
C/C++書いてたけど取り残される
876デフォルトの名無しさん
2022/12/07(水) 15:28:39.71ID:h/t9+qo5877デフォルトの名無しさん
2022/12/07(水) 15:40:23.08ID:3HHCfxiv せっかくモダンC++とoneTBB覚えて万能感感じてたのにさ
リセットかよ
リセットかよ
878デフォルトの名無しさん
2022/12/07(水) 15:51:23.23ID:Mw8qZqut >>874
新規コードの20%ね
In Android 13, about 21% of all new native code (C/C++/Rust) is in Rust.
There are approximately 1.5 million total lines of Rust code in AOSP
ともあるからAOSPの全体のコード量分かればrustの割合も分かるはず
新規コードの20%ね
In Android 13, about 21% of all new native code (C/C++/Rust) is in Rust.
There are approximately 1.5 million total lines of Rust code in AOSP
ともあるからAOSPの全体のコード量分かればrustの割合も分かるはず
879デフォルトの名無しさん
2022/12/07(水) 15:52:33.64ID:Mw8qZqut880デフォルトの名無しさん
2022/12/07(水) 15:58:02.82ID:JdTFl5al There are approximately 1.5 million total lines of Rust code in AOSP
*Android Open Source Project (AOSP)
1.5mてどう考えても、例によってRustコンパイラやサードcrateのソースツリーも含まれている悪寒
*Android Open Source Project (AOSP)
1.5mてどう考えても、例によってRustコンパイラやサードcrateのソースツリーも含まれている悪寒
881デフォルトの名無しさん
2022/12/07(水) 16:58:18.23ID:Mw8qZqut >>880
AOSPのソースツリーではrustcはpre-built binaryがコミットされてるから行数カウントには含まれてないっぽい
外部crateは含まれてるかも知れないけど、実際にそれだけのコードが使われているという意味では正しいんじゃないの
AOSPのソースツリーではrustcはpre-built binaryがコミットされてるから行数カウントには含まれてないっぽい
外部crateは含まれてるかも知れないけど、実際にそれだけのコードが使われているという意味では正しいんじゃないの
882デフォルトの名無しさん
2022/12/07(水) 17:03:21.31ID:n0jQbyrj883デフォルトの名無しさん
2022/12/07(水) 17:15:07.05ID:g3+WCnxI 実際に使われているC/C++
を捨てることの正当性ももう無いんだからいいじゃないか
を捨てることの正当性ももう無いんだからいいじゃないか
884デフォルトの名無しさん
2022/12/07(水) 17:35:07.63ID:8PgDeggG >>880
>1.5mてどう考えても、
同感。この短期間に150万行ってどの範囲?これが普通の感想
>>881
>AOSPのソースツリーではrustcはpre-built binaryがコミットされてる
何処?
github mirrorの方で教えて https://github.com/aosp-mirror
>>883
新規nativeコードの21%という数字が水増し、かどうかに係るので整理するべきかと
>1.5mてどう考えても、
同感。この短期間に150万行ってどの範囲?これが普通の感想
>>881
>AOSPのソースツリーではrustcはpre-built binaryがコミットされてる
何処?
github mirrorの方で教えて https://github.com/aosp-mirror
>>883
新規nativeコードの21%という数字が水増し、かどうかに係るので整理するべきかと
885デフォルトの名無しさん
2022/12/07(水) 17:40:15.78ID:21cwGaas 割合とか増えていくんだからどうでもいいだろ
それよりAndroidでrustが使えるところはrustを使うという判断がとっくにされてたのが衝撃
それよりAndroidでrustが使えるところはrustを使うという判断がとっくにされてたのが衝撃
886デフォルトの名無しさん
2022/12/07(水) 17:42:58.56ID:NHS9DFe3 珍しく良い記事紹介だったのに
急に下らない議論になっちゃうのな
急に下らない議論になっちゃうのな
887デフォルトの名無しさん
2022/12/07(水) 17:44:20.91ID:Mw8qZqut >>884
GutHubでどこにあるのかは分からないがAndroid Code Searchでは以下が出てきたのでpre-built binary使ってるのかなと判断した
https://cs.android.com/android/platform/superproject/+/master:prebuilts/rust/linux-musl-x86/1.63.0/bin/rustc;l=1?q=rustc&sq=
C++もrustも外部ライブラリはexternal配下にまとめられているようなので、それぞれで集計の仕方を変えるなんて事をしてない限りは、同一条件での比較になるんじゃないかな
あと150万行ってのはAndroid13の話じゃなくて累積のコード量がって話しだよ
GutHubでどこにあるのかは分からないがAndroid Code Searchでは以下が出てきたのでpre-built binary使ってるのかなと判断した
https://cs.android.com/android/platform/superproject/+/master:prebuilts/rust/linux-musl-x86/1.63.0/bin/rustc;l=1?q=rustc&sq=
C++もrustも外部ライブラリはexternal配下にまとめられているようなので、それぞれで集計の仕方を変えるなんて事をしてない限りは、同一条件での比較になるんじゃないかな
あと150万行ってのはAndroid13の話じゃなくて累積のコード量がって話しだよ
888デフォルトの名無しさん
2022/12/07(水) 17:44:50.45ID:8PgDeggG >>884 追記
なんかRust批判みたいな印象になっているけど、881が多少調べたっぽいので詳しく知りたいだけ
なんかRust批判みたいな印象になっているけど、881が多少調べたっぽいので詳しく知りたいだけ
889デフォルトの名無しさん
2022/12/07(水) 17:47:35.12ID:JLiaiVk0 >>886
次世代隔離スレがなくなると暇してるオジサン達が溢れてくるのよ
次世代隔離スレがなくなると暇してるオジサン達が溢れてくるのよ
890デフォルトの名無しさん
2022/12/07(水) 17:55:32.50ID:8PgDeggG >>887 ありがと
ただし、ここ見るだれでもrustコンパイラを構成するソースファイルが山ほどある
https://cs.android.com/android/platform/superproject/+/master:prebuilts/rust/linux-musl-x86/1.63.0/src/
さすがにgccの方はsoになってる
https://cs.android.com/android/platform/superproject/+/master:prebuilts/gcc/linux-x86/
>C++もrustも外部ライブラリはexternal配下にまとめられている
こうした統計ではソースとしておいてあるかどうかで結構差がある
ただし、ここ見るだれでもrustコンパイラを構成するソースファイルが山ほどある
https://cs.android.com/android/platform/superproject/+/master:prebuilts/rust/linux-musl-x86/1.63.0/src/
さすがにgccの方はsoになってる
https://cs.android.com/android/platform/superproject/+/master:prebuilts/gcc/linux-x86/
>C++もrustも外部ライブラリはexternal配下にまとめられている
こうした統計ではソースとしておいてあるかどうかで結構差がある
891はちみつ餃子 ◆8X2XSCHEME
2022/12/07(水) 17:59:46.34ID:vqEtcxl0 割合で言えば大したことは無くてもある程度は積極的に使おうとする雰囲気は感じなくもないってところかな。
892デフォルトの名無しさん
2022/12/07(水) 18:00:13.04ID:8PgDeggG >>887
>あと150万行ってのはAndroid13の話じゃなくて累積のコード量がって話しだよ
累積のコード量で、Android向け書き起こしRustソースが150万行、という主張であれば水増しの疑いを持ってる
>あと150万行ってのはAndroid13の話じゃなくて累積のコード量がって話しだよ
累積のコード量で、Android向け書き起こしRustソースが150万行、という主張であれば水増しの疑いを持ってる
893デフォルトの名無しさん
2022/12/07(水) 18:01:45.15ID:8PgDeggG894デフォルトの名無しさん
2022/12/07(水) 18:01:53.83ID:Mw8qZqut >>890
コンパイラじゃなくて標準ライブラリのことね
確かにlibcとは扱いに差があるかもね
詳細な数値が気になるならソースダウンロードして測定してみたら良いのでは
https://source.android.com/docs/setup/download/downloading
コンパイラじゃなくて標準ライブラリのことね
確かにlibcとは扱いに差があるかもね
詳細な数値が気になるならソースダウンロードして測定してみたら良いのでは
https://source.android.com/docs/setup/download/downloading
895デフォルトの名無しさん
2022/12/07(水) 18:04:39.07ID:8PgDeggG >>894
そんな手間かけたくないから聞いたんだけど、皆そうなんだろうな
>累積のコード量で、Android向け書き起こしRustソースが150万行、という主張であれば水増しの疑いを持ってる
これで継続だな
そんな手間かけたくないから聞いたんだけど、皆そうなんだろうな
>累積のコード量で、Android向け書き起こしRustソースが150万行、という主張であれば水増しの疑いを持ってる
これで継続だな
896デフォルトの名無しさん
2022/12/07(水) 18:06:43.25ID:Mw8qZqut897デフォルトの名無しさん
2022/12/07(水) 18:11:19.10ID:8PgDeggG898デフォルトの名無しさん
2022/12/07(水) 18:13:51.76ID:8PgDeggG ちなみにPhoronixで読んだが、LinuxのRust対応は賞味2万行
899デフォルトの名無しさん
2022/12/07(水) 18:20:26.12ID:wjXnim/d900デフォルトの名無しさん
2022/12/07(水) 18:24:03.55ID:8PgDeggG 例えば、ここだけど、150万行はおろか、2万行すら程遠いかな
https://github.com/aosp-mirror/kernel_common/tree/android-mainline/rust
https://github.com/aosp-mirror/kernel_common/tree/android-mainline/rust
901デフォルトの名無しさん
2022/12/07(水) 18:36:53.47ID:M+Adnv0G もっと有意義な話しようぜ
fn<T>foo(x: &T); のTにSized制約付くの邪魔くせーとかさ
fn<T>foo(x: &T); のTにSized制約付くの邪魔くせーとかさ
902デフォルトの名無しさん
2022/12/07(水) 18:39:18.13ID:CifLjB7G903デフォルトの名無しさん
2022/12/07(水) 18:41:18.29ID:Mw8qZqut >>901
x: TのときはSizedついて欲しいけど、&Tのときはついて欲しくないということ?
Box<T>やRc<T>やユーザー定義のスマートポインタの扱い考えるとめんどくさいから一律Sizedがデフォルトでよくない?
x: TのときはSizedついて欲しいけど、&Tのときはついて欲しくないということ?
Box<T>やRc<T>やユーザー定義のスマートポインタの扱い考えるとめんどくさいから一律Sizedがデフォルトでよくない?
904デフォルトの名無しさん
2022/12/07(水) 18:48:05.32ID:Mw8qZqut905デフォルトの名無しさん
2022/12/07(水) 18:51:46.12ID:8PgDeggG906デフォルトの名無しさん
2022/12/07(水) 18:53:03.86ID:21cwGaas そりゃC++とのInteropが絶対に必要だしRustはそこが弱い
そういう用途としてはCarbonがあるけどセキュアではない
(C++よりはマシだろうが)
そういう用途としてはCarbonがあるけどセキュアではない
(C++よりはマシだろうが)
907デフォルトの名無しさん
2022/12/07(水) 18:58:45.38ID:8PgDeggG908デフォルトの名無しさん
2022/12/07(水) 19:02:37.66ID:glN0FB8M Androidの中のRustはGabeldorsche, keystore2, DoH, UWBくらいだっけ
もう3年くらいかかってるからそれなりの行数になってる気もするけどどうなんだろ
aospのrepo sync全部やるの時間かかるんだよな…
もう3年くらいかかってるからそれなりの行数になってる気もするけどどうなんだろ
aospのrepo sync全部やるの時間かかるんだよな…
909デフォルトの名無しさん
2022/12/07(水) 19:05:40.97ID:8PgDeggG910デフォルトの名無しさん
2022/12/07(水) 19:09:14.99ID:/TInWduh repo sync 終わらんよな
今3時間経過
今3時間経過
911デフォルトの名無しさん
2022/12/07(水) 19:14:14.71ID:8PgDeggG 期待大
原文では
>There are approximately 1.5 million total lines of Rust code in AOSP across new functionality and components such as Keystore2, the new Ultra-wideband (UWB) stack, DNS-over-HTTP3, Android’s Virtualization framework (AVF), and various other components and their open source dependencies.
となってますので、
Keystore2
Ultra-wideband (UWB) stack
DNS-over-HTTP3
Android’s Virtualization framework (AVF)
and various other components and their open source dependencies.
これで150万行の大半を占めているかのような書き方です
まさかこれが大半を占めていたり
>open source dependencies
rustコンパイラのソースツリーが入っているとは言えませんよね
原文では
>There are approximately 1.5 million total lines of Rust code in AOSP across new functionality and components such as Keystore2, the new Ultra-wideband (UWB) stack, DNS-over-HTTP3, Android’s Virtualization framework (AVF), and various other components and their open source dependencies.
となってますので、
Keystore2
Ultra-wideband (UWB) stack
DNS-over-HTTP3
Android’s Virtualization framework (AVF)
and various other components and their open source dependencies.
これで150万行の大半を占めているかのような書き方です
まさかこれが大半を占めていたり
>open source dependencies
rustコンパイラのソースツリーが入っているとは言えませんよね
912デフォルトの名無しさん
2022/12/07(水) 19:30:47.68ID:/TInWduh 期待すんな
gitとpython入ってるwsl環境とかあれば簡単にとってこれるぞ
https://source.android.com/docs/setup/download/downloading
ただ時間がかかるだけ
この程度出来ない奴がrustについて云々言うとか片腹痛い
gitとpython入ってるwsl環境とかあれば簡単にとってこれるぞ
https://source.android.com/docs/setup/download/downloading
ただ時間がかかるだけ
この程度出来ない奴がrustについて云々言うとか片腹痛い
913デフォルトの名無しさん
2022/12/07(水) 19:35:42.75ID:8PgDeggG >この程度出来ない奴がrustについて云々言うとか片腹痛い
そうだね(笑)
こっちでもやってみるかな
そうだね(笑)
こっちでもやってみるかな
914デフォルトの名無しさん
2022/12/07(水) 19:35:54.12ID:glN0FB8M 半年ほど前のやつがあったのでそれでtokeiかけてみた
とりあえずexternal内が180万行でprebuiltsが500万行くらい
なので1.5mの根拠はexternalの方かな
prebuiltsの方に上で挙がってたmuslとか入っている
external内はrustディレクトリ内の依存クレートが150万くらい
依存クレートでないので最大はcrosvmが30万行くらい
というわけでAndroidのために150万行書き下ろしたというのは言い過ぎ
ただ150万行のソースコード使ってるという原文の主張は正しそう(コンパイラのコードとかは入ってない)
まぁ依存クレートにも明らかにAndroid用っぽいのもあるし
これ以上の切り分けは難しいな
とりあえずexternal内が180万行でprebuiltsが500万行くらい
なので1.5mの根拠はexternalの方かな
prebuiltsの方に上で挙がってたmuslとか入っている
external内はrustディレクトリ内の依存クレートが150万くらい
依存クレートでないので最大はcrosvmが30万行くらい
というわけでAndroidのために150万行書き下ろしたというのは言い過ぎ
ただ150万行のソースコード使ってるという原文の主張は正しそう(コンパイラのコードとかは入ってない)
まぁ依存クレートにも明らかにAndroid用っぽいのもあるし
これ以上の切り分けは難しいな
915デフォルトの名無しさん
2022/12/07(水) 19:50:48.43ID:CifLjB7G916デフォルトの名無しさん
2022/12/07(水) 20:03:05.60ID:glN0FB8M 一応依存クレートも一通り見てみたけど大きいのはメジャーなやつだね
というわけでAndroidのために書かれたコードは全体で40万行以内ってとこかな
まぁtokioやらcrossbeamがちゃんと使われているのは水増しと批判するようなことではなく
むしろいいことなんじゃないか?
というわけでAndroidのために書かれたコードは全体で40万行以内ってとこかな
まぁtokioやらcrossbeamがちゃんと使われているのは水増しと批判するようなことではなく
むしろいいことなんじゃないか?
917デフォルトの名無しさん
2022/12/07(水) 22:19:15.93ID:Lb4jZ7zf それにしても無駄の多いコーディングだな。
そもそもAndroidで使われたというだけであって、Rustが広まったという訳ではない。
そもそもAndroidで使われたというだけであって、Rustが広まったという訳ではない。
918デフォルトの名無しさん
2022/12/07(水) 22:24:52.03ID:Lb4jZ7zf かつてCが流行したのは、LatticeC、SmallC、TurboC、MS-C、WatcomC など
色んな企業がコンパイラ作りを競い合った結果だったかも知れん。
TurboCが流行ったが、それ以前からCは雑誌I/Oなどでも取り上げられて、
さまざまな人が話をし、良い言語であるという噂が立っていた。
当時を知っている俺が言わせて貰えば、なぜか、Rustはビビっとこない。
Cはビビっと来た。
C++は、初期の頃にびびっときたが、C++11では、こりゃもう駄目だ、
と思った。
色んな企業がコンパイラ作りを競い合った結果だったかも知れん。
TurboCが流行ったが、それ以前からCは雑誌I/Oなどでも取り上げられて、
さまざまな人が話をし、良い言語であるという噂が立っていた。
当時を知っている俺が言わせて貰えば、なぜか、Rustはビビっとこない。
Cはビビっと来た。
C++は、初期の頃にびびっときたが、C++11では、こりゃもう駄目だ、
と思った。
919デフォルトの名無しさん
2022/12/07(水) 22:39:14.39ID:UARY1o0b >>918 蓋を開けてみれば様々なバグ(特にメモリ関連)の元凶だったから、その感覚の逆が正解かな
920デフォルトの名無しさん
2022/12/07(水) 22:42:23.65ID:cTs8jKu4 アセンブラとBASICしか無かった所に
Cが登場したから、そりゃ喜んで使うわ
Cが登場したから、そりゃ喜んで使うわ
921デフォルトの名無しさん
2022/12/07(水) 22:59:32.88ID:Odhm3loP >>918
今は何にビビっと来るの?
今は何にビビっと来るの?
922デフォルトの名無しさん
2022/12/07(水) 23:01:58.13ID:Xa+0WmXy >>918
LSI C-86も入れといてね
LSI C-86も入れといてね
923デフォルトの名無しさん
2022/12/07(水) 23:23:48.68ID:g3+WCnxI スタックかグローバル変数しか無い文化でCを流行らせてもヒープのバグは少ない
ヒープを使わないなら変数の寿命は固定長、という伏線が回収されたことに
まだ気付いてない人もいる
ヒープを使わないなら変数の寿命は固定長、という伏線が回収されたことに
まだ気付いてない人もいる
924デフォルトの名無しさん
2022/12/07(水) 23:25:35.88ID:21cwGaas >>918
ロートルは去れ
ロートルは去れ
925デフォルトの名無しさん
2022/12/07(水) 23:26:15.82ID:Lb4jZ7zf >>921
そうだな、まだ決め手となるものは無いが、(個人的には好きではないが)JSに
人気が有るのはブラウザがそれしか使えなかったから「では無い」と思ってる。
Rubyと比較すればJSの方が優れているように感じる。
また、C#はJavaよりは改良されていると感じる。但し、これも好きではない。
Pythonも好きではない。人気が有る理由は恐らくAIのライブラリと使用例が
多いからではないかと思ってる。
ということで、今はびびっとくるものが無い。
そうだな、まだ決め手となるものは無いが、(個人的には好きではないが)JSに
人気が有るのはブラウザがそれしか使えなかったから「では無い」と思ってる。
Rubyと比較すればJSの方が優れているように感じる。
また、C#はJavaよりは改良されていると感じる。但し、これも好きではない。
Pythonも好きではない。人気が有る理由は恐らくAIのライブラリと使用例が
多いからではないかと思ってる。
ということで、今はびびっとくるものが無い。
926デフォルトの名無しさん
2022/12/07(水) 23:31:51.79ID:Xa+0WmXy 結局RUSTに限った話じゃなかったかw
927デフォルトの名無しさん
2022/12/07(水) 23:34:48.20ID:Lb4jZ7zf Rustは大々的には流行らないんじゃないと思うぞ。
理由は色々有るが、
・流行ってる言語は、JS、Python、Java、PHP、C#、Ruby、VB など、初心者向けの
簡易言語が多い。
・Rustは中途半端。伝統を無視。習慣を無視。直感的でない。
・そもそもRustは低レベル向け言語、上記に書いた簡易言語のターゲット層には
被らない。
なお、Googleは色んな言語に手を出す企業。
使ってる言語も幅広く、(同列に入れるべきでないものも混ざるが)
C++、NaCL(*)、Java、Kotlin(*)、Go(*)、Dart(*)、Carbon(*)、Rust、Wasm、
などなど。[(*)は自社製言語や自社製仮想言語(?)]
自社製言語だけでも4つ、仮想言語が1つ。
理由は色々有るが、
・流行ってる言語は、JS、Python、Java、PHP、C#、Ruby、VB など、初心者向けの
簡易言語が多い。
・Rustは中途半端。伝統を無視。習慣を無視。直感的でない。
・そもそもRustは低レベル向け言語、上記に書いた簡易言語のターゲット層には
被らない。
なお、Googleは色んな言語に手を出す企業。
使ってる言語も幅広く、(同列に入れるべきでないものも混ざるが)
C++、NaCL(*)、Java、Kotlin(*)、Go(*)、Dart(*)、Carbon(*)、Rust、Wasm、
などなど。[(*)は自社製言語や自社製仮想言語(?)]
自社製言語だけでも4つ、仮想言語が1つ。
928デフォルトの名無しさん
2022/12/07(水) 23:36:08.15ID:cTs8jKu4 MS-DOS 向けで最初に入ってきたのは
optimizing C86 だったと思う
optimizing C86 だったと思う
929デフォルトの名無しさん
2022/12/07(水) 23:40:24.00ID:Lb4jZ7zf そもそも低レベル言語でもココまでメモリ管理に気をとられる言語はなく、
直感的に書けた。
Rustはメモリ管理ばかりに気をとられる言語。論理に集中しにくい。
また、JavaやC#、C、C++では直感的に書けることがRustでは書けない。
なお、「それはおまえがバグのコードを書いているから」と反論されるが、
はっきり言って、そのコードでも全くバグは無いから。
直感的に書けた。
Rustはメモリ管理ばかりに気をとられる言語。論理に集中しにくい。
また、JavaやC#、C、C++では直感的に書けることがRustでは書けない。
なお、「それはおまえがバグのコードを書いているから」と反論されるが、
はっきり言って、そのコードでも全くバグは無いから。
930デフォルトの名無しさん
2022/12/07(水) 23:49:55.59ID:51+7TkbX 隔離スレがないからとにかく昔話をしたいお爺ちゃん達のたまり場になっちゃったね
931デフォルトの名無しさん
2022/12/07(水) 23:56:19.06ID:Lb4jZ7zf Cが流行ったのはリンクリストが作れたからだ。
Strousutup氏はリンクリストを全否定に近い形で否定しまくっているが、
彼は机上の空論であり、彼が自分で実験してvectorの方が速いとしたものも
実際に合わない机上の空論的なベンチマークテストだったろう。
そしてそれを信じてしまったRustの作者はRustではリンクリストを
まともには使えない状態にしてしまった。
Strousutup氏はリンクリストを全否定に近い形で否定しまくっているが、
彼は机上の空論であり、彼が自分で実験してvectorの方が速いとしたものも
実際に合わない机上の空論的なベンチマークテストだったろう。
そしてそれを信じてしまったRustの作者はRustではリンクリストを
まともには使えない状態にしてしまった。
932デフォルトの名無しさん
2022/12/07(水) 23:59:45.09ID:sHYfIE3H なんだお前だったのか
933デフォルトの名無しさん
2022/12/08(木) 00:03:22.42ID:kNVI3qAc スレ立てろよ
手持ちの回線だと全部無理なんだ
手持ちの回線だと全部無理なんだ
934デフォルトの名無しさん
2022/12/08(木) 00:08:02.18ID:QroOE5Fs ID:Lb4jZ7zfのプライドだけ高い老害感すごいな 狙ってできるもんじゃない
935デフォルトの名無しさん
2022/12/08(木) 00:20:06.52ID:pMPEGjtK 一般人は馬鹿だから偉い学者さんが言った間違った言説を信じるしかない。
実験したことが現実的な状況と合ってなければ実験結果は無意味。
だから、他の経験者はリンクリストが速くてメモリー効率もいいことを知っている
のに机上の空論者であるところのStroustrup氏は、自分がやった机上の空論的な
実験結果を縦に徹底抗戦を仕掛けている。
しかし、実際と有って無いから反感を買っている。
それも、C++から人が離れていっている原因の一つ。
C++もRustもどちらも机上の空論になってる。
実験したことが現実的な状況と合ってなければ実験結果は無意味。
だから、他の経験者はリンクリストが速くてメモリー効率もいいことを知っている
のに机上の空論者であるところのStroustrup氏は、自分がやった机上の空論的な
実験結果を縦に徹底抗戦を仕掛けている。
しかし、実際と有って無いから反感を買っている。
それも、C++から人が離れていっている原因の一つ。
C++もRustもどちらも机上の空論になってる。
936デフォルトの名無しさん
2022/12/08(木) 00:22:10.33ID:pMPEGjtK937デフォルトの名無しさん
2022/12/08(木) 00:29:07.90ID:WCqcOtXz 即NG㌧
938デフォルトの名無しさん
2022/12/08(木) 00:32:17.18ID:pMPEGjtK LinkedListがキャッシュ効率が悪いというのも机上の空論。
なぜなら、机上の空論者は、LinkedListのノードのアドレスが「ランダム」で
あると間違った仮定するから。
実際には基本的に連続しており、多くの場合は連続して無いとしても
軽微な数バイトの隙間がところどころ空いているだけ。
大きく変化することもあるが、それは全体の数箇所だけ。
なぜなら、挿入箇所は、一箇所から始まってその周辺を押し広げてノードを挿入している
だけで、それが少数あるだけだから、アドレスが大きく変わる箇所はわずかで、
「バースト的」になっているから。
机上の空論者は、ノードアドレスをランダムだと考えるから、キャッシュ・ミスが常に
起きると考えてしまう。ところが、そんな状況はまず有りえない。
なぜなら、机上の空論者は、LinkedListのノードのアドレスが「ランダム」で
あると間違った仮定するから。
実際には基本的に連続しており、多くの場合は連続して無いとしても
軽微な数バイトの隙間がところどころ空いているだけ。
大きく変化することもあるが、それは全体の数箇所だけ。
なぜなら、挿入箇所は、一箇所から始まってその周辺を押し広げてノードを挿入している
だけで、それが少数あるだけだから、アドレスが大きく変わる箇所はわずかで、
「バースト的」になっているから。
机上の空論者は、ノードアドレスをランダムだと考えるから、キャッシュ・ミスが常に
起きると考えてしまう。ところが、そんな状況はまず有りえない。
939デフォルトの名無しさん
2022/12/08(木) 00:35:48.02ID:pMPEGjtK >>938
さらに、LinkedListのメモリー効率が悪いというのもウソで、むしろ、
std::vectorの方が悪いことが多い。
なぜなら、後者は、濃度ーを末尾追加していくと、スプリアス的に
今までの配列の入ったテーブルの1.5倍のサイズのテーブルをヒープ領域から
確保してしまう。
これが物凄く致命的で、std::vectorは、要素 T のサイズが大きい場合、
物凄くメモリー効率が悪くなる。
一方、std::list は、要素 T のサイズが大きい場合、std::vectorより遥かにメモリー効率が良い。
さらに、LinkedListのメモリー効率が悪いというのもウソで、むしろ、
std::vectorの方が悪いことが多い。
なぜなら、後者は、濃度ーを末尾追加していくと、スプリアス的に
今までの配列の入ったテーブルの1.5倍のサイズのテーブルをヒープ領域から
確保してしまう。
これが物凄く致命的で、std::vectorは、要素 T のサイズが大きい場合、
物凄くメモリー効率が悪くなる。
一方、std::list は、要素 T のサイズが大きい場合、std::vectorより遥かにメモリー効率が良い。
940デフォルトの名無しさん
2022/12/08(木) 00:39:53.26ID:pMPEGjtK >>939
[補足]
std::vectorは、sizeがcapacityを越えそうになると、今までのcapacityの
1.5倍のテーブルを新たに確保するので、今までのテーブルと合わせると、
一時的に 1 + 1.5 = 2.5 倍のメモリー領域を確保してしまう。
std::list ならこんなことは起きない。
なおさらに悪いことに、std::vectorはことの時、全要素を move するので
キャッシュが大規模に汚染されてしまう。
キャッシュ汚染という点では、std::vectorは、先頭や途中への要素追加
の際もキャッシュが大規模に汚染されてしまう。
[補足]
std::vectorは、sizeがcapacityを越えそうになると、今までのcapacityの
1.5倍のテーブルを新たに確保するので、今までのテーブルと合わせると、
一時的に 1 + 1.5 = 2.5 倍のメモリー領域を確保してしまう。
std::list ならこんなことは起きない。
なおさらに悪いことに、std::vectorはことの時、全要素を move するので
キャッシュが大規模に汚染されてしまう。
キャッシュ汚染という点では、std::vectorは、先頭や途中への要素追加
の際もキャッシュが大規模に汚染されてしまう。
941デフォルトの名無しさん
2022/12/08(木) 00:45:56.87ID:pMPEGjtK stroustrup氏の言説はデタラメが多くてストレスがたまる。
そして、自分が間違った説を後ろ盾するために、間違った仮定の元に
実験を行なっている。
コンピュータの実験の場合、正しい仮定のもとで行なうことが重要で、
実験して時節を裏付ける結果が出たとしても、仮定がまるっきり
間違っているのだからどうしようもない。
ベンチマークテストでも、もし、実際と合わないような内容をテストしても
意味が無い。そんな状況は滅多に起きないから。
コンピュータの測度は「加重平均値」で決まる。どういう「加重」かが、机上の空論者
には分からないからデタラメになる。
言語仕様の策定においても、実際にはそんなことをやってもほとんど意味が無いことを
優先的に簡単化しようとする一方で、もっとも重要なことがめんどくさくなるような
仕様を追加してしまったりする。
だから、C++は机上の空論といわれる。
ところが、同じことがRustにも言える。
そして、自分が間違った説を後ろ盾するために、間違った仮定の元に
実験を行なっている。
コンピュータの実験の場合、正しい仮定のもとで行なうことが重要で、
実験して時節を裏付ける結果が出たとしても、仮定がまるっきり
間違っているのだからどうしようもない。
ベンチマークテストでも、もし、実際と合わないような内容をテストしても
意味が無い。そんな状況は滅多に起きないから。
コンピュータの測度は「加重平均値」で決まる。どういう「加重」かが、机上の空論者
には分からないからデタラメになる。
言語仕様の策定においても、実際にはそんなことをやってもほとんど意味が無いことを
優先的に簡単化しようとする一方で、もっとも重要なことがめんどくさくなるような
仕様を追加してしまったりする。
だから、C++は机上の空論といわれる。
ところが、同じことがRustにも言える。
942デフォルトの名無しさん
2022/12/08(木) 00:46:30.49ID:rnWAZYk7 gccのrustフロントエンドがマージされるそうだけど、これってどういう時に便利なの?
gccでビルドしたCとのcross-language LTOとかできるの?
gccでビルドしたCとのcross-language LTOとかできるの?
943デフォルトの名無しさん
2022/12/08(木) 01:02:47.82ID:D2mGrKMe >>914,916
ありがとうございます とても参考になります
こちらはパーティションを小分けにしていたせいで要領不足にあっていました
これ全体だと300GB以上あるのでしょうか?
仕方ないので
repo init -u https://android.googlesource.com/platform/manifest --depth=1 --partial-clone --clone-filter=blob:limit=10M -b android-13.0.0_r18
としたら100GB位に収まって何とか完走したところです
android-12.1.0_r26も取ってきて21%がcrosvm(当初はChromeOS向け)の移行を含んでるのかどうか見たかったのですが
話のネタが変わってしまったので週末かどこかでやり直すことにしました
ありがとうございます とても参考になります
こちらはパーティションを小分けにしていたせいで要領不足にあっていました
これ全体だと300GB以上あるのでしょうか?
仕方ないので
repo init -u https://android.googlesource.com/platform/manifest --depth=1 --partial-clone --clone-filter=blob:limit=10M -b android-13.0.0_r18
としたら100GB位に収まって何とか完走したところです
android-12.1.0_r26も取ってきて21%がcrosvm(当初はChromeOS向け)の移行を含んでるのかどうか見たかったのですが
話のネタが変わってしまったので週末かどこかでやり直すことにしました
944デフォルトの名無しさん
2022/12/09(金) 01:41:09.99ID:Sh2LVmg/ LinkedList信者まだいるんだ....
リンクリストなんて既にETHやMITでも、コンピューターサイエンスで多くの人が間違いなく否定するものなのに。別にStrousutupだけじゃないぞ?ほぼ全否定で言ってるのは
キャパを越えそうな事を無理やりするのはほぼ設計の問題だし、途中への要素追加が起きるようなコードを書いてて問題ないと思ってるのはプログラマの能力の問題。
バースト的なんて言ってるけど、連続するメモリー領域へのアクセスと比べて明らかにリンクリストが不利になるのは自明だ、さらに逆に途中追加した場合のキャッシュミスを汚染なんて言ってるけど
それこそ現代の多段キャッシュアーキテクチャを甘く見すぎてる。そりゃ容量を超えるような操作を行えばメインメモリに取りに行くけど、言うまでもないがリンクリストの要素の先はメインメモリー散らばってる。
それがキャッシュされるとしてもCPUのキャッシュは1Byteとか8Byteをキャッシュするものじゃなく1キャッシュブロックで連続するメモリーをk単位でキャッシュする。
StrousutupのC++は明らかに欠陥言語だが、それとデーター構造の理解は別の問題。 コンピュータの速度は加重平均なんていう単純なもんではない
すべてがキャッシュに乗るなら一番早く動くが、メインメモリを頻繁にアクセスするなら100倍遅くなる。メインメモリにさえ載りきらないデータを扱いHDDならそこからさらに1000倍遅い。
だがキャッシュの容量しかデータを扱えないプログラムは役に立たたないし、Swapしまくりのプログラムは実用に耐えない。
まだLinkedListを擁護する人が多いのは、欧米のように日本のプログラマーは文系や高卒がやり、明らかにまともに計算機科学というものを受けていないからだ
Rustこそ欧州主体で行われている計算機科学にあまり即してない、FORTRANみたいな米国主導のLinkedListのような産物
リンクリストなんて既にETHやMITでも、コンピューターサイエンスで多くの人が間違いなく否定するものなのに。別にStrousutupだけじゃないぞ?ほぼ全否定で言ってるのは
キャパを越えそうな事を無理やりするのはほぼ設計の問題だし、途中への要素追加が起きるようなコードを書いてて問題ないと思ってるのはプログラマの能力の問題。
バースト的なんて言ってるけど、連続するメモリー領域へのアクセスと比べて明らかにリンクリストが不利になるのは自明だ、さらに逆に途中追加した場合のキャッシュミスを汚染なんて言ってるけど
それこそ現代の多段キャッシュアーキテクチャを甘く見すぎてる。そりゃ容量を超えるような操作を行えばメインメモリに取りに行くけど、言うまでもないがリンクリストの要素の先はメインメモリー散らばってる。
それがキャッシュされるとしてもCPUのキャッシュは1Byteとか8Byteをキャッシュするものじゃなく1キャッシュブロックで連続するメモリーをk単位でキャッシュする。
StrousutupのC++は明らかに欠陥言語だが、それとデーター構造の理解は別の問題。 コンピュータの速度は加重平均なんていう単純なもんではない
すべてがキャッシュに乗るなら一番早く動くが、メインメモリを頻繁にアクセスするなら100倍遅くなる。メインメモリにさえ載りきらないデータを扱いHDDならそこからさらに1000倍遅い。
だがキャッシュの容量しかデータを扱えないプログラムは役に立たたないし、Swapしまくりのプログラムは実用に耐えない。
まだLinkedListを擁護する人が多いのは、欧米のように日本のプログラマーは文系や高卒がやり、明らかにまともに計算機科学というものを受けていないからだ
Rustこそ欧州主体で行われている計算機科学にあまり即してない、FORTRANみたいな米国主導のLinkedListのような産物
945デフォルトの名無しさん
2022/12/09(金) 02:35:24.01ID:wDDTmzGU なんだかRubyガイジみたいな論法だよな
Rubyでできることはすばらしいこと
Rubyでできないことは必要ないこと
いや必要あるか、使うかどうかは検討の上こっちが決めるんで😅
Rubyでできることはすばらしいこと
Rubyでできないことは必要ないこと
いや必要あるか、使うかどうかは検討の上こっちが決めるんで😅
946デフォルトの名無しさん
2022/12/09(金) 08:53:27.93ID:eLXAv6sJ 関数型のElixir は、先頭だけに追加できる片方向リストで、
データが変更されない・immutable だから、バグらない
x = a-b の時に、
先頭に、c を追加して、y = c-a-b となった時に、
a-bの部分が変更されないので、x, y 両方で再利用できる
データが変更されない・immutable だから、バグらない
x = a-b の時に、
先頭に、c を追加して、y = c-a-b となった時に、
a-bの部分が変更されないので、x, y 両方で再利用できる
947デフォルトの名無しさん
2022/12/09(金) 09:23:54.41ID:Bd/06DhF >>944
絶対ネタで書いてるだろw
絶対ネタで書いてるだろw
948デフォルトの名無しさん
2022/12/09(金) 13:50:41.90ID:3DNXTGzR >>944
CPUにおいて、基本的に cache block と cache line は同じ意味だが、
https://stackoverflow.com/questions/14707803/line-size-of-l1-and-l2-caches
のように、Intel CPUにおけるcache lineの大きさは 64バイト。
先読み機能が有るので、少し先まで読むことがあるが、
1KBみたいに大きくは無い。
CPUにおいて、基本的に cache block と cache line は同じ意味だが、
https://stackoverflow.com/questions/14707803/line-size-of-l1-and-l2-caches
のように、Intel CPUにおけるcache lineの大きさは 64バイト。
先読み機能が有るので、少し先まで読むことがあるが、
1KBみたいに大きくは無い。
949デフォルトの名無しさん
2022/12/09(金) 13:58:22.82ID:3DNXTGzR >>944
コンピュータ科学ではむしろ、LinkedListがArrayListより速いことがあることを学ぶ。
コンピュータ科学ではむしろ、LinkedListがArrayListより速いことがあることを学ぶ。
950デフォルトの名無しさん
2022/12/09(金) 14:00:08.53ID:3DNXTGzR >>944
>言うまでもないがリンクリストの要素の先はメインメモリー散らばってる。
現実的な使用法では、バースト的になっていて、散らばってない。
散らばっていると思っている人が現実を知らない机上の空論家だと言っている。
>言うまでもないがリンクリストの要素の先はメインメモリー散らばってる。
現実的な使用法では、バースト的になっていて、散らばってない。
散らばっていると思っている人が現実を知らない机上の空論家だと言っている。
951デフォルトの名無しさん
2022/12/09(金) 14:03:46.44ID:3DNXTGzR >>950
[補足]
バース的で無い場合においても、非常に近いアドレスになっていることが多い。
例えば、ノードを削除してから追加すると、最後に削除されたアドレスが再利用されるから、
データ列を加工する場合にはキャッシュがとても強く働く。
また、ソートにおいてもノードの繋ぎ方を変えるだけだから、コピーはおろか、
ムーブすら発生せず、要素Tのバイト数sizeof(T)が十分大きい場合は、
std::vectorより速い。
[補足]
バース的で無い場合においても、非常に近いアドレスになっていることが多い。
例えば、ノードを削除してから追加すると、最後に削除されたアドレスが再利用されるから、
データ列を加工する場合にはキャッシュがとても強く働く。
また、ソートにおいてもノードの繋ぎ方を変えるだけだから、コピーはおろか、
ムーブすら発生せず、要素Tのバイト数sizeof(T)が十分大きい場合は、
std::vectorより速い。
952デフォルトの名無しさん
2022/12/09(金) 14:08:27.79ID:3DNXTGzR >>944
>コンピュータの速度は加重平均なんていう単純なもんではない
加重平均である事と、単純である事は同じことでは無い。
単純ではないが、加重平均である。
実行時間 T = Σ_i w_i T_i
w_i = 処理 i に対する重みパラメータ
T_i = 処理 i に掛かる時間
w_i は、経験を積まないとわからなくて、机上の空論家はこれを誤って見積もる。
偉いとされる先生を筆頭とした「象牙の塔」の集団幻覚の様な現象が起きる。
>コンピュータの速度は加重平均なんていう単純なもんではない
加重平均である事と、単純である事は同じことでは無い。
単純ではないが、加重平均である。
実行時間 T = Σ_i w_i T_i
w_i = 処理 i に対する重みパラメータ
T_i = 処理 i に掛かる時間
w_i は、経験を積まないとわからなくて、机上の空論家はこれを誤って見積もる。
偉いとされる先生を筆頭とした「象牙の塔」の集団幻覚の様な現象が起きる。
953デフォルトの名無しさん
2022/12/09(金) 14:13:39.03ID:3DNXTGzR >>951
[さらに補足]
・ノードを削除してから追加する--->malloc や new が、直近に
削除したノードのアドレスを再利用されるのでキャッシュが良く効く。
・削除したノードのメモリ・ブロックが全部使われた場合、
malloc や new がHeapやOSから新しくアドレスを確保してくる -->
OSは後続の連続アドレスを返してくるので、アドレスはほぼ連続
するので、キャッシュが良く効く。
故に、実際的な使用においては、LinkedListはキャッシュがよく効く。
[さらに補足]
・ノードを削除してから追加する--->malloc や new が、直近に
削除したノードのアドレスを再利用されるのでキャッシュが良く効く。
・削除したノードのメモリ・ブロックが全部使われた場合、
malloc や new がHeapやOSから新しくアドレスを確保してくる -->
OSは後続の連続アドレスを返してくるので、アドレスはほぼ連続
するので、キャッシュが良く効く。
故に、実際的な使用においては、LinkedListはキャッシュがよく効く。
954デフォルトの名無しさん
2022/12/09(金) 14:18:24.24ID:3DNXTGzR たとえば、馬鹿な人は、通信経路においてのエラーは「ランダムに起きる」から、
「本当にランダム」のケースを脳内で勝手に想像して、
「CRC符合は一般には役に立たない」
と結論付けてしまうかも知れないが、それは机上の空論で、
実際のエラーはバースト的に起きるから、CRC符合は非常に強力に働く。
それと同様にLinkedListもキャッシュが良く効く。
なぜならノードのアドレスが「ランダム」ではないから。
「本当にランダム」のケースを脳内で勝手に想像して、
「CRC符合は一般には役に立たない」
と結論付けてしまうかも知れないが、それは机上の空論で、
実際のエラーはバースト的に起きるから、CRC符合は非常に強力に働く。
それと同様にLinkedListもキャッシュが良く効く。
なぜならノードのアドレスが「ランダム」ではないから。
955デフォルトの名無しさん
2022/12/09(金) 15:08:04.74ID:gsPXBpPV どっちもヤバくて草w
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 働いて参ります
- ( ・᷄ὢ・᷅ )あ?
- 地震
- こんぺこ!こんぺこ!こんぺこ!🐰🏡
- 早大名誉教授「高市内閣の高支持率はデータ操作か、支持している日本人がアホなのか」👈核心を突いてしまう [868050967]
- ブタをぶったたく
