Mozilla発のプログラミング言語「Rust」のスレです
■公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
■ワッチョイ
スレ建て時、一行目に
!extend:on:vvvvv:1000:512
を入れること
■派生元スレ
プログラミング言語 Rust 4
https://mevius.5ch.net/test/read.cgi/tech/1507970294/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
プログラミング言語 Rust 4【ワッチョイ】
1デフォルトの名無しさん (ワッチョイ 83b3-KDL3)
2017/12/24(日) 18:27:01.98ID:EGydBhQv0147デフォルトの名無しさん (ワッチョイ 1fbe-BrdL)
2018/06/23(土) 20:45:08.63ID:MX9PBj5g0 Vec内のアイテムを複数条件やand or等をユーザに指定させてフィルタリングをしたいのですが
無理にでもSQL使うべきでしょうか
無理にでもSQL使うべきでしょうか
148デフォルトの名無しさん (ワッチョイ ffe8-7L08)
2018/06/23(土) 21:11:19.63ID:SR6K28vn0 ユーザってのはどういうレイヤの話をしてるの?もう少し具体的に書かないと意味不明
149デフォルトの名無しさん (ワッチョイ 7fd2-bPoN)
2018/06/24(日) 23:27:10.18ID:FVTH6Flp0 values.iter().filter(hoge).filter(fuga).filter(piyo)
フィルターを何度がけすると型がやばそう
フィルターを何度がけすると型がやばそう
150デフォルトの名無しさん (ワッチョイ 7fd2-bPoN)
2018/06/25(月) 00:28:41.79ID:TWt9PpKD0151デフォルトの名無しさん (ワッチョイ 1fb3-BrdL)
2018/06/25(月) 07:08:50.50ID:xxjb5DLL0 調べてみるとfiltersというクレートがありました
152デフォルトの名無しさん (ワッチョイ b123-/RMY)
2018/06/28(木) 08:09:41.33ID:t6K5m67F0 New Photon Release of Eclipse IDE Ships With Full Rust Support
https://www.eclipse.org/org/press-release/20180627_new-photon-release-of-eclipse-ide-ships-with-full-rust-support.php
https://www.eclipse.org/org/press-release/20180627_new-photon-release-of-eclipse-ide-ships-with-full-rust-support.php
153デフォルトの名無しさん (ワッチョイ 79b3-pBcm)
2018/07/01(日) 02:21:52.91ID:hOXxhpxn0 いやじゃ、いやじゃ、Eclipseなんぞ使いとうない
154デフォルトの名無しさん (ワッチョイ 82d2-dOiQ)
2018/07/01(日) 03:02:12.97ID:T78MqQu/0 みんなどんな環境で書いてるの?今はvscode使ってるんだけどrlsがあまりに不安定すぎてストレスが…
155デフォルトの名無しさん (ワッチョイ 6ee8-Fk5m)
2018/07/01(日) 06:22:17.39ID:3lsiwbVs0 vscodeだよ
racerも不安定だったような
racerも不安定だったような
156デフォルトの名無しさん (ワッチョイ 0d2d-IuOd)
2018/07/01(日) 09:29:47.37ID:61/yGhxs0 emacs + flycheck
racerは重すぎるんでOFFにしてる
racerは重すぎるんでOFFにしてる
157デフォルトの名無しさん (アウウィフ FF85-mzC7)
2018/07/01(日) 15:40:20.37ID:ep584YMHF 秀丸
158デフォルトの名無しさん (ワッチョイ 79b3-HrKv)
2018/07/01(日) 18:12:28.40ID:VIP13YQk0 禿丸ってなに?
159デフォルトの名無しさん (ワッチョイ 6ee8-Fk5m)
2018/07/01(日) 19:19:06.36ID:3lsiwbVs0 こっちまでネタスレかよ
160デフォルトの名無しさん (ブーイモ MM22-Unb+)
2018/07/03(火) 18:54:31.94ID:A246qspJM161デフォルトの名無しさん (ワッチョイ 45fa-2e90)
2018/07/04(水) 21:50:46.22ID:gFgZc5FG0 5PW
162デフォルトの名無しさん (ブーイモ MM2b-0Xn2)
2018/07/05(木) 00:59:18.40ID:lJi2a9VDM おーい、hgmr
163デフォルトの名無しさん (アメ MM5b-Ip0i)
2018/07/28(土) 09:13:36.59ID:pjkfXvHGM hnmr王子〜♪
164デフォルトの名無しさん (ワッチョイ 12d5-YWSl)
2018/07/29(日) 02:13:01.57ID:QHCaZ13N0 まさか繋いでくれる人がいるとは思わなかった
165デフォルトの名無しさん (ブーイモ MM5b-Hl5m)
2018/07/31(火) 16:45:34.48ID:0aJU5h1JM 花村てなんや
オーバーウォッチか
オーバーウォッチか
166デフォルトの名無しさん (アメ MM67-tZ6u)
2018/08/05(日) 20:37:41.10ID:XPCi/u53M167デフォルトの名無しさん (ワッチョイ d75f-8s6k)
2020/11/25(水) 00:47:44.38ID:lt8VNqOR0 るすと
168デフォルトの名無しさん (ワッチョイ dfad-VZQ6)
2022/05/03(火) 15:19:34.90ID:FP7f4hyR0 Rの発音が難しい
169デフォルトの名無しさん (テテンテンテン MM73-rSKY)
2022/08/07(日) 14:18:50.38ID:Xv2x2xOXM うんこすレッド
170デフォルトの名無しさん (ワッチョイ 7501-zStA)
2022/11/13(日) 22:46:23.74ID:gb51z1Py0 日本語の発音ってかイントネーションはみんなどっち?
ラスト(ミファファ=スタバ)
ラスト(ミドド=ベスト(着る方))
ラスト(ミファファ=スタバ)
ラスト(ミドド=ベスト(着る方))
171デフォルトの名無しさん (ブーイモ MM4b-Yt0T)
2022/11/16(水) 18:15:29.98ID:QMFF+6AxM 1オクターブ上のドでミドド
172デフォルトの名無しさん (ワッチョイ 1f5f-MR5z)
2022/12/18(日) 17:46:12.72ID:fqk1SiW30 本スレ最近ひどいね
age
age
173デフォルトの名無しさん (ワッチョイ d3c9-tb1I)
2023/01/09(月) 20:41:28.12ID:XnWHdmBW0 Rustの型って何を言ってるのか良う分からないくらい一気に複雑になるんだけど、改善の兆しってある?
filter(|x| ...).map.(|x| ...)ってやると戻り値がMap<Filter<...>>みたいに、情報量がほぼ増えないのに型の表記だけが増えてくのが見づらくてしゃあないんだが
「ここを関数に切り出しておきたい」ってのも難しくね?
impl Traitあるだろって言われるけど、自分ひとりでできた試しが無い
filter(|x| ...).map.(|x| ...)ってやると戻り値がMap<Filter<...>>みたいに、情報量がほぼ増えないのに型の表記だけが増えてくのが見づらくてしゃあないんだが
「ここを関数に切り出しておきたい」ってのも難しくね?
impl Traitあるだろって言われるけど、自分ひとりでできた試しが無い
174デフォルトの名無しさん (ワッチョイ 1301-nt2E)
2023/01/09(月) 22:31:09.52ID:ZXgjuOo50 >>173
.filter(|x| ...).map.(|x| …)とやったら
ざっくり言うと戻り値はIterator<Item=T>でowned, shared reference, mutable referenceの3種類
Map<Filter<...>>とかの詳細な型を知りたいと思うことは基本ないからそこまで困らない
デコレータとかコンポジション的なものとして理解しとけばいいと思う
関数に切り出すのはGC言語と比べると難しい
どの値の所有権をどの呼び出しレイヤーで保持すべきかを整理しながらリファクタリングする必要がある
ただある程度パターンがあるからそれが理解できるとそこまで難しくはない
.filter(|x| ...).map.(|x| …)とやったら
ざっくり言うと戻り値はIterator<Item=T>でowned, shared reference, mutable referenceの3種類
Map<Filter<...>>とかの詳細な型を知りたいと思うことは基本ないからそこまで困らない
デコレータとかコンポジション的なものとして理解しとけばいいと思う
関数に切り出すのはGC言語と比べると難しい
どの値の所有権をどの呼び出しレイヤーで保持すべきかを整理しながらリファクタリングする必要がある
ただある程度パターンがあるからそれが理解できるとそこまで難しくはない
175デフォルトの名無しさん (ワッチョイ d3c9-c71v)
2023/01/11(水) 20:45:10.66ID:+OHiCBbi0 >>174
標準ライブラリでiteratorのメソッドならそうなんだろうな、って他言語でも溜め込んだ知識で何とかなるけどさ、
例えばwarpっていうWebフレームワークはリクエストの解決にfilterを使ってるんだけど、
https://docs.rs/warp/latest/warp/filters/index.html
↑ここからたどって、例えばリクエストのパスにマッチするフィルタを作成するwarp::filters::pathってのがあるんだけど、
こいつの戻り値が独自型のExactってやつなのね
warp作ってる人はここに様々な条件を追加できるようにしているんだけど、pathの戻り値にどう組み合わせられるかってのをどう探せるんだろっていつもなってる
他のcrateも、単機能で目的果たせるライブラリならまだいいけど、高階関数で機能組み合わせてねってやつはrustdoc見ても意味が分からなくなってる
標準ライブラリでiteratorのメソッドならそうなんだろうな、って他言語でも溜め込んだ知識で何とかなるけどさ、
例えばwarpっていうWebフレームワークはリクエストの解決にfilterを使ってるんだけど、
https://docs.rs/warp/latest/warp/filters/index.html
↑ここからたどって、例えばリクエストのパスにマッチするフィルタを作成するwarp::filters::pathってのがあるんだけど、
こいつの戻り値が独自型のExactってやつなのね
warp作ってる人はここに様々な条件を追加できるようにしているんだけど、pathの戻り値にどう組み合わせられるかってのをどう探せるんだろっていつもなってる
他のcrateも、単機能で目的果たせるライブラリならまだいいけど、高階関数で機能組み合わせてねってやつはrustdoc見ても意味が分からなくなってる
176デフォルトの名無しさん (ワッチョイ 1301-nt2E)
2023/01/11(水) 23:31:54.91ID:B6T7GQUU0 >>175
ExactがFilterだと分かれば別のFilterを組み合わせられることはわかるでしょ?
warpのFilterシステムを理解させるための解説ドキュメントが不足してるのと
他で類似の仕組みをあまり経験したことがないのが理由なんじゃないのかな?
型が入れ子の形でチェインされてる状態に慣れてないから
それがわかりにくさの原因のように感じるかもしれないけど
JavaやgoのReader/Writerみたいにデコレータ的に型を重ねていくのはそんな特殊なことじゃないよ
ExactがFilterだと分かれば別のFilterを組み合わせられることはわかるでしょ?
warpのFilterシステムを理解させるための解説ドキュメントが不足してるのと
他で類似の仕組みをあまり経験したことがないのが理由なんじゃないのかな?
型が入れ子の形でチェインされてる状態に慣れてないから
それがわかりにくさの原因のように感じるかもしれないけど
JavaやgoのReader/Writerみたいにデコレータ的に型を重ねていくのはそんな特殊なことじゃないよ
177デフォルトの名無しさん (ワッチョイ 119b-EcXc)
2023/01/12(木) 07:36:35.15ID:fjq3kaV70 iterator系の処理はどんな言語でもやりすぎると意味不明なんでいい単位で説明変数や関数に切り出すのは大事だよ。
178デフォルトの名無しさん (ワッチョイ dbda-xq+Q)
2023/01/12(木) 10:57:06.97ID:yHqsf2Vi0 関数単位で切り出す場合はimpl TraitやBox<dyn Trait>使った方が良いと思う
実装の詳細が型として露出してしまうのはよろしくないし
何より長い型を書き下すのはめんどくさい
実装の詳細が型として露出してしまうのはよろしくないし
何より長い型を書き下すのはめんどくさい
179デフォルトの名無しさん (ワッチョイ d3c9-tb1I)
2023/01/13(金) 00:49:21.00ID:Eg8x4Zf+0 >>176 いやExactがFilterかどうかが分からないんだ。自信が無い
https://docs.rs/warp/latest/warp/filters/path/struct.Exact.html
https://docs.rs/warp/latest/warp/trait.Filter.html
↑2つを見ても、ExactがFilterをimplしているとは書いてないんだ
知ってたらマジで教えてほしいんだが、どこ見ればいいの?
>>178 そう思うのは人情だが、じゃあどういう型の関数にすればいいのかって話
ググらずに分かる?俺は分からなかった
https://docs.rs/warp/latest/warp/filters/path/struct.Exact.html
https://docs.rs/warp/latest/warp/trait.Filter.html
↑2つを見ても、ExactがFilterをimplしているとは書いてないんだ
知ってたらマジで教えてほしいんだが、どこ見ればいいの?
>>178 そう思うのは人情だが、じゃあどういう型の関数にすればいいのかって話
ググらずに分かる?俺は分からなかった
180デフォルトの名無しさん (ワッチョイ 795f-H4iZ)
2023/01/13(金) 01:52:07.98ID:USdCnak/0 >>179
非公開の(だけど実装が漏れている)FilterBaseトレイトを介してFilterを実装してるんだね……
FilterBaseが公開されていればExactのblanket implementationsに出てくるはず
同じことは指摘されているが放置されている模様
https://github.com/seanmonstar/warp/issues/742
非公開の(だけど実装が漏れている)FilterBaseトレイトを介してFilterを実装してるんだね……
FilterBaseが公開されていればExactのblanket implementationsに出てくるはず
同じことは指摘されているが放置されている模様
https://github.com/seanmonstar/warp/issues/742
181デフォルトの名無しさん (ワッチョイ d3c9-RZrR)
2023/01/13(金) 20:16:02.99ID:Eg8x4Zf+0 もしかして特段に分かりづらい構造だったのかWarp
182デフォルトの名無しさん (ワッチョイ 1301-nt2E)
2023/01/13(金) 21:03:44.68ID:4YqzJ2Gc0 Sealed TraitっていうユーザーにTraitを実装させないための一般的なパターンなんだけど
privateなTraitはドキュメントには現れないのでExactがFilterBaseを実装してることを確かめたければソースを見るしかない
でも関数や構造体の説明にFilterだよって書いてるんだからまずはそこからじゃないか?
path()「Create an exact match path segment Filter.」
Exact「A Filter matching an exact path segment.」
privateなTraitはドキュメントには現れないのでExactがFilterBaseを実装してることを確かめたければソースを見るしかない
でも関数や構造体の説明にFilterだよって書いてるんだからまずはそこからじゃないか?
path()「Create an exact match path segment Filter.」
Exact「A Filter matching an exact path segment.」
183デフォルトの名無しさん (ワッチョイ eac9-KPE0)
2023/01/14(土) 03:14:01.24ID:4QhVLL220 いや型の説明がコメントにしか無いかったら疑うのが基本じゃないか…?
説明にある通りの使い方はできるけど、何故そう使えるのか分からない、となった上での話
前にもちらっと書いたところもそうなんだけど、impl Filterを返す関数のシグネチャも独力だと分からなかったんだよ。もっと情報の少ないクレートでやる必要が出てきたら詰んじゃう
説明にある通りの使い方はできるけど、何故そう使えるのか分からない、となった上での話
前にもちらっと書いたところもそうなんだけど、impl Filterを返す関数のシグネチャも独力だと分からなかったんだよ。もっと情報の少ないクレートでやる必要が出てきたら詰んじゃう
184デフォルトの名無しさん (ワッチョイ 595f-qxpo)
2023/01/19(木) 13:09:59.92ID:CHvJHSS40 [T]と[T; N]があるように
strに対するSizedなstr<N>とかできんかね
strに対するSizedなstr<N>とかできんかね
185デフォルトの名無しさん (ワッチョイ a75f-+rQD)
2023/01/29(日) 03:46:54.24ID:qSgQK/Ke0 ttps://doc.rust-lang.org/beta/unstable-book/language-features/yeet-expr.html
名前の元ネタがよくわからん
名前の元ネタがよくわからん
186デフォルトの名無しさん (ワッチョイ db9b-kLGU)
2023/01/29(日) 04:28:40.21ID:iZgCgX3R0187デフォルトの名無しさん (ワッチョイ f6da-RqI+)
2023/01/29(日) 08:29:44.05ID:VTBemk9l0 意味合いとしては
> Yeet is a slang phrase meaning to throw with force
とのことらしい
https://internals.rust-lang.org/t/syntax-for-returning-early-with-an-error/14181
https://www.urbandictionary.com/define.php?term=Yeet
yeetの初出はここらしい
https://mobile.twitter.com/josh_triplett/status/1248658754976927750
命名に関するbikeshedを避けつつ機能を実験するために導入するみたいね
https://twitter.com/5chan_nel (5ch newer account)
> Yeet is a slang phrase meaning to throw with force
とのことらしい
https://internals.rust-lang.org/t/syntax-for-returning-early-with-an-error/14181
https://www.urbandictionary.com/define.php?term=Yeet
yeetの初出はここらしい
https://mobile.twitter.com/josh_triplett/status/1248658754976927750
命名に関するbikeshedを避けつつ機能を実験するために導入するみたいね
https://twitter.com/5chan_nel (5ch newer account)
188デフォルトの名無しさん (ワッチョイ 0f5f-xW4J)
2023/02/04(土) 16:11:28.39ID:4OrKEijd0189デフォルトの名無しさん (ドコグロ MM49-+MOc)
2023/02/26(日) 21:57:18.73ID:vJeOsMT8M 新スレとして再利用と聞いてage
190デフォルトの名無しさん (ワッチョイ 615f-+MOc)
2023/03/02(木) 01:57:12.70ID:9x7ptNRV0 ProviderとDemandってCOMのQueryInterface的な使い方もできるのかな
191デフォルトの名無しさん (ワッチョイ 715f-BZjt)
2023/03/07(火) 03:24:09.91ID:CjRtBzJ10 Bevy 0.10 is out now!
https://bevyengine.org/news/bevy-0-10/
https://bevyengine.org/news/bevy-0-10/
192デフォルトの名無しさん (ワッチョイ 715f-h7+G)
2023/03/10(金) 03:58:23.25ID:9+yNdzD90193デフォルトの名無しさん (ワッチョイ fbda-8+Io)
2023/03/10(金) 11:19:42.21ID:Rc7TQThZ0 cargoのsparse protocolは嬉しい
194デフォルトの名無しさん (テテンテンテン MMee-qnN+)
2023/03/15(水) 08:26:46.78ID:L9HRqQqHM Default alloc error handlerはLinus指摘の取り込みかな。
195デフォルトの名無しさん (ワッチョイ 4eda-Wvvr)
2023/03/15(水) 10:58:18.74ID:efRde3jV0 Linusの話は、メモリアロケーション失敗時にpanicするなという話だと思うけど、今回の変更とは全く関係ない
今回の変更でalloc crateがalloc_error_handlerのデフォルト実装を提供するようになった
新たに提供されたalloc_error_handlerはpanicする実装になっているので、メモリアロケーション失敗時にpanicになることは変わらない
単に、利用者がalloc_error_handlerを独自に実装する必要がなくなったというだけ
Linusの指摘に対しては、Box::try_newなどのアロケーション失敗を呼び出し元に通知するAPIを用意することで対応している
今回の変更でalloc crateがalloc_error_handlerのデフォルト実装を提供するようになった
新たに提供されたalloc_error_handlerはpanicする実装になっているので、メモリアロケーション失敗時にpanicになることは変わらない
単に、利用者がalloc_error_handlerを独自に実装する必要がなくなったというだけ
Linusの指摘に対しては、Box::try_newなどのアロケーション失敗を呼び出し元に通知するAPIを用意することで対応している
196デフォルトの名無しさん (テテンテンテン MMee-qnN+)
2023/03/15(水) 12:35:43.18ID:i0vzrjRpM197デフォルトの名無しさん (ワッチョイ 715f-SGwy)
2023/03/15(水) 13:35:50.81ID:jUGp7X9a0 Rust製の高速なwebpack互換バンドラ「Rspack」登場。現時点で5倍から10倍の性能向上
https://www.publickey1.jp/blog/23/rustwebpackrspack510.html
> Rust製の高速なバンドラとしては、webpackの主要な開発者がNext.jsに入社してwebpackの後継として開発している「Turbopack」もあります。
> 現時点ではまだwebpackが抜きん出た人気を得ていますが、現時点で主要な開発者が抜けてしまったwebpack後継の座を狙った競争が始まったといえそうです。
https://www.publickey1.jp/blog/23/rustwebpackrspack510.html
> Rust製の高速なバンドラとしては、webpackの主要な開発者がNext.jsに入社してwebpackの後継として開発している「Turbopack」もあります。
> 現時点ではまだwebpackが抜きん出た人気を得ていますが、現時点で主要な開発者が抜けてしまったwebpack後継の座を狙った競争が始まったといえそうです。
198デフォルトの名無しさん (ワッチョイ 4d23-/phF)
2023/03/26(日) 17:12:36.73ID:EfkiJTmm0199デフォルトの名無しさん (ワッチョイ e510-t3VU)
2023/03/27(月) 08:53:03.64ID:ZY+RQ7940 一度普及したソフトの作者自身が後継プロジェクトを立ち上げてもなぜかうまくいかない法則
200デフォルトの名無しさん (ワッチョイ 9901-3uzD)
2023/03/27(月) 09:40:06.58ID:AuSpH/AF0 Rust遅くね?
201デフォルトの名無しさん (ワンミングク MM92-WVM1)
2023/03/27(月) 10:40:29.19ID:jab4un3HM 速度遅くてもウケたプロダクトの動作速度上げたところで
現行をリプレイスする理由にならないからな
それにRustがいかに速かろうと今の時代ネックはIOである可能性が高いし
現行をリプレイスする理由にならないからな
それにRustがいかに速かろうと今の時代ネックはIOである可能性が高いし
202デフォルトの名無しさん (ワッチョイ ed9c-dC9y)
2023/03/27(月) 12:01:17.21ID:eSvQrfce0 >>200
詳しく見ていないけど、ロジックにボトルネックがあるのかもね。
詳しく見ていないけど、ロジックにボトルネックがあるのかもね。
203デフォルトの名無しさん (ワッチョイ c6da-/i8d)
2023/03/27(月) 16:02:39.08ID:IjV2Ctjk0 10倍のオーダーで速度差出るなら性能がリプレース理由になる場合も増えると思うよ
数分かかる処理が数秒で終わると快適さが全然違うだろうし
数分かかる処理が数秒で終わると快適さが全然違うだろうし
204デフォルトの名無しさん (ワッチョイ 453e-wSlO)
2023/03/27(月) 16:27:48.16ID:Fq2x4U//0 >>201
どうせ IO がネックだからってのは昔から言われてることだけど
クラウドサービスを前提にすると事情が違うと聞いたことがある。
レスポンスタイムにあまり差が無かったとしても課金は演算量 (CPU の使用量) に対して
だからなるべく効率的に実行できる言語を使ったほうが安く上がるんだとさ。
どうせ IO がネックだからってのは昔から言われてることだけど
クラウドサービスを前提にすると事情が違うと聞いたことがある。
レスポンスタイムにあまり差が無かったとしても課金は演算量 (CPU の使用量) に対して
だからなるべく効率的に実行できる言語を使ったほうが安く上がるんだとさ。
205デフォルトの名無しさん (アウアウウー Saa5-jS6D)
2023/03/27(月) 23:41:07.73ID:t8oeSgw5a Ruby on Rails 6 では、webpack が標準だったけど、
Rails 7 では、Import Maps で、CDN から直接インポートするように変わった。
脱webpack/node.js
ES2015 に対応していないブラウザ用に、バンドルする方法もある。
バンドラーは、esbuild, rollup, webpackの3つ
Rails 7 では、Import Maps で、CDN から直接インポートするように変わった。
脱webpack/node.js
ES2015 に対応していないブラウザ用に、バンドルする方法もある。
バンドラーは、esbuild, rollup, webpackの3つ
206デフォルトの名無しさん (ワッチョイ a75f-iKPJ)
2023/04/17(月) 10:02:11.42ID:Dh5lk+HW0 ドキュメントコメントを reStructuredText で書きたい
207デフォルトの名無しさん (ワッチョイ a95f-mr0i)
2023/04/24(月) 12:17:06.73ID:LQT8UQ2a0 let-else の else ブロックの中だけ rustfmt 効かなくて設定間違えたかと思ったら
フツーに未対応だった
https://github.com/rust-lang/rustfmt/issues/4914
フツーに未対応だった
https://github.com/rust-lang/rustfmt/issues/4914
208デフォルトの名無しさん (ブーイモ MM8e-sjlm)
2023/04/24(月) 18:39:33.31ID:75I/tfQdM let-elseは鬼っ子だから
改行位置決めるのも大変
改行位置決めるのも大変
209デフォルトの名無しさん (オイコラミネオ MMb5-+3Ti)
2023/04/24(月) 18:43:14.72ID:3hT7+QpVM 横から済みませんがが、
Rust で Vec に要素を追加した場合にメモリー不足になったかどうかを検出
するのはどうしたらよいんでしたっけ?
Rust で Vec に要素を追加した場合にメモリー不足になったかどうかを検出
するのはどうしたらよいんでしたっけ?
210デフォルトの名無しさん (ブーイモ MM8e-sjlm)
2023/04/24(月) 18:47:43.95ID:fDr9n68aM try_reserve
211デフォルトの名無しさん (オイコラミネオ MMb5-+3Ti)
2023/04/24(月) 18:53:28.63ID:3hT7+QpVM >>210
それは予め領域を確保しておく関数で、確保できなかった場合には、
Result<(), TryReserveError>
という戻り値を返す関数と言うことですか?
そして、関数呼び出しの直後に ? を書くと、エラー発生時にそこで
アプリをダウンさせると言うことですか?
それは予め領域を確保しておく関数で、確保できなかった場合には、
Result<(), TryReserveError>
という戻り値を返す関数と言うことですか?
そして、関数呼び出しの直後に ? を書くと、エラー発生時にそこで
アプリをダウンさせると言うことですか?
212デフォルトの名無しさん (オイコラミネオ MMb5-+3Ti)
2023/04/24(月) 19:00:53.57ID:3hT7+QpVM213デフォルトの名無しさん (ブーイモ MM0a-sjlm)
2023/04/24(月) 19:01:30.05ID:ELtZniCQM いろいろ違う
落としたいならpanicさせとけばいい
落としたいならpanicさせとけばいい
214デフォルトの名無しさん (ワッチョイ 1eda-2ihv)
2023/04/25(火) 00:44:30.70ID:hB6+7TeQ0 メモリ不足を検出した場合に何をしたいかで適切な対応は変わってくるけど、何をしたいの?
215デフォルトの名無しさん (オイコラミネオ MMb5-+3Ti)
2023/04/25(火) 01:46:37.95ID:ICFLZD9/M216デフォルトの名無しさん (オイコラミネオ MMb5-+3Ti)
2023/04/25(火) 01:47:29.28ID:ICFLZD9/M >>215
なお、Vecに追加する動作を行なった関数の中で処理をしたいです。
なお、Vecに追加する動作を行なった関数の中で処理をしたいです。
217デフォルトの名無しさん (ワッチョイ a95f-U0+R)
2023/04/25(火) 07:31:37.92ID:S/F8mIrU0 重要:
メモリ不足だからと言ってmallocが失敗するとは限らない
メモリ不足だからと言ってmallocが失敗するとは限らない
218デフォルトの名無しさん (ワッチョイ 2a3e-ASru)
2023/04/25(火) 09:38:35.21ID:ug7UW9j70 今の Linux カーネルだとアプリケーションからオーバーコミットを無効にすることは出来るようになってるぞ。
219デフォルトの名無しさん (ワッチョイ 1eda-2ihv)
2023/04/25(火) 10:43:39.39ID:hB6+7TeQ0 try_reserveの戻り値がErrだったら処理を実行するだけだよ
この説明で分からないならenumやResult型について勉強した方が良いよ
あとtry_reserveの失敗要因はメモリ不足だけじゃないけど、エラー種別はnightlyじゃないと取得できないみたいね
この説明で分からないならenumやResult型について勉強した方が良いよ
あとtry_reserveの失敗要因はメモリ不足だけじゃないけど、エラー種別はnightlyじゃないと取得できないみたいね
220デフォルトの名無しさん (ワッチョイ 375f-k3Rv)
2023/04/29(土) 19:47:07.81ID:OSQfAzE+0 RefMut <-> Ref にも Rc <-> Weak みたいな相互変換メソッドがあればいいのに
221デフォルトの名無しさん (ワッチョイ bfda-qKNM)
2023/04/30(日) 04:06:33.86ID:5bTJo9fJ0 >>220
RefCell自体を取り回して必要なところで都度RefやRefMutを作れば良いのでは
RefCell自体を取り回して必要なところで都度RefやRefMutを作れば良いのでは
222デフォルトの名無しさん (ワッチョイ 375f-k3Rv)
2023/04/30(日) 11:51:12.53ID:cNEEfLAb0223デフォルトの名無しさん (アウアウウー Sa1b-qKNM)
2023/04/30(日) 13:58:26.96ID:ZqZbVcjya >>222
RefやRefMutはMutexのGuardみたいなもんなんだから取り回す範囲は極力狭くするべきなんじゃね
RefやRefMutはMutexのGuardみたいなもんなんだから取り回す範囲は極力狭くするべきなんじゃね
224デフォルトの名無しさん (ワッチョイ 375f-k3Rv)
2023/05/03(水) 20:42:40.07ID:CZOik0F40 Rustにもこんなのあるんか……ええな
https://zenn.dev/kk/articles/20230213_creusot_intro
https://zenn.dev/kk/articles/20230213_creusot_intro
225デフォルトの名無しさん (ワッチョイ 335f-awLq)
2023/05/19(金) 17:46:12.04ID:vnYwlZ+00 Rust for Linux updates! More pin-init and refactoring! - YouTube
https://www.youtube.com/watch?v=jAanHvcuYtA
https://www.youtube.com/watch?v=jAanHvcuYtA
226デフォルトの名無しさん (ワッチョイ 7b5f-e8Lq)
2023/06/02(金) 02:43:27.18ID:w12tfZkT0 The RustConf Keynote Fiasco, explained
https://fasterthanli.me/articles/the-rustconf-keynote-fiasco-explained
一連の事件は結局不幸な伝言ゲームの結果だったということだろうか
https://fasterthanli.me/articles/the-rustconf-keynote-fiasco-explained
一連の事件は結局不幸な伝言ゲームの結果だったということだろうか
227デフォルトの名無しさん (ワッチョイ 7d5f-vCKA)
2023/06/04(日) 13:53:56.01ID:xOmzDhxR0 以前からCodeLLDBでたまに値がちゃんと表示されないことがあるなーと思ってたら再帰型が原因だったんですね
今ほとんど再帰でできてる部分触ってるせいで困ってる……
dbg!書けばいいだけではあるんだけど泥臭くて嫌だわね
https://github.com/vadimcn/codelldb/issues/605
今ほとんど再帰でできてる部分触ってるせいで困ってる……
dbg!書けばいいだけではあるんだけど泥臭くて嫌だわね
https://github.com/vadimcn/codelldb/issues/605
228デフォルトの名無しさん (ワッチョイ d336-IjPS)
2023/07/29(土) 22:43:04.08ID:nwVMjVJQ0 いつのまにかrust-specがマージされてる。まだ作業終わってないけど。
ttps://github.com/rust-lang/rfcs/pull/3355
ttps://github.com/rust-lang/rust/issues/113527
rustにもようやく仕様が。
ttps://github.com/rust-lang/rfcs/pull/3355
ttps://github.com/rust-lang/rust/issues/113527
rustにもようやく仕様が。
229デフォルトの名無しさん (ワッチョイ eada-0btC)
2023/07/30(日) 17:17:19.50ID:9Mwyt07S0 これから編集者雇うみたいだからまだまだ時間は掛かりそうだけど、前進だね
230デフォルトの名無しさん (ワッチョイ 0f5f-4nYy)
2023/08/10(木) 03:13:56.19ID:cXfKj1l90 Hugging FaceがPyTorch的なRust製フレームワークを作り始めたらしい
https://github.com/huggingface/candle
https://github.com/huggingface/candle
231デフォルトの名無しさん (ワッチョイ 275f-orer)
2023/08/16(水) 18:13:46.91ID:Wd6XOYTc0 >> https://mevius.5ch.net/test/read.cgi/tech/1692105879/16
rustupを使わないクロスコンパイル環境の構築方法あるらしいよ
https://users.rust-lang.org/t/how-to-add-cross-compile-target-for-offline-system-without-rustup/80811/4
大人しくrustup使っておけよとしか思わんが一応……
rustupを使わないクロスコンパイル環境の構築方法あるらしいよ
https://users.rust-lang.org/t/how-to-add-cross-compile-target-for-offline-system-without-rustup/80811/4
大人しくrustup使っておけよとしか思わんが一応……
232デフォルトの名無しさん (ワッチョイ bb36-3sKl)
2023/08/16(水) 19:50:14.01ID:e6GDzmE20 githubにrustupのソースコードあるから読めばいいよ。
233デフォルトの名無しさん (ワッチョイ 8b01-1ZN1)
2023/08/16(水) 23:13:21.01ID:1NDN9ysp0 >>231
サンキュ。試してみます
サンキュ。試してみます
234デフォルトの名無しさん (ワッチョイ f9a9-75c1)
2023/08/22(火) 03:24:00.61ID:Fec2bVY90 おおきに、感謝やで!
235デフォルトの名無しさん (ワッチョイ d95f-GBSa)
2023/08/30(水) 12:04:57.70ID:LqLNxSZ40 Debugを上位トレイトに持たないトレイトのオブジェクトをなんとかしてdbg!する方法は無いもんじゃろか
236デフォルトの名無しさん (ワッチョイ 3536-8/Q7)
2023/08/30(水) 15:40:36.29ID:lfrnRSB90 ない。基本的なトレイトを実装してないのはバグ。
237デフォルトの名無しさん (ワッチョイ 4ada-0cXD)
2023/08/30(水) 20:29:40.52ID:y+HDByBG0 参照をポインタにしてアドレスを表示してみるとか
238デフォルトの名無しさん (ワッチョイ 4ada-0cXD)
2023/08/30(水) 20:30:28.57ID:y+HDByBG0 構造体フィールドの中身を知りたいという事ならAnyを継承させてダウンキャストするかDebugを継承したtraitにするしかないね
239デフォルトの名無しさん (ワッチョイ b3bc-yE7J)
2023/09/12(火) 06:34:45.51ID:8vWycgZc0 アノ店、今日は休みやねんな
240デフォルトの名無しさん (ワッチョイ 0f36-8z3m)
2023/09/21(木) 01:15:23.63ID:d9SQw4Jt0 intellij rustからRustRoverギリギリ燃えてないな。プラグインもIDEAもバグが増えたのが懸念とか言われてるけど。
241デフォルトの名無しさん (ワッチョイ 0f01-w8tn)
2023/09/21(木) 23:43:40.50ID:2whQHU6y0 RustのコンパイルターゲットはTierで分けられているけど
x86_64-pc-windows-msvc ←Tier1
x86_64-unknown-none ←Tier2
この違いって何?
Tier1の条件を見るとすべてのテストに合格すること的な事が書いてあるしプラットフォームが不明の状態でそれは不可能はなず
組み込み向けなどの低レイヤー用途を想定したターゲットにTier1のものはなくすべてTier2以下になっている
もしこれが理由なら自分が書いたコードはTier1と同レベルに翻訳される(実行できなかったり実行結果が不正なコードは生成されない)事が
期待できるけどそう考えて問題ないのだろうか
x86_64-pc-windows-msvc ←Tier1
x86_64-unknown-none ←Tier2
この違いって何?
Tier1の条件を見るとすべてのテストに合格すること的な事が書いてあるしプラットフォームが不明の状態でそれは不可能はなず
組み込み向けなどの低レイヤー用途を想定したターゲットにTier1のものはなくすべてTier2以下になっている
もしこれが理由なら自分が書いたコードはTier1と同レベルに翻訳される(実行できなかったり実行結果が不正なコードは生成されない)事が
期待できるけどそう考えて問題ないのだろうか
242デフォルトの名無しさん (ワッチョイ 3fda-n7kY)
2023/09/22(金) 01:00:34.44ID:J+8eUZUM0 >>241
x86_64なら現実的にはほぼ動くとは思う
ただ、あくまでもrust側ではコンパイルが通ることしか確認してなくて、生成されたコードが正しく動作するかは未確認の状態
利用者側が動作確認をきちんとやる必要があるよ
x86_64なら現実的にはほぼ動くとは思う
ただ、あくまでもrust側ではコンパイルが通ることしか確認してなくて、生成されたコードが正しく動作するかは未確認の状態
利用者側が動作確認をきちんとやる必要があるよ
243デフォルトの名無しさん (ワッチョイ 0f01-w8tn)
2023/09/22(金) 02:06:03.04ID:/khf3L7K0 >>242
例えばベアメタル開発用などでOSとインターフェイスしないコードのみほしい場合
x86_64-pc-windows-msvc(x86_64-unknown-linux-gnuとかでも可)でスタティックリンクのライブラリとしてビルドしてカスタムリンク
x86_64-unknown-noneでビルド
の二択だと出力物の信頼性はどちらの方が高いのだろうか。どちらも適切なローダーを用意すれば動作するはず
特に低レイヤーの開発で翻訳不良があるとトラブルシュートが沼りやすいし、前者の方が有利なら
ゴミが付いたりビルドが複雑化するなどのデメリットを考慮しても検討する価値があるはず
例えばベアメタル開発用などでOSとインターフェイスしないコードのみほしい場合
x86_64-pc-windows-msvc(x86_64-unknown-linux-gnuとかでも可)でスタティックリンクのライブラリとしてビルドしてカスタムリンク
x86_64-unknown-noneでビルド
の二択だと出力物の信頼性はどちらの方が高いのだろうか。どちらも適切なローダーを用意すれば動作するはず
特に低レイヤーの開発で翻訳不良があるとトラブルシュートが沼りやすいし、前者の方が有利なら
ゴミが付いたりビルドが複雑化するなどのデメリットを考慮しても検討する価値があるはず
244デフォルトの名無しさん (ワッチョイ 0f36-8z3m)
2023/09/22(金) 04:58:40.40ID:B04DzdQA0 より正確にはtier2はwith/without Host Toolsに分かれる。
withの方はtarget環境扱いだけじゃなくてネイティブなhost toolsを使用して開発環境として使える。
*-*-none-*はベアメタル向けだからHost Toolsのサポートはない。
言い換えるとtier2 with Host Toolsはセルフホストできる。
Tier 1にもwith/withoutの分類があるけど事実上withoutの方がない。
これは今のところHost Toolsをサポートしてないtier 1が存在しないから。
だからビルド環境に指定したいならx86_64-unknown-none。
withの方はtarget環境扱いだけじゃなくてネイティブなhost toolsを使用して開発環境として使える。
*-*-none-*はベアメタル向けだからHost Toolsのサポートはない。
言い換えるとtier2 with Host Toolsはセルフホストできる。
Tier 1にもwith/withoutの分類があるけど事実上withoutの方がない。
これは今のところHost Toolsをサポートしてないtier 1が存在しないから。
だからビルド環境に指定したいならx86_64-unknown-none。
245デフォルトの名無しさん (ワッチョイ 0f01-w8tn)
2023/09/22(金) 23:10:21.93ID:/khf3L7K0 x86_64-unknown-noneが吐くコードをどのくらい信用して良いのかって話ね
Tier2=十分にテストされていない=不正命令例外を吐いたり意図しない演算結果になる可能性がある
とかだと開発に重大な影響が出るし勘弁してほしい。Tier1のターゲットならそんな可能性は無視できるはずだし
Tier2=十分にテストされていない=不正命令例外を吐いたり意図しない演算結果になる可能性がある
とかだと開発に重大な影響が出るし勘弁してほしい。Tier1のターゲットならそんな可能性は無視できるはずだし
246デフォルトの名無しさん (ワッチョイ 0ff8-fp56)
2023/09/22(金) 23:26:27.84ID:wn++FXk10 テスト云々はlibstdが主なんでは?
そもそもコード生成するのはLLVMなんだし機械語レベルじゃRust側のTierは関係ない気がする
そもそもコード生成するのはLLVMなんだし機械語レベルじゃRust側のTierは関係ない気がする
247デフォルトの名無しさん (ワッチョイ 0f01-w8tn)
2023/09/22(金) 23:47:16.64ID:/khf3L7K0 x86_64-unknown-noneがTier2の理由がstdのテストができないからならそれでいいんだけどね
Platform Supportを見ても
>x86_64-unknown-none * Freestanding/bare-metal x86_64, softfloat
としか書いていない。hardfloatが使えない?のはよくわからないが
Platform Supportを見ても
>x86_64-unknown-none * Freestanding/bare-metal x86_64, softfloat
としか書いていない。hardfloatが使えない?のはよくわからないが
レスを投稿する
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★9 [ぐれ★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 ★2 [ぐれ★]
- 【news23】小川彩佳アナ「ここまでの広がりになるということを、高市総理はどれだけ想像できていたんでしょうね」 日中問題特集で [冬月記者★]
- 「町中華」の“息切れ倒産”が増加 ブームにも支えられ職人技で踏ん張ってきたが… 大手チェーンは値上げでも絶好調 [ぐれ★]
- ㊗157円 [194819832]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- PC初心者でWindows使ってるけど、作業効率一番高いOSって何よ?カスタマイズ豊富なの [916950698]
- B型のハゲが一番ヤバイ
- 【疑問】国政選挙義務投票制議論ってなんで無いの?
- 昭和時代に時計につけてたカレンダーみたいなキーキャップが発売。FILCO [737440712]
