Rust part9

■ このスレッドは過去ログ倉庫に格納されています
2020/08/23(日) 01:07:35.52ID:MgEpWwVh
Mozilla発のRust言語のスレ

公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

Web上の実行環境
https://play.rust-lang.org

前スレ
Rust part8
https://mevius.5ch.net/test/read.cgi/tech/1579834072/
2021/02/15(月) 23:16:52.31ID:Yv9X0Du7
>>728
memory safety
2021/02/15(月) 23:34:00.74ID:FO8OS1Ro
リージョン推論とアフィン型
2021/02/15(月) 23:35:54.84ID:jLBVKIGa
勢い
2021/02/16(火) 00:39:31.16ID:uH9KCelr
若者
2021/02/16(火) 01:35:01.04ID:birNKbej
hygenicなマクロやproc macro
734デフォルトの名無しさん
垢版 |
2021/02/16(火) 14:47:28.42ID:0SiibFTk
初心者
735デフォルトの名無しさん
垢版 |
2021/02/16(火) 19:09:01.10ID:zfzmKwUo
LinuxカーネルをRustで書こうとかいう話が去年出てたけど、
社会のインフラにもなってるようなカーネルの開発者が考えてることと
プログラミング言語で遊びたい人の考えてることが違いすぎて萎えた

しょせん、プログラミング言語なんてアセンブラとC以外は全部遊びだよね
安かろう悪かろうの遊びレベルの仕事に金払う会社があるから勘違いされやすいけど
2021/02/16(火) 19:18:56.90ID:ckHFYEhB
JAVAも遊びってマジ!?
2021/02/16(火) 19:36:38.83ID:KZAm4Q8q
COBOLも遊びだそうです
2021/02/16(火) 19:47:40.11ID:6a7fxa+u
遊びで生まれた子供がなんか言ってらw
2021/02/16(火) 20:07:29.86ID:6oy5nTaC
今はカーネルモジュールを対象にRustをサポートする予定みたい
ABIとかメモリ管理まわりの差異の吸収をどうするか一番熱いところをやってるね
https://lwn.net/Articles/829858/
2021/02/16(火) 20:25:37.08ID:F9q4wvox
C/Ruby 併用のmruby の本が出た。
文字列処理などは、GC のあるRuby側で書く

Webで使えるmrubyシステムプログラミング入門、近藤宇智朗、2020/11

宇宙開発などの組み込み用、MicroPython, Lua, Squirrel の代替になる。
Ubuntu 18.04, C99 対応

人工衛星イザナギ・イザナミでも、使っている
2021/02/16(火) 21:11:02.07ID:mcPcmZQC
なぜここで宣伝?
2021/02/16(火) 22:20:14.90ID:VGyCnBhh
そいつただのキチガイだから聞いても無駄だぞ
2021/02/16(火) 22:40:03.47ID:/P278iHx
>>735
LinuxもC言語ももとはと言えばスペーストラベルってゲームで遊びたくてLinuxの前身のUNIXが作られたし、そのゲームを移植するためにB言語がつくられて、
さらにそれを改良したのがC言語だ。
744デフォルトの名無しさん
垢版 |
2021/02/17(水) 00:07:57.00ID:NXsZKPRa
ここにも出没するのか…
2021/02/17(水) 00:30:02.75ID:5fjXtzC9
なるほど。いろんなスレで同じこと書きまくってんのな
2021/02/17(水) 02:18:16.85ID:JbW6f0lc
>>743
Cが遊びにも使えることを主張しても反論になってないぞ
2021/02/17(水) 03:00:38.28ID:0wQZl1Sa
推奨NGワード: ruby
2021/02/17(水) 11:52:49.70ID:SnS/pdJc
RUSTはウェブとかAI分野でのバブルは考えにくい

あるとすればIOTやら組み込み向けだろう
2021/02/17(水) 13:28:23.14ID:JbW6f0lc
金融でHaskell流行ったみたいな感じでrust流行ったりしないかね
2021/02/17(水) 13:40:51.06ID:9AH/BrCU
そもそもそんなに流行ってほしいか?
インフラとかライブラリとか地味なところで
ひっそりと使われるのが適してると思うけど。
2021/02/17(水) 18:07:12.21ID:JbW6f0lc
利用者増えた方が投資も増えて進歩が速くなるから
2021/02/17(水) 20:57:43.14ID:JskNfOx3
今の様子じゃ10年経ってもなんも変わらんだろ。先のある言語じゃない。
2021/02/17(水) 21:22:18.90ID:CcjHMdPi
システムプログラミング分野ではC++からRustに変わっていくんじゃないの?
754デフォルトの名無しさん
垢版 |
2021/02/17(水) 21:34:22.05ID:HqSggkAC
GAHUMが採用し出して団体まで作ったのに先がないなんてどんな世界観なんじゃ
2021/02/17(水) 22:03:18.40ID:Pg4t51og
Rustが流行らなくてもRustの考え方を取り入れた言語が広まってくれればいいな
2021/02/17(水) 23:46:21.75ID:bnMjXKAr
やりたいことが出来るライブラリ (クレート) があるなら
言語の詳細がどうでもよくなりがちってのはあると思う。
2021/02/18(木) 00:18:21.59ID:ldFX1qZV
コンストラクタ、構造体のめんどくささ考えても絶対流行らんわ。
根本的におかしい言語機能なんだよ。
2021/02/18(木) 01:33:00.72ID:3wQQElw6
プログラマーって人と違った事が好きな尖った奴のイメージがあるけど、実際は
寄らば大樹の陰で巨人が採用したプログラミング言語に従うのが吉なのだ。
2021/02/18(木) 02:01:34.78ID:n4kSgdMy
rustにはコンストラクタなんていうげんごきのうはないが
2021/02/18(木) 02:22:20.29ID:17ht1voR
型コンストラクタはあるのでは
2021/02/18(木) 02:35:11.90ID:aOnYkWOR
ボカァ、今後はC++がRustのパラダイムを吸収して (saferな書き方を提供して) Rustの役割は終わると思うね
2021/02/18(木) 05:45:24.92ID:rijSrz3Z
それならそれでもいいけどそうなるためにはある程度Rustの取り組みが成果を上げる必要があるわけで

C++の建て増し感も気になる
2021/02/18(木) 05:57:46.70ID:g5HFTB9g
C++の建て増し感はもはや長所と思うしかない
仮に今後「Rustのパラダイムを吸収する」方向に進むとしたらそれはまさに建て増しだ

個人的にはマルチパラダイムを体現してるようで結構だと思うが、建て増し感が受け入れられない人にとってはやはりクソ言語なのだろうね。C++は
2021/02/18(木) 07:19:44.62ID:hiVMRxyD
>>758
それ日本というかプログラマを使い捨てられる文化圏だけじゃね
2021/02/18(木) 14:50:08.00ID:rijSrz3Z
リナスやストールマンやヘルスバーグが興味持てばまた違って来るだろう
766デフォルトの名無しさん
垢版 |
2021/02/18(木) 19:42:22.85ID:1bJLI/ST
どこかでRocketで非同期処理できるようになるって見た気がするんだけど、
ググってもそれらしき情報が見つからない。
俺の勘違い?
2021/02/18(木) 20:20:01.72ID:SByJzFqI
>>766
たしか次の0.5でできるようになるはず。
gitのmasterなら試せるんじゃないかな。
768デフォルトの名無しさん
垢版 |
2021/02/19(金) 01:45:21.75ID:C4/TpWTT
>>761
それを何年も何十年も待ってる人が沢山いるけど、やらないでしょ
2021/02/19(金) 06:37:54.65ID:ytqZaYub
コンパイラスイッチなりプラグマなり必要になるからそれなら新言語で、ってなっちゃうわな
2021/02/19(金) 08:59:27.98ID:2/3+b4qC
>>768
やらないやつはrustで書くのも無理だよ
2021/02/19(金) 12:37:09.63ID:EWSghxXn
>>761
Rust が依存関係をチェックする仕組みはそういう機能があるというだけではなくて、
それで全体が統一されていることが大事でしょ。 (一部には unsafe もあるけど。)

C++ の上に Rust 的なパラダイムを建て増しして便利になることもあるかもしれないけど、
統率されていることの有用さとは別物だよ。
2021/02/19(金) 12:59:22.09ID:5rOBR4Oa
原理的には従来のunsafe C++にsafe C++を建て増して
既存のコードを徐々にsafeにうつしていくというのは出来そうかな。
しかし実際やるとなるとRustへの移行と同じくらい手間がかかりそう。
safe/unsafe間がFFIでなくなるのは多少楽かもだけど、
境界でsafeなことを保証するのは人間が考えないといけないし。
2021/02/19(金) 13:00:29.26ID:HAYVHwal
基本的saferで特例でunsafeとその逆じゃ全然違うからなあ
2021/02/19(金) 13:44:19.68ID:h/t0+GoU
ぼく丘safer
2021/02/19(金) 13:54:40.33ID:jb9MooDY
実際の機能がCのライブラリにリンクしてるだけとか、丘saferだな
2021/02/19(金) 15:45:22.92ID:ytqZaYub
上手いことsafetyにラップしてくれてればそれでいいよ
2021/02/19(金) 20:14:37.43ID:2/3+b4qC
safetyだと思い込めればええんやろ。単純な連中だわ。
778デフォルトの名無しさん
垢版 |
2021/02/20(土) 01:02:31.59ID:MdDLRkGY
こいつめっちゃウザい
2021/02/20(土) 12:53:25.44ID:TL3BSHJV
誰だよ
2021/02/28(日) 14:52:22.32ID:JEl8UZRv
アクセスを強要する言語はダメだよ
2021/03/05(金) 19:00:28.35ID:aSqkecBn
Iterator周りのconst fn化って目処立ってたりするのかな
2021/03/09(火) 11:54:18.25ID:e2HkPLHr
Rustで作られた有名なものを教えてください

Rubyだったらrails、homebrewとか
2021/03/09(火) 12:47:03.15ID:R5GGXoEM
https://qiita.com/hadashiA/items/3dec1713bd999b38e848

あとdenoもC++からrustで書き換えられたらしいし今後増えてくると思う
2021/03/09(火) 13:27:01.38ID:uSJY4o8s
>>782
Servo(Firefoxのレンダリングエンジン)
2021/03/09(火) 13:44:11.22ID:R5GGXoEM
tauriが伸びて来るかはまだ未知数
2021/03/09(火) 19:29:25.88ID:wHDXlDgC
Haskellで言うxmonadみたいな?
787デフォルトの名無しさん
垢版 |
2021/03/09(火) 19:53:58.75ID:eVxnhZwi
>>782
dropbox
2021/03/09(火) 20:01:24.82ID:zonUHFVg
firecrackerもRust製だっけか

https://github.com/firecracker-microvm/firecracker
2021/03/09(火) 20:04:31.04ID:zonUHFVg
firecracker >>783 のところに書かれてたか・・・。
2021/03/09(火) 20:10:47.51ID:xbBrvliS
Tock/OpenTitan/OpenSKみたいなセキュリティ系のファームウェアとか
こういうのは特にアナウンスもなく採用されていくから
気づいたらみんな使ってたということになるかも。
2021/03/09(火) 23:06:36.57ID:E3PmhGqz
rustで書かれた有名なもの…rustかな?
792デフォルトの名無しさん
垢版 |
2021/03/11(木) 12:01:52.44ID:Y/wb0v0V
Rustが使ってるLLVMってC++製なんだ
2021/03/11(木) 12:11:40.89ID:88YcySCa
ダメじゃん
根幹がC++
C++にタマタマ握られてる
2021/03/11(木) 14:41:42.94ID:L0vKEaLv
C++ の資産を (ほぼ) 一方的に利用しているのもそれはそれで気分いいじゃん?
2021/03/11(木) 14:49:39.38ID:wgd6SgIa
同じ目的のために作られた道具として既存のものに取って替われないのは不名誉しかない
2021/03/11(木) 15:10:09.87ID:UCScJ1K4
>>782
ripgrep
2021/03/11(木) 15:32:57.89ID:dn2xUnIJ
アホな人相手にしてると自分もだんだんアホになるよ
2021/03/11(木) 16:11:55.93ID:ndX1jvez
新紙幣発行したその日にすべての旧紙幣を使えなくすべきって主張する人?
2021/03/11(木) 16:44:26.00ID:uvX65qSE
LLVMをrustで書き換えた日こそ天下か?いやいやOSのカーネルこそ
800デフォルトの名無しさん
垢版 |
2021/03/11(木) 19:03:39.84ID:21294wFC
Runuxはよ
2021/03/11(木) 19:19:34.73ID:aZ7HXs2o
相変わらずしょーもない妄想にふけるやつしかおらんな
2021/03/11(木) 23:57:00.49ID:ZRdHs705
Rustにいわゆるクラス変数みたいなものってないんですか?
2021/03/12(金) 00:04:34.96ID:0cefU6Fx
リーナス「オブジェクト指向のたわごとを持ち込むならRustの評価見直すぞ」
2021/03/12(金) 01:07:04.26ID:1OUd5zSC
>>802
ありますけど、mutable static変数なんて扱いづらいだけですよ?
2021/03/12(金) 01:23:52.52ID:U+iRPjP4
staticはクラス変数とは違うような
2021/03/12(金) 03:18:16.54ID:ByeOJ4Y7
Rust は色んなものをモジュール単位にしているような印象がある。
構造体のフィールドへのアクセスもモジュール内では制限がなくて、
モジュールの外に対して可視性を制御する仕組みになってるわけだし。
型の単位ではプライベートとパブリックを分ける気がない。

考え方次第ではあるけどスコープ管理の「雰囲気」からすると
C++ のクラスが Rust で言うところのモジュールに近いと言えなくもないんじゃね?
まあ前提が違うものについて無理やり共通点を見つけることにどれほど意味があるかわからんけど。
2021/03/12(金) 10:21:25.50ID:3fdjVE8p
>>802
定数でよければ associated constant が使える
変数にしたいなら >>804 の言うように static 使うしかなさそう
2021/03/12(金) 12:26:55.76ID:J+ar7EHR
Dropboxは何のGUIライブラリで作られているのかわかりますか?
2021/03/12(金) 16:33:37.37ID:qQge26zC
>>808
rustで書き直したのはサービス側と同期エンジンじゃないかな?
810デフォルトの名無しさん
垢版 |
2021/03/12(金) 18:45:06.86ID:kTC1PKHO
Rustって何で構造体のメモリーレイアウトをデフォルトでは勝手に並び替えるんだ?まじやめて欲しい
サイズを小さくする為?それとの他の理由があんのか?明示的だと言いながら余計な事ばかりすんなや
2021/03/12(金) 20:33:09.00ID:jgkfYeWQ
老害乙
2021/03/12(金) 20:59:59.44ID:Y+hYjm0T
構造体の並び順はメモリーアライメントで苦労したこと無い人の意見だな。
2021/03/12(金) 21:41:21.91ID:1OUd5zSC
>>810
#[repr(C)]付けないで文句言ってるならお前のせいやで?
2021/03/12(金) 22:08:58.65ID:TCjnSuLT
>>807
>>804

サンクス
あんまり使わない方が良さげだなあ
設計変えた方が良さそうだ
815デフォルトの名無しさん
垢版 |
2021/03/12(金) 23:34:08.62ID:9XEGWpCC
今時プラットフォームに依存する構造体のメモリーレイアウトを前提としたコードは書いちゃダメよ
2021/03/13(土) 00:40:30.95ID:PGOVIZdP
>>814
クラス変数って要はグローバル変数だから濫用すべきではないよ
2021/03/13(土) 15:49:02.94ID:GoEo1qHE
>>815
アセンブラと連携したい時には問題となりそう。
また、順序が書いたとおりの方が、色々と効率よいコードが書ける場合がある。
2021/03/13(土) 16:03:49.74ID:DC1SOqVQ
>>817
>>813
2021/03/13(土) 17:29:01.78ID:eNr110Cx
>>817
具体例は?
Ord::cmpがmemcmpだけでできるとか?
2021/03/13(土) 18:01:56.32ID:JM8M9JoF
選択可能なんだからどうでもいい
https://doc.rust-lang.org/nomicon/repr-rust.html
2021/03/13(土) 20:55:02.47ID:yJisos8z
>>817
コンパイラが十分賢くなったときに様々な最適化を自動で出来るようにする余地を残すため
デフォルトでメモリレイアウトを保証しないって設計になってるんだけど
自分で最適化する場合はコンパイラの最適化を抑止するってのはrustに限らずよくある話だしなにが不満なのかよくわからない
2021/03/13(土) 22:01:36.30ID:aUdFS8U8
>>810
明示的じゃん。
明示的に並べ替えを禁止する指定があるじゃん。
ほとんどの場合に順序はどうでもいいんだから、
どちらがデフォルトであるべきなのかなんて自明だろ。

条件付きだが C++ もデータメンバの順序を並び替えることは (言語仕様上は) 有りうるし、
並べ替えて良いと規定されているときに並べ替えを抑止するような指定方法はない。
(処理系の拡張としては有ったりするかもしれんが。)

Rust のほうがマシ。

現在の Rust は言語仕様と処理系の仕様の区別が曖昧なので repr が
(今後現れるかもしれない) 他の処理系でも使えるポータブルな機能なのかわからんけど。
2021/03/13(土) 23:34:45.90ID:+sWre9Lj
フランスのデータセンターの火災で『Rust』はデータの大規模なロストが発生
2021/03/13(土) 23:53:02.21ID:+sWre9Lj
なんか
struct Foo {
  int m_a;
  bool m_b;
  int m_c;
  bool m_d;
};
とかあったら
struct Foo {
  int m_a;
  int m_c;
  bool m_b;
  bool m_d;
};
にしたい衝動に駆られてストレスmaxなのでどうでもいい話ではない
2021/03/14(日) 00:49:22.71ID:Atf6A86o
>>824
LP64ならどっちもサイズ同じじゃん
2021/03/14(日) 04:01:46.70ID:n3ZlR2nQ
構造体定義するときc++だとアライメントずれないように手作業でダミーのデーター詰めたりしてたけど、途中で型変えると並び替えメンドクサイ。自動で最適化してくれる方がいいし、どっちも選択出来るのだからRustの方が正しいわ。
2021/03/14(日) 05:38:07.85ID:oMOPVtdk
>>825
https://ideone.com/7DbqpX
2021/03/14(日) 08:27:15.60ID:8bm6cw7M
>>826
ビット単位で詰めるからな。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況