プログラミング言語 Rust 3 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/05/21(日) 14:04:29.55ID:9L9dm7b/
Mozillaがリリースした、プログラミング言語「Rust」について語るスレです。

http://www.rust-lang.org/
https://github.com/rust-lang/rust

Servo
https://servo.org/
https://github.com/servo/servo

◆前スレ
プログラミング言語 Rust 2
http://echo.2ch.net/test/read.cgi/tech/1478023960
2017/06/10(土) 20:32:21.64ID:IftbJTTs
>>200
上の方まさに「The Book」のSecond Editionの書籍版じゃん。
2017/06/11(日) 01:53:28.37ID:X3vCZvzy
食事する哲学者は、なんでThe Bookから消されてしまったんや
203デフォルトの名無しさん
垢版 |
2017/06/11(日) 15:06:17.17ID:qjl5AbWq
>>202
それ、俺も思った。
何でだろう?
2017/06/11(日) 15:56:53.70ID:vIRnRvxr
哲学者達がお腹一杯になったから
2017/06/11(日) 16:22:24.76ID:VsqhFcB6
トンチが効いててちょっと面白かった
2017/06/11(日) 22:30:10.43ID:X3vCZvzy
Second Editionはどういう意図か知らないけど、
"str".to_string()
"str".to_owned()
の代わりに
String::from("str")
を全面的に使うようにしてるね
2017/06/11(日) 23:46:31.76ID:XI3qvjLJ
String("str")みたいなコストラクタは無いの?
2017/06/11(日) 23:49:50.77ID:9OY4agMx
Stringはtuple structでない
2017/06/12(月) 00:27:33.38ID:My6TEn1j
https://crates.io/crates/crates_io_baseline
このcrate、めっちゃダウンロードされてて草生える
2017/06/12(月) 00:29:50.55ID:MzCSF4Ch
容赦なくて草
2017/06/14(水) 09:57:33.18ID:XYFguvYM
Tokio対応したHyperがリリースされたな
これからWebフレームワークも対応していくのだろうか
2017/06/15(木) 18:41:09.39ID:mn+yn6ig
pijul試してたら、なんかいつの間にかファイルが壊れて、テキストとバイナリがまぜこぜになったファイルが出来てしまった
2017/06/16(金) 09:06:23.46ID:ktTRVxgn
またpijulが使い物にならないからrustはだめとか言うおっさんがくるぞ
2017/06/16(金) 10:33:05.72ID:HCcCUJCK
わざわざ呼ぶなバカ
2017/06/17(土) 06:54:44.86ID:yZgGFQR1
Why are there so many Madoka references in Rust's codebase?
https://www.reddit.com/r/rust/comments/6hirku/why_are_there_so_many_madoka_references_in_rusts/

アイコン見てれば、容易に想像できることだが
2017/06/19(月) 14:55:59.38ID:86sO1ieZ
もしかして盾の歯車?
2017/06/21(水) 20:28:41.11ID:LG7VVo4P
crates.ioで、中身無しで名前だけ(たくさん)抑えてる人が居るね
2017/06/21(水) 20:52:10.55ID:0v4/pNjF
crates.ioはスクワッティングし放題だしなあ
http://doc.crates.io/policies.html#squatting
2017/06/21(水) 21:04:58.61ID:LG7VVo4P
rustって名前のcrate登録しようと思ったら、とっくに取られてた
220デフォルトの名無しさん
垢版 |
2017/06/22(木) 19:34:29.89ID:eBYfVtnR
そのうちcratesトロール出てくるぞ
2017/06/24(土) 00:33:06.17ID:61WeFMfR
更新止まったの除くとcrates.io使ってるのあんまりないよ。
ホスティング直接探しに行くとrustのライブラリ結構ある。
それより依存型が欲しい。
2017/06/24(土) 00:34:41.77ID:l9zy63QW
>crates.io使ってるのあんまりないよ。
ドユコト?
2017/06/24(土) 06:06:00.68ID:cy4Nwj8p
>>221
依存型欲しいねー
2017/06/27(火) 21:33:58.01ID:IXk9A5/e
なんでalloca()できないの?
2017/06/27(火) 21:52:44.33ID:b1cqibPI
https://github.com/rust-lang/rfcs/pull/1808#issuecomment-279123540
2017/06/27(火) 22:56:55.59ID:IIq+ol+w
>>225
どゆこと?
より一般化してUnsized Rvaluesにしたけど、Openのまま3か月放置?
2017/06/28(水) 01:29:39.37ID:9yiSXbVJ
>>226
関連するissueがまだopenのままに見える
2017/06/28(水) 11:14:29.14ID:+O8L6XqQ
瑕疵担保責任(かしたんぽせきにん)

瑕疵担保責任のポイント

民法改正で事実上期限が「無制限」になった
バグや設計のミスなどは、瑕疵担保責任
納品物に不具合があれば損害賠償を請求される可能性もある
不具合を指摘されたらすぐに行動をとるべし
軽微なミスでも先延ばししない

http://www.atmarkit.co.jp/ait/articles/1706/26/news014.html
http://itpro.nikkeibp.co.jp/atcl/news/17/052601508/?rt=nocnt

改正法では欠陥に気付いてから1年以内にITベンダーに通知すれば、
通知後5年以内は修正や報酬の減額などを求められるとしている

全ベンダーが泣いた民法改正案を解説しよう その1
http://www.atmarkit.co.jp/ait/articles/1609/14/news009.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_2.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_3.html

ポイント1:修補や損害賠償、契約解除の期限がなくなる

従来あった「瑕疵担保期間は引き渡しから1年」という考えはなくなる。
条文にある通り、注文者は成果物が契約の目的に適合しないことを発見したら、
その「発見したときから1年以内」ならさまざまな請求ができる。発見が10年後なら、
11年後まで請求可能なのだ。

もっとも、現実のユーザーとベンダーの関係でも、たとえ契約書に「瑕疵担保責任期間は納品から1年と」明記されていても、
「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、
バグが見つかればユーザーのところに飛んで行き、無償で改修するだろう。
2017/07/01(土) 18:15:18.87ID:v+Q0wrxJ
Futuresに詳しい人教えて

Zero-costを謳ってTraitでコスト削減してるのは理解したんだが
id_rpc(&my_server).and_then(|id| {
get_row(id)
}).map(|row| {
json::encode(row)
}).and_then(|encoded| {
write_string(my_socket, encoded)
})
ってやった場合に
AndThen x2, Map x1を初期化時に作るコストについては
実行時のコストには乗らないから度外視って理解であってる?

Aaron Turonのブログ読んでもそこは言及してないように読めるので教えてくれい
2017/07/01(土) 20:18:30.04ID:9xGm3OAZ
コンパイラの最適化で消えるか、消えないにしてもstackいじるだけだから無視できるほど小さいコストなんだと思う
2017/07/02(日) 07:08:11.19ID:91oxOYnU
んー、その擁護は微妙に納得いかないかな...
AndThen, Mapは状態変数を保持するenumを内包するstructなので消えないはずだよねぇ
まぁstackいじるだけという言い分として、ならば実行時のcallでBoxFutureを返すのはバッドノウハウってことか
BoxFutureを返すのと、Futureを実装したstructを返すのと、どっちがZero-costに近いかは測ってみるか
サンプルだとBox<Future>だけど、Tokioは一律structを実装してるから、後者の方が早いんだろうけども
2017/07/02(日) 11:32:28.47ID:onBZ93I5
すまん、よくよく考えたら実行中にBox<Future>を返すのは動的にステートマシンのタスクを増やす行為だからNGだ
Futureを返さなきゃと.boxed()使ってたけど、素直にPollで結果を包むだけでよかった
2017/07/04(火) 00:00:54.04ID:YlAGoiwI
futuers-rsは

これfutuereじゃねぇじゃねーか、並列計算してないパイプラインをfutuere呼ぶなよ

すぐにfutures-cpupoolを見つける

までが予定調和。

Zero-cost ~~futures and~~ streams in Rust
2017/07/04(火) 09:31:46.73ID:ETZVte8W
これZero-costじゃねぇじゃねーか

Zero-cost(コストがないとは言ってない)

までが予定調和だったわ
下手な自作設計よりは全然コスト軽いけど鵜呑みは良くないね
2017/07/04(火) 10:33:24.16ID:CTMuvV84
まず future の綴を覚えるところからお願いします
2017/07/04(火) 12:20:45.83ID:J0r8gWdS
impl Traitじゃあかんのか?
2017/07/04(火) 13:09:55.73ID:Aj2F4wHv
aturon氏の記事(Zero-cost futures in Rust)を読めば"zero cost"というのは「直にステートマシンを書いたのと同様のコードにコンパイルする」という意味で言っていると分かるはずで、
状態変数があるからzero costじゃないなどという指摘は出てこないと思うのだけど
2017/07/04(火) 13:30:28.66ID:G2IB7Bn2
traitってGoのinterfaceに似てる
って言ったら型警察に起こられるんだろうか
2017/07/04(火) 14:05:06.69ID:At6b76le
>>237


だからコストがないって訳じゃないと理解したんだが
タスク構築のための初期化アロケーションとか、ステートマシンのための状態管理(分岐)の少量コストはあるって解説してるよな

言葉遊びによるZero-cost警察の方なら触ってスマン
2017/07/04(火) 16:29:36.87ID:H2zYYmCe
警察じゃなくても激おこやと思うw
2017/07/04(火) 16:36:55.49ID:o8qoMeE4
zero costは宣伝文句で、zero overheadくらいが妥当では
2017/07/04(火) 18:21:59.60ID:ZOpHOB0v
実行はゼロコストかも分からんが書くコストが青天井なので結局意味のない言語
2017/07/04(火) 19:19:11.80ID:A2FxzO1+
Aaron Turonのブログを引用しながら実は別の意味で言ってましたとか草
2017/07/04(火) 22:45:10.68ID:sW2FXAJU
javaはzero-overheadの語を使うけどrustはzero-costを使うよね。
zero-overheadだと追加の余計なコストがかからないという意味がわかるけど、
zero-costだとコストそのものがないと言っているのかzero-overheadと同じ意味で使ってるのか定かではないと思う。
2017/07/04(火) 22:53:04.21ID:Aj2F4wHv
Rustでzero-cost (abstraction)といったら抽象化レイヤーによるコストが0という意味だろうね
2017/07/05(水) 03:06:44.06ID:9aEWew1V
そもそもがC++界隈からの借用語だしな
2017/07/05(水) 16:39:24.43ID:AAYKoEFk
激おこな警察官が多くて誰がどの立場で何を擁護してるのかワケワカメ

とりあえずまぁfuturesやtokioを下手に使うとコストがゴリゴリ上がってくのは分かった
ステートマシン(AndThenやMap)も抽象化しきれなかったのかstructでI/F切られてるし注意して使わんとな
2017/07/05(水) 17:11:36.04ID:MzNNcf5c
そりゃ、真にコストゼロはありえないだろう
一般に気にされてるのは、C/C++より多いかどうかでしょ
2017/07/05(水) 18:08:21.50ID:tRZ6TMIF
だれかGUIライブラリ書いて
そしたら社内ツールでC#の替わりに使うで
2017/07/05(水) 18:41:42.95ID:UiQJEPDB
ゼロコストがabstractionにかかっていることをつい忘れちゃう
まあ普通に考えたら、futuresでもIteratorでもMapを実現したいなら値と関数は保持しないといけないし、AndThenも前と次の値を持ってないといけないよね
ラッパー構造体のコストは引数がコピーじゃなければメモリ的にもCPU的にもゼロだったはず
2017/07/05(水) 19:26:13.97ID:AAYKoEFk
>>248
別にC/C++と比較してコストがあるかは気にしてないぞ
C++ TemplateとRust Traitは実質同じ所に行き着くんだから比較するほどの意味もなし

>>250
IteratorやMapを抽象化できないのか?、できないならコスト削減できない不適切なLibではないのか?とは思わないのかねぇ
Rustに限らず新興言語はキーワードだけ拾って素晴らしいものだ!みたいな賛美ユーザが多いね

>>249
ttps://github.com/kenz-gelsoft/wxRust

もう動かないかもしれないけど
去年くらいのwxWidgetsが3.2.0でFFI周りのI/Fを非公開にしてwxHogeHogeが全滅した
2017/07/05(水) 19:35:34.06ID:oPOjLgnt
>>150
コンパイラだってバカ正直にMap構造体を用意してそこにクロージャをそのままぶち込むようなコードは生成しないんやで
2017/07/05(水) 19:42:23.78ID:LLvZvDtb
>>251
>IteratorやMapを抽象化できないのか?
まあ確かにHKTが欲しいと思わないこともないな
2017/07/05(水) 19:43:35.74ID:oPOjLgnt
>>252
安価は>>250の間違い
2017/07/05(水) 20:12:29.34ID:kX6rHoUh
>>249
GTKはまともに使えるっぽいけどそれじゃだめなの?
俺はgtkあんま好きじゃないからいやなんだけど
2017/07/06(木) 11:00:33.73ID:tRC1mrQq
>>247
>コストがゴリゴリ上がってくのは分かった
何を突然ファビョってるんだか
タスクごとのヒープアロケーション数はΘ(1)に抑えられているだろ
2017/07/06(木) 20:30:03.81ID:kH42VxHy
最近の公式の動きを見ていると、WebフレームワークはRocketを推していく方針に見えるな
2017/07/07(金) 07:02:47.03ID:vPLSgrbk
>>257
何でよりによってnightlyを要求するRocketなん?
2017/07/10(月) 13:13:29.86ID:Y8I/wQdo
>>256
タスク数に合わせてO(n)になってると思うんだけどそれは度外視なのかな?
260デフォルトの名無しさん
垢版 |
2017/07/10(月) 13:58:50.67ID:mQ3pGq+a
オラクルがrustでコンテナランタイム作っとるってよ
261デフォルトの名無しさん
垢版 |
2017/07/10(月) 19:18:17.66ID:l6mkv8ve
Building a Container Runtime in Rust | Oracle Developers Blog
https://blogs.oracle.com/developers/building-a-container-runtime-in-rust
> almost all container utilities are in c or go.
> (中略)
> Rust sits at a perfect intersection of these two languages
2017/07/11(火) 13:53:59.15ID:5tKo2E+W
オラクルの時点でお察し案件じゃん
まあオラクルとモジラは業界のゴロ同士仲がよろしいんですなあ
2017/07/14(金) 04:46:26.78ID:TKiI+WcD
google という名前のcrateが上がってて、
説明文が "Google is evil"
バージョン番号が "6.6.6"
2017/07/14(金) 20:21:33.28ID:8a1VCaPH
Googleが悪とかやっぱモジカスだわ
2017/07/15(土) 17:00:03.78ID:U+uVxSdX
Rust公式がTwitterで"Rocketの新バージョンがリリースされたぜ"とか呟いてて、それに対して"Ironの何が悪いんだ"的なクソリプが付いてるの笑う
2017/07/15(土) 23:27:50.25ID:RjDGp9te
RustのSlackでmame氏にCでポインタとか触ったことありますか?って聞いてるやついてワロタ
2017/07/16(日) 13:32:06.66ID:FJgd8SG/
箸が転がったから笑った
2017/07/16(日) 13:33:12.21ID:JEFmdVs4
膝がワロタ
2017/07/17(月) 22:50:00.44ID:8lRCTnOP
関連型ってさなんでいるの?
CeylonやC#みたいにgenericsのin/outで実現できない?
2017/07/18(火) 13:42:50.01ID:NOYbJ+oD
>>261
ライブラリの問題とかそういう回避方法はないのかと考察したけど、goroutineの仕様上無理ぽって結論なのか
rustが最適な言語かどうかは懐疑的だけど、go以外の使える新興言語ってのは他にないし仕方ないのかねぇ
2017/07/19(水) 19:13:52.48ID:23uwxygM
>>269 in/outの方が劇的に良かったりするの?MSDNとか読んでもすぐに理解できなかった
2017/07/19(水) 22:47:17.03ID:UyJFKTdP
>>271
良くなったりするわけじゃなくて全く同じもの。
単にrustのジェネリックスに制限があるだけ。
in/outや+/-なのはjavaの境界ワイルドカード型の定義が
長いから短くなったものでキーワードにするかシギルにするかの好みの違い。
2017/07/20(木) 00:56:51.60ID:k7oT/owf
C#とか知らないから適当なことを言うけど、in/outって要は型パラメータの反/共変性を指定する構文ってこと?
Rustはクラスがないからあまり関係ないような気が
そもそも関連型と型パラメータは全く別物だし
2017/07/21(金) 01:30:42.74ID:K3J9c6vN
Announcing Rust 1.19 - The Rust Programming Language Blog
https://blog.rust-lang.org/2017/07/20/Rust-1.19.html
・C互換な(untagged) unionの導入
・loopのbreakで値を返せるようになった
・値をキャプチャしないクロージャを関数ポインタ(impl Fnでなくてfn型)として扱えるようになった
275デフォルトの名無しさん
垢版 |
2017/07/21(金) 03:20:29.74ID:kfdWC1ug
新しい言語は早い段階から使い始めれば
バージョンアップ時は変更点だけ覚えればいいけど
バージョンアップが重なったあとから始めようとすると覚えることいっぱいすぎ
Rustよ
もっとシンプルに
2017/07/21(金) 08:32:20.79ID:aL8S5b5t
-Zオプションが時報に無視されててワロタ
2017/07/21(金) 12:38:58.44ID:qDRT3Ece
Cargoがhigh level過ぎでrustcがlow level過ぎな課題はいつ解決するんかな
他のビルドツールを使ったプロジェクトにrustを入れるのが今は面倒
2017/07/21(金) 19:27:14.18ID:juJaC8N3
ていうか時報の反応速度が高くて笑う
まさかリリースの度に待機してるのか?
2017/07/22(土) 07:37:27.49ID:m9up21PD
> ・loopのbreakで値を返せるようになった

遂に来たか。
2017/07/22(土) 14:32:40.69ID:IwEFmDCG
時報であることに使命を感じて全力待機してそう, 機械の鑑だよホント
281デフォルトの名無しさん
垢版 |
2017/07/22(土) 16:14:42.22ID:Jfa6LaZA
誉め言葉として受け取っておく
2017/07/22(土) 16:20:13.34ID:rGyFmqNE
>>281
誰だお前
2017/07/22(土) 16:39:57.41ID:WZvf35Ul
なお、バグった機械の模様
2017/07/22(土) 17:02:38.46ID:vk3cyWgj
雑談の種になるよう頑張ってるんだよ、そんなあげつらうことないでしょ
2017/07/22(土) 17:04:33.13ID:vk3cyWgj
というかどこに行けばRustの話をしていいのか分からない。英語ならRedditがあるけど
2017/07/22(土) 17:05:27.55ID:lf8sQzDC
あれ、associated constsはstabilizeされたんじゃなかったのか
2017/07/22(土) 17:10:48.08ID:rGyFmqNE
>>286
現行のbetaではfeature gateが外れているから次のstableに乗るはず
2017/07/22(土) 17:42:07.41ID:Oi7t7NSG
rust-jpのSlackとか?
ところでLLしか触ったことなかった俺も最近Rust使い始めてみたんだけど、有識者から見てRustで1番理解が大変なの(あるいは抑えておかなきゃならないとこ…)はどのあたりなのか教えて欲しい。
2017/07/22(土) 18:20:40.76ID:RlMkEmCd
>>288
トレイト
ムーブ
参照(borrowing)

Javaも触ったことないならトレイトは最初難しそう
2017/07/22(土) 20:18:18.76ID:s9rnd8yr
slackの質問に対するリアクションありすぎてこわい
2017/07/22(土) 20:29:54.52ID:Oi7t7NSG
>>289
ありがとう
公式のチュートリアルみたいなやつ進めてるんだけど今のところトレイトオブジェクトらへんでちょっと理解に苦しんでる
2017/07/24(月) 12:10:36.01ID:1TXRI9Gx
rustって現場で使われ始めてるの?
メモリ管理周りのメンタルモデルって他の言語に応用利いたりする?
コードがきれいになるとか?
始めるモチベが欲しい。
2017/07/24(月) 12:28:38.82ID:zGGIqffP
C++ほど辛くない
2017/07/24(月) 14:12:02.33ID:K7WDOtB+
>>292

1.クソコードをコンパイルさせてくれない
2.コンパイル通すの少し大変だけど実行時エラーが本当に出ない
3. 速い
4.パッケージマネージャーがよくできてる

1は本当に大きくて、自分のコードとコンパイラが喧嘩になると大抵自分のアーキテクチャが悪く、直すとちゃんと正しい実装になって感動する。つまり正しいコードが書けるようになる
2017/07/24(月) 14:19:11.38ID:1TXRI9Gx
>>294
もう一つ。仕事で使ってたりする?
goのcliツールはよく見るんだけど
rust製って何が有名なのかね?
ブラウザ以外で
2017/07/24(月) 16:50:51.12ID:emVJufwa
仕事で使ってるかは別としてcliツールは作りやすい印象
2017/07/24(月) 17:05:29.37ID:gGn38L0V
ripgrepしか紹介できないんだがなんかないのか
2017/07/24(月) 17:19:06.22ID:5AMOakOe
redoxosのシェルやエディタはunix用としてもビルドできるし
有名かは別として
2017/07/24(月) 18:24:11.57ID:v7SfrUaR
ripgrepはもちろんだが、tokeiも便利だよ
ion-shellもよく出来てる
2017/07/24(月) 18:47:46.45ID:xH7iVUfu
https://github.com/rust-unofficial/awesome-rust
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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