[表示 : 全て 最新50 1-99 101- 201- 301- 2ch.scのread.cgiへ]
Update time : 09/03 20:58 / Filesize : 75 KB / Number-of Response : 305
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミング言語 Rust 4【ワッチョイ】



1 名前:デフォルトの名無しさん [2017/12/24(日) 18:27:01.98 ID:EGydBhQv0.net]
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

2 名前:デフォルトの名無しさん mailto:sage [2017/12/24(日) 22:11:46.18 ID:Ye7s35LEa.net]
>>1

3 名前:デフォルトの名無しさん mailto:sage [2017/12/26(火) 19:52:11.75 ID:2mEdN5M00.net]
皆知ってるかもしれないけど、https://github.com/rust-unofficial/too-many-lists は良いね
公式のbookには無かった「自分で書いてみた時にハマる箇所と解決法」が丁寧に書いてあるんで、
特にプログラミング経験者でRust初学者には自信を持ってお勧めできる

4 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 07:28:12.89 ID:UvJKqKam0.net]
>>3
しらんかた
webのやつはみれなくなってるね

5 名前:デフォルトの名無しさん mailto:sage [2017/12/27(水) 10:23:26.96 ID:TP7XdM/O0.net]
製本?したものを上げてるサーバーが結構長いこと落ちてるね
1. cargo install mdbookでmdbookをインストール
2. git cloneで>>3のリポジトリを取ってくる
3. 取ってきたディレクトリでmdbookを実行
4. book/ にhtmlで製本されたものが出力される
ので、是非読んで欲しい。may not live longとかcannot moveとかで怒られまくってる人なら共感しながら読めるはず

6 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 09:45:01.64 ID:9pH3pf0PM.net]
アンチスレのほうが伸びてるやん
枯れ木も山の賑わい

7 名前:デフォルトの名無しさん mailto:sage [2018/01/09(火) 11:34:47.34 ID:mVHM72Ck0.net]
>>3
cglab.ca/%7Eabeinges/blah/too-many-lists/book/
読めるようになってるな。

8 名前:デフォルトの名無しさん [2018/01/12(金) 20:30:43.24 ID:r1exnGKH0.net]
教えてください

VecのDisplay::fmtをカスタマイズしたくて
type MyType<T> = (Vec<T>);

impl std::fmt::Display for MyType {

}

9 名前:デフォルトの名無しさん mailto:sage [2018/01/12(金) 20:43:39.15 ID:r1exnGKH0.net]
申し訳ありません 途中送信してしまいました
コードをplaygroundに移しました

https://play.rust-lang.org/?gist=10bd65d0bfaf8b5117399b18bd8eb0d2

VecのDisplay::fmtをカスタマイズしたくて上の様にMyTypeを作成したのですが
Vecのメソッド委譲するためのコードを手書きする作業が煩雑になって困っています

何か上手い回避策は無いでしょうか?

10 名前:デフォルトの名無しさん mailto:sage [2018/01/12(金) 21:23:37.23 ID:B4BnwQ220.net]
>>9
私も初心者で分からないですが最終的に何がしたいんでしょうか?



11 名前:9 mailto:sage [2018/01/12(金) 21:44:35.31 ID:r1exnGKH0.net]
>>10
レスどうもです
Vec(他標準 struct)のDisplay::fmt出力をカスタマイズしたいんです 例えば
・要素数が多い場合、最初の数個を出力して残りを省略するとか
・要素の出力が長くなる場合、適当なところで改行するとか
・インデントを受け付けてネストしてる場合は改行とインデントで整形するとか

その上でVecのインターフェースをそのまま使いたいんですが
>>9のように新規の構造体を作る場合 手書きで委譲せねばならず
どうにか上手く出来ないもんかな……と

12 名前:デフォルトの名無しさん mailto:sage [2018/01/12(金) 22:44:10.61 ID:B4BnwQ220.net]
>>11
その用途ならVecに別な名前のメソッドを直接implしちゃってそっち呼び出せばいいような気がしたんですが

println!("{}", v.my_fmt());

みたいに

13 名前:デフォルトの名無しさん mailto:sage [2018/01/12(金) 23:39:08.93 ID:XT/5sCZ8x.net]
>>9 https://play.rust-lang.org/?gist=eec6671ba201493eb61891447824b92f&version=stable

DerefとDerefMutを実装するといい。
↓にあるDeref Coarcionっていうコンパイラの機能で、x: MyType<T>に対し、&xが&MyType<T>とも&Vec<T>ともみなしてくれるようになる
https://doc.rust-lang.org/book/second-edition/ch15-02-deref.html#implicit-deref-coercions-with-functions-and-methods

更に追加でIntoとFromも簡単に実装できるから不自由は無くなるはず

14 名前:9 mailto:sage [2018/01/12(金) 23:49:12.53 ID:r1exnGKH0.net]
>>12
ごもっともです
self.0に委譲するマクロが上手く書けなかった経験があり
それに引きずられて本質を見失ってました
コードを整理していったらいけそうな感じになりました
https://play.rust-lang.org/?gist=960819f1fb1b5f9988a1c58cab2b1b9e&version=stable
ありがとうございます

>>13
ああ、なるほど
Derefは思い至ってませんでした メソッド委譲の解決になりそうで助かります
こちらもありがとうございます

15 名前:デフォルトの名無しさん mailto:sage [2018/01/13(土) 07:02:43.11 ID:PvY+igkm0.net]
なるほど

16 名前:デフォルトの名無しさん mailto:sage [2018/01/13(土) 10:23:49.57 ID:PvY+igkm0.net]
https://stackoverflow.com/questions/45086595/is-it-considered-a-bad-practice-to-implement-deref-for-newtypes

ぐぐったらこんな議論も。

17 名前:デフォルトの名無しさん mailto:sage [2018/01/13(土) 19:09:49.17 ID:zJNsIIn8x.net]
>>16の論旨は「MyType<T>は常にVec<T>として扱われても問題ないか?あるならDerefはおすすめしない」だと思うけど、
今回の場合はむしろMyType<T>は特別なことが無い限りVec<T>として使いたいんじゃないの?

18 名前:9 mailto:sage [2018/01/13(土) 20:15:02.44 ID:5hbvxbkG0.net]
>>16 読みました
見覚えのあるピンク玉はrust playgroundの中の人でした

「smart_ptrぐらいの同一性がある場合にはDerefが必要だけど
strにDeref<Taget = [u8]>が無いように
Derefだとやりすぎな場合もあるからdelegate構文欲しいよね」
ってなとこでしょうか
strの例は「替わりにas_bytesがあるよ」ということかなと

strとsliceとか他のライブラリを眺めた個人的な結論としては
has_aならAsRef、is_aならBorrowをimplして受ける関数で使い易くしておくのが
Rust的な落とし所なのかなーといった印象です
AsRef, Borrow, Derefの使い分けは宣言的にプログラマの裁量に任されてる感じ

よくよく考えれば自分のコードにもas_xxx, as_xxx_mutが散見されている現状なので
Mytypeにもas_vecを書けばそれでも良かったような気がします

>>17
自分のケースの場合はそもそもMyTypeがいらなくなってしまったもので
Derefはオーバーパワーかなと思ってます
とはいえ smart_ptrのように扱うならDerefが有用ということが
知見として学べたので 大変ありがたかったです

19 名前:デフォルトの名無しさん mailto:sage [2018/01/14(日) 07:18:07.14 ID:oPMCDJ2h0.net]
>>17
このスレを読んでる人に情報共有してるだけだよ

20 名前:デフォルトの名無しさん mailto:sage [2018/01/14(日) 15:21:10.36 ID:oPMCDJ2h0.net]
元スレやばいね



21 名前:デフォルトの名無しさん mailto:sage [2018/01/18(木) 23:48:10.50 ID:HIA6V+PM0.net]
オライリー届いた。
分厚すぎてわろたわ。読むの大変そう。

22 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 13:41:23.22 ID:P6u1lvxj0.net]
dyn Traitが入ってしばらくしたらBox<Trait>はdisconになるの?

23 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 14:45:47.97 ID:gyvOdhISa.net]
deprecated扱いになって警告を出し次のepochで削除とかだったと思う

24 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 17:30:10.02 ID:P6u1lvxj0.net]
impl Trait入ったらそもそもほとんど使わなくなるから気にしなくていいのか。

25 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 17:48:02.51 ID:gyvOdhISa.net]
使うケース減るのもそうだけどepochで機能削除する場合はソースコードの変換ツールが提供されるらしい
あと古いepochのソースはそのままコンパイルできるらしいから特に対応不要らしい
だから新しいepochにしか入っていない機能を使いたいcrateとかでなければ何もしなくても困らないはずだし
その場合でも変換ツール通せば簡単に対応できるはず

26 名前:デフォルトの名無しさん mailto:sage [2018/01/29(月) 21:18:10.28 ID:ltX/HOsy0.net]
なるほど

27 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 12:10:20.24 ID:/dPh0x6ka.net]
2018年のロードマップのRFC出てる
https://github.com/rust-lang/rfcs/pull/2314
impl Traitついに安定化されるのか

28 名前:デフォルトの名無しさん mailto:sage [2018/01/31(水) 19:12:32.86 ID:hEoUgsMbM.net]
epoch releaseってのはどういうことなんだってばよ?

29 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 00:05:25.67 ID:VmMujkXk0.net]
map: BTreeMap<K,V>で、keyが無かったら挿入、あったら格納されてる値vに応じて新しい値new_vに更新するか決めるってやりたいんだけど、
let v = map.entry(key).or_insert(new_v);
if ... {
*v = new_v;
}
よりもっと綺麗な書き方ある?

30 名前:デフォルトの名無しさん mailto:sage [2018/02/04(日) 01:05:26.32 ID:qOX3lZ+s0.net]
and_modify() ?



31 名前:デフォルトの名無しさん mailto:sage [2018/02/06(火) 16:05:20.14 ID:95WYpRcW0.net]
https://webassembly.studio/

CやRustでWebAssemblyできるOnlineIDEだそうな

32 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 00:06:02.34 ID:z0wRGtUY0.net]
Rust Never Sleeps: Community Grows, Eclipse-Based IDE Planned
https://adtmag.com/articles/2018/02/01/rust-grows.aspx

33 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 10:02:06.97 ID:tqZIcWxZM.net]
>>31
ええやん

34 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 10:05:39.88 ID:tqZIcWxZM.net]
>>32
eclipseはいらんなあ

35 名前:デフォルトの名無しさん mailto:sage [2018/02/07(水) 21:39:04.86 ID:HRWlDALX0.net]
オライリー本読んだ?

36 名前:デフォルトの名無しさん mailto:sage [2018/02/10(土) 17:28:13.69 ID:EA1ZzrT70.net]
wasmってまだプリミティブすぎて使い物にならないのかと思ってたけど wasm-bindgen すげえな
もうここまでできるのか

37 名前:デフォルトの名無しさん mailto:sage [2018/02/10(土) 18:48:11.24 ID:YRtNT72/0.net]
Rustすごい!

takahito takabayashiさんのツイート: "ファミコンのエミュレータをRust / WebAssembly で書き直した
https://twitter.com/tatakaba/status/961532612723511296

38 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 12:24:11.46 ID:4ugd2bUvF.net]
梅手伝い

39 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 19:13:38.83 ID:g6Vhygc80.net]
苦労して書き直しても全然パフォーマンス上がらないのな…
ぐうの音もでないほど効果があるユースケースってなんなんだ

40 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 21:38:29.65 ID:tHO1NU6P0.net]
アルゴリズムが変わらないならそう変わらんのじゃないか
他人のひどいコードならともかく、同じ人が小規模なプログラムを書き直す程度だと特に

C/C++からRustへ書き直して速度が上がったって話はあんま聞いたことが無い
速いネイティブライブラリを言語に組み込んでるJuliaとかなら、書き直すだけで速度上がったって話はちらほら
pythonだったらnumpy使った方が楽でいいとかも



41 名前:デフォルトの名無しさん mailto:sage [2018/02/12(月) 22:31:51.98 ID:g6Vhygc80.net]
いやだってjavascriptだぜ?アルゴリズムの問題か?

42 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 11:38:21.89 ID:L9OfLhwQ0.net]
リリースビルドしてないとか

43 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 13:55:22.76 ID:U6RMU7ria.net]
結局本スレどこ?

44 名前:デフォルトの名無しさん mailto:sage [2018/02/13(火) 14:01:02.73 ID:L9OfLhwQ0.net]
ここ

45 名前:デフォルトの名無しさん mailto:sage [2018/02/14(水) 10:32:44.85 ID:Sny1AUMZ0.net]
c++もそうだがコンパイラに機能を詰め込むってのがそもそも筋が悪い

46 名前:デフォルトの名無しさん [2018/02/14(水) 16:35:43.73 ID:wToAct7f0.net]
>>45
どういうこと?じゃあどうすればいいの?

47 名前:デフォルトの名無しさん mailto:sage [2018/02/14(水) 18:27:22.03 ID:KakS2s960.net]
asm!だよ

48 名前:デフォルトの名無しさん mailto:sage [2018/02/14(水) 19:14:50.70 ID:Sny1AUMZ0.net]
>>46
ライブラリ、もしくはツールに任せる。

49 名前:デフォルトの名無しさん [2018/02/15(木) 02:06:38.25 ID:mcN0VL7z0.net]
>>48
やっぱりちょっと分からないな。
RustやC++のどの辺がコンパイラに機能を詰め込んでると思うの?
ライブラリorツールに任せるってのもどの辺を任せたいのかな?
話がザックリし過ぎて言いたいことがよく分からないんだが。

50 名前:デフォルトの名無しさん mailto:sage [2018/02/15(木) 14:13:53.00 ID:exgu/6oKM.net]
プリプロセッサマクロのことかな?あとは型システムとかGCのことかな?ライブラリに任せるの意味がよくわからんが…



51 名前:デフォルトの名無しさん mailto:sage [2018/02/15(木) 17:01:00.96 ID:OS8rqPvzd.net]
C++はコンパイラの方もだけど標準ライブラリでの機能実現も相応に多くて結果ソースの記述が煩雑になっているのは既知の事実でしょう
ライブラリや実装に任せた結果APIの統一が取れなくなって結局細かな仕様策定を余儀なくされたSchemeを見ても銀の弾丸でない事は明らかだよね
それに出来る事を増やすという点においてライブラリは有用だけど変数の不変性や型システムのような制限をする事に関してはコンパイラによしなにしてもらうより他ないよ

52 名前:デフォルトの名無しさん mailto:sage [2018/02/16(金) 01:22:14.41 ID:W1XJdyx10.net]
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

53 名前:デフォルトの名無しさん mailto:sage [2018/02/16(金) 07:39:34.93 ID:455TYoTb0.net]
やっとstableでrustfmtできるようになったな

54 名前:デフォルトの名無しさん mailto:sage [2018/02/16(金) 11:54:10.92 ID:sOKjApWVa.net]
どうせ明日にはまたnightly限定になってるよ

55 名前:デフォルトの名無しさん mailto:sage [2018/02/16(金) 14:44:20.68 ID:o2oszjec0.net]
最近のアップデートつまんねえなあ

56 名前:デフォルトの名無しさん mailto:sage [2018/02/16(金) 15:41:33.96 ID:xYOe+Cvi0.net]
>>45は言語仕様の追加、更新が気に入らないんじゃないかな
try!の代わりに?なんて以ての外だ、みたいな?それ以外に思い付かなかったけど
1.0以前に@や~を削除してライブラリにぶん投げた辺りは希望通りな気がする

基本的に電池入りじゃないRustはライブラリやマクロの代わりの言語仕様の追加じゃなく
より効率的なバイナリを吐くための言語仕様の追加が多いイメージだけどなぁ、impl Traitとか

57 名前:デフォルトの名無しさん [2018/02/16(金) 17:59:54.40 ID:ItA0QsEV0.net]
>>56
あー、そういうこと。?記法は確かに若干違和感あったかもな。
でも実際、あれは便利なんだよなぁ。
File::open(path)?.read_to_string(&mut buf)?みたいに繋げられるから。
try!(try!(File::open(path)).read_to_string(&mut buf))は読みづらい。
かといって、
let mut file = try!(File::open(path));
try!(file.read_to_string(&mut buf))
みたいに2行に分けるのも面倒だし、無駄なローカル変数も出来れば避けたい。
結局、あれが妥当な判断だったと思うけど。
まぁ、stableにする必要あったのか?ってところで賛否両論あるかもね。

58 名前:デフォルトの名無しさん mailto:sage [2018/02/16(金) 19:47:30.32 ID:o2oszjec0.net]
box キーワードは何時 stable になるんだ?

59 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 11:13:34.80 ID:J1S1NncJ0.net]
boxキーワードはどういう時にうれしいのかがわからん

60 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 11:16:00.80 ID:kwPbHgTn0.net]
明らかに二行に分けた方が読みやすいわけだが。
新しい機能マンセー厨ってそういう感覚の狂いについて無自覚過ぎんだよね。



61 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 13:27:59.06 ID:Nh87YVhF0.net]
俺も違和感はあるけど、多くの人が賛意を出して採用されたんだから
>>60や俺の感覚が狂ってるんじゃね?自身の感覚の狂いって当然ながら無自覚過ぎんよ

boxは在り様の総意を取るの面倒だし、目下はBoxで運用できてるしで、いつまでもstableに来なさそう
ヒープを多用したい人には文法にあればありがたいんだろうけど、そもそもヒープが好まれんしのう

62 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 14:16:54.60 ID:+W6LcK0d0.net]
boxっていきなりヒープにメモリ確保されるのが保証されたりするんじゃないの?
今はコンパイラ次第じゃん

63 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 14:41:36.65 ID:IpKTSZVJ0.net]
ironって今メンテされてないのか
最近のweb FWはrocketの方が人気なんかな
nightly専用だからまだ手を付けてないんだけど

64 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 20:32:28.58 ID:QFQHB0DO0.net]
>>59
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/box-syntax-and-patterns.html
> このように書くことでパフォーマンスを犠牲にすることなく、柔軟性を確保することができます。

知らないの?

65 名前:デフォルトの名無しさん mailto:sage [2018/02/17(土) 23:42:00.44 ID:9NiO1PZdF.net]
それはInPlaceとかPlacerがあればよくてbox inはただのsyntax sugarでは

66 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 08:04:09.95 ID:SMMCMA600.net]
分解のほうは新しいの?

67 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 08:27:52.42 ID:5lvSpjte0.net]
分解の方がよほどsyntax sugarじゃないのかいな
NightlyのInPlace, Placer使わなくても、Stableの環境でmacro使って実現出来そう

68 名前:デフォルトの名無しさん mailto:sage [2018/02/18(日) 10:49:08.55 ID:/vdt0GUK0.net]
boxって名前はBox<T>以外に使う場面で綺麗に見えない
place <- exprは代入みたい

69 名前:デフォルトの名無しさん [2018/02/20(火) 18:44:44.84 ID:QamN8HfjM.net]
tokio-coreなくなるんか
一通り組み上がった後の悲しいニュース

70 名前:デフォルトの名無しさん mailto:sage [2018/02/20(火) 21:05:12.64 ID:n66ylLug0.net]
まじか、ちょっと辛いな
依存してるライブラリも結構あるよね



71 名前:デフォルトの名無しさん mailto:sage [2018/02/21(水) 00:49:13.91 ID:s9stOBAB0.net]
ワッチョイなしの方アンチが暴れてる

72 名前:デフォルトの名無しさん [2018/02/21(水) 00:56:09.93 ID:kjg0KAFU0.net]
tokio系列のやつってtokioとかtokio-coreとかtokio-ioとかtokio-protoとか複数あってよく分からんのよね
tokio-ioのリポジトリにはtokioに移動したからもう使うなって書いてあるし
tokio-coreは移動じゃなくて廃止予定って書いてある…
tokio-protoはそのまま?tokio-timerとかtokio-serviceとかよく知らんリポジトリもあるし…
誰か各クレートの特徴(役割)と関係性を教えてくれ

73 名前:デフォルトの名無しさん mailto:sage [2018/02/21(水) 19:02:38.89 ID:ariB2x93M.net]
>>71
あっちは、アンチが立てたキチガイ専用スレだからいいんだよ

74 名前:デフォルトの名無しさん [2018/02/21(水) 19:11:26.04 ID:2b1o4F67M.net]
コミットを追うとtokio-coreはtokioに変わったように見える
tokio-core=tokioでtokioの本体

tokio-ioはtokio-coreを使って非同期ioを実装したものだったがしゃらくせえのでtokio-coreに取り込んだのかな

tokio-protoはtokio-coreを使ってネットワークプロトコルを実装したものだったがしゃらくせえからtokio-coreに取り込んだのかな

つまり tokio = tokio-core + tokio-io + tokio-proto

か?

75 名前:デフォルトの名無しさん [2018/02/21(水) 23:28:42.27 ID:J5LO2Gvl0.net]
[] [[[ [[ [] ][ [] [ ] [] ][]] [[[ [] }

76 名前:デフォルトの名無しさん mailto:sage [2018/02/22(木) 13:48:53.41 ID:H839Tp+80.net]
tokio-protoとtokio-serviceってtrait宣言が主体のインターフェース定義クレートだったような?
前者はクライアント、後者はサーバに適したインターフェースが定義されてた覚えがある
io, timer, cpupoolなんかはユーティリティ機能が実装されてたよな

統合の基準はどこかで議論されたんだろうけど、どこでやってたのかな

77 名前:デフォルトの名無しさん mailto:sage [2018/02/28(水) 17:58:52.09 .net]
【お知らせ】Packt出版より Network Programming with Rust が発売されました。

78 名前:デフォルトの名無しさん [2018/03/07(水) 19:47:20.60 ID:LRCrToXv0.net]
https://play.rust-lang.org/?gist=cb511b34bc3ffbb43b8589a24156337a&version=stable
let mut foo = Foo{ a:0, b:0, c:0 };
let aaa = ["5", "432", "3"].iter().flat_map(|i| i.parse::<u32>()).collect::<Vec<_>>();
foo.a = aaa[0];
foo.b = aaa[1];
foo.c = aaa[2];

Rustってこれ以外に書き方ありませんか?
tupleでやってみるとleft-hand of expression not validと出ました

79 名前:デフォルトの名無しさん mailto:sage [2018/03/07(水) 20:33:15.97 ID:sBnyF32KM.net]
だめなコードはらないと何がしたいか分かりません

80 名前:デフォルトの名無しさん mailto:sage [2018/03/07(水) 20:41:08.80 ID:jzt3Aumo0.net]
だよなw 何をしたいのか分からんよなw



81 名前:デフォルトの名無しさん mailto:sage [2018/03/07(水) 21:26:04.44 ID:LRCrToXv0.net]
>>79
大量のフィールドに値を入れるのって
一行一行書くしかありませんか?

82 名前:デフォルトの名無しさん mailto:sage [2018/03/07(水) 21:29:17.37 ID:jzt3Aumo0.net]
一行にしたいなら
foo = Foo { a: aaa[0], b: aaa[1], c: aaa[2] };
でも良いだろ。
部分書換なら
foo = Foo { a: aaa[0], .. foo };
とかもある。

83 名前:デフォルトの名無しさん [2018/03/08(木) 01:34:04.75 ID:4NfI3sqt0.net]
1.24.1は何のリリース?

84 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 12:10:25.91 ID:eSLd4gfv0.net]
朗報: ついにウェブプラットフォームでRustが速度性能トップを取る
https://www.techempower.com/benchmarks/#section=data-r15&hw=ph&test=plaintext

なお、JSON操作を伴うとJavaにも劣る模様
ツリー制御が不得意すぎて笑うわ

85 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 13:43:13.82 ID:Q5vGc4iJ0.net]
JSON serializationはそんなに悪くないんじゃね?tokio-minihttpで96.2%出てる。
それよりSingle QueryとMultple Queryが遅いのが問題じゃね?

86 名前:デフォルトの名無しさん [2018/03/11(日) 17:59:47.19 ID:9uw0Jco60.net]
serdeでシリアライズだけするぶんにはjavaの1.4倍くらい早かったんだけどなあ(俺調べ)

87 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 21:44:59.24 ID:zUTKt+H50.net]
Rust book first editionからの変更知りたいんだけどバージョン差分どこでまとめられてる?

88 名前:デフォルトの名無しさん mailto:sage [2018/03/17(土) 21:47:17.89 ID:zUTKt+H50.net]
https://github.com/rust-lang/rust/blob/master/RELEASES.md
ここか

89 名前:デフォルトの名無しさん [2018/03/18(日) 07:04:56.79 ID:esGNO3D8M.net]
1.24.1てなんなんだろ

90 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 20:50:19.82 ID:M8FazHkP0.net]
>>83>>89
なんで自分で調べようともしないの?

Rust Languageさんのツイート: "Announcing Rust 1.24.1: we had some regressions in 1.24.0, so we've released a patch release. Please check it out! https://t.co/zrItc0qiqD"
https://twitter.com/rustlang/status/969367994072739841 👀
Rock54: Caution(BBR-MD5:b73a9cd27f0065c395082e3925dacf01)




91 名前:デフォルトの名無しさん [2018/03/18(日) 21:36:06.49 ID:kfSBwJmk0.net]
Iterator::mapに渡すクロージャ内で、クロージャ内の変数への参照を持つstructを返したい時ってどう対処するのが正解ですか?
https://play.rust-lang.org/?gist=a15e0dfa10339570fef5b9225761a9f0&version=stable

92 名前:デフォルトの名無しさん mailto:sage [2018/03/18(日) 23:09:22.36 ID:UNqGf23T0.net]
does not live longエラー関係は自分が思ってるより広い視点で見た方が解決するんじゃないかなあ
Hito.konomi_no_mochiは参照なんだから、参照元としてVec<Mochi<'a>>を保持しないと駄目なんじゃね?
=>mochiがMapになってて分かりにくい
=>とりあえずcollectさせてVec<Mochi>持ったら動いた
みたいな。
https://play.rust-lang.org/?gist=6c9947e3584f1feb5bb14f07d27aa9c7&version=stable
多分、頭の良い人ならもっと綺麗な説明と解法があるんだろうけど

93 名前:デフォルトの名無しさん mailto:sage [2018/03/19(月) 07:39:54.89 ID:bmK7HIBH0.net]
>>92
ありがとうございます
仮引数mのライフタイムはmain関数が抜けるまでだから通るということで合っていますか
またVecではなくIterator::Mapだと駄目な理由は、Iterator::Mapはcollectされるまでクロージャが実行されないから…とかでしょうか

94 名前:デフォルトの名無しさん mailto:sage [2018/03/19(月) 13:44:00.51 ID:aUxUFBJe0.net]
>>93
仮引数mのライフタイムはクロージャ内なのは変わらないよ。>>92は仮引数を参照じゃなく消費してるから通る(>>92の&mじゃなくてmで良い)
クロージャが実行されないから、ではなく、mochiの値が消費されてるのにその参照を持たせようとしてるから駄目
試しに>>91のコードでmochi.map(|m| { 0 })とか書いて、mochiをprintln!に渡してみようとすると怒られるよ。もう使ってるって。

そこらへんの細かいルールを覚えるの大変だし、コンパイラもまだ分かりやすいエラーメッセージ吐いてくれないから、
・参照を使うときは、参照元をちゃんと生かしておくこと
・参照を使った構造体は、元の値を修飾(見方を変える、新しい機能を持たせる等)するようなパターンに限定すること
を守るようにした方がいいよ

95 名前:デフォルトの名無しさん mailto:sage [2018/03/19(月) 21:04:17.46 ID:bmK7HIBH0.net]
>>94
「消費したものの参照を持たせるのは駄目」と「消費しているから通る」はそれぞれはわかる気がするのですが、両方となると…
前者の「消費したもの」と後者(main関数中生き続けるMochiのベクトル)は別物だと思うのですが、
前者で駄目な理由は関数中生き続けるMochiがない(mapを呼び出しただけでは駄目)ということですか?

96 名前:デフォルトの名無しさん mailto:sage [2018/03/19(月) 23:26:36.74 ID:aUxUFBJe0.net]
「消費されるので通る」じゃ言葉足らずでした。「参照じゃなくmoveして延命している」の方が通じるかも

>>91のコードを整理すると
1. HitoはMochiの参照を持ってるから、Hitoが有効なスコープ中はMochiも有効じゃないといけない
2. mochiはinto_iterで作られてるからMochi型を吐き出す、けど所有はしない
3. なのにmochizukiはmochi.map()で各要素への参照しか持たない
4. mochiから吐き出されたMochiの受け皿が無いんでエラーになる

これを解決するには
1を変えてHitoがMochiを所有するようにデータ構造を変える
2で作られたMochi型の値をしっかり保持する変数を用意する
の2種類くらいしか思いつかん。
Does Not Live Longエラーはライフタイムがどうのこうのと小手先で弄るより、
値の所有者を明快にしたり、データ構造を見直してみると案外素直に直せるのが経験則。

97 名前:デフォルトの名無しさん mailto:sage [2018/03/20(火) 13:21:28.84 ID:RDB2KieC0.net]
>>96
loop{
let (a, cond): (&str, bool) = get_too_many_str();
let m = Mochi{aji: a};
let h = Hito {m : &m};
if(cond){ break; }
}
// ここでhのvecが欲しい

この場合は、ムーブする(ループより長いライフライムの)変数がないので1の手法しかないということになりますか?
そこそこでかい文字列を扱っているので気を使っていたのですが、この場合Stringにすべきでしょうか

98 名前:デフォルトの名無しさん mailto:sage [2018/03/20(火) 14:30:32.82 ID:UUyTwokV0.net]
大きい文字列を扱うから参照にしたいってのは普通にあるし分かるけど
Hitoが&MochiでなくMochiをメンバに持つようになっても文字列のコピーは行われないよ

自分なら>>97のget_too_many_str()が返す&strの元を誰が保持するのかをまず気にする
そこをしっかり把握してれば文字列のコピーは最低限になるはずだから

99 名前:デフォルトの名無しさん mailto:sage [2018/03/20(火) 16:38:27.06 ID:P+YmZBwi0.net]
>>97
んー、自分なら そこだけに使うMochiCow型作ってでも
ajiの型をCowにして凌ぐかな

100 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 11:43:51.64 ID:cBTkQiaM0.net]
&strの元もloop内の変数が持っています
hのvecを作るにはコピーは避けられないようですね…
&strからStringに変えたところhvec.push(h)してもエラーにはなりませんでしたが、
スコープを抜けたはずの変数が使える理由ってどこかに書いていますか?



101 名前:デフォルトの名無しさん mailto:sage [2018/03/21(水) 14:53:30.44 ID:9rI6JIRt0.net]
そりゃloop内の変数hから、loop外のhvecに所有権が移動したから

頭の中に入れておける物なんて極わずかだし、場当たり的にdoes not live longエラーに対処するのは大変なので、
・値の所有者はどの変数であるべきか
・データ構造はどうあるべきか
という観点だけ念頭にいれて、「性能を稼ぐために参照を使おう」って考えを一旦外すとスッキリするよ

102 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 17:27:59.27 ID:YDqAu+LL0.net]
こっちが本スレと聞いて

103 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 21:42:18.86 ID:eccSQZbu0.net]
しかしここには俺はいない

104 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 21:42:37.31 ID:eccSQZbu0.net]
まちがえた
俺しかいない

105 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 22:10:33.68 ID:33fSNzq50.net]
俺もいるぞ

106 名前:デフォルトの名無しさん [2018/04/15(日) 22:44:53.22 ID:UX4y5Mn1a.net]
てst

107 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 07:13:50.32 ID:pzKlDNeX0.net]
まともな話題はslackいっちゃうのかな。

匿名で喋りたいのはアンチ向きか

108 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 02:44:07.65 ID:kruQSPFC0.net]
別にアンチって訳じゃないけど、コンパイルが遅すぎる(特に最適化掛けた場合に)のはどうかと思う。
実行が速くてもその生成に時間が掛かれば無意味でしょう……。

109 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 05:31:20.68 ID:4Vs0GKvV0.net]
>>108
Rustで組んだ新Firefoxの動作が2倍ほど速くなったのは無意味?

110 名前:デフォルトの名無しさん [2018/05/08(火) 07:00:09.03 ID:EnN/pyur0.net]
逆なら理解できるけど



111 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 08:36:06.07 ID:Hy6hpXT/M.net]
まあコンパイルは遅いわな。
ていうかcargoの仕組みが問題なだけか?

112 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 20:14:50.84 ID:T0pMALEX0.net]
rustcで単一ファイルだけコンパイルすると結構速いなと思った
cargoって警告無視のオプション(-Awarning)の有無でも一からビルドしようとしたりちょくちょくお粗末

113 名前:デフォルトの名無しさん mailto:sage [2018/05/10(木) 20:35:06.28 ID:zLx1ZI770.net]
なんかRustってテスト用と製品用で別々の最適化を施せるんじゃなかったっけ。
俺は自分の為だけにRustを使ってるのであまり気にしたことがないが。

114 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 12:11:46.40 ID:OzyUIrxEM.net]
https://blog.rust-lang.org/2018/05/10/Rust-1.26.html

impl Trait来たから
久しぶりにさわってみるかな

115 名前:デフォルトの名無しさん [2018/05/23(水) 12:09:39.17 ID:6kVmIohDH.net]
ほとんどc++に見えるの俺だけ?

116 名前:デフォルトの名無しさん [2018/05/23(水) 12:29:18.87 ID:4/oN1Bt60.net]
みんな言ってる

117 名前:デフォルトの名無しさん [2018/05/23(水) 23:15:50.94 ID:Au5e7VGg0.net]
確実にどんな人でも可能なネットで稼げる情報とか
念のためにのせておきます
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

C717P

118 名前:デフォルトの名無しさん [2018/05/28(月) 09:59:15.77 ID:N9/pBFPWH.net]
rustを始めたんだけど
分かりそうで分からなくて
イライラする

なんだこの言語

119 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 11:01:04.58 ID:4ZqBL5Re0.net]
他の言語の経験にもよるけど 3000行ほど書けば慣れるよ(適当

120 名前:デフォルトの名無しさん [2018/05/28(月) 11:14:23.86 ID:N9/pBFPWH.net]
actix_webでちょちょいとwebサービス作ろうと思っただけなんだが

externとuseみたいに、なんで同じようなものが2つ有るのとか

trait?、インプリすればいいだけならなんでこんな名前なんだとか



121 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 11:44:10.53 ID:4ZqBL5Re0.net]
察するにJava経験者かね

externは外部ライブラリのモジュールを参照する宣言
modは自身のフォルダ以下のモジュールを参照する宣言
useはモジュールの要素(Struct or Trait)を取り込む宣言

pub use self::MyStruct; // 要素をexportしたり
use std::io::Error as IOError; // as で別名つけたり
use super::Result; // 上位の型を取り込んだり(mod.rs以外からだと同一フォルダのmod.rsを見にいくので注意)

肝はselfとsuperを使いこなすことかと
このあたりリファレンスに書いてあるんで落ち着いて読んでもらえばいいけど

インプリについては、Trait = Interface(Java)の理解でそれほど差し支えない気もするけど
(定数は同じ階層のmoduleに移す)
AssosiatedTypeがあるように"Traitはコンパイル時に解決できる"ものってのを
意識してればその内に腑に落ちるんじゃないかな

ただこんなこと言うと
「RustのTraitは厳密なtraitじゃない論争」(Wikipedia参照)が始まっちゃうかもしれないので
ゆるく受け流してほしいところ

122 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 12:36:48.84 ID:KX350+9ka.net]
extern/use周りをrefineする話ってどうなった?

123 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 13:07:18.00 ID:Yj33g/c2M.net]
>>122
一応2018の予定には入ってるけどまだ作業中じゃない?
https://rust-lang-nursery.github.io/edition-guide/2018/transitioning/modules/path-clarity.html

124 名前:デフォルトの名無しさん [2018/05/28(月) 14:35:19.27 ID:N9/pBFPWH.net]
チュートリアルの和訳のところを読んでいるけど
誰が訳したんだろう。。。

125 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 15:45:35.01 ID:AY4+K2YC0.net]
extern crateは、includeとかload libraryぐらいの意味だと思えばいいと思うが、
「え、それ、Cargo.tomlにもう書いたやん」って思うのは当然の感覚だな

126 名前:デフォルトの名無しさん [2018/05/28(月) 15:47:39.28 ID:N9/pBFPWH.net]
しばらくしたら言語仕様変わりそうだなあこれ
勉強していくべきなのかどうか迷う

127 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 16:38:01.86 ID:WepGeDn70.net]
仕様の改定はc++のようにコンパイラのリリースとは別に2〜3年毎に定めることになってる
将来のコンパイラでも古い仕様を選択して使えるはず

128 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 17:33:13.35 ID:dK7cJGyKa.net]
どんな言語でも利用者多ければライブラリーのトレンド変わっていって学び直しはあるし
言語仕様の変更だけ特別視する理由が分からん

129 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 18:01:33.70 ID:b/gKZOsn0.net]
ver1.0になったし、firefoxに200kstepのソースがあるから始めるなら今でしょ

130 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 21:33:55.19 ID:hIMCbSeD0.net]
ruby1.8から1.9とか
python2から3の変更とか
嫌じゃん

言語もライブラリも混在してぐちゃぐちゃ



131 名前: mailto:sage [2018/05/28(月) 22:15:42.81 ID:dVAXJXVu0.net]
>>124
和訳は最新に追いついていないと思います、公式英文を確認したほうがいい

132 名前:デフォルトの名無しさん mailto:sage [2018/05/28(月) 23:47:10.84 ID:cVR0FGXk0.net]
Rustの場合仕様変更の影響を受ける記述はコンパイラがwarning(とsuggestion)出してくれるみたいだし
むしろライブラリのアップデートより楽なんじゃないかな

133 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 08:16:58.71 ID:dnBokp3T0.net]
やりたいことをするのに1日使って50%しかできなかった

自分には無理だこの言語

134 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 08:53:39.83 ID:GEfewF+tM.net]
50%できればすごいって

135 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 07:30:04.93 ID:gpIIxUGF0.net]
1.26の新機能自分のcrateにもう入れた?

136 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 19:39:19.80 ID:RsiXZK4kM.net]
土台?

137 名前:デフォルトの名無しさん mailto:sage [2018/06/11(月) 19:45:35.17 ID:woYxJr3K0.net]
ここにまともなRustユーザいないのは年寄りしかいないからなのかなぁ

138 名前:デフォルトの名無しさん mailto:sage [2018/06/12(火) 00:28:40.74 ID:U7oXkFlj0.net]
slackかtwitterでコミュニケーションとれるので5chへ書き込みたい事情があまりない

139 名前: mailto:sage [2018/06/12(火) 00:34:57.69 ID:QT2PgMnm0.net]
>>138
おすすめのハッシュタグはなんでしょうか?

140 名前:デフォルトの名無しさん mailto:sage [2018/06/12(火) 08:25:35.49 ID:ESFTg/QrM.net]
そう言われてみると確かにない。



141 名前:デフォルトの名無しさん mailto:sage [2018/06/12(火) 09:41:15.21 ID:Sk+2Pu3l0.net]
もっとメジャーになってslackが荒れて来たらここもワンちゃん

142 名前:デフォルトの名無しさん mailto:sage [2018/06/12(火) 12:05:43.89 ID:QKuSZN5/a.net]
ハッシュタグというより界隈の人間フォローしてる

143 名前:デフォルトの名無しさん mailto:sage [2018/06/12(火) 19:39:13.56 ID:twlm3/XD0.net]
slackで発言できないアンチにしか存在価値がないのかぁ

144 名前:デフォルトの名無しさん mailto:sage [2018/06/12(火) 21:30:56.05 ID:d/RZ9PcJ0.net]
slackのどこで喋ってるの?さ

145 名前:デフォルトの名無しさん mailto:sage [2018/06/13(水) 07:40:50.77 ID:Iw3p0Ou70.net]
アンチに限らず匿名文化は一定数必要でしょう。

146 名前:デフォルトの名無しさん mailto:sage [2018/06/13(水) 13:01:46.22 ID:jLut3S1H0.net]
つまり変な人でもスレに繰るなら、山の賑わい人気の証ってことね

147 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 20:45:08.63 ID:MX9PBj5g0.net]
Vec内のアイテムを複数条件やand or等をユーザに指定させてフィルタリングをしたいのですが
無理にでもSQL使うべきでしょうか

148 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 21:11:19.63 ID:SR6K28vn0.net]
ユーザってのはどういうレイヤの話をしてるの?もう少し具体的に書かないと意味不明

149 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 23:27:10.18 ID:FVTH6Flp0.net]
values.iter().filter(hoge).filter(fuga).filter(piyo)
フィルターを何度がけすると型がやばそう

150 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 00:28:41.79 ID:TWt9PpKD0.net]
強引にやるのはやばい感じだね

https://ideone.com/3oy3FW



151 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 07:08:50.50 ID:xxjb5DLL0.net]
調べてみるとfiltersというクレートがありました

152 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 08:09:41.33 ID:t6K5m67F0.net]
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

153 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 02:21:52.91 ID:hOXxhpxn0.net]
いやじゃ、いやじゃ、Eclipseなんぞ使いとうない

154 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 03:02:12.97 ID:T78MqQu/0.net]
みんなどんな環境で書いてるの?今はvscode使ってるんだけどrlsがあまりに不安定すぎてストレスが…

155 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 06:22:17.39 ID:3lsiwbVs0.net]
vscodeだよ
racerも不安定だったような

156 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 09:29:47.37 ID:61/yGhxs0.net]
emacs + flycheck
racerは重すぎるんでOFFにしてる

157 名前:デフォルトの名無しさん [2018/07/01(日) 15:40:20.37 ID:ep584YMHF.net]
秀丸

158 名前:デフォルトの名無しさん [2018/07/01(日) 18:12:28.40 ID:VIP13YQk0.net]
禿丸ってなに?

159 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 19:19:06.36 ID:3lsiwbVs0.net]
こっちまでネタスレかよ

160 名前:デフォルトの名無しさん [2018/07/03(火) 18:54:31.94 ID:A246qspJM.net]
https://i.imgur.com/VVJNac4.jpg



161 名前:デフォルトの名無しさん [2018/07/04(水) 21:50:46.22 ID:gFgZc5FG0.net]
5PW

162 名前:デフォルトの名無しさん [2018/07/05(木) 00:59:18.40 ID:lJi2a9VDM.net]
おーい、hgmr

163 名前:デフォルトの名無しさん mailto:sage [2018/07/28(土) 09:13:36.59 ID:pjkfXvHGM.net]
hnmr王子〜♪

164 名前:デフォルトの名無しさん [2018/07/29(日) 02:13:01.57 ID:QHCaZ13N0.net]
まさか繋いでくれる人がいるとは思わなかった

165 名前:デフォルトの名無しさん mailto:sage [2018/07/31(火) 16:45:34.48 ID:0aJU5h1JM.net]
花村てなんや
オーバーウォッチか

166 名前:デフォルトの名無しさん mailto:sage [2018/08/05(日) 20:37:41.10 ID:XPCi/u53M.net]
王子に対し無礼であろう!
https://www.nhk.or.jp/archives/sp/search/special/detail/?d=youth007

167 名前:デフォルトの名無しさん mailto:sage [2020/11/25(水) 00:47:44.38 ID:lt8VNqOR0.net]
るすと

168 名前:デフォルトの名無しさん [2022/05/03(火) 15:19:34.90 ID:FP7f4hyR0.net]
Rの発音が難しい

169 名前:デフォルトの名無しさん mailto:age [2022/08/07(日) 14:18:50.38 ID:Xv2x2xOXM.net]
うんこすレッド

170 名前:デフォルトの名無しさん [2022/11/13(日) 22:46:23.74 ID:gb51z1Py0.net]
日本語の発音ってかイントネーションはみんなどっち?
ラスト(ミファファ=スタバ)
ラスト(ミドド=ベスト(着る方))



171 名前:デフォルトの名無しさん mailto:sage [2022/11/16(水) 18:15:29.98 ID:QMFF+6AxM.net]
1オクターブ上のドでミドド

172 名前:デフォルトの名無しさん [2022/12/18(日) 17:46:12.72 ID:fqk1SiW30.net]
本スレ最近ひどいね
age

173 名前:デフォルトの名無しさん [2023/01/09(月) 20:41:28.12 ID:XnWHdmBW0.net]
Rustの型って何を言ってるのか良う分からないくらい一気に複雑になるんだけど、改善の兆しってある?
filter(|x| ...).map.(|x| ...)ってやると戻り値がMap<Filter<...>>みたいに、情報量がほぼ増えないのに型の表記だけが増えてくのが見づらくてしゃあないんだが

「ここを関数に切り出しておきたい」ってのも難しくね?
impl Traitあるだろって言われるけど、自分ひとりでできた試しが無い

174 名前:デフォルトの名無しさん (ワッチョイ 1301-nt2E) mailto:sage [2023/01/09(月) 22:31:09.52 ID:ZXgjuOo50.net]
>>173
.filter(|x| ...).map.(|x| …)とやったら
ざっくり言うと戻り値はIterator<Item=T>でowned, shared reference, mutable referenceの3種類
Map<Filter<...>>とかの詳細な型を知りたいと思うことは基本ないからそこまで困らない
デコレータとかコンポジション的なものとして理解しとけばいいと思う

関数に切り出すのはGC言語と比べると難しい
どの値の所有権をどの呼び出しレイヤーで保持すべきかを整理しながらリファクタリングする必要がある
ただある程度パターンがあるからそれが理解できるとそこまで難しくはない

175 名前:デフォルトの名無しさん [2023/01/11(水) 20:45:10.66 ID:+OHiCBbi0.net]
>>174
標準ライブラリでiteratorのメソッドならそうなんだろうな、って他言語でも溜め込んだ知識で何とかなるけどさ、
例えばwarpっていうWebフレームワークはリクエストの解決にfilterを使ってるんだけど、
https://docs.rs/warp/latest/warp/filters/index.html
↑ここからたどって、例えばリクエストのパスにマッチするフィルタを作成するwarp::filters::pathってのがあるんだけど、
こいつの戻り値が独自型のExactってやつなのね

warp作ってる人はここに様々な条件を追加できるようにしているんだけど、pathの戻り値にどう組み合わせられるかってのをどう探せるんだろっていつもなってる
他のcrateも、単機能で目的果たせるライブラリならまだいいけど、高階関数で機能組み合わせてねってやつはrustdoc見ても意味が分からなくなってる

176 名前:デフォルトの名無しさん mailto:sage [2023/01/11(水) 23:31:54.91 ID:B6T7GQUU0.net]
>>175
ExactがFilterだと分かれば別のFilterを組み合わせられることはわかるでしょ?

warpのFilterシステムを理解させるための解説ドキュメントが不足してるのと
他で類似の仕組みをあまり経験したことがないのが理由なんじゃないのかな?

型が入れ子の形でチェインされてる状態に慣れてないから
それがわかりにくさの原因のように感じるかもしれないけど
JavaやgoのReader/Writerみたいにデコレータ的に型を重ねていくのはそんな特殊なことじゃないよ

177 名前:デフォルトの名無しさん mailto:sage [2023/01/12(木) 07:36:35.15 ID:fjq3kaV70.net]
iterator系の処理はどんな言語でもやりすぎると意味不明なんでいい単位で説明変数や関数に切り出すのは大事だよ。

178 名前:デフォルトの名無しさん mailto:sage [2023/01/12(木) 10:57:06.97 ID:yHqsf2Vi0.net]
関数単位で切り出す場合はimpl TraitやBox<dyn Trait>使った方が良いと思う
実装の詳細が型として露出してしまうのはよろしくないし
何より長い型を書き下すのはめんどくさい

179 名前:デフォルトの名無しさん (ワッチョイ d3c9-tb1I) [2023/01/13(金) 00:49:21.00 ID:Eg8x4Zf+0.net]
>>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 そう思うのは人情だが、じゃあどういう型の関数にすればいいのかって話
ググらずに分かる?俺は分からなかった

180 名前:デフォルトの名無しさん [2023/01/13(金) 01:52:07.98 ID:USdCnak/0.net]
>>179
非公開の(だけど実装が漏れている)FilterBaseトレイトを介してFilterを実装してるんだね……
FilterBaseが公開されていればExactのblanket implementationsに出てくるはず

同じことは指摘されているが放置されている模様
https://github.com/seanmonstar/warp/issues/742



181 名前:デフォルトの名無しさん mailto:sage [2023/01/13(金) 20:16:02.99 ID:Eg8x4Zf+0.net]
もしかして特段に分かりづらい構造だったのかWarp

182 名前:デフォルトの名無しさん mailto:sage [2023/01/13(金) 21:03:44.68 ID:4YqzJ2Gc0.net]
Sealed TraitっていうユーザーにTraitを実装させないための一般的なパターンなんだけど
privateなTraitはドキュメントには現れないのでExactがFilterBaseを実装してることを確かめたければソースを見るしかない

でも関数や構造体の説明にFilterだよって書いてるんだからまずはそこからじゃないか?
path()「Create an exact match path segment Filter.」
Exact「A Filter matching an exact path segment.」

183 名前:デフォルトの名無しさん [2023/01/14(土) 03:14:01.24 ID:4QhVLL220.net]
いや型の説明がコメントにしか無いかったら疑うのが基本じゃないか…?
説明にある通りの使い方はできるけど、何故そう使えるのか分からない、となった上での話
前にもちらっと書いたところもそうなんだけど、impl Filterを返す関数のシグネチャも独力だと分からなかったんだよ。もっと情報の少ないクレートでやる必要が出てきたら詰んじゃう

184 名前:デフォルトの名無しさん mailto:sage [2023/01/19(木) 13:09:59.92 ID:CHvJHSS40.net]
[T]と[T; N]があるように
strに対するSizedなstr<N>とかできんかね

185 名前:デフォルトの名無しさん mailto:sage [2023/01/29(日) 03:46:54.24 ID:qSgQK/Ke0.net]
ttps://doc.rust-lang.org/beta/unstable-book/language-features/yeet-expr.html

名前の元ネタがよくわからん

186 名前:デフォルトの名無しさん mailto:sage [2023/01/29(日) 04:28:40.21 ID:iZgCgX3R0.net]
>>185
trY Early-ExiT で yeet じゃない?
experimental だからわざとクソ命名してそう。

187 名前:デフォルトの名無しさん mailto:sage [2023/01/29(日) 08:29:44.05 ID:VTBemk9l0.net]
意味合いとしては
> 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を避けつつ機能を実験するために導入するみたいね
(deleted an unsolicited ad)

188 名前:デフォルトの名無しさん mailto:sage [2023/02/04(土) 16:11:28.39 ID:4OrKEijd0.net]
Servoプロジェクトが再始動
https://servo.org/blog/2023/01/16/servo-2023/
https://servo.org/blog/2023/02/03/servo-2023-roadmap/

189 名前:デフォルトの名無しさん [2023/02/26(日) 21:57:18.73 ID:vJeOsMT8M.net]
新スレとして再利用と聞いてage

190 名前:デフォルトの名無しさん [2023/03/02(木) 01:57:12.70 ID:9x7ptNRV0.net]
ProviderとDemandってCOMのQueryInterface的な使い方もできるのかな



191 名前:デフォルトの名無しさん [2023/03/07(火) 03:24:09.91 ID:CjRtBzJ10.net]
Bevy 0.10 is out now!
https://bevyengine.org/news/bevy-0-10/

192 名前:デフォルトの名無しさん [2023/03/10(金) 03:58:23.25 ID:9+yNdzD90.net]
Announcing Rust 1.68.0
https://blog.rust-lang.org/2023/03/09/Rust-1.68.0.html

今回は小粒?

193 名前:デフォルトの名無しさん mailto:sage [2023/03/10(金) 11:19:42.21 ID:Rc7TQThZ0.net]
cargoのsparse protocolは嬉しい

194 名前:デフォルトの名無しさん (テテンテンテン MMee-qnN+) mailto:sage [2023/03/15(水) 08:26:46.78 ID:L9HRqQqHM.net]
Default alloc error handlerはLinus指摘の取り込みかな。

195 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 10:58:18.74 ID:efRde3jV0.net]
Linusの話は、メモリアロケーション失敗時にpanicするなという話だと思うけど、今回の変更とは全く関係ない

今回の変更でalloc crateがalloc_error_handlerのデフォルト実装を提供するようになった
新たに提供されたalloc_error_handlerはpanicする実装になっているので、メモリアロケーション失敗時にpanicになることは変わらない
単に、利用者がalloc_error_handlerを独自に実装する必要がなくなったというだけ

Linusの指摘に対しては、Box::try_newなどのアロケーション失敗を呼び出し元に通知するAPIを用意することで対応している

196 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 12:35:43.18 ID:i0vzrjRpM.net]
>>195
サンクス。
Linusは「単にエラーを返せ」と言っていたから、error handlerじゃ確かに駄目だね。

197 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 13:35:50.81 ID:jUGp7X9a0.net]
Rust製の高速なwebpack互換バンドラ「Rspack」登場。現時点で5倍から10倍の性能向上
https://www.publickey1.jp/blog/23/rustwebpackrspack510.html

> Rust製の高速なバンドラとしては、webpackの主要な開発者がNext.jsに入社してwebpackの後継として開発している「Turbopack」もあります。
> 現時点ではまだwebpackが抜きん出た人気を得ていますが、現時点で主要な開発者が抜けてしまったwebpack後継の座を狙った競争が始まったといえそうです。

198 名前:デフォルトの名無しさん mailto:sage [2023/03/26(日) 17:12:36.73 ID:EfkiJTmm0.net]
>>197
ちょっとスレチ気味だけれど
Turbopack(新調で700倍高速) vs Rspack(互換性維持で5~10倍高速)
webpackからの乗り換えはしばらく様子見

199 名前:デフォルトの名無しさん [2023/03/27(月) 08:53:03.64 ID:ZY+RQ7940.net]
一度普及したソフトの作者自身が後継プロジェクトを立ち上げてもなぜかうまくいかない法則

200 名前:デフォルトの名無しさん (ワッチョイ 9901-3uzD) mailto:sage [2023/03/27(月) 09:40:06.58 ID:AuSpH/AF0.net]
Rust遅くね?



201 名前:デフォルトの名無しさん mailto:sage [2023/03/27(月) 10:40:29.19 ID:jab4un3HM.net]
速度遅くてもウケたプロダクトの動作速度上げたところで
現行をリプレイスする理由にならないからな
それにRustがいかに速かろうと今の時代ネックはIOである可能性が高いし

202 名前:デフォルトの名無しさん mailto:sage [2023/03/27(月) 12:01:17.21 ID:eSvQrfce0.net]
>>200
詳しく見ていないけど、ロジックにボトルネックがあるのかもね。

203 名前:デフォルトの名無しさん mailto:sage [2023/03/27(月) 16:02:39.08 ID:IjV2Ctjk0.net]
10倍のオーダーで速度差出るなら性能がリプレース理由になる場合も増えると思うよ
数分かかる処理が数秒で終わると快適さが全然違うだろうし

204 名前:デフォルトの名無しさん mailto:sage [2023/03/27(月) 16:27:48.16 ID:Fq2x4U//0.net]
>>201
どうせ IO がネックだからってのは昔から言われてることだけど
クラウドサービスを前提にすると事情が違うと聞いたことがある。

レスポンスタイムにあまり差が無かったとしても課金は演算量 (CPU の使用量) に対して
だからなるべく効率的に実行できる言語を使ったほうが安く上がるんだとさ。

205 名前:デフォルトの名無しさん mailto:sage [2023/03/27(月) 23:41:07.73 ID:t8oeSgw5a.net]
Ruby on Rails 6 では、webpack が標準だったけど、
Rails 7 では、Import Maps で、CDN から直接インポートするように変わった。
脱webpack/node.js

ES2015 に対応していないブラウザ用に、バンドルする方法もある。
バンドラーは、esbuild, rollup, webpackの3つ

206 名前:デフォルトの名無しさん (ワッチョイ a75f-iKPJ) mailto:sage [2023/04/17(月) 10:02:11.42 ID:Dh5lk+HW0.net]
ドキュメントコメントを reStructuredText で書きたい

207 名前:デフォルトの名無しさん mailto:sage [2023/04/24(月) 12:17:06.73 ID:LQT8UQ2a0.net]
let-else の else ブロックの中だけ rustfmt 効かなくて設定間違えたかと思ったら
フツーに未対応だった
https://github.com/rust-lang/rustfmt/issues/4914

208 名前:デフォルトの名無しさん (ブーイモ MM8e-sjlm) [2023/04/24(月) 18:39:33.31 ID:75I/tfQdM.net]
let-elseは鬼っ子だから
改行位置決めるのも大変

209 名前:デフォルトの名無しさん (オイコラミネオ MMb5-+3Ti) mailto:sage [2023/04/24(月) 18:43:14.72 ID:3hT7+QpVM.net]
横から済みませんがが、
Rust で Vec に要素を追加した場合にメモリー不足になったかどうかを検出
するのはどうしたらよいんでしたっけ?

210 名前:デフォルトの名無しさん (ブーイモ MM8e-sjlm) [2023/04/24(月) 18:47:43.95 ID:fDr9n68aM.net]
try_reserve



211 名前:デフォルトの名無しさん (オイコラミネオ MMb5-+3Ti) mailto:sage [2023/04/24(月) 18:53:28.63 ID:3hT7+QpVM.net]
>>210
それは予め領域を確保しておく関数で、確保できなかった場合には、
Result<(), TryReserveError>
という戻り値を返す関数と言うことですか?
そして、関数呼び出しの直後に ? を書くと、エラー発生時にそこで
アプリをダウンさせると言うことですか?

212 名前:デフォルトの名無しさん (オイコラミネオ MMb5-+3Ti) mailto:sage [2023/04/24(月) 19:00:53.57 ID:3hT7+QpVM.net]
>>211
事故レスですが、? 演算子は、x ? と書くと、x の値が Err(y) だったら、
return Err(From::from(y)),
というような動作をする関数のようですね。

213 名前:デフォルトの名無しさん (ブーイモ MM0a-sjlm) [2023/04/24(月) 19:01:30.05 ID:ELtZniCQM.net]
いろいろ違う
落としたいならpanicさせとけばいい

214 名前:デフォルトの名無しさん (ワッチョイ 1eda-2ihv) mailto:sage [2023/04/25(火) 00:44:30.70 ID:hB6+7TeQ0.net]
メモリ不足を検出した場合に何をしたいかで適切な対応は変わってくるけど、何をしたいの?

215 名前:デフォルトの名無しさん mailto:sage [2023/04/25(火) 01:46:37.95 ID:ICFLZD9/M.net]
>>214
メモリー不足の時にメモリー不足である旨のエラーメッセージを出して、
なんらかの自作の処理コードを動かしたいです。

216 名前:デフォルトの名無しさん mailto:sage [2023/04/25(火) 01:47:29.28 ID:ICFLZD9/M.net]
>>215
なお、Vecに追加する動作を行なった関数の中で処理をしたいです。

217 名前:デフォルトの名無しさん mailto:sage [2023/04/25(火) 07:31:37.92 ID:S/F8mIrU0.net]
重要:
メモリ不足だからと言ってmallocが失敗するとは限らない

218 名前:デフォルトの名無しさん (ワッチョイ 2a3e-ASru) mailto:sage [2023/04/25(火) 09:38:35.21 ID:ug7UW9j70.net]
今の Linux カーネルだとアプリケーションからオーバーコミットを無効にすることは出来るようになってるぞ。

219 名前:デフォルトの名無しさん (ワッチョイ 1eda-2ihv) mailto:sage [2023/04/25(火) 10:43:39.39 ID:hB6+7TeQ0.net]
try_reserveの戻り値がErrだったら処理を実行するだけだよ
この説明で分からないならenumやResult型について勉強した方が良いよ

あとtry_reserveの失敗要因はメモリ不足だけじゃないけど、エラー種別はnightlyじゃないと取得できないみたいね

220 名前:デフォルトの名無しさん mailto:sage [2023/04/29(土) 19:47:07.81 ID:OSQfAzE+0.net]
RefMut <-> Ref にも Rc <-> Weak みたいな相互変換メソッドがあればいいのに



221 名前:デフォルトの名無しさん (ワッチョイ bfda-qKNM) mailto:sage [2023/04/30(日) 04:06:33.86 ID:5bTJo9fJ0.net]
>>220
RefCell自体を取り回して必要なところで都度RefやRefMutを作れば良いのでは

222 名前:デフォルトの名無しさん (ワッチョイ 375f-k3Rv) mailto:sage [2023/04/30(日) 11:51:12.53 ID:cNEEfLAb0.net]
>>221
実際今はそれでやってて、別に問題になるほどじゃないんが、ちょっと無駄だよなあと
Ref/RefMutってあんまりあちこち取り回す用にできてないよね

223 名前:デフォルトの名無しさん (アウアウウー Sa1b-qKNM) mailto:sage [2023/04/30(日) 13:58:26.96 ID:ZqZbVcjya.net]
>>222
RefやRefMutはMutexのGuardみたいなもんなんだから取り回す範囲は極力狭くするべきなんじゃね

224 名前:デフォルトの名無しさん (ワッチョイ 375f-k3Rv) mailto:sage [2023/05/03(水) 20:42:40.07 ID:CZOik0F40.net]
Rustにもこんなのあるんか……ええな
https://zenn.dev/kk/articles/20230213_creusot_intro

225 名前:デフォルトの名無しさん (ワッチョイ 335f-awLq) mailto:sage [2023/05/19(金) 17:46:12.04 ID:vnYwlZ+00.net]
Rust for Linux updates! More pin-init and refactoring! - YouTube
https://www.youtube.com/watch?v=jAanHvcuYtA

226 名前:デフォルトの名無しさん mailto:sage [2023/06/02(金) 02:43:27.18 ID:w12tfZkT0.net]
The RustConf Keynote Fiasco, explained
https://fasterthanli.me/articles/the-rustconf-keynote-fiasco-explained

一連の事件は結局不幸な伝言ゲームの結果だったということだろうか

227 名前:デフォルトの名無しさん mailto:sage [2023/06/04(日) 13:53:56.01 ID:xOmzDhxR0.net]
以前からCodeLLDBでたまに値がちゃんと表示されないことがあるなーと思ってたら再帰型が原因だったんですね
今ほとんど再帰でできてる部分触ってるせいで困ってる……
dbg!書けばいいだけではあるんだけど泥臭くて嫌だわね
https://github.com/vadimcn/codelldb/issues/605

228 名前:デフォルトの名無しさん (ワッチョイ d336-IjPS) mailto:sage [2023/07/29(土) 22:43:04.08 ID:nwVMjVJQ0.net]
いつのまにかrust-specがマージされてる。まだ作業終わってないけど。
ttps://github.com/rust-lang/rfcs/pull/3355
ttps://github.com/rust-lang/rust/issues/113527
rustにもようやく仕様が。

229 名前:デフォルトの名無しさん (ワッチョイ eada-0btC) mailto:sage [2023/07/30(日) 17:17:19.50 ID:9Mwyt07S0.net]
これから編集者雇うみたいだからまだまだ時間は掛かりそうだけど、前進だね

230 名前:デフォルトの名無しさん (ワッチョイ 0f5f-4nYy) mailto:sage [2023/08/10(木) 03:13:56.19 ID:cXfKj1l90.net]
Hugging FaceがPyTorch的なRust製フレームワークを作り始めたらしい
https://github.com/huggingface/candle



231 名前:デフォルトの名無しさん (ワッチョイ 275f-orer) mailto:sage [2023/08/16(水) 18:13:46.91 ID:Wd6XOYTc0.net]
>> 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使っておけよとしか思わんが一応……

232 名前:デフォルトの名無しさん (ワッチョイ bb36-3sKl) mailto:sage [2023/08/16(水) 19:50:14.01 ID:e6GDzmE20.net]
githubにrustupのソースコードあるから読めばいいよ。

233 名前:デフォルトの名無しさん (ワッチョイ 8b01-1ZN1) mailto:sage [2023/08/16(水) 23:13:21.01 ID:1NDN9ysp0.net]
>>231
サンキュ。試してみます

234 名前:デフォルトの名無しさん (ワッチョイ f9a9-75c1) mailto:sage [2023/08/22(火) 03:24:00.61 ID:Fec2bVY90.net]
おおきに、感謝やで!

235 名前:デフォルトの名無しさん (ワッチョイ d95f-GBSa) mailto:sage [2023/08/30(水) 12:04:57.70 ID:LqLNxSZ40.net]
Debugを上位トレイトに持たないトレイトのオブジェクトをなんとかしてdbg!する方法は無いもんじゃろか

236 名前:デフォルトの名無しさん (ワッチョイ 3536-8/Q7) mailto:sage [2023/08/30(水) 15:40:36.29 ID:lfrnRSB90.net]
ない。基本的なトレイトを実装してないのはバグ。

237 名前:デフォルトの名無しさん (ワッチョイ 4ada-0cXD) mailto:sage [2023/08/30(水) 20:29:40.52 ID:y+HDByBG0.net]
参照をポインタにしてアドレスを表示してみるとか

238 名前:デフォルトの名無しさん (ワッチョイ 4ada-0cXD) mailto:sage [2023/08/30(水) 20:30:28.57 ID:y+HDByBG0.net]
構造体フィールドの中身を知りたいという事ならAnyを継承させてダウンキャストするかDebugを継承したtraitにするしかないね

239 名前:デフォルトの名無しさん (ワッチョイ b3bc-yE7J) mailto:sage [2023/09/12(火) 06:34:45.51 ID:8vWycgZc0.net]
アノ店、今日は休みやねんな

240 名前:デフォルトの名無しさん (ワッチョイ 0f36-8z3m) mailto:sage [2023/09/21(木) 01:15:23.63 ID:d9SQw4Jt0.net]
intellij rustからRustRoverギリギリ燃えてないな。プラグインもIDEAもバグが増えたのが懸念とか言われてるけど。



241 名前:デフォルトの名無しさん (ワッチョイ 0f01-w8tn) mailto:sage [2023/09/21(木) 23:43:40.50 ID:2whQHU6y0.net]
RustのコンパイルターゲットはTierで分けられているけど
x86_64-pc-windows-msvc ←Tier1
x86_64-unknown-none ←Tier2
この違いって何?
Tier1の条件を見るとすべてのテストに合格すること的な事が書いてあるしプラットフォームが不明の状態でそれは不可能はなず
組み込み向けなどの低レイヤー用途を想定したターゲットにTier1のものはなくすべてTier2以下になっている
もしこれが理由なら自分が書いたコードはTier1と同レベルに翻訳される(実行できなかったり実行結果が不正なコードは生成されない)事が
期待できるけどそう考えて問題ないのだろうか

242 名前:デフォルトの名無しさん (ワッチョイ 3fda-n7kY) mailto:sage [2023/09/22(金) 01:00:34.44 ID:J+8eUZUM0.net]
>>241
x86_64なら現実的にはほぼ動くとは思う
ただ、あくまでもrust側ではコンパイルが通ることしか確認してなくて、生成されたコードが正しく動作するかは未確認の状態
利用者側が動作確認をきちんとやる必要があるよ

243 名前:デフォルトの名無しさん (ワッチョイ 0f01-w8tn) mailto:sage [2023/09/22(金) 02:06:03.04 ID:/khf3L7K0.net]
>>242
例えばベアメタル開発用などでOSとインターフェイスしないコードのみほしい場合
x86_64-pc-windows-msvc(x86_64-unknown-linux-gnuとかでも可)でスタティックリンクのライブラリとしてビルドしてカスタムリンク
x86_64-unknown-noneでビルド
の二択だと出力物の信頼性はどちらの方が高いのだろうか。どちらも適切なローダーを用意すれば動作するはず
特に低レイヤーの開発で翻訳不良があるとトラブルシュートが沼りやすいし、前者の方が有利なら
ゴミが付いたりビルドが複雑化するなどのデメリットを考慮しても検討する価値があるはず

244 名前:デフォルトの名無しさん (ワッチョイ 0f36-8z3m) mailto:sage [2023/09/22(金) 04:58:40.40 ID:B04DzdQA0.net]
より正確には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。

245 名前:デフォルトの名無しさん (ワッチョイ 0f01-w8tn) mailto:sage [2023/09/22(金) 23:10:21.93 ID:/khf3L7K0.net]
x86_64-unknown-noneが吐くコードをどのくらい信用して良いのかって話ね
Tier2=十分にテストされていない=不正命令例外を吐いたり意図しない演算結果になる可能性がある
とかだと開発に重大な影響が出るし勘弁してほしい。Tier1のターゲットならそんな可能性は無視できるはずだし

246 名前:デフォルトの名無しさん (ワッチョイ 0ff8-fp56) mailto:sage [2023/09/22(金) 23:26:27.84 ID:wn++FXk10.net]
テスト云々はlibstdが主なんでは?
そもそもコード生成するのはLLVMなんだし機械語レベルじゃRust側のTierは関係ない気がする

247 名前:デフォルトの名無しさん (ワッチョイ 0f01-w8tn) mailto:sage [2023/09/22(金) 23:47:16.64 ID:/khf3L7K0.net]
x86_64-unknown-noneがTier2の理由がstdのテストができないからならそれでいいんだけどね
Platform Supportを見ても
>x86_64-unknown-none * Freestanding/bare-metal x86_64, softfloat
としか書いていない。hardfloatが使えない?のはよくわからないが

248 名前:デフォルトの名無しさん (ワッチョイ 0336-3hLy) mailto:sage [2023/09/23(土) 01:27:48.45 ID:JOYgBSwC0.net]
Tierはrustcのコードベースがビルドできるかどうかの保証であって吐くバイナリの質の保証じゃない。
そもそもrustcはフロントエンドだからどういうバイナリ吐くかは無関係。
tier 1/2の違いは自動テストが常に実行されるかどうかの違いだけ。

全部Platform Supportに書いてあるからこの説明でわからんならどこが理解できないのか言ってくれ。

249 名前:デフォルトの名無しさん (ワッチョイ 5301-3pIy) mailto:sage [2023/09/24(日) 21:37:53.69 ID:JmCRMtY30.net]
Tier表記がアテにならないならコードの質を比較するにはどうしたらいいんだろ
x86_64とavrが同じ品質、同じ最適化レベルなわけないよな

250 名前:デフォルトの名無しさん (ワッチョイ 0ada-sj2L) mailto:sage [2023/09/25(月) 08:27:06.59 ID:gOdfC5Fq0.net]
rustに限らずコンパイラの生成コードの品質はアセンブリ見て判断するしかないんじゃね
LLVM IRもプラットフォームごとに差があるのかね?



251 名前:デフォルトの名無しさん [2023/11/08(水) 11:25:16.25 ID:QNjJKK3y0.net]
Rust製ブラウザエンジンの「Servo」、アプリに組み込み可能なクロスプラットフォーム対応WebView化を目指す。Electron代替を目指す「Tauri」への組み込み実現へ - Publickey
https://www.publickey1.jp/blog/23/rustservowebviewelectrontauri.html

期待

252 名前:デフォルトの名無しさん [2023/11/13(月) 11:53:03.89 ID:k6bqA1Ku0.net]
https://rust-lang.github.io/rfcs/3192-dyno.html

気づいたらポシャっててstd-1.73.0からProvider/Demandも消えてた
やっぱりRTTIとかそういうのはあんまり乗り気じゃないのかな??

253 名前:デフォルトの名無しさん (ワッチョイ e3f0-Krj3) mailto:sage [2023/12/28(木) 17:26:22.81 ID:WYblPX1w0.net]
RubyのYJITって仕組みはRustで実装されてるんだな
ソース見てビビった

254 名前:デフォルトの名無しさん mailto:sage [2023/12/28(木) 19:28:59.59 ID:13cJB/jM0.net]
>>253
へぇ、Node.jsもあちこちが遅いからと
ちょこちょこ便利ライブラリの中身がRustに置き換わり始めてるし
今後こういう流れは加速しそうだな

255 名前:デフォルトの名無しさん (ワッチョイ ff3e-XnzH) mailto:sage [2023/12/28(木) 21:34:36.48 ID:x05ZB4jI0.net]
遅い部分を Rust でなおそうというよりは、
Rust へ置き換わる流れに乗るついでに駄目なところをそろそろなんとかしようぜという感じじゃないかな。
イマイチなのがわかっててもちゃんと動いてるなら何かきっかけがないと重い腰が上がらないのはよくあること。

256 名前:デフォルトの名無しさん mailto:sage [2023/12/28(木) 22:12:11.01 ID:WYblPX1w0.net]
YJITのコード、相当面白いな
RustでJITしてるよw
マシンコードゴリゴリ生成してる

257 名前:デフォルトの名無しさん (アウアウウー Saa7-9gAl) mailto:sage [2023/12/29(金) 18:42:09.07 ID:gLXDegz1a.net]
rustってJavaやpythonみたいに爆発的に流行るわけじゃなくてじわじわ広まっていく感じなんだろうな

258 名前:デフォルトの名無しさん mailto:sage [2023/12/29(金) 22:02:28.40 ID:iUQmWV32a.net]
YJIT、最初はCで実装されてたがRustに変えたみたい
bindgenでCRuby側のAPIをRust側に持ってきて
それを使いながらJITでマシンコード生成してる
面白すぎる
コードもめちゃくちゃ読みやすいぞ

259 名前:デフォルトの名無しさん (ワッチョイ 9701-Hbjn) mailto:sage [2024/02/04(日) 19:30:07.17 ID:TI/zzvYY0.net]
RustのRTOSはTockがあるけどFreeRTOSやTOPPERS/SSP、μT-Kernelなど既成のRTOSとの比較レビューってある?

260 名前:デフォルトの名無しさん [2024/03/22(金) 21:59:30.16 ID:qT4SZAGX0.net]
Rust 1.77.0
https://blog.rust-lang.org/2024/03/21/Rust-1.77.0.html



261 名前:デフォルトの名無しさん (ワッチョイ 9f5f-n+Ch) [2024/05/05(日) 01:37:56.22 ID:uZIblCBW0.net]
Rust 1.78.0
https://blog.rust-lang.org/2024/05/02/Rust-1.78.0.html

262 名前:デフォルトの名無しさん [2024/05/28(火) 05:50:07.80 ID:2O15FncY0.net]
あげとくか

263 名前:デフォルトの名無しさん (アウアウウー Sac5-j0d5) [2024/05/28(火) 11:26:44.51 ID:NhejqWbKa.net]
>>257
それなりに使われるだろうけど普及はしないよこんな糞言語

264 名前:デフォルトの名無しさん (ワッチョイ a17d-AeJW) mailto:sage [2024/05/28(火) 12:40:58.42 ID:62OgaQom0.net]
>>263
普及の定義をしようや

265 名前:デフォルトの名無しさん (ワッチョイ d37f-ikRv) [2024/05/29(水) 01:14:08.00 ID:stYwN08n0.net]
lazy_cellが安定化
https://github.com/rust-lang/rust/issues/109736

266 名前:デフォルトの名無しさん mailto:sage [2024/06/05(水) 14:11:47.67 ID:nZd9x5hFa.net]
>>264
糞言語は定義しなくていいということですか

267 名前:デフォルトの名無しさん (ワッチョイ be29-u9Nc) mailto:sage [2024/06/05(水) 15:39:16.16 ID:NzLbLFLA0.net]
>>266
糞言語でも神言語でもいいから
普及したかどうか基準を明確になれば良い

268 名前:デフォルトの名無しさん mailto:sage [2024/06/06(木) 10:37:20.47 ID:qz5pj6nBa.net]
糞言語なのは認めるということですね判ります

269 名前:デフォルトの名無しさん mailto:sage [2024/06/06(木) 18:33:54.95 ID:vvc6Sc+M0.net]
>>268
プログラミング言語の前に国語勉強しよう

270 名前:デフォルトの名無しさん [2024/06/14(金) 00:25:21.51 ID:LVwRqQSd0.net]
Rust 1.79.0
https://blog.rust-lang.org/2024/06/13/Rust-1.79.0.html



271 名前:デフォルトの名無しさん (ワッチョイ 615f-lSh6) [2024/07/15(月) 02:00:43.64 ID:S6UfnUI40.net]
poloniusって結局何なんだ?

272 名前:デフォルトの名無しさん (ワッチョイ b15f-Ojjn) [2024/07/25(木) 23:26:35.53 ID:DJ5WaC5l0.net]
Rust 1.80.0
https://blog.rust-lang.org/2024/07/25/Rust-1.80.0.html

273 名前:デフォルトの名無しさん (ワッチョイ b15f-Ojjn) [2024/07/25(木) 23:42:54.21 ID:DJ5WaC5l0.net]
Exclusive ranges in patternsの例でこれからは終点と始点に同じconstが使えますって書いてるけど
そもそもstableじゃpatternでconst使えないから微妙に説明不足だなあ

274 名前:デフォルトの名無しさん mailto:sage [2024/09/06(金) 13:05:40.28 ID:7lTmc6Nm0.net]
Rust 1.81.0
https://blog.rust-lang.org/2024/09/05/Rust-1.81.0.html

275 名前:デフォルトの名無しさん [2024/09/30(月) 19:27:35.34 ID:+nY8jA76j]
日本に原爆落とした世界最悪のならず者国家も欧州も災害の連發て゛国民の生命と財産が破壊されまくってるが、日本同様テロリストに政府が
乗っ取られてるとはいえ日本と違って武器はそれなりに入手て゛きるんだから曰本列島縦断して大騒音まき散らしてるエアフランスやら
儿フトハンザやら撃墜してくれよな、日本の場合山上大先生みたいな神がテロリストの首魁蓄財3億圓超の齊藤鉄夫を銃殺するとか
クソ空港た゛の国土破壊省だのJALANÅテロリストの巣窟にガソリン滿載トラック突っ込ませて燃やし尽くす特攻くらいしかテロを止めさせる
方法がないしな、品川あたりなら500M程度だから山上大先生みたいな知的能力者か゛工夫で撃墜できるかもだか゛、それでも憲法ガン無視で
人を殺して私腹を肥やす集団自民公明に國が乗っ取られてる限りテロ根絶は困難、自民公明がケ━ザヰと言えば100%賄賂癒着してる連中が
私腹を肥やす強盜殺人だし災害とは復興需要で儲かるネタなのが自民公明、年10兆円に達した軍拡なんてのも戦争による破壊活動て゛儲かるって
発想た゛しこんなテロ組織が政権続けたらお前ら何もかも失うのは目に見えてるぞ
(ref.] TTps://www.call4.jp/info.ρhp?TyPe=items&id=I0000062
ttps://haneda-projeсt.jimdofree.com/ , tΤps://flighT-rouΤe.com/
ttps://n-souonhigaisosyoudan.amebaownd.сom/

276 名前:デフォルトの名無しさん [2024/10/19(土) 03:08:34.71 ID:1NcbI99b0.net]
Rust 1.82.0
https://blog.rust-lang.org/2024/10/17/Rust-1.82.0.html

277 名前:デフォルトの名無しさん [2024/11/06(水) 21:10:46.98 ID:Z4pDTKo20.net]
>>268
クソ言語ってCとかBASICみたいな奴のこと?

278 名前:デフォルトの名無しさん mailto:age [2024/11/12(火) 00:38:11.01 ID:lS2MxdJo0.net]
Rustのインストール,Hello World/Cargo,数当てゲームまで終わったので記念に書き込み
サクラエディタでコード編集したけどIDEは何がいいんだろろ

279 名前:デフォルトの名無しさん mailto:sage [2024/11/12(火) 08:37:10.19 ID:DHJyD4K70.net]
>>278
VSCode がスタンダードだと思うが LSP が実装されてるエデェタならなんでもいいよ。
公式ページには八つのエディタが第一級サポートありと書かれているのでそのなかから選ぶのが無難。

280 名前:デフォルトの名無しさん mailto:sage [2024/11/12(火) 13:14:18.53 ID:69VI/kA50.net]
ありがとう
とりあえず公式ページ見てくる
使ったことあるvscodeになりそうだけど



281 名前:デフォルトの名無しさん mailto:sage [2024/11/12(火) 17:29:53.97 ID:69VI/kA50.net]
Vimがあったけど中々挑戦できないな

282 名前:デフォルトの名無しさん mailto:sage [2024/11/14(木) 11:49:51.39 ID:/k0TwQtQM.net]
vscodeの良さは、AndroidユーザーがiPhoneの良さを全く理解できないのと
同じくらい、理解できない。

283 名前:デフォルトの名無しさん [2024/11/14(木) 19:08:09.69 ID:yxSXUQjo0.net]
Calaude aiで生成したコードってそのまま通るのかな

284 名前:デフォルトの名無しさん mailto:sage [2024/11/20(水) 13:43:52.49 ID:g9sD9hG/0.net]
https://github.com/rust-lang/rust/issues/44874
デケえ便利機能が来そうだぜ

285 名前:デフォルトの名無しさん mailto:sage [2024/11/20(水) 18:47:48.10 ID:BzSu5ItH0.net]
諸刃の剣だな
現状のDerefは抑制的に使われてるけど
Receiverがカジュアルに使えるとどうなるかな

286 名前:デフォルトの名無しさん (ワッチョイ 9f1c-ksDR) mailto:sage [2024/11/28(木) 23:19:31.65 ID:e85wFuS80.net]
Rust 1.83.0
https://blog.rust-lang.org/2024/11/28/Rust-1.83.0.html

287 名前:デフォルトの名無しさん mailto:sage [2024/11/28(木) 23:55:57.51 ID:JvWPBHtF0.net]
アップデートしたらしいけどなんかいい修正ある?

288 名前:デフォルトの名無しさん (ワッチョイ 9fb2-ksDR) mailto:sage [2024/11/29(金) 18:38:58.21 ID:kgssLEYJ0.net]
const fnの中でできることが増えたくらいで今回地味かも
内部としてはこれでも大仕事なんでしょうが……

289 名前:デフォルトの名無しさん mailto:sage [2024/12/03(火) 20:48:46.24 ID:hazgT/ND0.net]
なるほど(わかってない)
Hello WorldとHello Cargoまでやったけどこのまま公式のブック?とかいうチュートリアルこなしてくのがええのかな

290 名前:デフォルトの名無しさん mailto:sage [2024/12/03(火) 20:50:26.05 ID:hazgT/ND0.net]
C/C++のRust置換えはあんまり進まないと思うけどWEBアセンブリといえばRustになれば長く続く言語になるかなと思ってちょっと齧りだしたところ



291 名前:デフォルトの名無しさん mailto:sage [2024/12/03(火) 21:20:26.57 ID:0HkaMF/90.net]
>>289
もし C とかを知ってるなら Rust のチュートリアルはすぐ終わるし、充分にプログラムは書けるよ。
ただ、上手く書くとなると際限ないからなぁ……

個人的には実際に使いながら標準ライブラリの構成を理解するのが良いと思う。
標準ライブラリは言語の思想がよく現れているので真似すると上手くいきやすい。

292 名前:デフォルトの名無しさん mailto:sage [2024/12/03(火) 21:37:32.00 ID:hazgT/ND0.net]
Java/JS(jQuery)くらいでC/C++未経験
最近出たRustでブラウザ作ってみるって本よんで環境構築したくらい
とりあえずライブラリ意識しながらチュートリアル(ブック)やってみるわ

293 名前:デフォルトの名無しさん mailto:sage [2024/12/03(火) 21:41:48.01 ID:hazgT/ND0.net]
ありがとうね

294 名前:デフォルトの名無しさん (ワッチョイ d374-q1xP) mailto:sage [2024/12/25(水) 01:38:56.59 ID:HGQro34U0.net]
おもしろそう
https://contextgeneric.dev/

295 名前:デフォルトの名無しさん mailto:sage [2024/12/25(水) 07:12:17.10 ID:rU0AIwOo0.net]
>>294
コンテクストジェネリックプログラミング(CGP)?
コンテクスト(文脈、背景、経緯、状況
ジェネリック(一般的、包括的

何だろね?

296 名前:デフォルトの名無しさん mailto:sage [2025/01/10(金) 16:35:51.47 ID:xLB3XHZu0.net]
Futureをラップする型に手動でimpl FutureしてるけどこれはPinのいい勉強になるな

297 名前:デフォルトの名無しさん mailto:sage [2025/01/11(土) 02:39:13.55 ID:5YYsPqAa0.net]
Rust 1.84.0
https://blog.rust-lang.org/2025/01/09/Rust-1.84.0.html

298 名前:デフォルトの名無しさん mailto:sage [2025/01/27(月) 18:39:55.41 ID:ObwYCp160.net]
クロージャとかFutureの具体型をassociated typeに書くためにtypeofが欲しくなってくる今日この頃

299 名前:デフォルトの名無しさん mailto:sage [2025/02/21(金) 11:47:12.81 ID:nMjYKkhy0.net]
Rust 1.85.0
https://blog.rust-lang.org/2025/02/20/Rust-1.85.0.html

300 名前:デフォルトの名無しさん mailto:sage [2025/02/21(金) 11:50:22.59 ID:nMjYKkhy0.net]
AsyncFn traits……だと?



301 名前:デフォルトの名無しさん [2025/03/11(火) 21:55:00.20 ID:XukmSTfwg]
渋谷て゛地球温暖化を考えてもらう催しとかやってるWWFって茶番団体にはアホしかいないのかな
その直上で低空テ□やってるJALだのANAだのクソアヰ又ト゛ゥた゛のクサイマ一クだのコ゛キブリフライヤ━た゛のテ□リストが上空から都心観光とか
知的障害者を楽しませるために海に囲まれた曰本て゛わざわさ゛迂回してて゛も陸域飛ばしまくって鉄道の30倍を遙かに超える莫大な温室効果ガス
まき散らして騷音で窓も開けられず工アコンカ゛ンガン、スパヰラ儿的に氣温上昇させてその上昇氣流からケ゛リラ豪雨、海水温上昇,台風連発
土砂崩れ.洪水,暴風.熱中症にと住民の生命と財産を破壞しまくってる史上最悪のテ囗リス├について啓蒙して集団でクソ羽田や霞か゛関を
襲撃に行く催しすらせずに夏の風物詩だの笑わせんのもいい加減にしとけや人騙して寄付させて金儲けして税金も払わないクソ利権団体
この手の魑魅魍魎と゛もや皆殺しにされるべき國土破壊省た゛のか゛静音が生命線の知的産業を壞滅させてカ゛ヰジンか゛作ったスパイまみれのゴミを
何とか使えるだけの無能を工ンシ゛二アと呼ぶポンコツ腐敗後進国に陥れて國際竸争カ失わせてシステム障害に情報漏洩まみれにした根源な
(ref.) ttps://www.call4.jp/info.php?type=items&id=I0000062
ttps://haneda-project.jimdofree.com/ , ttps://flight-route.com/
ttps://n-souonhigaisosyoudan.amebaownd.com/

302 名前:デフォルトの名無しさん [2025/04/04(金) 07:44:17.17 ID:coTIOcpx0.net]
このスレでRustの普通の雑談(trait bound以外の話)をしたい

303 名前:デフォルトの名無しさん mailto:sage [2025/04/04(金) 18:47:23.46 ID:uFTmKMED0.net]
じゃあこれでも眺めてみようか
ttps://aznhe21.hatenablog.com/entry/2025/04/04/rust-1.86

304 名前:デフォルトの名無しさん [2025/09/03(水) 11:19:30.68 ID:GIKp/YM/H.net]
rustc_codegen_gccでクロスコンパイル環境を構築する解説とかありますか?
rustc_codegen_gccとgccとの繋がりとかも含めて解説されていると助かります






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<75KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef