プログラミング言語 Rust 3at TECH
プログラミング言語 Rust 3 - 暇つぶし2ch669:デフォルトの名無しさん
17/08/24 10:56:17.70 yyGwhDVO.net
>>653
清太よ、>>649の「自宅ならともかくモバイルで開発しようとするとオンライン必須は迷惑 」へのレスだよ
この「モバイルで開発」はテザリングを指しているのではないのであれば、どういう環境のこと言ってるんだろうね

670:デフォルトの名無しさん
17/08/24 11:36:23.74 nec4MnrL.net
移動中という状態を除外したら移動体通信ではなくて只の無線通信

671:デフォルトの名無しさん
17/08/24 18:47:05.57 NSzs0jC1.net
個人的にはcargoが色々手を回しすぎなのが問題だと思うよ
ちょっと想定外だけど真っ当な使い方をしようとすると面倒が増えて、それをissueとして投げるしか無いからcargoがますます巨大になる
URLリンク(github.com)
↑でもちょっと出てるけど、今のcargoはインターフェイスとしてそれなりに使えるので、rustc以上cargo未満なツールを作ってくれるとありがたい
他のビルドツールとの連携とか今はかなり面倒。

672:デフォルトの名無しさん
17/08/25 06:54:52.63 fv88sy22.net
struct Node<T> {
data: T,
}
があって、
struct Container<T> {
nodes: Vec<Rc<RefCell<Node<T>>>>,
}
のようなContainerを定義して、このコンテナから&Tに直接アクセスするiteratorを作りたい
のですが、どうしたら出来るでしょうか?(そもそも出来るのでしょうか?)
雰囲気的には↓のような感じになると思うのですがライフタイムがよく分かりません。
URLリンク(play.rust-lang.org)

673:デフォルトの名無しさん
17/08/25 12:13:31.91 wqoYH6g/.net
>>656
そういう公式ツールの増大は開発環境を複雑&巨大にするばかりだからやめて欲しい
cargoサブコマンドを公式rust libよろしく外部に吐き出してしまえば鬱陶しい文句も出なくなりそう

674:デフォルトの名無しさん
17/08/25 15:09:41.26 yTj1cv1p.net
>>657
この例ではRefCell::borrowが返すRef (owned)から<Ref as Deref>::derefによってRefからの借用として&Node<T>を得ているわけだけど、
<NodeIter as Iterator>::nextの末尾でRefがdropされているから借用は関数の外まで生き残らない
&Tを直接返す方法があるとは思えないけど、Ref<'a, T>を返すことはできる
URLリンク(play.rust-lang.org)

675:デフォルトの名無しさん
17/08/25 15:38:40.83 J7NBnr1n.net
>>659
Refを返すのは思いつきませんでした。
ありがとうございます。それでもよい気がするのでやってみます。

676:デフォルトの名無しさん
17/08/26 10:47:16.34 O+zDlIdw.net
このスレで話題にするのはアレかもしれないが、 Servo nightly build が
いつ試してみても盛大にぶっ壊れていて、開発順調なのか心配になる。
Rust で開発していると mutability で詰むことがあって、よーく考えてデータ構造なり
を変更すればうまく解決できることが多いし、コードもより良くなっていることが多い。
でもその変更って毎回異なった自明でないものだし、局所的なもので済まないこともある。
Servo くらい大規模なプログラムになったとき、もうどうしようもなく詰んだりしないんだろうか。

677:デフォルトの名無しさん
17/08/26 11:32:33.62 mrwT3sC4.net
やっぱブラウザ作るには向いてません
てなったら悲しいな

678:デフォルトの名無しさん
17/08/26 12:07:35.67 O+zDlIdw.net
気づいたら struct のメンバがほとんど RefCell になってるとかありそう。

679:デフォルトの名無しさん
17/08/26 12:14:24.38 3J5PaXHT.net
Rustに熟知してれば変更は自明であり、機能分解点を精査してれば変更は局所的なもので済むんでないかな
小規模なモノを無計画に作るにはRustは適さない言語だと心底思う
Servoは長いこと開発続けてるけどあんまり精力的に開発する気なさそうだよなぁ
Mozillaが営利団体として潰れそうだし・・・実際Mozilla Japanは潰れてるorz

680:デフォルトの名無しさん
17/08/26 12:48:20.45 qL+5xDF6.net
キノコ雲を見上げるsteveklabnikの画像がRust界隈でにわかにミーム化しつつあって笑う

681:デフォルトの名無しさん
17/08/26 16:16:56.49 1psTTOfA.net
servoで作ったモジュールがfirefoxに取り込まれていっているし、実験プロジェクトとしては成功なのでは

682:デフォルトの名無しさん
17/08/26 22:25:08.80 YYTb5WfA.net
Rustに限った話ではないですけど
・構文解析
・ハイライト
・オブジェクト追跡
・入力補完
などの機能を持ち高速に動作するテキストエディタってないですかね?
JavaやNode.jsを使った物は総じて動作が重いですし、Cなどで書かれてネイティブな物は機能性で劣る気がします

683:デフォルトの名無しさん
17/08/27 01:57:19.50 OZ/i8G6F.net
>>667
Node.jsで作ったエディタが重いってそれVSCodeの前で言えるの?

684:デフォルトの名無しさん
17/08/27 02:04:39.75 mxFQINt9.net
ageるなアホ
VSCodeつーかAtomは実際重たいからな
あとスレッドぶん回すからノートPCで動かすとバッテリー消費がシャレにならん
JetBrainsのCLionにRust Plugin入れたらブレークポイントも貼れるし良いぞ
誰かJetBrainsから有料版出る前にブレークポイント貼れるようにするPR出さないかねぇ
地味に高いから購入する気にはならんのだよな

685:デフォルトの名無しさん
17/08/27 02:12:16.71 PbodRtd5.net
Rustプラグインを単体の製品にするとは思えんけどねえ
彼らは例えばScalaのプラグインとかも手がけているけど別に製品化している訳じゃないし

686:デフォルトの名無しさん
17/08/27 02:34:48.02 SDSllFYF.net
VSCode重たくて殺意生える
いちいちワンテンポ遅いんじゃ

687:デフォルトの名無しさん
17/08/27 04:11:59.30 y+D9Ax/7.net
Vimすらも重いことあるんだけど俺

688:デフォルトの名無しさん
17/08/27 07:38:59.45 mxFQINt9.net
vi使えよ、viの軽さに慣れたらvimはそりゃ重たいでしょ
>>670
Scalaなんて10年以上前に流行った言語のIDEを今更有料化しても売れないだろうからな
Rustは今現在流行ってる(?)言語だし売るんじゃねーのかね

689:デフォルトの名無しさん
17/08/27 10:25:11.28 y+D9Ax/7.net
viとか使ってるやついたのか

690:デフォルトの名無しさん
17/08/27 12:17:29.76 PbodRtd5.net
Xi使おうぜ

691:デフォルトの名無しさん
17/08/27 12:49:38.49 PVSAtTcW.net
Atom (Electron) が Blink から Servo に乗り換えれば軽くなるのだろうか?

692:デフォルトの名無しさん
17/08/27 19:27:41.18 gsqvcCn0.net
vscodeって重いよな?起動も動作も軽快とは言い難い
むしろvscodeが軽快に使えているという人がいるならどのような環境で使用しているのか聞きたいわ
SSDを乗せた標準電圧版Coreiモバイルノートでも結構もっさりだし

693:デフォルトの名無しさん
17/08/27 19:39:49.26 PbodRtd5.net
もっさりとかいう言葉じゃ意味不明だからせめて数値で言ってくれ

694:デフォルトの名無しさん
17/08/27 19:47:01.83 SLqFnPu1.net
何を妥協して「せめて」なのか分からんが数値あげてやろう
MacBookでIntelliJが6時間くらい保つ所が3時間くらいしか保たない程度に無駄処理多い
プロセス上の待機スレッド数も10~20くらい違った覚えがある
待機中でもそんだけスレッド回してるから、コーディング中、ビルド中の負荷もでかくなるよね
VSCodeを愛用してるコーダーはemacs愛用してるコーダー並みにマゾだと思う(viユーザ感

695:デフォルトの名無しさん
17/08/27 19:49:16.80 SLqFnPu1.net
>>678
あ、レスするならついでに「せめて」で説明要求を妥協した点を教えてくれい
確認してる範囲であれば答えるよ

696:デフォルトの名無しさん
17/08/27 23:25:25.14 tvWh4D3N.net
好きなエディタを使ったらええ

697:デフォルトの名無しさん
17/08/28 09:34:01.20 A8OmMbPi.net
全くだ、重たいと事実を指摘されても発狂することなく
重たくても他に良い所があるから使ってるんだと言い切っていたemacs愛用者は良い人たち
>>675
バックエンドRust, フロントエンドSwift, 通信プロトコルJSON, プラグインサンプルPython
ごった煮過ぎて笑うわw

698:デフォルトの名無しさん
17/08/30 13:54:58.32 AB0hyKA3.net
rustってやっぱりスペックいいパソコンと高速なネット回線がないと厳しいですね

699:デフォルトの名無しさん
17/08/31 22:48:16.13 agJG8fpm.net
普通の言語だと処理の一部を関数に切り出すのとか簡単に出来るけどRustだと返り値の方が分からなくてそれが難しいことがあるよね

700:デフォルトの名無しさん
17/09/01 10:25:57.73 pDFuyP/L.net
let a: () = { ... };
でコンパイラがエラーとして正しい型を教えてくれるぞ。

701:デフォルトの名無しさん
17/09/01 13:32:10.36 PRuVKL7F.net
クロージャにすれば良い
なあに、きっと最適化で普通の関数と同じ扱いになるさ(適当)

702:デフォルトの名無しさん
17/09/01 20:19:45.83 Mxd80Z9N.net
Rustのスレあったんだね

703:デフォルトの名無しさん
17/09/01 20:51:46.56 d10AKhdK.net
おい、時報はどうしたんだ?

704:デフォルトの名無しさん
17/09/01 23:41:11.07 62CxLGbq.net
unsafeだらけ

705:デフォルトの名無しさん
17/09/01 23:45:28.89 PRuVKL7F.net
Pijulで開発されているらしきcrateを発見してrepositoryリンクを辿ってみたらNot foundが返ってきた
URLリンク(crates.io)

706:デフォルトの名無しさん
17/09/02 00:14:47.90 aRnAy5mn.net
スクワット中なんじゃないの, 筋力ついたらリリースされるでしょ

707:デフォルトの名無しさん
17/09/02 00:45:15.54 Qzt2A3g3.net
Rustが最強のプログラミング言語である証明
URLリンク(hayato.io)
遂に証明されたか……

708:デフォルトの名無しさん
17/09/02 01:24:01.14 X2T/f4uE.net
Round 1の結果のみで語られてもねえ

709:デフォルトの名無しさん
17/09/02 01:50:33.08 cF7LUBE8.net
なんかnightlyにPythonのジェネレータ入ったとか聞いたんだけど誰得?
もうtokioつかFutureあるし。

710:デフォルトの名無しさん
17/09/02 08:16:03.50 oilxAadu.net
いつまでたってもスライスパターンが標準にならないのなんで?
ほかの関数型言語みたいな言語標準?のリストと、そのパターンマッチ、があればいいけど
そういうつもりもないんならスライスパターンをはよ強化&標準装備してほしいんだが

711:デフォルトの名無しさん
17/09/02 08:35:22.00 zv/5K5Jn.net
私は最強のRust以外のプログラミング言語で書く気はありません

712:デフォルトの名無しさん
17/09/02 08:40:19.17 MacxmZWQ.net
Featureを駆使するので楽になるのはそうだが、
逐次処理的に書けるasync/awaitの方がさらに楽なので
それを実現するための要素としてgeneratorは必要
あとIteratorの実装も楽になる

713:デフォルトの名無しさん
17/09/02 08:40:57.03 MacxmZWQ.net
FeatureじゃなくてFuture

714:デフォルトの名無しさん
17/09/02 11:39:08.16 Nnknp9qO.net
>>692
なんていうか、自分のチームの優位性を示してドヤろうとしたけど決定的な証拠がなかったから自分に有利な調整をしたという感じだな
特定のチームへの非難をしつつそのチームの人間のツイートを自分の主張の補強に使っているのもいろいろアレ
まあ競技プログラミング界のゴタゴタはどうでも良いけどとりあえずRustを巻き込まないで欲しいわ

715:デフォルトの名無しさん
17/09/02 12:32:15.66 3cz+aWzV.net
>>692に対してちょこちょこマジレスがいるけど
正規化の文章の注釈[4]でウォーズマン


716:理論とか引っ張り出してるからな



717:デフォルトの名無しさん
17/09/02 13:10:10.49 U8pYefIa.net
マヌケは見つかったようだな…ロクにリンク先も読めないのに批判する口だけの能無しが…

718:デフォルトの名無しさん
17/09/02 17:38:03.40 pn8ujE89.net
風情のないやつらだ

719:デフォルトの名無しさん
17/09/02 19:03:59.64 AHW4eZK5.net
ウォーズマン理論により各言語の普及率(PG人口比)でスコアを倍加すると
数の暴力が発揮されJavaが最強のプログラミング言語であることが証明される
とでも言えば風情があるのかね?

720:デフォルトの名無しさん
17/09/02 19:58:54.78 X2T/f4uE.net
風情駆動開発

721:デフォルトの名無しさん
17/09/03 01:23:29.76 KzrJfOQ0.net
ネタにマジレス以下の寒い話だな

722:デフォルトの名無しさん
17/09/03 02:55:54.90 8KnlJyLG.net
ネタに対する模範解答って『やはりRust最強だな!』とか?

723:デフォルトの名無しさん
17/09/03 09:50:38.50 YZmIGy7N.net
>>705
風情の有無を話してるのであって、寒さ暑さを話してるんじゃないんだけど
>>706
まずはageないことから始めよう、な?

724:デフォルトの名無しさん
17/09/03 11:35:08.63 CVrfF8Ix.net
>>702
わび・さび ですよね、わかります
I know. sorry & rust

725:デフォルトの名無しさん
17/09/03 12:50:33.18 E+2Ill1j.net
お前ら、associated constantsがstableになったってのにいつまで下らない話を続けているんだ

726:デフォルトの名無しさん
17/09/03 13:04:30.79 Zk5wiRrT.net
関連定数が乗ったなら、次は依存型だ!

727:デフォルトの名無しさん
17/09/03 13:07:07.67 9s1YDGRT.net
依存型はやり過ぎだ!高階型でいい!

728:デフォルトの名無しさん
17/09/03 14:56:28.19 3Ui33to1.net
impl Trait と トレイト境界の特殊化の実装が先だろ……
これのせいで書けないコードあるんだぞ

729:デフォルトの名無しさん
17/09/03 14:59:38.46 E+2Ill1j.net
きっとimpl periodのうちに全部実装してくれるよ(適当)

730:デフォルトの名無しさん
17/09/03 16:40:58.80 Sqyt1HzW.net
async を汎用的に実装するなら モナド ( M<T> ) 的な高階型が必要?

731:デフォルトの名無しさん
17/09/03 17:05:48.88 4Saw+NMi.net
emccなしでwasmれるって本当?

732:デフォルトの名無しさん
17/09/03 20:29:20.09 HVXRIsjy.net
linkerとしてemcc必要では

733:デフォルトの名無しさん
17/09/04 01:02:25.35 TiSfjsBP.net
そもそもwasmなんて誰が必要としてるんだという問題がある
実際現状wasm使うよりV8の方が速いだろ

734:デフォルトの名無しさん
17/09/04 02:18:35.33 yWQauj9l.net
実験的な機能に現時点での必要性を求められても……

735:デフォルトの名無しさん
17/09/04 03:38:50.42 B0/qvj/R.net
JSの分野でもRust使いたいじゃん

736:デフォルトの名無しさん
17/09/04 03:56:46.84 acsdbygY.net
asmjsが早いんだからランタイム側の対応が十分進めばwasmも早くなるでしょ

737:デフォルトの名無しさん
17/09/04 10:53:07.99 e2EV4sJ/.net
>>719
Rustなんて実用にならない言語未満使うくらいなら、クソとはいえ言語の体なしてるJS使うわクソ

738:デフォルトの名無しさん
17/09/04 12:07:05.02 Wptm5Fxj.net
好きな言語を使ったらええ

739:デフォルトの名無しさん
17/09/04 20:51:30.52 hGu6xlI4.net
お前らslackにまけとるやんけ

740:デフォルトの名無しさん
17/09/04 23:53:57.54 yWQauj9l.net
いつの間に戦っていたのか

741:デフォルトの名無しさん
17/09/05 02:01:35.76 a/Cb1ZW9.net
Hack&Slack

742:デフォルトの名無しさん
17/09/05 04:46:57.50 kj7TSLdS.net
@seanmonstarがMozillaを辞めるとか言いだして一瞬ギョッとしたけど、次の職場ではフルタイムでRustを使うと言っているからhyperの開発はむしろ加速しそう?
URLリンク(seanmonstar.com)

743:デフォルトの名無しさん
17/09/05 07:50:37.72 JsNUX7wh.net
rustってまだ俺の中で実験言語だけど
そろそろプロダクト作ってる人とか出てる?

744:デフォルトの名無しさん
17/09/05 10:31:25.11 Xe9ypjwu.net
>>727
噂では泥箱あたりが使い倒してるとか
ずっと前から言われてるけど未だにコードの一つも公開されてないからただの提灯持ちで実際は使われてないと見てるがね

745:デフォルトの名無しさん
17/09/05 10:34:56.85 Xe9ypjwu.net
Rustが1.0過ぎてから今に至るまで、Rust使ってるって主張する企業は
モジカス自身と個人情報おもらしの一件で何かしら話題とお金が欲しい泥箱しか見ないって時点で色々と察するべきなんだよ
お前らいい加減目を覚ませ

746:デフォルトの名無しさん
17/09/05 12:37:41.86 xNvKf2Ex.net
URLリンク(www.rust-lang.org)

747:デフォルトの名無しさん
17/09/05 13:37:05.48 Fbd5ldy5.net
見たことのないフレンズばかりだね

748:デフォルトの名無しさん
17/09/05 14:44:43.29 Xe9ypjwu.net
>>730
そのうちモジラのフロント企業じゃないのはいくつだい?

749:デフォルトの名無しさん
17/09/05 14:48:42.01 a/Cb1ZW9.net
ID:Xe9ypjwu
この異常者まだ居たのか

750:デフォルトの名無しさん
17/09/05 16:16:47.13 yjuOh0Qw.net
LINEはモジラのフロント企業

751:デフォルトの名無しさん
17/09/05 17:49:37.05 RCCGTejb.net
dropboxやsamsungもmozillaのフロント企業の可能性が・・・?
実はmozillaってすごい会社なんじゃね

752:デフォルトの名無しさん
17/09/05 19:27:40.10 JsNUX7wh.net
rustっていまいち売りがないよな。
ちょっとしたツールを作るっていうのには向いてない気がする。
Goくらいの適当言語がちょうどいい。

753:デフォルトの名無しさん
17/09/05 19:44:37.37 RqVBFvg5.net
ちょっとしたではなく、きちんとしたソフトウェアを書くための言語だよ

754:デフォルトの名無しさん
17/09/05 19:51:45.33 gLY7ZEwx.net
Rustは、型システムがきちんとしてないとイライラしてしまう人向けの言語だよ

755:デフォルトの名無しさん
17/09/05 23:06:17.75 iU8sfTGh.net
システムに近いところを触るバックエンドのデーモン等に向いた言語だよ

756:デフォルトの名無しさん
17/09/06 00:48:38.63 UIwOcimL.net
SIGSEGVに絶望したくない人のための言語

757:デフォルトの名無しさん
17/09/06 09:02:56.43 Sz3zXSu8.net
パッケージのインストールだけで長時間かかるのだけ何とか改善してくれる神様たちっていないんですかね
issueにそういう要望とか出ないものですかね

758:デフォルトの名無しさん
17/09/06 10:49:22.58 XzXTbCma.net
前にも出てたけど、CARGO_TARGET_DIRを設定すればさっきそれコンパイルしたじゃん!ってのが無くなる
まあコンパイルそのものは遅い方だからそれは我慢する

759:デフォルトの名無しさん
17/09/06 16:57:20.79 LVeCvIyg.net
Celeronの1コア、メモリ1GBなのでパッケージによっては5時間経ってもコンパイルが終了しないんですよね
例えばclippyとか。
パッケージのアップデート毎に結局更新されたものをコンパイルし直すからCARGO_TARGET_DIRの設定してもあまり変わらないような気もします
Core i7やryzen、メモリ8GBとかだともっと早く終わりますかね?

760:デフォルトの名無しさん
17/09/06 17:03:33.32 SQ4/Zkph.net
お前には Core 2 Duo がお似合いだ

761:デフォルトの名無しさん
17/09/06 18:26:50.13 n6C9v4DP.net
コンパイラ、コンパイラドライバ、パッケージマネージャをそれぞれ独立して利用しやすくして欲しい
ポストC/C++を目指しているはずなのに言語仕様と関係のない制約が増えるのは勘弁

762:デフォルトの名無しさん
17/09/06 18:51:54.27 l44s4mC+.net
URLリンク(github.com)

763:デフォルトの名無しさん
17/09/06 19:10:48.28 VuLMXPgk.net
>>745
java, phpが独立した3rd tools乱立でひどいことになったから
次世代は低レベルと高レベルの2レイヤーを公式に提供しようぜって現代の風潮でそれに沿ってると思うが
あいつら個々に独立したビルドシステム, テスター, パッケージマネージャー, ランチャーが乱立して辛い
rustやgoは公式で色んなものが利用しやすく整備されてて涙が出るよ, マジで
rustの公式ツールに不満があるなら3rd toolsを自分で作れば良いよ
誰も作るなとは言ってなくて、作ること自体は止められないはず、賛同する人がどれほどいるのか懐疑的だけど

764:デフォルトの名無しさん
17/09/06 19:12:16.98 VuLMXPgk.net
低レベル:rustc, 高レベル:cargo って意味な

765:デフォルトの名無しさん
17/09/06 19:37:16.90 n6C9v4DP.net
Rust=Cargoな感じになっているように思うのは俺だけなのか?とりあえずCargoを使え的な記事ばかりでrustcを活用する記事はほとんど見ない
ちょっと高度な事をしようとすると絶望的に情報がない。さらにrustcの不安定性(機能しないオプションがある)が追い打ちをかけるw

766:デフォルトの名無しさん
17/09/06 20:12:23.66 OeC1JAcK.net
まあ今のRustとmakeを組み合わせようとはちょっと思えないな

767:デフォルトの名無しさん
17/09/06 20:27:57.04 b9fzClHU.net
ビルドにcmakeを要求するのに、エラーメッセージが分かりづらくて
はっきりとcmakeの必要性が分からないcrateが結構ある
依存ライブラリ一つ一つまでreadme読まないし

768:デフォルトの名無しさん
17/09/06 20:57:11.59 58f4P28i.net
cargo3兄弟

769:デフォルトの名無しさん
17/09/06 21:15:39.15 VuLMXPgk.net
build.shからmake叩いて、更にmakeからant叩いてたjava全盛期に比べれば多少はね
cmakeの代わりにbuild.rs(及びgcc-rs)使えば良いんだろうけど、build.rs書くの面倒でcmakeに走ってる予感
gcc-rsの機能拡張としてファイルパターンマッチ的なものが提供されたらcargoからcmakeも駆逐されるかもねー
あんまりbuild.rs使わないから既にデファクトスタンダードなcrateが存在してたらすまぬ

770:デフォルトの名無しさん
17/09/06 21:32:03.27 9SnBSqY1.net
そこまで分かっててなんでRust使い続けようと思うんだお前ら……

771:デフォルトの名無しさん
17/09/06 21:35:26.17 5mAj6AyW.net
cargoが便利だから

772:デフォルトの名無しさん
17/09/06 22:38:49.71 vuSxRzDq.net
URLリンク(blog.rust-lang.org)
ところで夏サーベイの結果出てるな
分かってたがNightlyの使われっぷりに吹く

773:デフォルトの名無しさん
17/09/07 01:09:15.04 pG20pyYC.net
だってRust会社で使えないしー が1位でRustむずいよーこわいよー が2位か

774:デフォルトの名無しさん
17/09/07 07:25:42.24 2QTh9NrO.net
CrateがCargo前提になっていて他のビルドマネージャやrustcからは実質的に使えないよな?

775:デフォルトの名無しさん
17/09/07 10:39:04.19 S617O9ZV.net
cargoって裏でやってることはrustcのラッパじゃなくて独自の方法でコンパイルしてるのか?
ひでえ仕様だな

776:デフォルトの名無しさん
17/09/07 18:01:04.73 QzkAwThZ.net
>独自の方法でコンパイルしてる
そんなことはないはずだが、どこからそんな情報が出てきたんだ?

777:デフォルトの名無しさん
17/09/07 21:46:15.77 seYx4u2p.net
crateが実質cargo専用になってるってbuild.rsとかその辺のことか?

778:デフォルトの名無しさん
17/09/07 22:56:42.47 wVi6dnoF.net
crates(.ioからのダウンロード、及び、crateの依存解決/分割ビルド)が実質cargo(コマンド)専用と言いたんじゃないのかな
curlでダウンロードして、rustcで.rlib作る分割コンパイルすれば出来なくはない
cargoコマンドのコードは開示されてるから自分で頑張れ, URLリンク(crates.io)
rustcを使いこなせずcargo未満/rustc以上ツールの車輪の再発明を熱望する無能と
rustのコンパイルできるコードを書けず挫折したアンチが合わさり話が明後日に向かっておるわ

779:デフォルトの名無しさん
17/09/07 23:20:58.99 Aqe6d3N/.net
cargo install に download-only オプションがつけばいい流れ?

780:デフォルトの名無しさん
17/09/08 00:39:59.57 XDOpFOHk.net
>type hello.rs
fn main() {
println!("Hello World!");
}
>rustc -V
rustc 1.19.0 (0ade33941 2017-07-17)
>rustc hello.rs
>rustc -v hello.rs
>
-vが効いていないように見えるけど仕様なの?
コンパイラやリンカに与えられているオプションとかを見たいんだけどどうしたらいい?

781:デフォルトの名無しさん
17/09/08 03:12:39.89 70HlBZeV.net
rustc -Z print-link-args hello.rs
URLリンク(github.com)

782:デフォルトの名無しさん
17/09/08 07:52:33.56 cSX02n8Z.net
それはnightly限定ですやん

783:デフォルトの名無しさん
17/09/08 15:02:00.13 2+W6iI80.net
スコープでインスタンスの寿命を静的に管理しようってのは面白いと思うのだが、
再帰的な構造とか扱う場合の簡易さをも少し考えるべきだったね。
まああんまこだわらなければ結構使いやすい気はするけど。

784:デフォルトの名無しさん
17/09/08 16:10:21.35 jNusN9J0.net
こだわるも何も木構造まともに書き下せない言語の用途ってなんだよ
URLリンク(amp.reddit.com)
この辺の問題も一行に解決してないし

785:デフォルトの名無しさん
17/09/10 00:10:13.39 EaeDwKWj.net
まあ raw pointer 使えば何とでもなるし(震え声)。

786:デフォルトの名無しさん
17/09/10 15:21:33.90 Z1fxPFbT.net
木構造は書けるでしょ
難しいのは巡回するグラフ構造

787:デフォルトの名無しさん
17/09/10 16:53:04.07 6IGW1QFW.net
>>770
木構造の一番いいサンプルおしえてよ

788:デフォルトの名無しさん
17/09/10 21:30:15.59 /y0BRE7n.net
木にせよ一般のグラフにせよライフタイム管理が面倒くさい

789:デフォルトの名無しさん
17/09/10 22:30:44.85 /LC/x3j3.net
この辺とか?
URLリンク(agtn.hatenablog.com)
ただ入れる操作によっても RefCell にしたり、やっぱり面倒は面倒。

790:デフォルトの名無しさん
17/09/11 00:36:42.39 xCZu5AEB.net
ぐええ、隣接リストとアリーナの違いがよく分からない

791:デフォルトの名無しさん
17/09/11 06:43:38.80 Yii5jhjx.net
768はこれがまともじゃないっていいたかったんでしょ。

792:デフォルトの名無しさん
17/09/11 10:26:55.85 XW0rQ7er.net
CやC++ならポインタ持っておくだけで簡単に実現できるのに……

793:デフォルトの名無しさん
17/09/11 23:14:03.66 0LGm7EQD.net
C++使うか、unsafe使えば良いのでは

794:デフォルトの名無しさん
17/09/11 23:14:47.15 0LGm7EQD.net
Rc+RefCellな型を用意するだけでもマシになるか

795:デフォルトの名無しさん
17/09/12 00:26:37.00 nVT3ZJzi.net
ていうか練習ならともかく実際に使うプログラムでポインタをつないでグラフを表現することなんてそんなに頻繁にあるか?
取りうる表現の中で効率性が最悪な部類じゃん
Vecに対するLinkedListみたいなもんだろこれ

796:デフォルトの名無しさん
17/09/12 01:20:27.09 Tl3HhyXK.net
オブジェクト指向っぽいAPIを触るときはだいたいその形にならない?

797:デフォルトの名無しさん
17/09/12 03:08:23.10 CK+WAwk/.net
グラフの時だけ、ガベコレ使えるGc型が欲しい

798:デフォルトの名無しさん
17/09/12 08:30:34.06 mcDW5eHR.net
じゃああんたは現実世界でツリー構造のものをどうやって表すの?

799:デフォルトの名無しさん
17/09/12 11:30:27.08 u82oOWPv.net
>>779
VecじゃなくあえてLinkedList使う場面普通にあるんだが……

800:デフォルトの名無しさん
17/09/12 14:48:49.21 +kMyckKw.net
linux の赤黒木の実装はポインタベースではあったな。
しかし個人的には配列


801:実装のが結局速いって気はする。



802:デフォルトの名無しさん
17/09/12 15:07:56.52 yDRUgdvZ.net
Effective Hogeでそういうことは言及されてるけど
Rustはどうだかなとドキュメント見たらSecond Editionで"Effective Rust"の節自体が削られとる:-(
Stack vs Heapはどこかに記述されてた覚えがあるから、ツリー/リスト操作もどこかに潜り込んでるのかなぁ

803:デフォルトの名無しさん
17/09/12 17:41:48.32 r07bb/MI.net
配列ベースの実装はポインタの代わりにindex使うだけだからできることはあんまり変わらんわな
配列の方がデータの局所性高そうで速そうではある

804:デフォルトの名無しさん
17/09/12 18:02:30.56 kvuESNKU.net
データ構造によって速い操作が違うという基本的な概念がない奴おるな

805:デフォルトの名無しさん
17/09/12 18:50:57.82 wPca0Ysf.net
vectorのmutabilityの問題があるの理解できてる?

806:デフォルトの名無しさん
17/09/12 18:53:28.85 O0/aVCto.net
>>779
効率ってなんの効率?

807:デフォルトの名無しさん
17/09/12 22:05:08.25 RDvyqWgj.net
>>787
まあそういう無能がありがたがる言語なんだろうなRust

808:デフォルトの名無しさん
17/09/12 22:20:04.05 SHXpQI2F.net
mutabilityはRefCell使えば良いのでは
Refcell使わずにVecの中身を直接触る必要ある?

809:デフォルトの名無しさん
17/09/12 22:27:17.20 wPca0Ysf.net
>>791
いや、それでいいかも
rcさえなくなればborrowをユーザに書かせなくてすむからそれでいいや

810:デフォルトの名無しさん
17/09/13 14:03:19.87 K9O6G+Si.net
低レイヤーできます!ってアピールしたい言語なんだろうけれど、
あんま向いてない言語な気はする。

811:デフォルトの名無しさん
17/09/13 14:56:53.13 6DzbMbn9.net
低レイヤを書くにはチェッカーが強すぎて邪魔で、高レイヤを書くには全くカジュアルさがない
どっちにもなれない哀れな言語よ

812:デフォルトの名無しさん
17/09/13 18:10:30.60 dAYfacw9.net
並列で大規模で低レイヤーな領域に向いた言語だからどれか一つでも欠けてる領域で使いづらいと思うのは仕方ない

813:デフォルトの名無しさん
17/09/13 20:06:39.58 fx0j+lzd.net
低レイヤーはやっぱC言語だな。
ポインタの習得が難しい事以外に欠点ないじゃんこの言語。
Rustはもっとポインタ扱いやすくして出直してきな。

814:デフォルトの名無しさん
17/09/13 20:42:07.11 SU8+D2f1.net
rustの並列処理って言うほど特化(最適化)されてる気はしないけどな・・・
スレッド跨いだオブジェクトの所有権譲渡も保障されてはいるけど、従来言語/ライブラリに比べてめっちゃ便利という感じはしない
futures-awaitとかyieldを使うと変わるのかねぇ、無くても困りはしないしと使ってないけどfutures-awaitは使ってみるかな

815:デフォルトの名無しさん
17/09/13 20:42:42.41 K9O6G+Si.net
C だっていろいろ批判はあるだろ。
型がゆるいとか、名前空間がグローバルしかないとか。
まあそれを差し引いてもやっぱ有効な言語と思うけど。

816:デフォルトの名無しさん
17/09/13 20:49:43.29 6DzbMbn9.net
>>798
Rustのコンパイル通す実力あるならCのその辺りの問題なんてないものと同じだから
Rustなんて使わずCでいいじゃんってなるんだよな

817:デフォルトの名無しさん
17/09/13 20:52:03.57 SU8+D2f1.net
とか思ってたら、yieldの方が公式nightlyにマージされたのか
futures-awaitもnightly要求するし素直にyieldの方を使ってみよ, stableにはいつ来るのかなぁ

818:デフォルトの名無しさん
17/09/13 21:19:48.43 KPH4Bf/5.net
今さら C はねえよ

819:デフォルトの名無しさん
17/09/13 21:41:03.71 6DzbMbn9.net
>>801
Rustよりはあるわ

820:デフォルトの名無しさん
17/09/13 21:54:04.29 8Q7unwrY.net
ID:6DzbMbn9っていつものモジラ/Rustネガキャン君だろ

821:デフォルトの名無しさん
17/09/13 21:57:53.87 6DzbMbn9.net
>>803
さすがにあのレベルの基地と一緒にされるのは心外

822:デフォルトの名無しさん
17/09/13 22:09:43.33 8Q7unwrY.net
いつものコンパイル通らなくて発狂してる基地外かと思ったわ

823:デフォルトの名無しさん
17/09/13 22:45:06.07 EXyWFNJX.net
コンパイラーよりも自分が信用できるならC使えばよいと思う

824:デフォルトの名無しさん
17/09/13 23:56:44.36 kEFpToCL.net
Rustのコンパイルが通るならCを使えば良い君まだいたのか
自分の言葉通りRustに拘わらずにCを使っていれば良いのに

825:デフォルトの名無しさん
17/09/14 08:18:50.41 Y4hD7kDo.net
macro_rules! make_macro {
($id:ident) => (
macro_rules! concat_idents!{test_, $id} {
}
);
}
make_macro!{foo}
こういうの無理なのか。

826:デフォルトの名無しさん
17/09/14 11:10:13.14 EE2xE751.net
EmacsでRLS使ってる人居る?

827:デフォルトの名無しさん
17/09/14 11:12:19.23 XJ7zDnIx.net
>>799
そういう根性論嫌い

828:デフォルトの名無しさん
17/09/14 12:55:00.43 NnJxH7VV.net
RustやSwiftとかの次世代言語ってOracle製品やSAPみたいな所あるよな。
無駄に抽象化して変な専門用語作って、プリミティブなエンジニアを寄せ付けない感じとか。
コマンドラインで一発で出来るようなことを、独自用語だらけのGUIでポチポチ操作させてんの。
こういう文化は本当に良くない。優秀なエンジニアはみんな逃げてしまう。

829:デフォルトの名無しさん
17/09/14 13:54:06.68 1DVuzpHn.net
>>810
コンパイル時に全部解決しなきゃいかん
てな話のがよっぽど根性論だと思うが。

830:デフォルトの名無しさん
17/09/14 17:19:47.64 n0wq55dM.net
人間が気をつけてコードを書けばバグが出ないはずというのは根性論では

831:デフォルトの名無しさん
17/09/14 18:36:21.42 DdS4QLGS.net
人に依存するC/C++は日本的
システムが面倒を見てくれるRustはアメリカ的

832:デフォルトの名無しさん
17/09/14 19:05:26.17 1DVuzpHn.net
バグが出ないことよりも手法に熱中しちゃう方が日本的だなとか思っちゃうけど。

833:デフォルトの名無しさん
17/09/14 19:14:58.28 NxItWvHk.net
形容詞化する国名

834:デフォルトの名無しさん
17/09/14 20:08:31.29 wsl9UgI1.net
~的ってつければなんだって形容詞になるの?
人に依存するC/C++はC/C++的
システムが面倒を見てくれるRustはRust的

835:デフォルトの名無しさん
17/09/14 21:28:39.91 ekPhWBa7.net
C/C++でもバグが出ないほど規模が小さい or 言語への習熟度が高いならC/C++使えばよいし
そうじゃないならRust使えば良いとしか言ってないのだが

836:デフォルトの名無しさん
17/09/14 21:51:38.65 egb+Ths/.net
単純に「巡回グラフを始めとした自己再帰型のデータ構造を書き下せない(コンパイラが通してくれない)」って時点で、書けないプログラムの存在を認めてしまってるんだよなRustは
その上C言語にはValgrindやらcppcheckやら、金かかっていいならCoverityやら、いくらでもその手のツールはあるわけで、
Rustならではの点ってどこにもない割に欠点だけ目立つ訳よ
肝心の抽象化も機能足りてないしな。Nightly使えばなんぼかマシだが

837:デフォルトの名無しさん
17/09/15 00:12:38.69 znUIhbu+.net
どうしても全部Rustだけで実装したいのか

838:デフォルトの名無しさん
17/09/15 00:29:00.00 tkwXjMs/.net
△全部Rustだけ
◯全部safe Rustだけ
Escape hatchの類は使いたくないというsafe Rust信仰の裏返しというツンデレなのでは

839:デフォルトの名無しさん
17/09/15 01:05:02.21 QM7YGf64.net
How can I implement a graph or other data structure that contains cycles?
URLリンク(www.rust-lang.org)

840:デフォルトの名無しさん
17/09/15 13:00:11.59 3YdKOJD0.net
できるできないレベルの話をしているのか、やりやすいやりにくいレベルの話をしているのかどっち

841:デフォルトの名無しさん
17/09/15 13:25:48.45 5eAkzQwm.net
できない => できるよ => やりにくい => そうねー => 応答終了, 最初に戻る
こんなのをずっと繰り返してるイメージだ
モジラ/Rustネガキャン君とRustのコンパイルが通るならCを使えば良い君の二人なのかな
二人とも長いこといるし、コンパイル通せないRustが相当憎いんだろうなぁと思ってる

842:デフォルトの名無しさん
17/09/15 23:54:50.13 mfxKdXka.net
Cだって肝になるところをアセンブリで書くのはまれによくあることだし、
Rustで書きにくいところをCで書いたっていいよな

843:デフォルトの名無しさん
17/09/16 02:17:34.76 lHsVDIMy.net
Rustのコンパイルが通るならCを使えば良い君は、暗黙のうちにCで完全なメモリ管理を行うことの困難さを訴えているんだよきっと

844:デフォルトの名無しさん
17/09/16 06:49:34.00 bgl6NL4A.net
変な人がわくほどメジャーな言語になったんだなぁ

845:デフォルトの名無しさん
17/09/16 12:21:42.89 CDKitgfC.net
てか細かいとこ C で書いてあとは軽い言語から呼ぶとか普通してるじゃん。
一つの言語で無理やりやろうとするからどっちつかずになるんじゃないのかね。

846:デフォルトの名無しさん
17/09/16 12:23:12.97 FR19qSmR.net
>>828
RustがC(++)の後継目指してるとか言わなきゃこんなに言わんよ

847:デフォルトの名無しさん
17/09/16 17:33:19.57 hyq1PMdM.net
C(++)の座が奪われると危機感を感じて
「Rustのコンパイルが通るならCを使えば良い」と必死なのかw
置き換わるにはまだまだ先が長いから安心して自分の巣にお帰りに

848:デフォルトの名無しさん
17/09/16 17:34:53.66 lHsVDIMy.net
Rustのコンパイルが通るならCを使えば良い(自分はできるとは言っていない)

849:デフォルトの名無しさん
17/09/16 20:08:37.91 OnGiRDkA.net
実際に使ってる人たちは本当にいつかRustがC(++)に置き換わると思ってるの?

850:デフォルトの名無しさん
17/09/17 00:38:06.21 NXS5TlTy.net
RustがC/C++の後継目指してるなんて公言してるのか

851:デフォルトの名無しさん
17/09/17 09:53:24.02 2FAjS2AD.net
一応Goもc++の置き換えを想定した言語らしい。もっともgoogle社内の話だが

852:デフォルトの名無しさん
17/09/17 12:44:11.46 7diltdBj.net
>>830
×まだまだ先が長い ○先にモジカスが世界から消滅する
先が長いとか言ってる時点でモジカスのステマに荷担してると理解しろ
Rustがプログラミング言語を名乗ってるのはモジラが自由をお題目にしてるのと同じレベルの害悪だ

853:デフォルトの名無しさん
17/09/17 15:13:14.19 9f3JHXln.net
複数のResultのNGをXORでまとめて(途中match分岐入れず)処理するのてどうすればいい?
超極稀に失敗する変な返り値を格納しても副作用の無い処理の連なりをゴソっと捨てる方法

854:デフォルトの名無しさん
17/09/17 16:26:31.76 IHBqIXQE.net
>>833
少なくとも firefox の c/c++ 部分の書き換えを想定してるだろう。
まあ c/c++ と一口に言っても結構レイヤーは広いように思う。
てきとうなサーバープロセスなら確かに go は書きやすいよ。
rust にそういうエリアがあると思えんというところが問題の焦点じゃないかね。

855:デフォルトの名無しさん
17/09/17 17:40:27.30 aqlfcEMy.net
>>836
求めてるものかどうかわからんが、Iterator<Item=Result<t, E>>はcollectでResult<Vec<T> , E>などにできる

856:デフォルトの名無しさん
17/09/17 19:45:22.12 0mVr+JRg.net
相当雑いけど>>838の実装例はこんな感じかな
URLリンク(play.rust-lang.org)
性能を突き詰めるならcollectしないでfilterの戻りをnextで回すべきだけど適当に
確か100万回くらい回したら数秒の差が出るくらいのはず

857:デフォルトの名無しさん
17/09/17 23:03:20.12 xQI4uTVr.net
>>839
そういや、こうやって変数のシャドウイングを積極的に使っていくのってどうなんだろうな?
俺はよくやってるけど、スタイルにうるさい人から怒られるかもとか思ったり

858:デフォルトの名無しさん
17/09/17 23:17:40.08 tCD9jFlM.net
>>839
URLリンク(play.rust-lang.org)
こういう途中Errがいたら戻り値もErr、全部OkならOk<colletion>な意図だった

859:デフォルトの名無しさん
17/09/17 23:18:40.79 tCD9jFlM.net
collectも#inlineついてるなら手でfor書くのと同じになりそうだけど遅くなるのか
ExactSizeIteratorとただのIteratorで違うとかならわかるんだが

860:デフォルトの名無しさん
17/09/17 23:25:16.47 ks3Dkyyp.net
OCamlだと普通なんで読みにくさを感じたことは無いなあ
むしろその変数はそこで終わりです、もう頭に入れとかなくても良いよってことだから脳にやさしいとまで感じる

861:デフォルトの名無しさん
17/09/18 08:30:10.39 KEjrNeQk.net
>>842
collectの関数コールは最適化されて消えるけど、collect内でVectorを作る分があるからな
メモリ確保して、要素をコピーしてって誤差程度だけどコストが乗っかる
filterまでだとFilterは作るけど要素のコピーはしてない感じだったから
他言語, 他ライブラリのfilterメソッドの戻りで配列/リストを作り直すIF/実装に比べて比較的早そうだと思った

862:デフォルトの名無しさん
17/09/18 11:26:55.19 /3RzmXHq.net
なるほど、Vec作るコストという意味なら確かにcollectはコスト掛かるね
まとめて処理というのがIteratorの要素からなる配列などのデータ構造を作って何かすると理解していたけど、
そうでないならば
f.map(¦x¦ {do_something(); }).collect::<Result<Vec<()>, _>>()
とすれば作られるのはVec<()>で、要素サイズ0だからヒープからはメモリ割り当てられないはず
これやるぐらいならfor使った方が

863:デフォルトの名無しさん
17/09/18 14:28:43.98 nF8z8OFK.net
一方C言語ならそんな面倒なこと考えずにallocしてforでいい
学習コスト高くて性能も低い言語Rust

864:デフォルトの名無しさん
17/09/18 16:37:25.22 JVxZ+5NP.net
alloc?

865:デフォルトの名無しさん
17/09/18 17:16:35.57 nF8z8OFK.net
>>847
mallocとcallocのことをまとめてallocって言うんだがまさかRust民そんなことも知らない?

866:デフォルトの名無しさん
17/09/18 17:40:00.45 2cmO/IBQ.net
俺たち、ついさっきまでzero-allocationな実装方針について話してなかったっけ……?

867:デフォルトの名無しさん
17/09/18 17:48:40.40 /3RzmXHq.net
せんせーallocaはallocに含まれますか

868:デフォルトの名無しさん
17/09/18 18:07:06.15 /S27bRBH.net
定義による
スタックから確保するものと
ヒープから確保するものを
どちらもallocと呼ぶなら含んでる

869:デフォルトの名無しさん
17/09/18 18:11:47.24 iR2mDVT9.net
>>849
ゼロアロケーションつっても最初の一回はallocするだろ?
その後forでナメながら変換すれば単純で早くてコンパイルも通ってモジカス涙目みんな幸せって言ってんの
無駄に難しく考えるモジカスシンパらしい話だな
>>850
非標準関数はNG

870:デフォルトの名無しさん
17/09/18 18:15:30.06 2aiOt6ta.net
基地外って同じ言葉を連呼するからNGし易くて助かる。

871:デフォルトの名無しさん
17/09/18 19:17:59.90 ndBW2Q0n.net
要素サイズ0のVecはヒープからメモリ獲得しないと明言したはずなのですが

872:デフォルトの名無しさん
17/09/18 19:24:02.49 JVxZ+5NP.net
>>846の書くヒープアロケートするCコードはスタックアロケーションのみのRustコードより高性能なんだよきっと

873:デフォルトの名無しさん
17/09/18 19:39:48.02 K4Qo/KNH.net
>>853
造語症っていうんだっけか?
それはそうとRustでCのmallocやcallocと同じ操作ってBoxであってVecではないよなあ。

874:デフォルトの名無しさん
17/09/18 19:56:01.80 2cmO/IBQ.net
低級言語で書けばそれだけで性能が良くなるって勘違いはよくあるよな
>>856
どっちもヒープを使ってるから同じでええやろ

875:デフォルトの名無しさん
17/09/19 01:46:56.36 EmWEVfWy.net
話が明後日の方向に行ってるけど
>>844の主点はVecを作るコストではなくVecに要素コピーするコストの方だぞ
filterで除外した要素をcollect内でVecにせっせとコピーするからちょっち時間かかる
ちなみにC(++)でベタに実装するとこんな感じでリスト作成、要素コピーするからドングリの背比べ
std::list<char*> filter_collect(std::list<char*> v) {
std::list<char*> new_v;
for (auto i = v.begin(); i != v.end(); i++) {
if (*i != NULL) {
new_v.push_back(*i);
}
}
return new_v;
}
std::list<char*> v{"Hello", NULL, "World"};
auto new_v = filter_collect(v);
モジラ/Rustネガキャン君とRustのコンパイルが通るならCを使えば良い君が
よりよいCコードを挙げてくれるのをちょっと待ってみようか, 流石にこれは汚すぎる

876:デフォルトの名無しさん
17/09/19 01:57:29.08 yqqf+3Rr.net
(そもそもの>>836が何をしたいのかいまいち分かっていないなんて言えない)

877:デフォルトの名無しさん
17/09/19 09:23:52.82 b711gf7K.net
これをCというか
いやまあC++としても酷いが

878:デフォルトの名無しさん
17/09/19 09:49:54.63 EmWEVfWy.net
(大丈夫、俺も分かってない...多分>>841さんの実装例が期待コードだったんだろうと匙投げた)

879:デフォルトの名無しさん
17/09/19 11:20:24.23 yHWjYg1H.net
仕様分からないのに実装しようとするRustの文化すげー

880:デフォルトの名無しさん
17/09/19 18:29:28.71 zYSzUAzu.net
そういえばRustってそもそもまだ言語仕様がなかったっけな(RFCが通ってない)
そんな言語を良しとするモジカスとそのお友達

881:デフォルトの名無しさん
17/09/20 07:39:00.40 D+wOfrtb.net
RubyやLua等も商用でも使われているけど公式な言語仕様って存在しなかった気がする

882:デフォルトの名無しさん
17/09/20 08:58:49.24 q1jVsKYV.net
RFCが通るとはどういう意味だろう
まさかIETFの話ではないだろうな

883:デフォルトの名無しさん
17/09/20 17:20:54.79 8IyKZYzR.net
URLリンク(github.com)

884:デフォルトの名無しさん
17/09/20 17:30:21.92 KkNJUG2l.net
URLリンク(github.com)
さすがにこのSyntaxはダサいぞ?

885:デフォルトの名無しさん
17/09/20 18:24:29.42 8IyKZYzR.net
どうせならいっそ新しいepochでbare Traitのシンタックスでimpl Traitのセマンティクスを表すように変えて欲しくもあるけれど、motivationでも言われている通り互換性の観点からしてまあ無理だわな
理念には同意できるけど、うーむ……ダサい

886:デフォルトの名無しさん
17/09/20 18:24:58.43 SerGpeBo.net
じゃあ討論してるIssueに行って、ダセェからこうしようぜって具体例を提案してこい
良さげだったら(y)押してやんよ

887:デフォルトの名無しさん
17/09/20 18:39:23.24 Yecv0E+U.net
これがダサいとかいうならimplとかpubなんてクソの山だろ
>>868
impl Traitのセマンティックスに置き換えたところで例えばVec<Display>にi32とStringを両方突っ込もうとしてエラーになるようなへまをする連中は消えないだろ
>>869
もうFCP過ぎてマージされてるんだよなあ

888:デフォルトの名無しさん
17/09/20 18:42:43.35 DfdXTJVQ.net
誰か3行で

889:デフォルトの名無しさん
17/09/23 12:28:08.72 47xDJ4SG.net
rustの三文字文化好き
mut, str, len, vec, rev

890:デフォルトの名無しさん
17/09/23 13:46:38.85 Cgi1rfOq.net
変数名にしたかったのを予約しやがって!でもある

891:デフォルトの名無しさん
17/09/23 14:49:56.77 ebiRk4qs.net
Contextual keywordって書いてある

892:デフォルトの名無しさん
17/09/23 15:11:25.15 aCorn/qh.net
let str = "Hello";
let str: &str = str;
これで普通にコンパイル通るしな。
変数名に出来ないのは>>872の中じゃ mut だけだろう。

893:デフォルトの名無しさん
17/09/23 19:15:33.07 nrpIGIl5.net
str, len, rev
あたりは変数名として結構使うかな。
str , vec あたりは s, v くらい短くすることもある。

894:デフォルトの名無しさん
17/09/24 17:44:10.64 VL5Szw+L.net
比較演算子 ==, <, > 等って、同じ型同士でしか定義できないのか

895:デフォルトの名無しさん
17/09/24 20:16:16.24 dG0lqnCY.net
それはEqとOrdの話でしょ
PartialEqとPartialOrdは別の型同士でも定義できる

896:デフォルトの名無しさん
17/09/24 20:38:52.59 VL5Szw+L.net
あ、ホントだ。出来たわありがとう。
use std::cmp::PartialEq;
struct Foo(i32);
impl PartialEq<i32> for Foo {
fn eq(&self, other: &i32) -> bool {
self.0 == *other
}
}

897:デフォルトの名無しさん
17/09/27 15:23:55.91 ENHC296h.net
Firefox Quantumリリースだってよ

898:デフォルトの名無しさん
17/09/27 23:11:15.94 r8V8UQwO.net
Rust 1.20、関連定数などを追加
URLリンク(www.infoq.com)

899:デフォルトの名無しさん
17/09/28 00:21:45.83 FngsmGBk.net
時報が壊れたと思ってたら、常時一ヶ月遅れの情報サイトをソースに時刻通知がきたよ
本人じゃなく模倣者だろうけど次回からは一次ソースのサイトをトリガーにしような!

900:デフォルトの名無しさん
17/09/28 00:30:16.29 fGSoqmif.net
何でこの人こんなに怒ってるんだろ?

901:デフォルトの名無しさん
17/09/28 00:53:16.99 FngsmGBk.net
1. 時報が壊れたことに怒っている
2. 一ヶ月遅れのinfoqをソースにしたことを怒っている
3. 模倣者であることに怒っている
4. その他
どれだと思う?

902:デフォルトの名無しさん
17/09/28 02:25:57.30 uh95Bh7/.net
一ヶ月入院でもしてたんだろ
許してやれ

903:デフォルトの名無しさん
17/09/29 10:21:58.71 YdXqj+6X.net
CもObjCもここ数年は仕様変更がないから、コンパイルはそのまま通る。
変なコード書いてなければ動作確認も問題なくパスする。
メンテナンスフリーって言われれば確かにそうかもな。
あとはフレームワークで非推奨にになったメソッド書き換える程度だけど、
これはSwiftと共通の作業だし、そもそもやらなくても動く。
とにかくSwift移行していない俺は毎年高みの見物してる。

904:デフォルトの名無しさん
17/09/29 10:22:21.88 YdXqj+6X.net
すまん誤爆した

905:デフォルトの名無しさん
17/09/29 11:26:40.22 YA9Keehz.net
これが小学生のおっぱいかよ・・・
12歳の乳とは思えんな・・・

906:デフォルトの名無しさん
17/09/29 11:51:24.12 2cPiFSeP.net
誤爆しすぎだろ。

907:デフォルトの名無しさん
17/09/29 22:06:45.55 7WUGaaf4.net
rustの前にc++とhaskellぐらいはやっておくべき?

908:デフォルトの名無しさん
17/09/29 23:43:36.68 w5CvkGV8.net
C++なんてやらんでいい。haskellよりOCaml寄りじゃね?
C++よりメモリ周りが「javaからgcとロック付きオブジェクトとモニタと
並列ライブラリがなくなった」代わりに低レベルなマルチスレッドコード書けば
型システムが守ってくれるモノが近い。

909:デフォルトの名無しさん
17/09/30 00:20:49.42 BhtSjkD0.net
所有権の概念はC++のmove sem


910:antics回りが近いと思うけどな まあゲーム作るとかじゃなければわざわざC++やらなくてもいいと思うけど



911:デフォルトの名無しさん
17/09/30 22:05:33.32 uuI0Lqz4.net
Rust言語による第一プロダクトのFirefox Quantumですが
ベータ版リリースの時点でアドオンがお亡くなりになったとか、不安定でどうしようもないとか、メモリ食い潰して落ちるとか
様々なお声が聞こえてきますね
これがRustという安全な言語で作ったプロダクトなんですってね
おめでとうございますモジラ信者と工作員の皆様

912:デフォルトの名無しさん
17/09/30 22:25:31.06 BhW5NZCu.net
アドオンが不安定ってのはRust関係なくね?

913:デフォルトの名無しさん
17/09/30 22:38:45.63 ATIH6GBG.net
ベータ版の意味も知らないガイジやんけ
ガガイのガイw

914:デフォルトの名無しさん
17/09/30 22:39:37.33 ATIH6GBG.net
あそれあそれガイジが出た出たよよいのよいw

915:デフォルトの名無しさん
17/10/01 00:00:05.60 HKOr6Xa1.net
>>894
API鞍替えのせいだから全く関係ない。
メモリも関係ないし、むしろ最近はバージョン上がるたびに消費メモリ減ってる。
というかパフォーマンス良くなったのは設計が変わったからで言語は関係ない。
言語関係する部分はC++よりマシだから書きやすくなったこと。

916:デフォルトの名無しさん
17/10/01 00:42:35.99 5jXWEgsq.net
>>897
設計の変更って具体的に何を変えたの?マルチスレッドに強いとか?gpuぜんていとか?

917:デフォルトの名無しさん
17/10/01 23:58:38.97 HtGiOKW4.net
>>898
HTMLの描画周りがマルチスレッド前提になっただけよ。
シングル前提でやるとHTML/CSSパース、DOM構築で同期取りまくりが減っただけ。
うちのmem 4g, 2core環境だとハードが足引っ張ってたから多分mem 8g, 4coreくらい要ると思う。
ここ数年のロースペックマシン以上が恩恵受けるんじゃ?
gpu前提はwebrenderだからまだ入ってないんじゃない。

918:デフォルトの名無しさん
17/10/02 00:20:10.84 cuHSEpt/.net
あ、悪い。webrenderもう入ってるわ。
webrenderとstyloが入ってるからもうマルチスレッドにgpu前提。

919:デフォルトの名無しさん
17/10/02 11:21:20.04 pqkzvat0.net
Firefox爆速化件だけど、あのタイミングでRust化してればRustにも一気に注目集まったのにな。
もったいないな。

920:デフォルトの名無しさん
17/10/02 14:16:58.24 5q9eN7RZ.net
w3mの代替になるコンソールブラウザがほしいところ

921:デフォルトの名無しさん
17/10/04 00:06:33.86 eeE5kOTG.net
lynks、links、EWW(Emacs)ではいかんかった?

922:デフォルトの名無しさん
17/10/04 01:21:42.46 Eb49UXKr.net
それよりAmayaの後継をwhatwgに作って欲しい

923:デフォルトの名無しさん
17/10/04 09:33:38.58 xy+7bXnG.net
>>901
cssはrustになったんだよね?

924:デフォルトの名無しさん
17/10/04 17:45:04.59 U/p5CYqb.net
FizzBuzz を無駄にベンチマークしてみた By Nim、golang、Rust、Crystal、その他
URLリンク(wolfbash.hateblo.jp)

925:デフォルトの名無しさん
17/10/04 19:54:27.21 eSRFZM0D.net
なんというか、、参考にならないベンチマークだな。

926:デフォルトの名無しさん
17/10/04 23:17:46.14 aUT+fN/H.net
参考になるベンチマーク教えてくれ

927:デフォルトの名無しさん
17/10/05 00:04:55.49 NTKdykpp.net
URLリンク(benchmarksgame.alioth.debian.org)
ここの諸々
久しぶりに見たらC gccがついに抜き返しててワロタ
C言語、頑張ったじゃん

928:デフォルトの名無しさん
17/10/05 01:11:32.12 froF/td


929:j.net



930:デフォルトの名無しさん
17/10/05 02:42:46.62 e0oopfTd.net
>>909
mem順にしてもgz順にしてもcpu順にしてもD言語出てこないの悲しいな

931:デフォルトの名無しさん
17/10/05 04:56:45.53 ovcMkddr.net
d言語のメリットって何?

932:デフォルトの名無しさん
17/10/05 06:07:45.62 eC/9GoxN.net
C++ではないこと

933:デフォルトの名無しさん
17/10/05 09:06:46.27 NTKdykpp.net
>>910
人間が頑張って最適化した結果、C gccが上回ったんじゃないのかね
D言語はプログラミング人口少ないから・・・
2000年代の流行った頃ならもうちょっとスコアが出てたんじゃないかな

934:デフォルトの名無しさん
17/10/05 10:18:07.23 KYi0aOcC.net
RustもJavaも血反吐吐くほど最適化してるんじゃないの?
ポインタ扱いにくい言語でそれやると逆にコードが汚くなるから、
C言語よりも酷いコードになってるかもしれんよ。

935:デフォルトの名無しさん
17/10/05 10:41:40.98 j9fazbko.net
unsafe使ったらRustは更に早くなるのか・・・胸熱
取り敢えず、各コードを読んでから批評してはどうか
本家Rust Teamが改修して今のスコアだけど
彼らが直したのはI/Oにバッファ使おうぜってだけでそこまで変態的じゃないのよね
matchやmap, iterでクロージャー多用してるけど最適化コンパイルしたらif, forで書くのと同じ処理になるし
Option.mapは関数コールがあるから重たいかなと以前調べたら
LLVM中間コードの時点でインラインのif分岐(goto文)に展開されてベタコードと同じになるのかよと考えるのやめた

936:デフォルトの名無しさん
17/10/05 11:26:31.98 291DnPVM.net
>>909
C gcc 5.38
Rust #7 5.56
C++ g++ #3 7.18
Java 8.38
↑この並びでみると、Rustの速さよりもむしろJavaの意外な速さに驚く

937:デフォルトの名無しさん
17/10/05 12:31:31.21 mvbuHBBx.net
ぼくも同じこと思った…

938:デフォルトの名無しさん
17/10/05 12:49:03.43 i3OOJkl5.net
Javaは実行時最適化がはまれば速い感じ
でも、カリカリにチューニングされたJavaコードは、クラスをあまり使わずArrayだらけだっりしてつらい

939:デフォルトの名無しさん
17/10/05 17:58:39.05 DY6JRVMF.net
rlsもっと頑張って
replも提供して😭

940:デフォルトの名無しさん
17/10/05 18:51:45.79 BHTkAY6s.net
C言語の __func__ みたいなの無いのかよ~

941:デフォルトの名無しさん
17/10/05 23:04:07.77 arvYOnSy.net
Javaやら.NET等のJIT系言語は速い速い言われるけど実際のアプリケーションでその速さを体感できたことは一度もないや・・・

942:デフォルトの名無しさん
17/10/05 23:35:19.66 AzAoa99L.net
>>909
rust#7はrayon使ってるから中身はcocoとfutureか。
ライブラリが頑張ってzero cost抽象化が効いてる感じかね。
javaはもうちょっと早くなるんだけどなぁ。
これ以上やるとjitとライブラリに丸投げして素直なコード書くことに
専念できなくなるからやりたくない感じ。
将来的にはconst arrayと、勝手にSIMD使ってもうちょっとマシになるかな。
>>919
連続してることが保証されないからカリカリにチューニングする時は配列には頼らないよ。
nio buffer使うことはあるけど。unsafe使わずに配列確保すると0クリアされて無駄に遅いし。
仮想関数テーブルなくしたほうが速いからメソッド検索>invokestaticのコストの時staticに変えるとか、
動的ディスパッチ自分で実装するときにconstant specific class bodyとtable switch組み合わせるとか。
>>921
ないけどrpすればすぐに入りそう。

943:デフォルトの名無しさん
17/10/06 00:32:27.39 ckjydJIo.net
>>923
>連続してることが保証されないから
それはもはやデータ構造として「配列」と呼ばれるものではないのでは……

944:デフォルトの名無しさん
17/10/06 00:59:19.34 PVLgxPLf.net
Dは仕様変更が多すぎた

945:デフォルトの名無しさん
17/10/06 01:12:44.86 aJzo16CX.net
>>923
javaの配列って連続領域の保証されてないの?

946:デフォルトの名無しさん
17/10/06 11:58:56.15 R7tcOQE1.net
スレチだけど、JVMの実装仕様なんてベンダー依存でしょ, OracleとGoogleでも当然違うわ

947:デフォルトの名無しさん
17/10/06 22:14:03.16 aJzo16CX.net
だから言語として仕様化されてないの?ってことだろ。
c++だって実装バラバラだけど連続領域な仕様だろ。

948:デフォルトの名無しさん
17/10/06 22:51:58.93 R7tcOQE1.net
Cはポインタ I/F仕様に引きづられて配列仕様も必然として明確にせざる得ないからでしょ
JVMはbyte codeの解釈さえあってれば良くて、データ操作の実装仕様は知るかよって話だよ
VM上では連続領域に見せかけても、実態は数チャンクに分けた配列の持ち方だってあろうよ

949:デフォルトの名無しさん
17/10/07 00:56:21.68 OPYXFct1.net
いやだから、データ構造としての「配列」のデータ操作の時間空間コストと
実装がズレてたらそれはもう「配列」じゃないから

950:デフォルトの名無しさん
17/10/07 02:30:16.92 tD6GhHlF.net
一般的に配列と呼ばれるオブジェクトがメモリアドレス上でも断片化しないことを保証される処理系ってほとんど無いのでは?
ミュータブルオブジェクトへ要素を継ぎ足していったらコードからは連続的に見えてもメモリ配置は断片化するだろう

951:デフォルトの名無しさん
17/10/07 04:32:31.86 OPYXFct1.net
「要素を継ぎ足していったら」がそもそもオカシイ
要素継ぎ足せるのはそもそも配列じゃなくてロープかなんかだから

952:デフォルトの名無しさん
17/10/07 08:20:38.57 PzpAWNqF.net
配列の要件ってインデックスで要素にアクセスすることくらいじゃないの?
要素のポインタをとって操作できる言語以外は実際の記憶領域が連続かそうでないか
判断する術はないと思うが。

953:デフォルトの名無しさん
17/10/07 08:39:14.98 rgSj2Elc.net
ポインタ操作だって処理系依存でどんな変態実装も理論上はあり得ると思うけど
C/C++の仕様を調べる気力がない

954:デフォルトの名無しさん
17/10/07 09:54:16.89 h9TjUWM8.net
>>933
> 配列の要件ってインデックスで要素にアクセスすることくらいじゃないの?
じゃリンクリストでもいいってわけ?
インデックス操作は内部でポインタたどってさ。

955:デフォルトの名無しさん
17/10/07 12:18:14.74 bipqd+gM.net
配列だとインデックスのアクセスにO(1)を期待してるが
それが保証できるのかという話じゃないの

956:デフォルトの名無しさん
17/10/07 12:27:49.68 FDovMcEa.net
>>936
お前は話の最初から読みなおせw
オーダーのことなんか誰も気にしてないよ

957:デフォルトの名無しさん
17/10/07 12:40:30.10 efrwvuZ0.net
チューニングで気にするのはメモリ配置よりCPUキャッシュに乗るかどうかでは
そのとき配列のサイズが気にされるというだけで

958:デフォルトの名無しさん
17/10/07 12:44:02.10 bipqd+gM.net
>>937
>>930
これの解釈は?

959:デフォルトの名無しさん
17/10/07 12:59:08.16 PzpAWNqF.net
データ構造としての「配列」と言語機能としての配列は別の話だから。

960:デフォルトの名無しさん
17/10/07 14:30:31.33 bipqd+gM.net
O(1)でもO(n)でも a[i]と書けるなら配列だって感覚?
そう考えるのは自由だがまともな話はできなさそうだな。

961:デフォルトの名無しさん
17/10/07 15:00:19.40 FL3S/Goc.net
Rustの話はないんでしょうか

962:デフォルトの名無しさん
17/10/07 16:04:55.47 +/+oWVUp.net
そんなの処理系によるわ
動作は変わらないからどうでもいい

963:デフォルトの名無しさん
17/10/07 17:48:20.09 M+fCWBh9.net
JavaScriptのArrayを配列と呼ぶのは間違いだ!
と吠えている人がいますね

964:デフォルトの名無しさん
17/10/07 19:34:14.94 efrwvuZ0.net
そんなに気になるならソース見に行けで終わり

965:デフォルトの名無しさん
17/10/07 20:58:38.51 PTRnmd1t.net
>>941
逆にちゃんとした定義ってあるの?

966:デフォルトの名無しさん
17/10/08 00:52:44.13 riNh/ezn.net
>>943
>そんなの処理系によるわ
>動作は変わらないからどうでもいい
オーダーの違いはまさに動作の違い
> JavaScriptのArrayを配列と呼ぶのは間違いだ!
> と吠えている人がいますね
データ構造としての配列じゃないのはそうだろ
配列じゃなくてハッシュマップですよねー
というのがマトモなCS出身者の反応

967:デフォルトの名無しさん
17/10/08 07:38:16.10 whyFhQ9X.net
引き続きオーダー厨がフィーバーしてんなw
>>946
>>926, >>928曰く、C言語には仕様として配列は連続領域であることが決まってるらしいよ
んで、Javaでは特に連続領域で実装することを仕様と定めてないよねーって話をしてんだろ

968:デフォルトの名無しさん
17/10/08 08:29:08.64 Eg4i3QFB.net
>データ構造としての配列じゃないのはそうだろ
>配列じゃなくてハッシュマップですよねー
結局、それまで展開していたオーダー云々の論理はどっかにやって
「配列じゃないものは配列じゃない」ってかw

969:デフォルトの名無しさん
17/10/08 09:02:22.19 p8wkQapI.net
ポインタの値が連続でも実メモリ空間のアドレスは連続とは限らないし
そのあたりのアドレスの連続性の抽象化をOSでやるか言語の処理系でやるかの違いと思えば
配列の要素の仮想メモリ空間でのアドレスが必ずしも連続ではない言語処理系があっても良いと思う

970:デフォルトの名無しさん
17/10/08 09:38:42.04 whyFhQ9X.net
>>949
配列とは、連続領域で確保されO(1)でアクセス可能なものと(俺の中で)定義する
それ以外の仕様、実装による配列は配列とは認めない
という論理で一応オーダー云々も彼の中では含まれてるんじゃないかな
ポインタのポインタで配列を設計したら、それはもうハッシュであり配列ではない的なことも言ってるし
多数の言語仕様, 言語処理系で配列ではないものが配列として扱われてて大変そうだなって思うね:D

971:デフォルトの名無しさん
17/10/08 10:03:07.61 W71T9805.net
JSのArrayは配列じゃなくてリスト
TypedArrayが配列
メモリが連続化を気にするとかどれだけ低レベルな言語使ってるんだ
インターフェイスが同じなら実装とかどうでもいい
老害かよ

972:デフォルトの名無しさん
17/10/08 10:54:24.49 T4FplNPL.net
データ構造の読み書きのオーダーも仕様の内だけど、メモリ上のレイアウトまで仕様という考えはマイナーじゃない?
アドレスを当然のように明示的に扱う言語だと当然の範疇かもしれんし情報として提供して欲しいけど、そうでない言語ならn番目の要素へのアクセスがO(1)であれば配列でいい
で、Rustはアドレス直触りは可能だけど普通はやらない。Cみたいに構造体のメモリ上の表現がはっきり決まってるわけでもないし

973:デフォルトの名無しさん
17/10/08 15:41:19.83 EDHW4lpZ.net
>>951
> 配列とは、連続領域で確保されO(1)でアクセス可能なものと(俺の中で)定義する
そう思うのは勝手だけどそれに基づいて他人を批判するってどんだけ独善的なんだ

974:デフォルトの名無しさん
17/10/08 18:42:51.40 4PvrPlQX.net
そろそろRustの話に戻してくれ

975:デフォルトの名無しさん
17/10/08 18:57:23.11 riNh/ezn.net
array data structure でググるさま

976:デフォルトの名無しさん
17/10/08 20:18:32.63 whyFhQ9X.net
>>952
(配列の定義を)お前がそう思うんならそうなんだろう お前ん中ではな
ちなみに、Rustスレ住民はRust言語を使ってるゾ
>>953
Rustのstructメンバは連続を保証してるんでなかったかいな
repr((C)で宣言した時に限ってるんだっけ、unsafe多用してる変態がいたら教えてくれ

977:デフォルトの名無しさん
17/10/09 00:25:52.32 KLfOKOYK.net
>>933
それって、(一次元)


978:コンテナでは。 で、コンテナの実装方法として配列やらリンクドリストやらが存在する。



979:デフォルトの名無しさん
17/10/09 00:29:02.79 KLfOKOYK.net
>>952
> インターフェイスが同じなら実装とかどうでもいい
そういう目的にはrust使う必要なくね?

980:デフォルトの名無しさん
17/10/09 00:30:54.57 KLfOKOYK.net
>>953
Rustがそういう態度だと言うのなら、C/C++の代わりには使えないなぁ

981:デフォルトの名無しさん
17/10/09 01:24:12.13 EU3MdReC.net
>>953
システムレベル言語でそれは無い

982:デフォルトの名無しさん
17/10/09 07:09:58.47 HQb3QT54.net
URLリンク(play.rust-lang.org)
これ、少し前の nightly-2017-09-15-x86_64-apple-darwin だと通るのに、
最新の nightly だと conflicting implementations を起こすな。
rustup update したら急にビルドに失敗して驚いた。

983:デフォルトの名無しさん
17/10/09 08:32:46.93 /FMCjJgs.net
nightlyが仕様変更したりバグったりするのを逐一驚いてたら大変じゃない?

984:デフォルトの名無しさん
17/10/09 09:00:12.81 CsWYGxTc.net
>>958
もともと配列やその他のデータ構造からインターフェースのみ抽出したものがコンテナなんで、
それを言語仕様の側からは単に配列と称していることはあるだろう。
仮にそれを認めないとしても、元の質問の「JVMの配列は連続しているか」が「JVMのコンテナ(?)は
連続しているか」になるだけ。

985:デフォルトの名無しさん
17/10/09 10:26:26.16 EKQlpQJF.net
いるなぁC++のプロジェクトでarrayで十分なところに無駄にmap使いまくるやつ
おっさんプログラマとしては看過できないんだが(少なくとも仕事では)
これが時代なんだろうか

986:デフォルトの名無しさん
17/10/09 11:43:46.40 iPiyLv0T.net
なにか問題でも?

987:デフォルトの名無しさん
17/10/09 14:35:43.67 y6Coq1tU.net
メモリコスト、CPUコストについて定量的に説明できるかな

988:デフォルトの名無しさん
17/10/09 14:47:42.14 5Wk6yJf6.net
自分もどちらかと言えば効率厨のつもりだけど
実行コストと可読性が大差ないなら好きな方を使えばいいと思う

989:デフォルトの名無しさん
17/10/09 15:19:06.41 ICZ1WqoM.net
コンテナ使うとコストが見えにくくてよく分からん

990:デフォルトの名無しさん
17/10/09 17:24:05.08 65lUV9pA.net
さすがに array と map ではアルゴリズム自体違うわけだしそれはなしだろ。

991:デフォルトの名無しさん
17/10/09 18:49:17.20 GUc1DOLO.net
Vec<f32> を Vec<f64>に変換したいのですがどうしたらいいでしょうか?
やりたいのは
&[f64]を引数として受け取る関数にVec<f32>の内容を渡したいのですが。

992:デフォルトの名無しさん
17/10/09 20:31:04.63 2SZ05bPF.net
URLリンク(play.rust-lang.org)
受け取る関数がTraitでf32, f64を受けろと思うけど、外部ライブラリで作ってるなら仕方ないんだろうよ

993:デフォルトの名無しさん
17/10/09 20:46:44.09 g5Xwcr4f.net
>>972
ありがとうございます
今回は外部ライブラリだからしょうがないかな
普通はなんのtraitで受けとるんでしょうか?

994:デフォルトの名無しさん
17/10/11 16:41:05.41 3w9jP5qe.net
色々あるんだろうけど、こんな一例
URLリンク(play.rust-lang.org)
AsRefとかIntoとかFromとか、なんかその辺調べたらいいんじゃないかなぁ
他人に公開する目的のpub fn以外で使うのはバイナリ容量増やす一因になるからいたずらには使いたくは無い(他人がする分には気にしない
ただまぁ、枯れたおっさんプログラマの感想であって、map, arrayの使い分けに口出すおっさんは同様に口出してくると思うので注意されたし

995:デフォルトの名無しさん
17/10/11 17:46


996::13.24 ID:6qFX/88z.net



997:デフォルトの名無しさん
17/10/11 20:18:32.35 SdSs/e3t.net
rustって難しいって聞くけどどうなの?
数百行程度のcliツールとか作るのにも適してる?

998:デフォルトの名無しさん
17/10/11 20:36:37.19 wUY7e6c6.net
借用やライフタイムを理解できない内は難しいかもね。

999:デフォルトの名無しさん
17/10/11 20:58:57.23 gwIT2xqO.net
%%%%4NEL%%%%
000-SAV-&1.0888214%ML<\47MBL%0.2\MSSSS4.213>
1.8882/%B/%SB/<\2/7BL\%\%B!B%47L%Si72B>%10.2%\
002%\B%===>>>52.B<\rbc/2.8>>\7B<<\7LB>>\72S\<%\42%><\br>001BYON$\%7L2%3.33GHz>>>2.3GHz<\br>
41.B%LB%"<<%11.6$%><<\86.1B>>2LB>"B???S3>>71$-?>6%<\br>
082@<\7L@@<\br>
\LOOP>0<1Entra

1000:デフォルトの名無しさん
17/10/12 09:41:32.32 cYUXFwFa.net
>>975
RealがSupersetOf<f64>を継承してるから受け取る関数がf64を扱うならTrait Realを受ける形でも良さそう
Alga使ったことなくてどっちを使う方がスマートなのか分からんから、自分が取り回しやすいと思う形でどうぞ

1001:デフォルトの名無しさん
17/10/13 09:07:46.54 ZLjOYpzW.net
Announcing Rust 1.21 - The Rust Programming Language Blog
URLリンク(blog.rust-lang.org)
めぼしい変更無し。

1002:デフォルトの名無しさん
17/10/13 15:11:36.11 bp4APqrz.net
Rustの話をしないRust板の住人
言語として形になってないから言語のことを話せないんだろうなぁ
直近もまともな更新ないし、世間の話題も下火だし
工作員さんもっと頑張らないといけませんよ(ハナホジ)

1003:デフォルトの名無しさん
17/10/13 17:39:13.20 xbVdueHZ.net
tanakhのrustベタ褒めツイートでも列挙しようか

1004:デフォルトの名無しさん
17/10/13 17:40:12.67 +y/vofi6.net
>>976
性能だすために生ポ触るとかしなければボローイングなんかも
そんな難しく考えずにコード書けるとは思う。
一部の馬鹿が言語機能をドヤしたいってのが一番流行るのを妨げてる。

1005:デフォルトの名無しさん
17/10/13 17:44:57.66 PbP1JTIY.net
じゃんじゃんクローンすればいいんだよ
性能に困ったときだけ再考すればいい

1006:デフォルトの名無しさん
17/10/13 18:36:57.97 FAMCtm4a.net
>>980
何代目の時報か知らんけど次スレよろ
あと、2年近くかかって取り込まれたrvalue static promotionをスルーするとかどうかしてんぜ

1007:デフォルトの名無しさん
17/10/13 18:45:29.22 RXIUnIoB.net
ムーブセマンティクスをきちんと意識すれば借用はそこまで難しかないよね
まあそこでCの経験が却って邪魔になるところがあるわけだけど

1008:デフォルトの名無しさん
17/10/13 20:29:09.18 5Bkpm/HR.net
QtをやったあとでもRustの有り難みって実感出来る?

1009:デフォルトの名無しさん
17/10/13 22:43:54.95 dC2M8380.net
borrowing というか mutable aliasing だけはやっぱり辛いなあ。
多くの場合 struct メンバの false sharing なんだよね…。

1010:デフォルトの名無しさん
17/10/14 14:12:57.17 VwleOtKV.net
>>980
「Rust 1.21」リリース


1011: 2017年10月13日16:15 末岡洋子 https://mag.osdn.jp/17/10/13/161500



1012:デフォルトの名無しさん
17/10/14 17:39:51.15 uWD69LeP.net
次スレ
プログラミング言語 Rust 4
スレリンク(tech板)

1013:デフォルトの名無しさん
17/10/15 14:37:51.04 WeNwPolS.net
>>986
moveや借用は簡単なんだけど、その結果引き起こされる制限を回避していくのが面倒。

1014:デフォルトの名無しさん
17/10/15 17:36:12.11 GYZBU1+2.net
>>991
その「面倒」って感じるのがまさしくCの経験の負の遺産なわけよ

1015:デフォルトの名無しさん
17/10/16 10:08:35.93 ZoMoe7Af.net
脱出しようとして墜落してるのか

1016:デフォルトの名無しさん
17/10/20 00:44:35.87 2lESXdgM.net
994

1017:デフォルトの名無しさん
17/10/20 00:45:47.02 2lESXdgM.net
995

1018:デフォルトの名無しさん
17/10/20 00:46:13.27 2lESXdgM.net
996

1019:デフォルトの名無しさん
17/10/20 00:46:56.38 2lESXdgM.net
997

1020:デフォルトの名無しさん
17/10/20 00:48:00.58 2lESXdgM.net
998

1021:デフォルトの名無しさん
17/10/20 00:48:41.67 2lESXdgM.net
999

1022:デフォルトの名無しさん
17/10/20 00:49:08.90 2lESXdgM.net
1000

1023:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 151日 10時間 44分 40秒

1024:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch