Rust Part5

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/02/11(日) 20:07:24.54ID:ri7dLd1B
Mozilla発のRust言語のスレ

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

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

前スレ
https://mevius.5ch.net/test/read.cgi/tech/1507970294/
2018/04/27(金) 23:30:19.86ID:AfC0onIC
>>427
フロントエンドの話してるのに、バックエンドがLLVMだから違いなどない!は、おかしいのでは?
そんなこと言い始めたら、言語仕様の優劣など語るに値しないということになってしまう。
2018/04/27(金) 23:43:23.39ID:MR18u0zM
>>427
Any使ったdowncastはunsafeじゃないけどどういうコードの話してんの?
2018/04/28(土) 16:19:50.16ID:6S6rcsk3
このRustのチャットみたいなのって公式のもの?

https://gitter.im/rust-lang/rust
2018/05/01(火) 14:27:18.61ID:riKaEN0n
rustでフォントをレンダリングしたいのですがfont-rsやfreetypeなどの設定逆引き的なサイトってありませんかね?
チュートリアル的なサイトは見つかるのですがそこから突っ込んで使用したい場合に参考になりそうな情報がみあたらないです
レンダリングされる線を任意の幅にしたいです
極細フォントを使って線幅1ピクセル×2=計2ピクセルでアンチエイリアス無しみたいな感じの結果が欲しいです
2018/05/01(火) 14:37:54.06ID:riKaEN0n
具体例を補足します
出力が2値の場合に普通にレンダリングした物を減色してしまうと線幅の不均一になったりディザが掛かってしまって
表示品質が極端に悪くなってしまうのでそれを防止したいです
たとえば「田」みたいな字をレンダリングして減色するとある線は1ピクセルだけど別の線は2ピクセルになってしまったり
交わるところに不要なドットが出現したりします
それを全て任意の線幅に統一したいです
2018/05/01(火) 14:58:24.50ID:8Qa5eQjM
ここはアンチスレなので、まともな質問はslackへどうぞ
2018/05/02(水) 04:26:15.76
えぇ。。
2018/05/02(水) 04:45:47.66ID:JZRYx+4v
https://rust-jp.herokuapp.com/

rustのslack
↓のサービス使ってオープンにすればよい
http://slackarchive.io 👀
Rock54: Caution(BBR-MD5:b95868ef2c0ed5e765a4d10ada4cf289)
2018/05/02(水) 11:08:56.76ID:C2OG+VM0
Rustってカルトみたいなもんだよな
実態はスカスカで教祖の金儲けに使われてるだけなのに、信者は正義と信じて疑わない辺り

slackなんて内輪の集会に逃げ続けて表の評価に曝されることを避けてる時点でまともなプログラミング言語じゃない
2018/05/02(水) 11:13:07.30ID:9TOinEtH
>>436
Rustの提案するエセソリューションは機械語のレベルと相性が悪い
CやC++のほうがまだまともなアプローチしてる
2018/05/02(水) 11:39:02.32ID:C2OG+VM0
>>437
お前はさっさとその答え教えてくれよ
Rust批判するにしてもコンピュータの知識皆無すぎるわ。批判側がお前と同じ知的レベルに見られるのがクソ
2018/05/02(水) 11:55:03.24ID:9TOinEtH
>>438
へー今日はたくさん書き込むつもりなんだ
2018/05/02(水) 12:31:00.89ID:ZVrvL9q8
こちらはまともなアンチとキチガイアンチのスレになります。
2018/05/02(水) 12:53:31.01ID:vKwn9vOL
いやどっちもキチガイだから
2018/05/02(水) 12:58:01.18ID:vKwn9vOL
>>436
表の評価(2ch)wwww
2018/05/02(水) 20:38:46.50ID:Ua9w95BC
少しずつRustの研究が出てきたね
ttps://arxiv.org/abs/1804.10806
2018/05/03(木) 01:12:08.40ID:Sirn7AO1
win10 rs4にしてからrustdocが遅い。
rs4にMeltdown/Spectre対応のパッチも含まれてたんだろうか。
445デフォルトの名無しさん
垢版 |
2018/05/03(木) 02:54:28.33ID:Rj4yBmSF
Rustを導入している企業・組織の一覧をご覧ください


https://www.rust-lang.org/ja-JP/friends.html
2018/05/03(木) 08:55:22.99ID:4wWpk2nD
Windows defenderが動いてるとかでは
2018/05/03(木) 12:04:38.70ID:y3R7schb
少なくとも5chではgoよりrustの方が盛り上がってるな。
2018/05/08(火) 01:41:55.63ID:jFUdx6HI
impl traitはよ
2018/05/08(火) 21:29:46.74ID:RGDg6ogT
パフォーマンスとマルチスレッドを理由にRustを採用という事らしい

https://logmi.jp/282807
2018/05/08(火) 22:15:52.43ID:W4Ax9FiD
ドワンゴといい、ヤバい会社の指標としていいねw
2018/05/08(火) 22:23:27.27ID:T0pMALEX
機械語のレベルと相性が悪いしなw
452デフォルトの名無しさん
垢版 |
2018/05/08(火) 22:26:07.82ID:EnN/pyur
>>450
>>445
これでもそんな知恵遅れみたなこと言うの?
2018/05/08(火) 23:31:08.80ID:W4Ax9FiD
同じリストを他言語でも作ってみたら?
どれだけバカなこと言ってるかわかると思うよ。
454デフォルトの名無しさん
垢版 |
2018/05/08(火) 23:52:08.90ID:EnN/pyur
ああそりゃ分かるだろうね、是非作ってみたまえよ
2018/05/09(水) 00:11:01.28ID:ZcDO5kt6
>>449
謳い文句通りの「速度とマルチスレッド」で選んだら後でめんどくさいよ。
MIRの導入もなかなか成果出てないし、同期はセマフォ/ミューテックスしかなくて
javaみたいに高レベルから低レベルまで自分で書けるわけじゃないし、
non blocking ioも、lock free collectionもなくて外部ライブラリへの依存度が極めて高いし、
cargo腐ってるせいでrustのtooling絡みのissueが日に日に増えるし。

rustの良いところは言語の部分だからコアな機能使わないなら他言語のほうが良い。
土方の要求には合わないでしょ。

それよりimpl traitまだー?
456デフォルトの名無しさん
垢版 |
2018/05/09(水) 00:44:09.86ID:D/4RZNTl
間も無くなんだから静かに待ってなさい
2018/05/09(水) 08:29:25.33ID:SINErtCB
>>449
これってgoでは無理だったんかね?
単純に趣味の問題?
2018/05/09(水) 13:55:28.84ID:9bmRNzTn
goって言語仕様でマルチスレッドによるデータレースを起こさない仕組みってあるの?
無かったらその部分が大きいのでは?
2018/05/09(水) 15:04:31.38ID:bH4TOh4o
goはchannel経由にすれば自動的にアトミック
mutex部分が隠ぺいされてるので意識する必要が無い
460デフォルトの名無しさん
垢版 |
2018/05/10(木) 01:52:41.29ID:8hhZ9q5s
むしろrustがなぜチャネル的なもの入れなかったんだ?
2018/05/10(木) 02:11:20.77ID:71z1/J2u
標準にも外部crateにもいっぱいあるだろ
ライブラリとしてではなく言語仕様としてという意味か?
2018/05/10(木) 10:12:22.36ID:sqBEyANZ
>>459
言ってることがよくわからんメモリ共有は基本的にmutexみたいな物はついてない気がするけど。基本的にchannel経由で情報交換しない方針にすれば
データ競合は防げるって話では?

rustってデータ競合がコンパイル時点で防げるって意味がわからん。
そんなことがかのうなん?
2018/05/10(木) 10:16:06.63ID:sqBEyANZ
>>462
X 基本的にchannel経由で情報交換しない方針
○ 基本的にchannel経由で情報交換する方針
2018/05/10(木) 10:17:49.30ID:sqBEyANZ
>>463
詳細はこちら
Goでスレッド(goroutine)セーフなプログラムを書くために必ず注意しなければいけない点
https://qiita.com/ruiu/items/54f0dbdec0d48082a5b1
2018/05/10(木) 13:22:21.00ID:MOe7VLfi
数十GBのオブジェクト管理は、gc待ちきついからオフヒープでとか、(これ聞いたときよりgcは良くなってる)
goroutineで確保したメモリは解放せずgoが管理するから、常駐で同時に大量に走ると解放されないとかはあるみたい。
2018/05/10(木) 13:35:12.76ID:71z1/J2u
>>462
それが売りの一つなんだから当然出来る
具体的にはこれでも読んでくれ

https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/concurrency.html
2018/05/10(木) 18:25:01.25ID:0Uo+Yl5e
以下の場合に&*fで具体的にどうなってるのかが分からない
*でderefされてトレイトオブジェクトの実態になって、&を付けることで再度トレイトオブジェクトになってる?
ちなみにexec(f.deref())だとそのまま通るけど、これはBoxのderefが&Tを返すからだよね?
*だとBoxのderefで返った&Tではなく、さらにderefされてTが返っているってこと?


fn create() -> Box<Fn()> {
Box::new(|| println!("test"))
}
fn exec<F: Fn()>(f: F) {
f()
}
fn main() {
let f = create();
exec(&*f);
}
468デフォルトの名無しさん
垢版 |
2018/05/10(木) 21:37:45.30ID:r2ZBYv9N
Derefを実装した型に対しての*xは*x.deref()の糖衣構文
つまり、&*xは&*x.deref()と同じで、それはつまり、x.deref()と同じ
2018/05/10(木) 22:16:14.49ID:0Uo+Yl5e
なるほど
*x ==x.deref() って言う認識だったのが間違ってたのか
ありがとう
2018/05/12(土) 02:06:23.28ID:6a2pRrds
impl trait来たな
471デフォルトの名無しさん
垢版 |
2018/05/12(土) 14:27:50.20ID:CbmhA0Cx
きた
2018/05/14(月) 08:56:23.29ID:+8ra2A+L
久しぶりにRustやろうと思ったけど公式リファレンスが最新版に追いついてないのな
どっかに変更履歴のまとめとか無いのかな
473デフォルトの名無しさん
垢版 |
2018/05/14(月) 12:00:52.07ID:fAXXTBeo
>>427
公式リファレンスって何のことを指してるんだ?
APIリファレンスならきちんと最新版に追従してるし、
チュートリアル(The Book)も2nd Editionがきちんと出てる
バージョンアップの追従ならリリースノート見るかRustの公式ブログ見れば大体分かると思う

Rustは6週間に1回のハイペースでマイナーバージョンアップ繰り返してるから
The Bookのほうは最新版に追いつくこと自体がほぼ不可能だと思うけど
(つい最近もimpl traitがstable化されたばっかりだし…)
474デフォルトの名無しさん
垢版 |
2018/05/14(月) 12:06:29.06ID:fAXXTBeo
>>473
間違えた
X >>427
>>472
2018/05/14(月) 21:32:55.87ID:+8ra2A+L
そのimpl traitが気になってまたRustやろうと思ったんだけどね
全機能の索引みたいなのがないと学習効率が落ちる
2018/05/17(木) 09:49:24.40ID:iDnHcMfd
rustって生産性高い?
安全性が高まって結果的に高くなるということではなくね
やっぱでかいプログラムじゃなきゃ使う効果ない?
2018/05/17(木) 10:44:40.51ID:eZl7hMvh
Javaでnull参照が10億ドル単位の損害と言われてるので
RustはJavaより10億ドルほど生産性が高い
2018/05/17(木) 11:16:01.90ID:mMzQfbWV
まあ、ネタにマジレスになるが、
その論法だと俺の未完成言語は誰もバグを生み出してないので
Rustより生産性が高いなw
2018/05/17(木) 11:48:49.35ID:UfgM043o
>>478
分母分子共にゼロなので計算不能ってやつね。
2018/05/17(木) 14:42:41.57ID:5Q9GbdJl
チーム開発に良さそうな気がするけどメンバーのレベルにかなり依存しそう
2018/05/17(木) 15:12:36.48ID:xSjwlbqQ
自分がGCなしの言語使ってた時の経験だと、ヌルポより、freeした後にアクセスするバグの方が多かったから、オーナーを一つにするrustはいいと思う。
まあ、objective-cのARCでいいじゃんとも思うけど。
2018/05/17(木) 15:31:36.59ID:eZl7hMvh
そこでoptionalですよ
こいよ継承クラス、ポリモーフィズムなんて捨ててかかって来い!

実際、null非許容のポインタが欲しい
2018/05/17(木) 15:59:25.11
誰がヌルポなんか 、ヌルポなんか怖かねぇ!
2018/05/17(木) 16:39:48.45ID:l6lckqvi
C#だとぬるり
2018/05/17(木) 19:10:55.29ID:eQ6djlVW
C#の発想元はJavaよってC#もぬるぽ(意味不)
2018/05/17(木) 23:47:12.62ID:STJHYINb
1.27.0-nightly (2f2a11dfc 2018-05-16)がregressionしとる。
issueある。待つヨロシ。

>>427,473
the rust referenceのことじゃね?the bookとは別にあるだろ。
全然追いついてないよアレ。そもそもまだ仕様書がない言語だし。
" best-effort document"って書いてあるでしょ
2018/05/18(金) 23:04:38.08ID:e1n+oPRU
httpサーバでありかつクライアントであるみたいなプログラム書く場合、現状hyper一択なのかね?
acitx-webとか誰か使ってない?
2018/05/19(土) 02:24:33.88ID:1CYkmYAx
最初rocketで書いてたけどactix-webで書き直してる
今だとactix-webが一番良い感じだと思う
必要に応じて同期、非同期、アクターモデルと使い分けられるし
2018/05/19(土) 22:00:56.80ID:o9r1YzQK
>>488
良い感じか。使ってみるか。ありがとう
2018/05/23(水) 01:20:45.09ID:RRIpR+v2
https://github.com/rust-lang/rfcs/pull/2444
有志「クソ機能入ったのいらねえから消そうぜ」
大勢「いいな!賛成」
独裁開発チーム「もう入ったから消せませーーーーんwwwwww(クローズ&ロック)」

systemdかよって
2018/05/23(水) 03:14:02.94ID:V0Z2NuNB
>>490
もう入ったから消せませんってのは横暴なようにも見えるがしようがないとも思う
一度入れてしまった機能をまた使えなくするとか、それこそ混乱するし…
そもそも何故impl trait を引数の位置にも書けるようにしたのかは確かに甚だ疑問ではあるけど…
引数の位置でジェネリクスとトレイト境界じゃなくてimpl trait じゃないとダメなケースとかある?
無いなら、warning出してジェネリクスとトレイト境界に書き直すように促すのが妥当じゃないかな?
2018/05/23(水) 07:29:53.45ID:chu47WW7
例があるけどすっきり書きたいみたい
https://github.com/phaazon/rfcs/blob/undo-universal-impl-trait/text/1951-expand-impl-trait.md
2018/05/23(水) 10:44:20.66ID:KWn7zjxF
こういうところでマウンティングとらないといけない辺り
言語(笑)開発チームとやらも内情はどうなってることやら
2018/05/23(水) 11:19:22.58ID:2AZG2/zg
たしかにどっちで書くべきかよくわからんくなった
2018/05/23(水) 12:46:35.30ID:wx8WkS/n
<T: Trait> foo: T

foo: &Trait
との比較で特殊なケースを除き前者の方が効率良いが
syntax上後者の方が簡単なので
初心者が誤って後者を使ってしまうケースがあった
これを防ぐためにimpl Trait および &dyn Traitを導入し
&Traitをdeprecateすることになった
496デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:22:54.70ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

D49IO
2018/05/23(水) 20:12:10.79ID:OqqpDSMd
もう入ったから消せません
は正論

何故クソ機能の進入を許してしまったのか、どうすれば食い止められたのかについて追求すべき
2018/05/23(水) 21:15:28.51ID:cEWT5Ura
ジェネリクスの型変数って引数と戻り値の型を揃えるとかそういう使い方をすべきであって
Traitをimplした型を受け取るという意味ではimpl Traitを使うべきだと思う
ただimpl Traitを導入するなら1.0の時点で導入してて欲しかった
2018/05/23(水) 23:34:44.01ID:J44hs+nP
こういうところでマウンティングとらないといけない辺り
言語(笑)開発チームとやらも内情はどうなってることやら
2018/05/24(木) 00:25:13.01ID:XbYocBeq
javaのジェネリックスが理解できてないやつが多いだけ。
501デフォルトの名無しさん
垢版 |
2018/05/25(金) 02:08:00.91ID:MJUyxiHQ
Rust始まる前に終わったか
2018/05/25(金) 10:28:02.89ID:fl2+4CP3
始まる要素が欠片でもあっただろうか
2018/05/25(金) 10:31:47.59ID:fl2+4CP3
>>495
それはdyn Traitの実装理由であっても、
引数位置のimpl Traitを実装した理由の説明になってない
2018/05/25(金) 12:05:08.76ID:2Lpcv/H6
fn foo(a: &dyn Trait)

fn foo<T: Trait>(a: T)
では前者の方がlightweightでは
2018/05/29(火) 19:15:02.85ID:MDdgGfn5
target/debug 以下に生成されるdepsとかbuildって何なの?
goとかにはないよね?
gtk-rsだと500MB消費しちゃうんだけど他のプロジェクトで使い回しとか出来ないの?
2018/05/29(火) 23:04:02.93ID:R7SeORIn
>>505 環境変数CARGO_TARGET_DIRを指定してやれば再利用してくれるよ
ただ、vscodeのrustプラグインの何かがこの環境変数を考慮してないんで挙動がおかしくなったことがあるんで注意
2018/05/29(火) 23:26:47.02ID:MDdgGfn5
>>506
おお流石に出来たんですね

プラグインがおかしくなるのはrls側の問題ですかね🤔
2018/05/29(火) 23:29:14.13ID:TMN/Dqsk
Rustと言えばcookpad。
2018/05/30(水) 14:08:55.25ID:EgEwhYIf
>>501
最近Rustの話聞かなくなったな
2018/05/30(水) 18:12:45.66ID:pSj5bsTP
HNはリリースの度に話題になってるけど
2018/05/31(木) 06:31:41.15ID:Ao0QiwhU
日本の企業くらいだよ。
rustで書いてまっせっていうバカなアピールするのは。
2018/05/31(木) 06:42:55.06ID:RS4tQXGE
まあCloudflareも日本にリージョンあるしな
2018/05/31(木) 10:37:31.25ID:QFV8wAla
>>511
泥箱って日本企業だっけ
2018/05/31(木) 15:17:41.00ID:Rs+XOVpI
日本の企業って凄いんだなー
2018/05/31(木) 20:32:40.66ID:ITatAB0P
wtftwっていうタイル型WM、設定ファイルまでrustで書くのどうなんだろ
設定ファイルはluaあたりが無難?
2018/05/31(木) 22:08:10.33ID:Ao0QiwhU
>>513
いやもうなかったことにしたがってるじゃんw
それなのに変なのに付きまとわれてるっていう。
2018/05/31(木) 22:30:50.22ID:Rs+XOVpI
>>516
「なかったことにしたがってる」というソースをプリーズ
2018/05/31(木) 22:43:00.94ID:RS4tQXGE
Dropboxのbrotliデコンパイラが昨日更新されてたから
24時間以内のホットな情報だ
2018/05/31(木) 22:43:34.41
Rustが失脚すると得をする組織があるの?
どうしてそこまで情熱的にRustを貶すの?
2018/05/31(木) 22:46:14.56ID:Qkx1CtmH
>>515 ざっとコンフィグファイル見たらXMonadのコンフィグよりは理解しやすいように思った
xmonad.hsはもっと宣言的に書けて、モナドとか上手く作って見栄えは良くできるんだけど、
馴染みのない演算子(<+>とか)使いまくるんで、よっぽどHaskellに慣れ親しんだ人でないと全容が理解できない

設定ファイルのフォーマットを開発言語と同じにするのはdwmから続くタイル型WMの流儀だし、
思ったより読めていいと思うよ。
2018/06/01(金) 00:57:19.91ID:Lcv3mjW7
>>519
前段 モジラとその小判鮫以外の全組織が喜ぶ
後段 技術的にカスなものを貶すのは技術者の義務だろ
522デフォルトの名無しさん
垢版 |
2018/06/01(金) 01:23:36.92ID:n6iooPs9
>>521
>技術的にカスなものを貶すのは技術者の義務だろ
じゃあPHPではなく敢えてRustをdisる理由は?
あちらの方が広く使われてるからより害悪だと思うが
2018/06/01(金) 04:40:22.00ID:WbqigEkQ
>>520
ほうほう
2018/06/01(金) 06:21:30.96ID:/a7YB1o/
>>522
あれを使ってるやつも害悪性は理解してるからな。
こういう技術的にインテリな要素のある言語って信者がとにかく頑なで
実際のプログラムの現場で非常に問題になることが多い。
525デフォルトの名無しさん
垢版 |
2018/06/01(金) 07:12:12.64ID:V5eoRgyy
ほーん具体的にどんな問題がおきたの?
2018/06/01(金) 07:23:19.18ID:M/qnTWL0
んー例えば
Rustの提案するエセソリューションは機械語のレベルと相性が悪い
CやC++のほうがまだまともなアプローチしてる
2018/06/01(金) 08:47:59.46ID:n6iooPs9
>>525
んー例えば
コンパイルが通せなくて自尊心が傷ついて自ら会社をやめちゃう問題とか

この話どこまで事実か知らないけど仮に本当だったとしても
これって言語の問題というよりチームのプログラマの腕を過大評価
もしくは計算に入れてなかったというマネジメントの問題だよね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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