Rust Part6
レス数が1000を超えています。これ以上書き込みはできません。
0002デフォルトの名無しさん
垢版 |
2018/07/28(土) 03:06:57.97ID:kAX50nYD
どなたかが間違えてわっチョイ付きで立ててしまつたようなので立て直しました
0003デフォルトの名無しさん
垢版 |
2018/07/28(土) 03:12:10.16ID:E0E9ZkiG
間違いではないのでは?
0011デフォルトの名無しさん
垢版 |
2018/07/28(土) 16:09:20.82ID:CyezES1q
IDあるしワッチョイまったく要らないでしょ
どうせ自演するやつは環境変えられるわけだし、根本的に荒らしを警戒するほどの書き込みも無いし
ワッチョイの必要性を感じたこと無いし、ワッチョイがあってよかったと思ったこともない
0013デフォルトの名無しさん
垢版 |
2018/07/28(土) 17:04:02.76ID:V2tTkPuk
必要性ないってのは分からなくもないんだが、
だからってアリのスレを使わない理由にはなってないんだけど。
0015デフォルトの名無しさん
垢版 |
2018/07/28(土) 20:55:26.74ID:V2tTkPuk
いや、その通りであっちのスレに書き込む人いなんいんだよ。
あんたが多数派なの。それは事実なんだけど、2ちゃんてそういう感じなんだね。
0016デフォルトの名無しさん
垢版 |
2018/07/28(土) 22:47:07.39ID:kAX50nYD
ワッチョイあると書き込み減るんですよ、事情は人それぞれでしょうけど
使わない理由になりませんか?
0017デフォルトの名無しさん
垢版 |
2018/07/29(日) 05:46:19.57ID:O+FUfp9p
ワッチョイは運営がサボるための口実。入れると荒らしレス以上に書き込みが減る
0021デフォルトの名無しさん
垢版 |
2018/07/29(日) 12:32:45.78ID:OtuHAjKj
そういうってどういう?
0026デフォルトの名無しさん
垢版 |
2018/08/02(木) 09:44:51.28ID:Cp7uV85Z
煩悩
0027デフォルトの名無しさん
垢版 |
2018/08/02(木) 23:22:25.27ID:xmgsCqay
いまさら書籍なんぞに何を期待するんだろう?
APIの最新情報は公式に揃ってるし
0028デフォルトの名無しさん
垢版 |
2018/08/02(木) 23:50:29.63ID:St12vf3Y
(日本語で)体系的に学びたいって事じゃないの?
APIリファレンス読んだだけじゃその言語特有のイディオムみたいなものは学べないし
0029デフォルトの名無しさん
垢版 |
2018/08/02(木) 23:54:49.84ID:xmgsCqay
そーなん
rustに限らず本なんてここ10年手に取ったことすらないわ
ネットが未発達な時代は本で読んでたけど…
0030デフォルトの名無しさん
垢版 |
2018/08/03(金) 00:09:47.61ID:D+QoVpKN
これは俺の持論だけど、
ネットは確かに情報量は多いけど断片的な情報しか手に入らないし
間違った情報(書いた本人が勘違いしてるだけの場合も含む)も多い
そんなのを自分で精査していく手間を考えると、
お金払ってでも本を買ったほうが効率的に有用な情報を手に入れられるよ
003129
垢版 |
2018/08/03(金) 00:37:39.72ID:wfmHef6o
誤解を招く前にいちおう補足しとくと
>>29で本って言ってるのは「プログラミング言語の本」て意味
そんでもってネットで十分て言ってるのは
「ネットでAPIリファレンス見るだけで十分」て意味

>>28
人生で最初の言語は体系的に学んだほうがいいかもしれない(のかな?)
二個目以降は真顔でAPIリファレンス引くだけのことと感じてる

>>30
まぁそれはあるね
・ニワカなやつほど語りたがる
・ノイズのっけた二次情報を発信したがる
・意味も無く薄めた二次情報を発信したがる
・独自解釈で歪めた二次情報を発信したがる
という点では注意が必要だ
Qiitaみたいなもんはほんと公害
0033デフォルトの名無しさん
垢版 |
2018/08/03(金) 01:11:55.85
将棋でも棋書読まずに定跡そっちのけだけど滅茶苦茶力戦になったら強い人っているよね
0035デフォルトの名無しさん
垢版 |
2018/08/03(金) 06:57:12.89ID:hAGAtZEI
俺はプログラミング言語の本を買うのはやさしいC以来15年ぶりだ
あと一週間だね
0037デフォルトの名無しさん
垢版 |
2018/08/03(金) 08:12:09.24ID:uHDsXjtG
日本人は目的より手段を優先する人が多いからしょうがない
少:××をしたいから勉強する
多:勉強をしてから出来る事を探す
0038デフォルトの名無しさん
垢版 |
2018/08/03(金) 08:15:07.70ID:hAGAtZEI
はぁ?w
0039デフォルトの名無しさん
垢版 |
2018/08/03(金) 10:16:21.88ID:Nsq6cZsy
紙の本じゃないと脳に染みてこない体質
絵的なものなら電子媒体でも全然いいんだけど
0040デフォルトの名無しさん
垢版 |
2018/08/03(金) 10:17:22.47ID:V5Z0o1JX
>>34
Rust が last か・・・
0041デフォルトの名無しさん
垢版 |
2018/08/03(金) 10:25:12.82ID:V5Z0o1JX
>>37
怖くて外に出られないから武器を延々と収集するマニアみたいなものだな。
0043デフォルトの名無しさん
垢版 |
2018/08/03(金) 17:42:49.62ID:uHDsXjtG
いやマジで「××を勉強したい」などと言う人に「それ勉強して何をしたいの?」と
質問しても明確な答えが返ってこないケースはかなり多い
日本の教育制度がそういう風潮だから当然っちゃ当然なんだが能率は良くないよね
0044デフォルトの名無しさん
垢版 |
2018/08/03(金) 18:12:08.37ID:X+nM2ZWl
>>43
ま、勉強する事そのものが目的の場合もあるとは思うけどな。
その場合はパズル解きたくなるのと同じようなものね。
遊びであり趣味であり好きでやってるだけ。
だから上達する必要がないんだけど何かに迫られてやってるわけじゃないので結果的にかなり上達する。
野球が好きで毎日野球ばっかりやってて結果的にプロ並みに上達してしまうみたいなのと同じ。
本人は主観的には遊んでただけで一切努力していない。
0045デフォルトの名無しさん
垢版 |
2018/08/03(金) 18:56:10.43ID:bX4VvlZZ
自分のささやかな経験を拡大解釈して知ったかぶるケースはかなり多いよね
海外では興味があっても使い道がないなら手を出すなと教育してるわけ?
0049デフォルトの名無しさん
垢版 |
2018/08/03(金) 20:11:12.79ID:uHDsXjtG
>>44
趣味ならそれでも良いかもしれないけど実践的じゃないよね
日本は大規模なプロジェクトが苦手だしな。宇宙・航空なんか最たる例

>>45
日本は手段偏重。技術偏重とも言える。逆に目的や結果は軽視される
0050デフォルトの名無しさん
垢版 |
2018/08/03(金) 20:29:52.72ID:bX4VvlZZ
原発ダム高速鉄道高層ビルに大規模なプロジェクトは枚挙に暇ないがないけどなあ

本を買うって話でそんな脈絡ないことを言い出すあたり、遺伝子にも環境にも恵まれなかった失敗作なんでしょうなあ
0051デフォルトの名無しさん
垢版 |
2018/08/03(金) 21:24:36.07ID:2vUMzRdm
別に好きでやってるのはいいと思うよ。
実践することとの区別のついてないバカが実際にいて困るってだけ。
0052デフォルトの名無しさん
垢版 |
2018/08/03(金) 22:04:14.75ID:bX4VvlZZ
好きなの使わなきゃ楽しくないじゃん
なんでそれがバカなんだ?
0053デフォルトの名無しさん
垢版 |
2018/08/03(金) 22:31:56.63ID:wfmHef6o
日本人は大規模なの下手だと思うよ
鉄道やなんやらは一見大きく見えるが小規模理論でスケールできる例なんだろう

実用OSなどの大規模なソフトウェアは本当に苦手で
日本からは決して生まれて来ないと思う
(TRONが実用になってたらこの案は引っ込める)

あとオーケストラとかサッカーとか
動的に複雑に協調していくようなもんは全て下手だと思う
というより、欧米の連中がなぜかそこをうまくこなしてると思う
0054デフォルトの名無しさん
垢版 |
2018/08/03(金) 22:48:46.66ID:bX4VvlZZ
鉄道を持論で小規模扱いするんか
ソフトウエアの世界で弱いのは英語ができないからだよ
オーケストラは知らんがスポーツは個人競技だって欧米が強い、フィジカルの違いだから

プログラマなのになんでそんな無茶苦茶なこと言うんだよ
0055デフォルトの名無しさん
垢版 |
2018/08/03(金) 23:06:58.86ID:uHDsXjtG
原発は大事故を起こしたばかりじゃないか
自分が言う大規模というのは一人の人間が全体を把握できないという意味
日本は個人で全体を把握できる物は強いが、それが出来ない物は弱い
鉄道だって構成要素は使い回しが多く種類は以外と多くない
プログラム関係なら汎用OSなんかが該当するかな

この話を突き詰めていくとアメリカで言うシステムエンジニアリングに行き着くんだよね
日本人には理解されない事が多いけど
0056デフォルトの名無しさん
垢版 |
2018/08/03(金) 23:21:59.36ID:wfmHef6o
>>55
おおむね同意
日本人がすぐれてるのは職人芸の延長だと思う
コケシ作ったりするような、ああいうサイズ感は得意
個人の勤勉さがうまく働く例だと思う

「一人の人間が全体を把握できない」という表現もなるほどなぁと思う
俺はもっと単純に「複雑さがあるレベルに達すると」くらいに考えてた
0057デフォルトの名無しさん
垢版 |
2018/08/03(金) 23:53:56.85ID:uHDsXjtG
>>56
白状すると元ネタはこれ
マツドサイエンティスト・研究日誌 保存版 システムエンジニアリング(その4) 超人にならなくていい
ttp://anoda.web.fc2.com/weblog/20050424.html
そっち系の本職の人の記事だが本来の意味のシステムエンジニアリングについて解説している
この業界ですらみんな判っているわけではなく打ち上げて間もない衛星を管理不十分でお釈迦にしたばかりだし
0058デフォルトの名無しさん
垢版 |
2018/08/03(金) 23:57:04.08ID:q7bL0dOc
語れば語るほど薄っぺらいが、たいていの人はこういう時期があったので、生暖かく見守っているのだよ
0060デフォルトの名無しさん
垢版 |
2018/08/04(土) 01:14:13.19ID:NrQVv38L
最近は義務教育や高校で近似解や数値計算も教えるのかな?
今のご時世コンピュータを使用してはいけないとかナンセンスだよね
0061デフォルトの名無しさん
垢版 |
2018/08/04(土) 01:27:23.50ID:o+LfwS0J
>>55
まあわからんでもないかな。ある種の細かい部分の差異を捨てられない感覚がある。
大規模な場合にそういう差異が生じることを前提に組まなきゃならんって場面で
うまく切り捨てられない印象。
0063デフォルトの名無しさん
垢版 |
2018/08/04(土) 05:31:01.87ID:iUNKVgUH
日本は島国だから、争わない遺伝子が多い

他国では戦争が多いから、逆らう人 : 従順な人 = 7 : 3
などだが、日本人だけは逆

日本では、体制を変えたり、乱を起こすような、乱世向きの人は嫌われる。
従順な治世向きの人が好まれる

日本人は、命令・洗脳・支配されると喜ぶ。
人の上に立ちたくない。
反発力がない。

だから同じ事を、飽きずにずっとやれる
0064デフォルトの名無しさん
垢版 |
2018/08/04(土) 07:05:22.47ID:xqrCbAao
ステロタイプの日本人像ばかりで飽きれる
持論ですらないし
持論じやないから反論に対して反論できず言い張るだけ
こんな奴らがプログラマやってるなんて信じられない
IT土方なんて揶揄されるのも仕方ないな
0066デフォルトの名無しさん
垢版 |
2018/08/04(土) 07:47:05.07ID:GiulTy4Z
>>57
(´・∀・`)ヘー
俺も白状すると指揮者の小澤さんって人が書いた本に(タイトル忘れた)
オーケストラとかやると日本人はからっきしダメ
欧米人はなぜか不思議と音楽になっていくが
日本人はなぜかうまく行かない不思議がある
みたいなのを昔読んでひっかかってたのが元ネタ
あの本では合奏そのものに対する歴史とか
個人レベルでの音に対する感覚とかを原因と考えてたような記憶

>>61
切捨てかぁ…それあるな!!
これは俺が個人的にみっけた法則なんだけど
日本人の動画は長い!つべでも三分くらいある!
要点以外の前後関係を大事にすると言えなくも無い
海外の事故動画なんて数秒、一分未満だけど
日本人が上げてるどうがは五分とかある印象

>>65
もうやめるから許して…
0067デフォルトの名無しさん
垢版 |
2018/08/04(土) 08:03:17.92ID:xqrCbAao
1.28.0
どうや?
0068デフォルトの名無しさん
垢版 |
2018/08/04(土) 14:33:25.41ID:ikkfUufi
自分自身大して能力が高いわけでもないし、日本的な方法でやっていたら中々成果物が出来上がらない

>>61
細部にこだわりたくなる気持ちはわかる。でもそれをやっていると全体が進まなくなるので
なるべく俯瞰的に、客観的に見るように心がけているな

>>66
もう一人挙げると川口淳一郎氏も優秀なシステムエンジニアだな。初代はやぶさの総指揮官をやった人
中古で良ければ著書がブックオフ等で100円位なので読んでみるといろいろ考えさせられると思う

>動画
手間を掛けたシーンから捨てろ!的な話を聞いた事がある。客観的に見て冗長になっていないか注意せよ
って事なんだが細部にこだわりすぎていると中々難しい
0070デフォルトの名無しさん
垢版 |
2018/08/06(月) 16:50:40.87ID:bv191ZQE
英語版パラパラと見てみたけどrustが日本語で錆だからとunicodeキャラクターの例に錆持ち出してみたり文字列の例で顔文字ಠ_ಠ使ってみたり日本フレンドリーな著者だなと思った。
0072デフォルトの名無しさん
垢版 |
2018/08/06(月) 19:06:38.45ID:roUzhpPJ
本に書いてあることは時代遅れって聞いたことがある。大体あっている気はする
0073デフォルトの名無しさん
垢版 |
2018/08/06(月) 19:22:30.38ID:13KQrLiC
本を買うのは最新が知りたいんじゃなくて基礎が知りたいからでしょ
0074デフォルトの名無しさん
垢版 |
2018/08/06(月) 19:36:50.11ID:ykSda89u
The Rust Programming Languageの第二版はだいぶわかりやすいドキュメントになってるな。
rust使わなくてc++だけの人でも読む価値あるわ。
0075デフォルトの名無しさん
垢版 |
2018/08/06(月) 23:38:26.71ID:B9HLW8wb
安西先生。自動テストがしたいです。

>>73
2018でその基礎が変わるんだよ。
NLLとかモジュールとかマクロとかraw identとか。
あとedition導入されると新しい機能は
その都度追加される様になるから紙じゃ追いつけなくなる。

>>74
rustのdoc全部いちいち細かいところ間違えてて
ミスリードしまくりだったのが異常だったんだよ。
今マシになってきてる。
0076デフォルトの名無しさん
垢版 |
2018/08/07(火) 02:28:57.20ID:DlxWb81t
たぷたぷたぷ
0077デフォルトの名無しさん
垢版 |
2018/08/07(火) 05:07:45.25ID:RkwEL9us
rust2018なる風呂敷についてよく知らんけど、基礎を覆すほどのもんじゃないと思うけど
アップデートあったら差分だけ把握すれはいいでしょ
0079デフォルトの名無しさん
垢版 |
2018/08/07(火) 10:46:53.51ID:AJOeK/rw
筋が悪い
才能が無い
0080デフォルトの名無しさん
垢版 |
2018/08/07(火) 12:38:23.28ID:r/NXRNz/
筋子がうまい
0082デフォルトの名無しさん
垢版 |
2018/08/07(火) 21:26:14.93ID:RjSgka+t
ほう具体的には?
どこで互換性捨ててるの?
0083デフォルトの名無しさん
垢版 |
2018/08/07(火) 21:30:54.77ID:rP7SP5HK
>>82
単純にキーワード増えるから過去のコードが動かなくなる
今まで Trait と書いていたところを dyn Trait と書かないとコンパイルエラーになる
0087デフォルトの名無しさん
垢版 |
2018/08/07(火) 21:41:00.27ID:oCoNsgzD
いやそれくらいgrepでよゆうっすよ100万行ファイル置換しましょうオッケー大丈夫!
0088デフォルトの名無しさん
垢版 |
2018/08/07(火) 21:42:09.66ID:RjSgka+t
dyn traitはオプションなんですけども
既に追加されているけど元気にコンパイルてるよ
async/awaitについてはどんな理屈で動かなくなるのか想像すらできない
0090デフォルトの名無しさん
垢版 |
2018/08/07(火) 22:20:42.55ID:ThdtCxHP
>>86
勿論「いる」
同じ「過去のコードが動かなくなる」でも程度次第で修正の手間が全然違う
0092デフォルトの名無しさん
垢版 |
2018/08/07(火) 23:48:30.86ID:izlk0iCx
pythonの場合2to3でも動かないやつあったけどcargo fixで直らないやつあるん?
動かなくなるコードよりNLLで動くようになる放置コードの方が多そう
0093デフォルトの名無しさん
垢版 |
2018/08/08(水) 00:24:45.81ID:jOuNgeMk
異なるeditionのcrateを混ぜて使えるんで、簡単な所からcargo fixしていけばいいんでないの?
0095デフォルトの名無しさん
垢版 |
2018/08/08(水) 06:12:04.37ID:OZVc1XvO
うーんめんどくさいから教えてよ
0096デフォルトの名無しさん
垢版 |
2018/08/08(水) 12:05:29.76ID:zV68lIJl
何もしなければそのまま動く
Cargo.toml に edition="2018" と書くと新しい構文やキーワードが有効になる
crateごとにeditionは混在可能

なので破壊的変更はない
0097デフォルトの名無しさん
垢版 |
2018/08/08(水) 18:32:02.00ID:H6r2vrRw
>>94
保証されているとドキュメントに書いてある
(コンパイラやcargoがそう作られてるとは言っていない)
0100デフォルトの名無しさん
垢版 |
2018/08/08(水) 21:07:11.22ID:X66JxLQO
今だ!100ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
0101デフォルトの名無しさん
垢版 |
2018/08/08(水) 21:22:34.58ID:PxJetEfI
>>96
edition導入後は上位互換+edition違いのcrateがリンク可能っていう
話だから既存のソースコードで新しい機能使うならソースコードレベルの変更が必要だし、
キーワードの変更も決まってる(try追加とsizeof削除以外はもう反映されてる)から破壊的変更はあるよ。
それに下位を気にせず新しい機能を導入するためのeditionだし。

>>99
ただの機能セットのスナップショットだから以前からnightlyで色々使えるよ。
C++2aとかes2018みたいにn年ごとに新しい仕様出ますってわけじゃなくて新しいjavaみたいに出来た機能から追加されるんだよ。
0103デフォルトの名無しさん
垢版 |
2018/08/09(木) 12:07:09.57ID:nE4uwAk1
>>101
edition=2018という指定を加えるとコンパイルが通らなくなることはあっても
何もしなければコンパイルは通るんだから破壊的変更ではないよ
Cargo.tomlを含む、コードをいじらなければ以前から動いていた物はコンパイルは通る
0104デフォルトの名無しさん
垢版 |
2018/08/10(金) 17:15:25.59ID:Jcmnfa1Y
プログラミングrust届いた
0106デフォルトの名無しさん
垢版 |
2018/08/10(金) 20:45:00.41ID:KEkESvlP
約5千円か。俺としてはちょっと高く感る値段だな。
3千円ぐらいだったら迷わず買ってるかも知れん。
0107デフォルトの名無しさん
垢版 |
2018/08/10(金) 21:05:34.10
電子書籍で千円までだな
0109デフォルトの名無しさん
垢版 |
2018/08/10(金) 21:16:19.00ID:es3KMeBj
今みんな本買わないから中古価格が下がるペース遅くて、充分に読んでからでもそこそこの値段で売れてありがたい
通して読むにはやっぱり本がいい
0113デフォルトの名無しさん
垢版 |
2018/08/11(土) 01:37:07.84ID:wtNlwqlz
ディスプレイで読むと疲れる
電子書籍はページの行き来に不便
したがって本を読む
0115デフォルトの名無しさん
垢版 |
2018/08/11(土) 10:55:46.58
電子書籍は単語検索できるから好き
紙だとどの辺にあったか思い出してその範囲を1ページ1ページ探さないといけないから糞
0116デフォルトの名無しさん
垢版 |
2018/08/11(土) 11:30:07.23ID:nAROCX9/
>>115
紙でも索引がついてれば大抵どうにかなる
それより、紙は抽象的なことをパラパラめくりで検索できるから好き
電子書籍だと「あの図のあるページが見たい」とか思うとまともな検索手段がないから糞
忘れっぽい俺なんかは「あれだよ、あれ」って思いながら探すから紙じゃないと無理

ま、人それぞれだわな
0117デフォルトの名無しさん
垢版 |
2018/08/11(土) 11:53:07.64ID:AWnFhpjF
しおりが中途半端なんだよな
0119デフォルトの名無しさん
垢版 |
2018/08/11(土) 17:14:16.24ID:wtNlwqlz
んなあほなw
0120デフォルトの名無しさん
垢版 |
2018/08/14(火) 00:14:17.48ID:P4UIxLbl
マクロ使いすぎの人多すぎでは
0123デフォルトの名無しさん
垢版 |
2018/08/14(火) 09:49:30.54
Packtのように頻繁に電子書籍セールやって$10とかで買えて、且つ糞本じゃなければいい
0124デフォルトの名無しさん
垢版 |
2018/08/16(木) 19:57:15.86ID:qcHYUDTK
オライリーの買ったけど、入門本としては有志翻訳のThe Programming 〜のが良くない?
0129デフォルトの名無しさん
垢版 |
2018/08/17(金) 09:11:29.07ID:7hC1UKUq
Rustをマスターすればモテモテに
0134デフォルトの名無しさん
垢版 |
2018/08/18(土) 10:30:46.36ID:2sc6SUFd
カニチャーハンってカーニハンとなんとなく似てるな。
きっとカニチャーハン&リッチーって書いてあっても気づかないだろうな。
0136デフォルトの名無しさん
垢版 |
2018/08/19(日) 17:09:31.22ID:PCz528s8
価値を知らないのに高いと評するのか
0138デフォルトの名無しさん
垢版 |
2018/08/20(月) 00:35:35.97ID:JBCtYT+G
馬鹿は客じゃないから去りたまえ
0139デフォルトの名無しさん
垢版 |
2018/08/20(月) 00:54:57.67ID:PA8pISQK
>>137
英語版の話だけどamazonのレビューでけっこう高評価ついてるよ
少なくともその人たちは買って良かったって判断したんじゃない?
0146デフォルトの名無しさん
垢版 |
2018/08/20(月) 21:31:16.82ID:1nsldRzy
いやだって、なんでわざわざこの題材っていう
リソーススタベーションに対する
Rustならではのスマートな解答があるのかと思えば、ナニコレ
ならなんでこの題材にしたのか不明
0147デフォルトの名無しさん
垢版 |
2018/08/20(月) 21:38:09.93ID:rDwzmoqy
Rustにスマートさなんてないただある種の間違いが少なくなると主張している

なにをやるにもつっかかる
Rustだけに
0148デフォルトの名無しさん
垢版 |
2018/08/20(月) 21:41:58.64ID:1nsldRzy
Rustは並列性がどうとか言ってなかったっけ
それで最初の題材でコレもってくるセンスが謎
0149デフォルトの名無しさん
垢版 |
2018/08/20(月) 22:08:57.88ID:JBCtYT+G
何が謎か分からん
0150デフォルトの名無しさん
垢版 |
2018/08/20(月) 22:23:58.46ID:7YukIB6U
>>146
ここは書いた本人的にもいまいちだったと思っていたらしく、本家では結構前に削除されてる。
まあチュートリアルならせめてmutexではなくchannelだとは思う。
0151デフォルトの名無しさん
垢版 |
2018/08/20(月) 22:34:49.09ID:JBCtYT+G
うーむそうかな
並列処理ではmutexはかなり一般的で本質的だと思うけど
ロックを得ないことに安全に並列処理はできないのだし
0154デフォルトの名無しさん
垢版 |
2018/08/20(月) 22:47:50.39ID:7YukIB6U
>>151
一般的で本質的ってのはその通りだと思うけど、
チュートリアルで一番最初に導入すべきかというと、そうでもないのでは?って感じかな。
0156デフォルトの名無しさん
垢版 |
2018/08/20(月) 23:03:39.98ID:GHO1XUgy
Kernicharhan & Ritchie
0158デフォルトの名無しさん
垢版 |
2018/08/21(火) 07:16:48.68ID:eRQ3K4Ir
rustらしさといえば&と&mutの仕組みがそのままスレッド間でも使えるところとか
RAIIとかmoveも良いけどc++にもあるので
0159デフォルトの名無しさん
垢版 |
2018/08/21(火) 13:49:43.65ID:gNkN0CkF
rustらしく書いたコードって、&と&mutが大量に出てきて、なんか見た目ごちゃついてない?
move多用で書きたくなる
0161デフォルトの名無しさん
垢版 |
2018/08/21(火) 19:13:44.58ID:9N93jiAN
&やmutはまだいいけどライフタイムとジェネリクスが入り乱れると頭抱える
自分じゃ書けないからライブラリのコード読むときだけど
0162デフォルトの名無しさん
垢版 |
2018/08/21(火) 21:48:12.99ID:b9rnTQC8
impl traitでちょっと楽になったけど、書きながら試行錯誤しているときに関数にして切り出すのが面倒
ちゃんと設計しろよって言われるかもしれんが、rustの仕様とライブラリ全部きっちり頭に入れるのも非現実的だと思ってる
0165164
垢版 |
2018/08/22(水) 19:53:16.67ID:RyuF5Err
わるい。バグは修正したんだった。削除した理由はこっち。
ttps://github.com/rust-lang/rust/pull/30595

> まあチュートリアルならせめてmutexではなくchannelだとは思う。
これも冒頭二段落に書いてある。
0166デフォルトの名無しさん
垢版 |
2018/08/23(木) 01:21:36.71ID:vCVCF+WZ
存在型と量化子安定してたのか。
( ゚∀゚)o彡゚G・A・T!!
( ゚∀゚)o彡゚G・A・T!!
( ゚∀゚)o彡゚G・A・T!!
0168デフォルトの名無しさん
垢版 |
2018/08/23(木) 23:27:32.87ID:EN+b8ws+
交換を一回しかしない配列の回転の応用だからJon BentleyのProgramming Pearlsだな。
0170デフォルトの名無しさん
垢版 |
2018/08/24(金) 12:20:35.42ID:ZVlysGry
>>169
つまらんよ
0175デフォルトの名無しさん
垢版 |
2018/09/01(土) 01:39:37.63ID:qa+GqmPA
VSCodeでRust Tool Missingと出てたからクリックしたらエラーたくさん出た。
ググったらNightlyのコンパイラじゃないとRacer(レイサーってのがRust Toolのこと?)は入れられないと
あったから。とりあえずRust Nightlyを入れた。
その後、また同じように入れようとしてみる。
cargo install racer && cargo install rustfmt && cargo install rustsym Updating registry `https://github.com/rust-lang/crates.io-index`

ダメだった!エラーが5個くらい出る。
どうすれば良いの?
0178デフォルトの名無しさん
垢版 |
2018/09/02(日) 05:13:21.00ID:wH0i7ysW
VSCodeって言っちゃったのがまずかった
VSCodeのターミナル(WSLのzsh)で出たエラーだから、MacでもLinuxでも、このエラー起こると思う!
最近Rustインストールした人で、同じエラー出ている人いないかな?
GithubのRacerに書かれてある方法で試してみる・・
0179デフォルトの名無しさん
垢版 |
2018/09/02(日) 08:10:44.09ID:KdakvMsf
エラーを書かずに同じエラーとわ
0181デフォルトの名無しさん
垢版 |
2018/09/03(月) 23:57:51.98ID:HH7kYsUG
Rustで使いやすいGUIツールキットってどんなのがあるんだろうな
マルチプラットフォームかつネイティブでそこそこのパフォーマンスを得られるのが良い
wxWidgetsは有名だけどwxRustは3年放置されている。使えるのかな
0182デフォルトの名無しさん
垢版 |
2018/09/04(火) 00:37:25.68ID:JHljRMUU
良い塩梅に発酵したときが食べ頃
0183デフォルトの名無しさん
垢版 |
2018/09/04(火) 02:01:24.43ID:ph6Gu5BU
>>181
gtk-rsは?
前にちょっと触ってみただけだから実用レベルかは知らんが
今でも積極的にコミットされてるから期待はできそう

純Rust製ならPistonが作ってるconrodかな?winitとgliumをベースにしてるっぽい?
こっちは使ったことすら無いんで全く分からん
純Rust製に惹かれたが、なかなか時間が作れなくて放置中…
因みにwinitはイベント管理用でgliumはOpenGLのクレートね
0185デフォルトの名無しさん
垢版 |
2018/09/04(火) 09:10:47.26ID:hvcJ5TzR
>>178
GithubのRacerに書いてあるとおりにやったらいけた
Rust Nightlyを入れただけではダメで
rustup toolchain add nightly
cargo +nightly install racer
でいけた。Multirustという機能があるからNightlyを使いたければ毎回指定するということを初めて知った
0186デフォルトの名無しさん
垢版 |
2018/09/04(火) 10:31:00.23ID:gEGTZvcA
>>184
+1
0187デフォルトの名無しさん
垢版 |
2018/09/04(火) 21:01:57.03ID:T2pQ9bem
>>184
ワロタ
0189デフォルトの名無しさん
垢版 |
2018/09/05(水) 03:15:12.05ID:Ozj2BDZl
RLSだけでいいの?それならRLSでいきたい
でもNightlyをデフォルトに設定したらRLSがスタートできなかった
0191181
垢版 |
2018/09/05(水) 07:39:35.54ID:6RBOwdE6
>>183
ありがとう。GTK+が無難ですかね。gtk-rsを試してみます

純Rustは確かに惹かれますがこれってネイティブなのだろうか・・・
0193デフォルトの名無しさん
垢版 |
2018/09/05(水) 07:48:44.63ID:dKL5q8IE
>>183
>>191
gtkってマルチプラットフォームと言えるの?
Linuxでしかまともに動かないイメージ
まあWindowsでは最低限は動くのかもしれんけどmacOSではダメダメでしょう
0194181
垢版 |
2018/09/05(水) 08:06:31.33ID:6RBOwdE6
>>193
そうなの?
まぁ今回の用途はWindowsとLinux/*BSDで動けばよし
たしかGIMPはGTKだったはず
0195デフォルトの名無しさん
垢版 |
2018/09/05(水) 08:14:42.53ID:bMCIX8s0
え、エレクトロン
0197デフォルトの名無しさん
垢版 |
2018/09/05(水) 11:38:43.13ID:/V9AsOwQ
GTKは糞
0199181
垢版 |
2018/09/05(水) 18:50:23.45ID:6RBOwdE6
GTKのバインディングがあるならTkのバインディングも・・・と思ったら見あたらない?
Tkも一応ネイティブだったはず。機能面はぱっとしないが今回の用途には足りるかも

>>195
その手のWeb技術ベースのってアプリケーション側からウィジェットを更新する術に乏しい
印象があるけどそうでもないのかな
0200デフォルトの名無しさん
垢版 |
2018/09/05(水) 20:07:45.33ID:L3ODpJW1
ウィジェットってこの文脈だとどいう意味?
0201デフォルトの名無しさん
垢版 |
2018/09/05(水) 21:04:58.50ID:NRWr9JTz
OS(フレームワーク)ネイティブのGUIコンポーネントって意味だと思う。
というか、こっちの意味での利用のほうがコンピュータ的には一般的だったかと。
0203デフォルトの名無しさん
垢版 |
2018/09/06(木) 00:48:46.68ID:az09claK
GIMPはMotif・・・。うん。わかってるよ。

>>191
msvcツールチェーンでビルド面倒くさいから頑張れ。
0205デフォルトの名無しさん
垢版 |
2018/09/08(土) 21:39:35.66ID:r9+/L/Cg
なにかやるわけでもないのに言語だけ作るほうが珍しい気もするぞ。
で、どの言語のこと言ってるの?
0209デフォルトの名無しさん
垢版 |
2018/09/09(日) 18:05:38.77ID:4xLE2iMW
面倒臭いと思うよ

GUIだと大抵はイベントハンドラ多用する場合が多いから
Rustだと多分クロージャを渡すことになって
キャプチャする変数の所有権が絡んできて面倒なことになる

可能な限りデータを全て不変にして参照カウンタ使うのが一番楽そう
誰かもっと良い方法知ってたら教えて
0210デフォルトの名無しさん
垢版 |
2018/09/09(日) 18:56:16.25ID:UvF45WNM
キャプチャ必要かな。しなけりゃいいんじゃね?
RxやReduxみたいなのならRustでもできるような気がするが。
0212デフォルトの名無しさん
垢版 |
2018/09/09(日) 23:57:56.69ID:SgQ7ecDz
>>209
相互/循環参照があり得るから参照カウンタじゃ無理だよ。
メモリ管理面の煩わしさを考慮するならjavaみたい
にイベントハンドラをtraitにしてユーザーデータ自身に
実装させればいいけど、今ではこのアプローチ自体が煩わしいと思う。

あと参照カウンタの場合一度に多すぎる解放処理が発生して
UIがもたつく可能性があるね。
トレーシングGCなら必要ないなら遅らせるからこういう事は起きない。

rustでトレーシングGC使う場合rootingはプログラマが行う必要があるから
自前でメモリ管理するのと同じだし、それ以外にGUIのシーングラフ自体にトレーシングGCがいるね。
ffiで既存のgui利用してrustからはデータ渡すだけにするのが簡単だと思う。
0214デフォルトの名無しさん
垢版 |
2018/09/10(月) 19:39:57.20ID:3ZIEHwy7
ちなみにWEB開発のサーバーサイドでRustって現実味あるの?
Goがたまに使われてるから、Rustにもチャンスあるのかなと思ったけど
0215デフォルトの名無しさん
垢版 |
2018/09/10(月) 20:02:06.79ID:WGo2tHWR
君が作ればチャンスは無限大
0218デフォルトの名無しさん
垢版 |
2018/09/10(月) 21:58:39.88ID:ghTi64DR
予算と工数的に競技志向のFPSのバトルサーバならRustも現実的だけどマッチングサーバなら現実的じゃないとかありそうよね
0219デフォルトの名無しさん
垢版 |
2018/09/10(月) 22:17:46.90ID:Jc2GxaH/
現実になるかどうかは言語じゃなくでプログラマ次第でしょ
俺は現実に使ってるけど
0223デフォルトの名無しさん
垢版 |
2018/09/11(火) 00:59:46.27ID:S/u0i0hH
Rubyでいう

v = [1, 2, 3].map(){|e| e.to_f }

をrustで書きたくて、以下のように書いたんだけど、

let v = [1, 2, 3].iter().map(|x| *x as f32).collect();

vの型が推論できなくてコンパイルが通らない。助けて!
0224デフォルトの名無しさん
垢版 |
2018/09/11(火) 08:51:05.30ID:EMXKp1xw
let v = [1, 2, 3].iter().map(|x| *x as f32).collect::<Vec<_>>();
とか
let v:Vec<_> = [1, 2, 3].iter().map(|x| *x as f32).collect();

collectをジェネリックにする代わりに型推論できなくするのは良いアイデアだったのか
0226デフォルトの名無しさん
垢版 |
2018/09/11(火) 22:25:10.48ID:gyUsDA80
>>224
参考になりました!
これどちらも vec<f32> になるんですよね?
ヒープ確保じゃなくてスタックの配列への変換は無理ですかね?
0227デフォルトの名無しさん
垢版 |
2018/09/11(火) 23:40:31.29ID:gUgwDOju
>>226
ttps://stackoverflow.com/questions/26441916/dynamic-array-allocation-on-stack-in-c
Cでも駄目で、C++ならオッケーだったけな。Rustはできなかった。

もしできるようになっても、その関数の下にどれくらいコールスタックが積まれているのか、
この関数の上にどれくらい呼び出しが控えているかを熟慮しないとすぐstack overflow起こすんで、よっぽどクリティカルでなければやらんほうがええんじゃないか
0229デフォルトの名無しさん
垢版 |
2018/09/12(水) 01:54:03.48ID:+PSin/UV
>>228
追いかけきれてるわけではないけど、
allocaについても言及されているrfc#1909の第一段階が、8/19にマージされてるっぽい。

近い将来にallocaが完全サポートされる感じなんですかねぇ?
0230226
垢版 |
2018/09/12(水) 03:38:36.44ID:SKJk4QVS
んーん、なるほど。
Rustには現状、スタックを伸長するalloca相当がないから件の場合、固定配列を求める事は出来ないってことですかね。
0231デフォルトの名無しさん
垢版 |
2018/09/12(水) 19:11:41.82ID:VZx7VRPz
cloneていつ付けてる?
不用意にcloneするのを避けたくて最小限にしていたんだけどテスト書くとき辛い
derefでcloneされるのはcopyついているやつだけ?
0232デフォルトの名無しさん
垢版 |
2018/09/12(水) 20:48:13.21ID:SMBzO3VC
テストの時辛いってのは
↓のアトリビュートじゃ解決できないの?

#[cfg_attr(test, derive(Clone))]
0233デフォルトの名無しさん
垢版 |
2018/09/12(水) 20:56:43.30ID:VZx7VRPz
omg
それでいきますわ!ありがとう!
0234デフォルトの名無しさん
垢版 |
2018/09/12(水) 22:49:53.02ID:b/qs2bwP
>>224
> 型推論できなくする
できるよ。
rust by exampleを例にすると
ttps://play.rust-lang.org/?gist=3cbef33631cbed2a2f0dce6439da4942&version=stable&mode=debug&edition=2015

上記の`i32::from_str`や`<i32 as std::str::FromStr>::from_str`のi32を見て推論してる。
ただのstd::str::FromStrでは推論できないってエラーになる。
0235デフォルトの名無しさん
垢版 |
2018/09/13(木) 18:02:19.58ID:k7xTaVQM
低コストで探索できるらしいB+木ってなんぞや。ググるといっぱい出てくるがどいつもこいつも抽象的
「で、それがどう活用できるのか?」と言う疑問が解決しない
もちろんRustでコーディングする予定
0237デフォルトの名無しさん
垢版 |
2018/09/13(木) 21:29:20.76ID:IjhCAeem
B木とそのバリエーションは、ディスクのように一定の大きさを持ったブロック単位で読み書きする
記憶装置上に置くのに適した木構造。
そういう使い方をしないんだったら効率が悪い木構造でしかない。
0238235
垢版 |
2018/09/13(木) 22:11:03.43ID:bNNEFAck
ありがとう

>>236
そのような説明はいっぱい出てくるんですがそれを実用へ落とし込むのに必要なピースがわかりません
データベースやファイルシステムを作れる人ならその説明で十分なのだろうと思いますが
自分はそのような経験がないので「ファイルシステム」や「B+木」等のキーワードからその不足分にたどり
着けないでいます

>>237
まさしくその用途を考えています
・大容量のボリュームを扱う (数百GB〜TB)
・ファイルをたくさん入れる (万〜)
・ファイルの中身へのアクセスコストが低い
・充填率に優れる
・フラッシュメモリベースのメディアで使用する
みたいなファイルシステムを作れないかなーと。個人が扱うファイルシステムだとFAT32あたりがよく使われると思いますが
そろそろ最大ボリュームの上限を突破しそうだし、ディレクトリの探索が容易じゃないし(特にLFN使用時)
充填率も良いとは言えないしと、いろいろ課題が多いのでいっそ俺ファイルシステムを作ろうかと
0239デフォルトの名無しさん
垢版 |
2018/09/13(木) 22:24:39.91ID:IjhCAeem
B木の実装は、共立出版の「ファイル構造」という本が詳細に分かりやすく説明されていてよかった。
残念ながらもう絶版らしいが。
0240デフォルトの名無しさん
垢版 |
2018/09/13(木) 23:23:13.30ID:pq1/pryD
bit別冊は大部処分したけど似た本はもう無いと判断して捨てなかった一冊

今ファイルシステムの勉強しようと思ったらLinuxや*BSDのソースコードよむぐらいしか無さそう
0244235
垢版 |
2018/09/14(金) 22:55:36.33ID:L0IQQp+4
ありがとう

>>239-241
尼のマケプレの値段ヤバイですね。原書?のPDFは入手できたので見てみます

>今ファイルシステムの勉強しようと思ったらLinuxや*BSDのソースコードよむぐらいしか無さそう
うへぇ。ファイルシステムドライバの仕様がどうなっているのかを理解した上で、ジャーナリングや
スナップショットなどの付加機能を分離しつつ読む必要がありそう
オープンソースといえどもこの辺の情報はお世辞にも豊富ではないのもつらいところです
0245デフォルトの名無しさん
垢版 |
2018/09/14(金) 23:38:15.74ID:SIPw8V9s
まあ読むならext3ぐらいからじゃないかな?
losetupやbrdで小規模なデバイス上にmkfsしてhexdump使って媒体構造見るとか
system tapやblktraceで処理やアクセス箇所見るとか
crashでカレントプロセス覗くとか
printk仕込んで処理フロー確認するとか

昔勉強したけど他に何やったかもう覚えてないや
0246デフォルトの名無しさん
垢版 |
2018/09/14(金) 23:52:28.71ID:KYDDV16J
まさかこんなところで共立出版というガチな名前を聞くとは思わなかった。
ねねっちがいるのかこのスレには。最近Rと統計ばっかだよねあそこ。

ところでファイル構造の古書店の通販見つけたけど長すぎてurl貼れない。
0247デフォルトの名無しさん
垢版 |
2018/09/15(土) 00:11:05.25ID:UUtHx4qg
共立出版って大学数学やら物理やらの教科書としてはまあまあ使われてるんじゃない?
0248デフォルトの名無しさん
垢版 |
2018/09/15(土) 00:35:58.43ID:DqLr8CXZ
テキストとワインバーグ本とすべての人のためのJavaプログラミングのところだね。
0249デフォルトの名無しさん
垢版 |
2018/09/15(土) 03:08:49.57ID:aty0PGwQ
>>247
共立出版で情報系の教科書としては次の2つのシリーズは好著が多い良いシリーズだ
・情報数学講座
・アルゴリズムサイエンスシリーズ

あと、共立出版でプログラミングの本と言えばとっくに時代遅れになっているが
カーニハン&リッチーの『プログラミング言語C』は外せない
恐らくこの訳書は初版と第2版とを合わせると、共立出版の情報系の書籍の中で圧倒的な部数を稼いだはず

それ以外にもカーニハン本の翻訳を日本で最初に出したのは共立出版だ
『プログラム書法』、『ソフトウェア作法』、『プログラミング作法』とね

今の若い人たちは存在していたことすら知らないだろうけど、共立出版は bit という月刊誌を出していた
これはB5版のころはソフトウェア技術者にとっての教養雑誌で、理論的な話題の記事も載せていたし
チューリング賞の受賞記念講演の翻訳も毎年載せていた

上に名前が出てた『ファイル構造』は元は bit誌の別冊か臨時増刊として出版されたものが
需要が多かったので増刷を機に単行本化されたものだ

だが部数が徐々に減ってきたのをテコ入れとばかりに編集長が変わって、版型をB5版からA4版に変え
記事も教養的なのから実用的なもの中心に変えてしまったら、昔からの読者の多くが離れて
急激に廃刊(建前上は休刊)に追い込まれた

bit誌の廃刊以降、共立出版の情報科学系の書籍の出版点数はかなり減少したような印象がある
現在の共立出版は数学書の出版に特に力を入れているみたいだね
0250デフォルトの名無しさん
垢版 |
2018/09/15(土) 08:36:15.98ID:h1bufCaZ
bit本誌、いまだに捨てられなくて本棚1段占領している。
ユニマガは引っ越しの時に全部捨てちゃったが。
0253デフォルトの名無しさん
垢版 |
2018/09/17(月) 20:15:25.23ID:aiBl5TGk
ここで質問しても許されるのでしょうか?ダメそうなら、申し訳ないです。
S式を使って遊ぼうとしてRustで見様見真似で書こうとしたんですが、コンパイルすらできません…。
ヘッタクソなコードで恐縮ですが、以下の52行目で「`s` does not live long enough」と怒られます。
https://pastebin.com/94ZPh2dL

まず、's'がスタックに確保されていて、parseから返った先で(つまり、スタックが解放されたあとで)
sを使う可能性があるから駄目だと言っているという認識ですが、正しいのでしょうか。
また、どのように対処すればよろしいでしょうか。

たぶん、根本的なところから理解できていないのだと思いますが、ご教授お願いいたします。
0254デフォルトの名無しさん
垢版 |
2018/09/17(月) 22:18:18.83ID:faCDAGdL
Nodeがsへの参照を持っているのにsが解放されちゃうからじゃないかなあ
0255デフォルトの名無しさん
垢版 |
2018/09/17(月) 22:22:00.90ID:faCDAGdL
みたかんじsymbolを&strじゃなくてStringにしてsをmoveさせればよいと思うけど
0256デフォルトの名無しさん
垢版 |
2018/09/17(月) 23:12:20.37ID:vky9u9CI
>>253
>sを使う可能性があるから駄目だと言っているという認識ですが、正しいのでしょうか。
合ってる。
sはparse関数の中で確保されてる。
そのsの借用(as_strしてるから借用することになる)をparse関数の外に出そうとしてるから
sの借用がsより長命になるのでrustではエラーになる。
sはparse関数の呼び出しが終わると解放されるからこれはダングリングポインタだよね。

>また、どのように対処すればよろしいでしょうか。
この場合、Node<'a>は文字列のsymbolフィールドを所有する側だから&strじゃなくてStringにすればいい。
apiの設計の時点でownd valueとborrowed valueを意識すればいい。
あとleftとrightが借用になってて、これはこれで設計的に間違いじゃないんだけど問題出るかも。
0257デフォルトの名無しさん
垢版 |
2018/09/18(火) 22:40:54.20ID:1KtNrcTb
コピーのコストが嫌だからとりあえず参照にしとこう、の精神は早々に破綻するよね
似たようなパーサ書いてて同じようにコンパイラにボロクソに言われたことがある

それ以来、このデータは誰が持っているべきなのか?を意識して書くようにして、
コンパイラに怒られたら「何か抜け道がきっとある」って思うようになれたし、リファレンス探すと大体解決するようになったよ
0258デフォルトの名無しさん
垢版 |
2018/09/19(水) 11:41:33.60ID:PupZqwJJ
The Creator
0259デフォルトの名無しさん
垢版 |
2018/09/20(木) 01:17:05.56ID:U3x/57bG
皆さん、お返事ありがとうございます。
とても参考になります。
もう少し、頑張ってみます。

# ピンポイントで質問できるのは、本当にありがたいです。
0260235
垢版 |
2018/09/21(金) 16:03:14.74ID:orU60ay9
ありがとう。File Structuresを眺めていますが英語なのであまりはかどらないです
二分木およびその発展系の説明は十中八九キーとして数字が使われているけど
ファイルシステムの入力はファイルパスであり可変長の文字列。この部分はどう埋めればいいのだろうか
ハッシュテーブルでも使えという話なのか?しかしそれならハッシュテーブルを使ってファイルのメタデータを
探索してしまった方が早そうだけどそういう問題ではないんだろうな
0261デフォルトの名無しさん
垢版 |
2018/09/21(金) 21:05:15.62ID:8EH2XxrU
最近でたオライリーの本って
Rust公式ドキュメントの2018でもSecond Editionでもなく
明らかに初版が元になってるよね時期的に
0264デフォルトの名無しさん
垢版 |
2018/09/22(土) 12:08:43.13ID:avc67xv+
Second Edition出てるんだっけ?
ググってみても First Edition, Third Release が 2018-6-22 としか見つからないんだけど。
0265デフォルトの名無しさん
垢版 |
2018/09/22(土) 12:28:30.62ID:zH/ripxa
目次の構成はSecondに近いか?

サンプルプログラムの発行時期は10ヶ月前だからそんなに古くはないのかもな

オライリー原書
http://shop.oreilly.com/product/0636920040385.do
公式ドキュメント日本語訳
https://doc.rust-jp.rs/

ちな最新の2018版ってGithubみた感じリアルタイムに更新されてるっぽいな
https://doc.rust-lang.org/book/index.html
0266235
垢版 |
2018/09/22(土) 12:29:23.44ID:+vE2oHEK
>>262
ありがとう。あれ?自分が勘違いしているのかな
B+木やB*木をファイルのメタデータの探索に使っていると思っていたけどそうではなくデータを格納しているブロックの探索に使っているということ?
0268デフォルトの名無しさん
垢版 |
2018/09/22(土) 23:23:20.56ID:c8wHmvAd
>>261,265
オライリーのカニ本の初版一版は1.17.0。TRPLの日本語訳は相当古い。
2018はverでいうと1.31.0に相当する。いまのstabuleは1.29.0。
それにTRPLでもまだ文書化されてない機能あるしな。
非初学者向けならStep Ahead with Rustもある。
0270デフォルトの名無しさん
垢版 |
2018/09/24(月) 14:27:54.43ID:98z19Ykt
>>266
> ファイルシステムの入力はファイルパスであり可変長の文字列
ファイルシステムへの入力は inode、dir、dentry がほとんどじゃないか?
create:dir と dentry をキーにinode作成
readdir:dir をキーに dirent を作成
open:inode をキーに open
ext4 を少し読んだ感じこうだった
inode 番号をキーに管理すればよいのでは?
0272デフォルトの名無しさん
垢版 |
2018/10/08(月) 18:41:33.75ID:tthsf3cJ
>>271
これってたぶん自己参照構造体(self-referential struct)の話だよね?
自己参照構造体は未定義動作の危険性があるので現状のRustでは表現できない
詳しくは↓の「自己参照構造体」のところを読んで
ttps://qiita.com/ubnt_intrepid/items/df70da960b21b222d0ad
0273デフォルトの名無しさん
垢版 |
2018/10/08(月) 18:44:43.33ID:3nZaN/dO
RC使うが正解
0275デフォルトの名無しさん
垢版 |
2018/10/09(火) 01:15:58.85ID:C4dQJ/Ib
>>271
>>272と同意見だけど27行目でどうやっても自分の参照を関数外に出すから無理だな。
借用じゃなくてBoxでもってクローンすればよくね?
0276デフォルトの名無しさん
垢版 |
2018/10/09(火) 02:03:50.07ID:ErN4eNsC
タプルにFromStrトレイトを実装するのって無理なんですか?

https://ideone.com/iNMuPL
0277デフォルトの名無しさん
垢版 |
2018/10/13(土) 02:22:04.65ID:6mWkEB0Z
implしたい型か、traitのどっちかが自分のものでないと駄目って制約があるから駄目です
何でこんな制約があるかは理解してないけど
0279デフォルトの名無しさん
垢版 |
2018/10/23(火) 00:25:24.72ID:vm0fIWWq
Rustに関しての発信の多い日本人のツイッターアカウントを何人か教えて
フォローしてRustの情報集めたい
0281デフォルトの名無しさん
垢版 |
2018/10/24(水) 01:23:57.63ID:fDSh/sYg
言い方を変える
オススメの情報発信者を教えて!
0284デフォルトの名無しさん
垢版 |
2018/10/24(水) 13:59:42.33ID:k2aW8IHE
人でないのも混ざってるようだが・・・
0287デフォルトの名無しさん
垢版 |
2018/10/25(木) 23:59:22.23ID:lH0yd+Cf
rustlang の Discord に Rust(Steam) をクレクレしてるのが出現してる
さすがにベタすぎるのでネタかと思ったけど
「Rust言語は誰にでもフリーだよ!」と住人にやさしく説明されててちょっと笑った
そういう仕込みのフリとオチだったのかもしれないが
0290デフォルトの名無しさん
垢版 |
2018/10/26(金) 20:17:42.39ID:44ub/T/P
async/awaitのあたりがきれいに書けないなら、ブロッキング+スレッドの方が実用的でしょ
0294デフォルトの名無しさん
垢版 |
2018/10/29(月) 12:25:08.61ID:LvhYoyxI
モジラがバックにいてカワンゴが布教してる技術なんてよく使う気になるよなお前ら
0295デフォルトの名無しさん
垢版 |
2018/10/29(月) 13:12:48.10ID:PHNS982/
>>294
じゃあ君がバックに付け
0297デフォルトの名無しさん
垢版 |
2018/10/29(月) 21:26:30.74ID:e16+m1gN
rustのポジションは他に居ないからありがたく使ってますけど
0298デフォルトの名無しさん
垢版 |
2018/10/29(月) 22:03:30.02ID:M3jiQuOm
>>294
じゃあ、かの有名なMicrosoftがRustを使っていれば貴方も使う気になるってわけですね
ttps://www.reddit.com/r/rust/comments/8ub964/microsoft_announces_using_rust_to_build_some_of/
はい。これでめでたしめでたし

ところで、ドワンゴが例のRust製分散システムをオープンソースにしてた。
ttps://dwango.github.io/articles/frugalos/
0299デフォルトの名無しさん
垢版 |
2018/10/30(火) 13:57:30.60ID:XfhSBW4w
>>296
じゃあ君は最初はバックがどうこう言ってたけど実はそんなこととは無関係に嫌ということかな?
0300デフォルトの名無しさん
垢版 |
2018/10/30(火) 23:04:19.32ID:g5GFfrA6
ただの廃棄物じゃなくて放射性廃棄物ってどういう比喩なのか
阿片みたいに観戦力があり周囲に広がるということ?
それとも単に処分に困るというだけ?
0301デフォルトの名無しさん
垢版 |
2018/10/31(水) 06:32:37.92ID:DCSkWbH/
バカが扱うと光ってしぬとか?
0303デフォルトの名無しさん
垢版 |
2018/10/31(水) 14:18:23.60ID:umCB7ism
遠回しすぎ
0306デフォルトの名無しさん
垢版 |
2018/11/14(水) 12:05:28.30ID:KF+gaYe3
家の非力なデスクトップにgentooを入れたんですが
firefoxをコンパイルしたらrustもコンパイルしてくれました
rustも含めて都合14時間かけてコンパイルしたfirefoxを使うだけじゃ勿体無いので
rustを勉強してみようと思ったのですが
スクリプト言語とjavaを触った程度の人が始めるには
ハードルが高い言語なんでしょうか?

何かとっかかりになる良いサイトとか本がありましたら
教えてくれると嬉しいです
Python歴7年Java歴2年の趣味プログラマです
rustでgtkアプリを作ってみたいです
0307デフォルトの名無しさん
垢版 |
2018/11/14(水) 12:11:11.98ID:zVp4oIsl
問題はやるかやらないかだけ
0309デフォルトの名無しさん
垢版 |
2018/11/14(水) 12:18:27.60ID:KF+gaYe3
ヤル気はマンマンなんですが
まだgentooのインストール途中でxfceにfirefoxが入ってるだけなんですよね
帰宅したらvscodeも入ってるはずなので今夜からコンパイル流しながら勉強する予定です

ただ、あんまり初心者向けの日本語情報が見当たらない気がするので
いいサイトがあれば知りたいな、と思った次第です
0313デフォルトの名無しさん
垢版 |
2018/11/14(水) 19:37:11.25ID:TV7+R4Em
とりあえずslackに入ってみるとよい
0314デフォルトの名無しさん
垢版 |
2018/11/14(水) 21:37:35.14ID:KF+gaYe3
皆さんいろいろとありがとうございます
とりあえずプログラミング言語Rustの日本語訳pdfを見つけたので
それ見て勉強してみたいと思います

これ凄いですね
無料で配布しちゃって良いんでしょうか
下手なwebの情報探すより公式見たほうが良さそうですね
0315デフォルトの名無しさん
垢版 |
2018/11/15(木) 09:47:28.34ID:RDhHOc3n
布教のために気合い入れて書いたんだろうと思う
0316デフォルトの名無しさん
垢版 |
2018/11/15(木) 10:31:34.27ID:P9aoBmqQ
Gitとは何かの説明まであって驚くよな
さすがにそのレベルの人は門前払いしたほうがその人のためにもいいと思うが
0317デフォルトの名無しさん
垢版 |
2018/11/15(木) 12:47:26.17ID:5HuarfG4
>>316
あれはRust初心者だけでなくプログラミング初心者も対象としてるんじゃないの?
だから初歩的なところから教えてるんだろうと思っていたが

まぁ、プログラミング初心者がいきなりRustから始めるってどうなのよ?とは思うけど
0318デフォルトの名無しさん
垢版 |
2018/11/15(木) 13:04:35.26ID:zAJKMl9m
Cとかでメモリの扱いミスってしかも落ちずにおかしな動作する、みたいなのの経験がないとイマイチRustの有り難みは感じられないようなとも思いつつ
かといってRustのためにC勉強するってのもなんか本末転倒なきもするし
0319デフォルトの名無しさん
垢版 |
2018/11/15(木) 14:42:52.86ID:rLd4aKr0
なまじ他言語を知ってるから難しいという点もあるんじゃない
初心者がベテランが作るようなものをrustで書くのは辛いだろうけど、初心者が作るようなものを書く分にはむしろ易しい気がする
セットアップ楽だし
0320デフォルトの名無しさん
垢版 |
2018/11/15(木) 22:55:30.82ID:9llOcmgi
Mozillaはドキュメント書くの得意だよな
オワコンブラウザには勿体無さすぎる才能
0321デフォルトの名無しさん
垢版 |
2018/11/16(金) 12:21:53.69ID:4Z/2Zn+l
なぁに、まだまだこれから。

などという言葉が出始めたら終わりは近い。
0322デフォルトの名無しさん
垢版 |
2018/11/18(日) 19:34:31.05ID:R8KfbBfe
書店でオライリーのRust本をパラパラと読んでみたけど
式の可読性の面ではC++の悪いところを引きずってるように思える
0330デフォルトの名無しさん
垢版 |
2018/11/21(水) 20:13:11.42ID:X08G4m76
え?前なの?
手元の蟹本だと、
7.2.4節 エラーの伝搬に"?演算子"のこと書かれてるんだけど
0331デフォルトの名無しさん
垢版 |
2018/11/27(火) 22:10:26.76ID:o0QT5paZ
muslでビルドすると普通にlinuxでビルドしたときよりメモリ食うんだけどなんで?
0333デフォルトの名無しさん
垢版 |
2018/11/29(木) 07:51:18.34ID:XVJlfR1h
libcとかがダイナミックリンクじゃない分てことだよな
色々検証していたんだがそれだけじゃなくリークしてるように見える
0337デフォルトの名無しさん
垢版 |
2018/11/30(金) 14:18:46.51ID:2aRM++fj
>>335
見てみたらリークはしてなかった
100mbくらいあるヒープに確保された値を1分に1度入れ替えているんだけど、ヒープに確保された領域って即解放されるわけではない?
0338デフォルトの名無しさん
垢版 |
2018/11/30(金) 20:37:37.40ID:9byeocZC
アロケータがmallocになってるからっぽい
0340デフォルトの名無しさん
垢版 |
2018/11/30(金) 23:51:57.68ID:9byeocZC
まだjemllocがデフォルトだけどナイトリーでは既に外されていて近々デフォルトではなくなる

それとは別の話で、俺がビルドしたのがmuslビルド用のdockerイメージで、それにはjemalloc入ってないからシステムアロケータで動いてたんだよね
0342デフォルトの名無しさん
垢版 |
2018/12/08(土) 03:04:47.62ID:pvPlWHOH
過疎ってるのは人気廃れたかrust
0343デフォルトの名無しさん
垢版 |
2018/12/08(土) 05:33:59.34ID:YCd49h5/
2018安定化でむしろ盛り上がっているのでわ
うちはリプレイス案件2つにrust使うことにした
0345デフォルトの名無しさん
垢版 |
2018/12/08(土) 20:54:29.25ID:YCd49h5/
んだ、webだ
0346デフォルトの名無しさん
垢版 |
2018/12/08(土) 21:39:48.43ID:NPyhS6xn
なんかサイトの雰囲気がらっとかわったな。
0347デフォルトの名無しさん
垢版 |
2018/12/08(土) 21:53:08.41ID:tBodI9MC
まともなヤツなら将来が保証されない言語なんかを採用しないからな
一時的に使用するドカタ向け案件なら試用にぴったり

まとも思考してたら、将来も間違いなく保証されてるc/c++を使う
0349デフォルトの名無しさん
垢版 |
2018/12/08(土) 23:02:19.67ID:StthUKB3
>>348
Facebook採用してたっけ?あそこはDだったような…
MSの間違いじゃない?MSだったらAzureの中の一部で採用してたはず…
因みにGoogleも自社製エディタに(たぶん20%ルールでだけど)採用してるね
もしFacebookも採用してるならApple以外の主要IT企業は全て採用してることになるな
(AppleはObjectiveC/C++とSwiftしか使わないしね…)
0353デフォルトの名無しさん
垢版 |
2018/12/09(日) 02:07:51.53ID:Xn4iOyS/
>>349
低レイヤーでC++の次世代言語って意味合いではDとRustって似たとこあるよね
大きな違いはバックボーンとしてMozilaという巨大コミュニティがあるところだけど
0356デフォルトの名無しさん
垢版 |
2018/12/09(日) 14:03:01.32ID:c43JK2So
Rustは良いけどMozillaの将来が心配
MSも撤退するしこれから更に厳しくなりそう
0358デフォルトの名無しさん
垢版 |
2018/12/09(日) 16:05:40.11ID:BNrpwBjL
ただの糖質だろ
0360デフォルトの名無しさん
垢版 |
2018/12/09(日) 19:59:59.46ID:2pQIpR7Q
>>359
Mozillaはなんだかんだ言っても一応非営利団体だから
MSみたいにブラウザエンジンを手放すようなことはしないはず
つまり、Firefox(Gecko)が消える時はMozilla自体が消える時と同時で、
流石にMozilla自体が消えるとは考えにくい…
0361デフォルトの名無しさん
垢版 |
2018/12/09(日) 20:17:58.30ID:Xn4iOyS/
いうてもWebメールじゃないSMTP式のメールのメーラーとしてはMozilaのThunderbirdのシェアってそこそこ高くない
0363デフォルトの名無しさん
垢版 |
2018/12/09(日) 23:11:23.09ID:piyaaQaM
ブラウザに関してはグーグルが死なせないと思うけどな
0369デフォルトの名無しさん
垢版 |
2018/12/11(火) 21:35:58.04ID:P3z87FBj
stableって今1.31.0だろ。
「nightlyが久々にやらかした+distマシンの環境壊した+CI壊した」でnightlyが三日止まっててまだ1.32.0だからdbgマクロくらいしか違いないぞ。
0371デフォルトの名無しさん
垢版 |
2018/12/13(木) 09:19:17.49ID:MIS8jLYk
  ∧_∧  / ̄ ̄ ̄ ̄ ̄
 ( ´∀`)< ・・・
 ( ⊃ .旦|  \_____
  し_)___)
0380デフォルトの名無しさん
垢版 |
2018/12/23(日) 19:22:40.32ID:AGEXmg0r
なんか安っぽくなったね。詐欺のベンチャーみたいなページになった。
以前のデザインのほうが圧倒的に良い
0381デフォルトの名無しさん
垢版 |
2018/12/23(日) 23:03:24.89ID:Mt5iJ+Fg
駆けつけでいきなり言語の特徴とplayground見せるのは話が早くていいよね。
なんか気になればそのままナビゲーションヘッダのリンク辿ればいいし。
0382デフォルトの名無しさん
垢版 |
2018/12/24(月) 11:16:50.86ID:YXqLjtll
>>380
ほんそれ
0386 【87円】 【ニダー】
垢版 |
2019/01/01(火) 00:34:50.41ID:Z6HfKRO/
今年こそRustを日本中で流行らそうな
0387デフォルトの名無しさん
垢版 |
2019/01/01(火) 02:32:05.03ID:eZvGQ8mf
せやな
0389デフォルトの名無しさん
垢版 |
2019/01/01(火) 13:21:50.94ID:ycrn+5XF
俺は使ってるから君らも使えよ
0392デフォルトの名無しさん
垢版 |
2019/01/02(水) 12:26:01.33ID:c5jR4khc
仕事で使えないから趣味で使いたいけどスマホアプリとか作れるようにならんかな
wasmでやれるん?
0394デフォルトの名無しさん
垢版 |
2019/01/06(日) 02:19:11.11ID:RYpyUdGD
所有権借用はなんとなく理解できたがライフタイムだけよくわからない
なにがわからないのかすらわからない
0396デフォルトの名無しさん
垢版 |
2019/01/06(日) 21:01:21.58ID:Y1gcigWk
lifetime関係のエラーが出たら、一歩引いて考えないとドツボにはまる
どうして借用にしたのか、誰が責務を負うべきなのかとかを見直していくと、まあまあ綺麗な形でエラー出なくなるから楽しい
0397デフォルトの名無しさん
垢版 |
2019/01/06(日) 22:41:12.99ID:iA9hXNaZ
>>394
ライフタイムは変数のスコープと一緒だよ。
ただrustの場合、関数の引数に対してライフタイム指定ができたりするんだが、
それを省略した場合なんかのルールが結構複雑なんでわかりづらくなってる。
まあ色々検討した結果が今の状況なわけでこれはこれでしょうがないんだが。
0398デフォルトの名無しさん
垢版 |
2019/01/07(月) 18:55:30.56ID:h9/nr8aR
きようもrust書いた
たのしかった
0401デフォルトの名無しさん
垢版 |
2019/01/09(水) 02:57:56.42ID:vCJsRJvg
ide使いたい初心者なんだけどintellijもvscodeも補完が微妙だった。
エディタ上で赤く無くてもコンパイルしたらエラー出る。なんか設定おかしいのかな。。
0404デフォルトの名無しさん
垢版 |
2019/01/10(木) 20:34:05.07ID:Hgkpvvuo
>>403
いやまずお前は他人に依存してないで公式ドキュメントちゃんと読んでQiitaでも読み漁れよ
0411デフォルトの名無しさん
垢版 |
2019/01/12(土) 01:23:20.36ID:I2V52GgH
>>406
マジで?俺のintellijはあんまりintelliやないんやけど。
(0..10).
これでfor_eachとかの補完できる?
0412デフォルトの名無しさん
垢版 |
2019/01/13(日) 00:39:51.18ID:hYXV78lL
intelliJ rustもrust(rls)も全部が全部補完出来るわけじゃないよ。
むしろRange系がほとんど補完効かない。
0413デフォルトの名無しさん
垢版 |
2019/01/13(日) 01:10:12.67ID:2nXE8bQq
rlsって2016年に登場した時いつか脱racerするとか言ってたと思うんだけど何で未だにracerに頼ってるんだろ?
clangはclangdとかcclsとかあってどっちもコンパイラを使って強力に補完出来るけどrustも同じような方針で実装出来ないの?
0414デフォルトの名無しさん
垢版 |
2019/01/13(日) 04:00:11.67ID:4OSEbwLo
>>412

> intelliJ rustもrust(rls)も全部が全部補完出来るわけじゃないよ。
> むしろRange系がほとんど補完効かない。
そうなんか。まあそれは慣れればええ話か。
ide上で赤くないのにコンパイルエラーになるのは何か環境構築に失敗してるのかな?
単純なシンタックスエラーは赤くなるんだけど、所有権まわりは赤くなってない気がする。
0415デフォルトの名無しさん
垢版 |
2019/01/13(日) 23:36:03.48ID:bHKSc5vy
>>413
racerはfallbackしたときだけでそれ以外はコンパイラ使うよ。
インクリメンタルコンパイルがまだまだだから出来ること限られるだろうけど。

>>414
>所有権まわりは赤くなってない気がする。
赤線つくね。マウスオーバーでエラー内容もshort版を整形したようなの確認できる。
quick fixが弱いけど。

rlsならrust-srcとrust-analysis。intellij rustならrust-src入ってる?
0416デフォルトの名無しさん
垢版 |
2019/01/14(月) 09:38:00.11ID:0lebqFeg
>>415
できた!ありがと。
intellij-rustの設定おかしかったみたい。
0417デフォルトの名無しさん
垢版 |
2019/01/15(火) 00:14:36.16ID:EnbKgMOU
Rustで簡単なゲームを作ってみたいんだがフレームワークは何が良いんだろうな
SDLやDirectX、OpenGL等のラッパーは一応あるようだけど
0418デフォルトの名無しさん
垢版 |
2019/01/19(土) 04:53:19.32ID:KuvXwQQD
言語レベルで静的にstructを差し替える方法って無いんかな?
マルチプラットフォームのアプリを仮定するとして
アプリはSystem構造体下のメソッドを経由して低レベルの機能へアクセスする
System構造体の中身はビルド時に決まる物だし実行中に選択するのはコストの無駄
ビルド時にコンパイル&リンクするファイルを差し替える方法はあるが・・・
0419デフォルトの名無しさん
垢版 |
2019/01/19(土) 21:10:10.72ID:chH9K/tE
target_os とかとは違うの?
0421418
垢版 |
2019/01/20(日) 02:42:18.64ID:Ej9w6434
ありがと
#cfg[(target_os=〜
struct System {
とか書くしかないのか

というかググっていてもマルチプラットフォームのアプリを作る例って出てこないんだけど
どういう風にするのが好ましいのだろうか。Cargoの使用例とか全然判らん
ターゲットによってコンパイラも変わるし、リンカやリンカに渡されるオプションも変わる
リンク後に追加の処理が必要になるケースもあったり
0423418
垢版 |
2019/01/20(日) 13:10:03.87ID:Ej9w6434
そのレベルじゃなくて一つのプロジェクトで
1.Windowsでビルドする/動く
2.Linux/FreeBSDでビルドする/動く
3.Linuxでクロスビルドする/別アーキテクチャのプラットフォームで動く
みたいなのをやりたい。1〜2はともかく3はベアメタルに近いのでコアのソースはno_std付きになる

クレートもWindowsAPIへアクセスする場合Cargo.tomlに
[dependencies]
winapi = "〜
kernel32-sys = "〜
とか書くけどコレをつけたまま他のプラットフォームでビルドできるのか?とか
仕様上無視してくれるならそれで良いけどはっきりしないと無用なトラブルの元
クレートを使わずにソースにexternを並べていって条件付きコンパイルすればその心配は
なくなりそうだけど各種定義とか、IA32/AMD64環境下の差異の吸収とかいろいろ面倒だし
0425418
垢版 |
2019/01/20(日) 15:13:45.29ID:Ej9w6434
スマン
Carge&winapiを使ってWindowsAPIを叩くサンプルを作ろうとしたらそこまでたどり着けん
use出来なくて詰まっている

extern crate winapi;
use winapi::minwindef::BOOL;
>cargo build
error[E0432]: unresolved import `winapi::minwindef`
--> src\main.rs:4:13
|
4 | use winapi::minwindef::BOOL;
| ^^^^^^^^^ Could not find `minwindef` in `winapi`
パスがおかしいっぽいのでソースを見るべきだが、Cargoが取ってきたソースがどこにあるのか判らない
というかコレを調べられないと非対応環境でどう振る舞うのかも調べられない

rustcでコンパイルするFFI直でWindowsAPIを叩くコードは動作させられている
0426デフォルトの名無しさん
垢版 |
2019/01/20(日) 15:34:24.69ID:IFCR+fSZ
Cargo.toml に

[target.’cfg(target_aech = "x86_64")’.dependencies]

とか書けるけど、これでも不十分?
0427デフォルトの名無しさん
垢版 |
2019/01/20(日) 22:10:39.80ID:Yfn6IVUJ
cargoがとってきたのはホームの下の.cargoにあるよ

質問がいまいち判然としないけど
0428デフォルトの名無しさん
垢版 |
2019/01/20(日) 22:18:26.33ID:XwDXpx/J
WEB開発でフロントエンドもバックエンドもRustで開発できるようになるみたいだね
そしてJavascriptは衰退するらしい
まさに次世代の言語か?
0430418
垢版 |
2019/01/20(日) 23:41:16.28ID:Ej9w6434
>>426
それでいけそうかも。というかwinapiにそんな書き方があった

>>427
ありがと。見つかった
README.mdにあったサンプルはビルドできた
1〜2年前のコードだとビルドできないようだ

いくら発展途上の言語とはいえ1〜2年前の情報が使えないのはつらいなぁ
車輪の再発明になってもFFIで書いていった方が良いのか?

というかみんなどうしているの?情報の有効期限が1年もないんじゃ
ちょっと前のを修正するにもドキュメントはないしソースとにらめっこになっちゃうよね
0431デフォルトの名無しさん
垢版 |
2019/01/21(月) 21:41:20.34ID:ieTTkacC
nightlyでも使っていない限りは、基本的に過去のコードはビルドできると思うけど
0432デフォルトの名無しさん
垢版 |
2019/01/21(月) 22:24:30.39ID:imUXN0q+
>>418
rustにとって一年前は古いけどwinapi::minwindefは今はwinapi::shared::minwindefよ。
apiが変更されただけだからまずdoc読めばいいよ。
あとrustupでrust-docインストールすればthe cargo bookもあるからそれも読んで。
0433418
垢版 |
2019/01/22(火) 08:09:48.68ID:owMGrrnU
>>432
0.3.x以降はCargo.tomlにfeaturesを書かないとダメらしい
あとunsafe祭りになってしまいそうなんだがwinapiの仕様でFAなんかな
0434418
垢版 |
2019/01/24(木) 23:36:09.43ID:mR/sBWjl
ttps://docs.rs/winapi/0.3.6/winapi/um/minwinbase/struct.OVERLAPPED_u.html
これってどうやって初期化すればいいんだろ?
ReadFile/WriteFileでOVERLAPPEDを使いたいんだが
0436418
垢版 |
2019/01/26(土) 00:18:28.40ID:ec8OMVht
>>435
ありがと。それでとりあえず出来た
0438デフォルトの名無しさん
垢版 |
2019/02/05(火) 00:11:17.23ID:2NDs+2LZ
型のパターンマッチってメンテナンス性が悪かったりする?
0439デフォルトの名無しさん
垢版 |
2019/02/05(火) 00:26:16.28ID:pEuhZWls
ML系の関数型言語の経験があるなら全く問題ない
経験ないならHaskell/OCaml/F#あたりのうち最低一つは触れてみることを強くお勧めする
0442デフォルトの名無しさん
垢版 |
2019/02/05(火) 00:42:22.65ID:UXw61YxU
やっぱRustに限らず新しめの言語できる人って英語もスラスラ読み書きできるもんなの
読むのは時間かければ何とかなるけど書けないから質問する場所が限られる
0443デフォルトの名無しさん
垢版 |
2019/02/05(火) 00:48:10.95ID:28bd5R1v
パターンマッチは型で分岐するというより型に当てはめるという感覚の方が近い
OO言語でマサカリ投げられるような型で分岐するというのとは似て非なるものなんだが、
そのへんの微妙な感覚を掴んでからでないと糞コードの温床になりそう
0444デフォルトの名無しさん
垢版 |
2019/02/05(火) 05:25:42.44ID:xTPbFJiK
>>442
slackで聞くといい
0446デフォルトの名無しさん
垢版 |
2019/02/07(木) 23:00:54.15ID:+NlXQGa+
RangeはIteratorを直接実装するからcurrent scopeにIteratorがuseされてない状態でIteratorのメソッド解析出来ないと無理だろうね。
useされてないトレイトのメソッド使ったら自動でuseする機能のほうが先。
0448デフォルトの名無しさん
垢版 |
2019/02/09(土) 15:36:54.38ID:6/bHpQ6m
トイレット
0449デフォルトの名無しさん
垢版 |
2019/02/09(土) 16:27:38.54ID:6Levbbby
https://volt.ws/lang
https://volt.ws/game
V言語とかいうやつ、GUIアプリとか3Dゲームとかを開発するために作られたらしいけど、GCがないとか1500万行のコードを1秒でコンパイル出来るとかバイナリサイズが極小とかC/C++とのやりとりが簡単とか
これが本当だったらRust負けちゃうんでは
実際Rustで低レイヤーやってる人少ないだろうし
0450デフォルトの名無しさん
垢版 |
2019/02/09(土) 16:31:54.37ID:meE2rnNy
詳細知らんけど低レイヤーに適した言語が出てくること自体は歓迎できるんじゃないの
0451デフォルトの名無しさん
垢版 |
2019/02/09(土) 16:35:04.90ID:k8PbCSOR
言語は言語の良さだけでは流行らないんだよ
RustもGoもまあまあ悪くない言語である上で十分なステマを行ったから流行った
0452デフォルトの名無しさん
垢版 |
2019/02/09(土) 17:19:45.83ID:XHVbx6Kw
それ使ったアプリがよほど良くて、開発者をうまく集められて、コミュニティが育たなければ無理だろうな
ソース非公開のうちは勝負にもならん
0454デフォルトの名無しさん
垢版 |
2019/02/09(土) 17:55:50.24ID:Sm9Jadj9
コンパイルが速いならジェネリクスも無いんじゃないかね。安全性については対nullしか無いっぽいし
0455デフォルトの名無しさん
垢版 |
2019/02/09(土) 19:21:01.69ID:6Levbbby
OCamlとかジェネリクスあるけどgoよりコンパイル速いよ
っていうか21世紀のOCamlが欲しかった(OCamlはそんなに古い言語ではないけど)
0456デフォルトの名無しさん
垢版 |
2019/02/09(土) 21:38:40.47ID:ifttyEGf
Rustほど丁寧なエラーメッセージ出してくれる言語もないでしょ
そういうのを捨てて速度を取った言語とは比べられない
0457デフォルトの名無しさん
垢版 |
2019/02/09(土) 21:42:08.79ID:7AbylfKm
> Rustほど丁寧なエラーメッセージ

冗談だよな? って思ったけど最近のは丁寧なのかな
0459デフォルトの名無しさん
垢版 |
2019/02/09(土) 22:57:48.30ID:zYIj7/GJ
Vってvoltのことか。あれgoに毛が生えた程度の言語よ。

>>457
今のはコマンドプロンプトのバッファが足らなくなるくらい丁寧だけど
答えそのものを教えてくるから書いたコードがだめな理由が初学者に理解できないのは変わらないと思う。
0461デフォルトの名無しさん
垢版 |
2019/02/10(日) 02:45:34.58ID:rzMRhZmV
大体はGoとかと一緒で言語名+langで検索するのがいいんじゃない?

四文字もあって他の情報が上に来るのも珍しいが
0463デフォルトの名無しさん
垢版 |
2019/02/11(月) 13:29:57.41ID:/IKdpkbc
rustでググってrustってゲームがトップに来なくなったのはグーグルさんが僕の検索履歴から判定しているだけ
0466デフォルトの名無しさん
垢版 |
2019/02/11(月) 18:46:05.84ID:T+XDi7pv
>>465
http://cglab.ca/~abeinges/blah/too-many-lists/book/first-push.html
かいつまんで言うと、&mutなオブジェクトが一瞬でもinvalidな状態になるから。
mem::replaceを使うと、self.listの値を取り出して代わりに別の値を置く、という処理が一度に行える
https://play.rust-lang.org/?version=stable&;mode=debug&edition=2018&gist=8d12416b3f7bc4aa44bf360df11de1be
0467デフォルトの名無しさん
垢版 |
2019/02/11(月) 21:46:27.46ID:icbaaHgE
>>466
ありがとうございます。
変更可能な"参照"で持ってきたもの(&mut self)から所有権をムーブさせることはできないという解釈で大丈夫ですかね。

置き換えるときはmem::replaceを使うようにします。
0468デフォルトの名無しさん
垢版 |
2019/02/11(月) 23:01:54.99ID:9ECrAI8Q
クソコード教えるんじゃねぇ。Optionの中身をNoneと入れ替えるならOption::take使え
0472デフォルトの名無しさん
垢版 |
2019/02/18(月) 21:15:10.76ID:0Vx/m/dz
インデントのスペース幅は2が良かったなぁ
clang-formatもprettierも2がデフォだし
C#でさえ2を結構見かけるようになってきた
rustに強く影響を与えたであろうocamlもhaskellも2が多い
世界的に2が標準になりつつある気がする
0473デフォルトの名無しさん
垢版 |
2019/02/18(月) 21:29:43.93ID:trvxFZJG
漢なら8
0474デフォルトの名無しさん
垢版 |
2019/02/18(月) 21:30:52.44ID:etvvcICH
Pythonをインデント2で書く奴だけはマジで死ね
あれはガチで読めない
他の言語なら好きにしろ
0476デフォルトの名無しさん
垢版 |
2019/02/18(月) 21:43:29.91ID:G3oZ5oVt
ocamlからリスト引き継いでくれたらよかったのになあ
しかしそうするならもはやocamlそのものでいいってことになりかねないかな
0478デフォルトの名無しさん
垢版 |
2019/02/18(月) 23:22:04.58ID:H1db3n/w
noto sansにindent 3をわかってくれるのはねねっちだけか。
今は源真ゴシック等幅+Source Code Proだけど。
Source Han Codeはちょっと違うんだよ。
0480デフォルトの名無しさん
垢版 |
2019/02/19(火) 02:33:20.94ID:ztl4bw1Y
googleのstyleguideではスペース幅4を推奨してるのにgithubのgoogleのpythonレポジトリはスペース幅2が多いな
pythonはpep8を重視してるイメージがあるけど堂々と無視出来るのは凄い

rustもrustfmt.tomlでtab_spaces = 2を設定してる人が結構いるわ
https://github.com/search?l=TOML&;q=tab_spaces&type=Code
3にしてる人さえいる
0481デフォルトの名無しさん
垢版 |
2019/02/19(火) 09:43:14.31ID:+VeRQQni
ちんこことゴッドエイムあきらを探しに来ました。
0482デフォルトの名無しさん
垢版 |
2019/02/19(火) 12:32:05.79ID:1Fqwt8so
なんでtab2だとみにくいんだ?
0483デフォルトの名無しさん
垢版 |
2019/02/19(火) 13:27:47.37ID:D8b3v+Fo
インデントで制御構造を表現する言語だと、深いネストから戻るときにどのレベルに戻ったのか識別できなくなる
0484デフォルトの名無しさん
垢版 |
2019/02/19(火) 20:11:35.55ID:8ne5Wfny
タブ2で見ずらくなるようなネストの深さと関数の長さになるのが悪いと
言いたいところだがgoogleのオフィシャルコードは結構ど汚くて上の条件を無視してる。
個人的には3が視認性の上では一番良いと思ってはいるが、流石に2,4と互いに素な数だと
プログラム的になんか嫌なこと起きそうで自分では使ってないな。
0486デフォルトの名無しさん
垢版 |
2019/02/19(火) 23:16:38.92ID:8Y/JNp+N
>タブ2で見ずらくなるようなネストの深さと関数の長さになるのが悪いと
2派と4派の対立は4が深すぎるか、2が浅すぎるかなのに「2で見ずらくなる深さ」って想定おかしくね?
3派は間とって3だよ。こっちは普及してないのが問題。
0487デフォルトの名無しさん
垢版 |
2019/02/19(火) 23:29:48.61ID:5Qp7yTUV
Scalaみたくスタイルガイド作っちゃえばいいのに
そうすれば「スタイルは公式に従うように」の一言で済む
0489デフォルトの名無しさん
垢版 |
2019/02/19(火) 23:44:16.88ID:/QLumg1k
回りの多数派にあわせるだけの話
こういうのにこだわるやつは大抵バカ
可読性w
0490デフォルトの名無しさん
垢版 |
2019/02/20(水) 00:10:42.00ID:PUv5Mo1S
なんてここでタブ・スペース論争してんだ
どうせ一人でしか書かねえくせによ〜
0493デフォルトの名無しさん
垢版 |
2019/02/20(水) 15:04:45.66ID:NsAPC4E4
エディタファシストなのでエディタを開発したことないやつは駆除されるべきなのではと考え始めて来た。やばい
0494デフォルトの名無しさん
垢版 |
2019/02/20(水) 15:58:40.55ID:agArr1lp
昔々学生の頃に学校のワークステーション使ってXlibでドット編集してXPMファイルで出力するなんてものを作った覚えがある。
あらから29年。時の経つのは早いものぢゃ。
0495デフォルトの名無しさん
垢版 |
2019/02/20(水) 19:43:00.89ID:v7iPz90J
29年前にRust使えたんだ
すごいな
0496デフォルトの名無しさん
垢版 |
2019/02/20(水) 19:44:18.14ID:sr7oPl81
読み込んで表示するより出力の方がはるかに簡単だしな
0497 ◆QZaw55cn4c
垢版 |
2019/02/20(水) 19:52:10.09ID:P8vN2pc3
>>494
xlib ダイレクト記述、とは猛者ですね…
私も最近になって xlib をバシバシ触ろうと思っていますが、いい参考書はありませんか?
0498デフォルトの名無しさん
垢版 |
2019/02/21(木) 11:19:20.33ID:TingKcVp
XlibってCの悪いところを煮詰めたような設計だったな
Rustとの相性は最悪だろう
0500デフォルトの名無しさん
垢版 |
2019/02/22(金) 15:32:44.85ID:bcwEHSMY
うん。新しいXlibの本は知らないなあ。
探す気も起きないから知らないだけかも知れないが。
0501デフォルトの名無しさん
垢版 |
2019/02/22(金) 15:35:39.38ID:bcwEHSMY
>>498
なんというか、オブジェクトを作って操作するような感じなので今時の言語用のオブジェクト指向に合わせたラッパーは作れると思うが、需要はほとんどないような気がする。
0503デフォルトの名無しさん
垢版 |
2019/02/22(金) 17:04:13.83ID:PtH+29Wq
GTKはクソ
0505デフォルトの名無しさん
垢版 |
2019/02/23(土) 22:01:15.49ID:0ZfqWIIS
>>465です
スタックにpopを実装しました
pop自体はうまく動いているようですが…
popした時の対象の物がどのタイミングで破棄されているのかを調べようと思いstd::ops::Dropを実装しようとしましたがうまくいきません。
https://play.rust-lang.org/?version=stable&;mode=debug&edition=2018&gist=f1a2a2a35c3dc424f3814557afa5974c
何がいけないのでしょう
0506デフォルトの名無しさん
垢版 |
2019/02/24(日) 15:19:37.98ID:Vg8zIes/
haskellでの、文字列[Char]を切り貼りみたいな事をするには、
Vec<char>を操作するので合っているのかな?
0509デフォルトの名無しさん
垢版 |
2019/03/02(土) 01:38:04.42ID:TjOpVvei
>>505 Dropを実装した型の値がdropされるとき、フィールドは全てvalidじゃないといけない。
そのままメモリ解放するだけ=Drop未実装ならいいんだけど、drop中にinvalidなフィールドにアクセスできちゃうのがダメだというのが問題
解決案は、ここでもOption::takeかmem::replaceでNoneにすげ替える

けど、まずはLearning Rust With Entirely Too Many Linked Listsを写経してみた方が良いよ
今のListの定義だと無駄なメモリを食うし、パターンマッチとstructは相性があんま良くないし、これから先も似たような穴にハマると思われる
0510デフォルトの名無しさん
垢版 |
2019/03/02(土) 15:28:49.59ID:jUIKeWUS
Rustいいらしいですよって話を会社でしたら、
テックリードが「RustでできることはCやC++でもテストとツールで十分やってけるからイラネ」って言ってたけどマ?
0511デフォルトの名無しさん
垢版 |
2019/03/02(土) 15:50:22.82ID:s27Iehbv
&str で関数に渡すと解放されてしまって使い回すこどができないのですが
使い回す方法ありませんか
0514デフォルトの名無しさん
垢版 |
2019/03/02(土) 17:11:13.26ID:ACbQR/xi
>>512
じゃあうちにはたしかに要らんなあ
そんな統制がいるほどの人数でもないし

回答サンクス
0515デフォルトの名無しさん
垢版 |
2019/03/02(土) 17:40:27.42ID:NCWcHh/2
>>510
そのリードが C++でauto_ptrがdeprecatedになった理由とMove Semanticsと右辺値参照の関係をちゃんと説明できる人なら C++ でいい
0518デフォルトの名無しさん
垢版 |
2019/03/02(土) 19:10:02.40ID:Zilw84iH
>>511
&str is 何?
0519デフォルトの名無しさん
垢版 |
2019/03/02(土) 19:13:35.19ID:bakyLAA5
>人間が信用できないからこそCよりRustだろ
>気を付けてコーディングすればミスはなくなる、ってのは戦前の日本軍的な精神論だ
ぴんとこないな。
rustの場合、お役所とおせばテストなど自前でしなくともokっていう
変な信用を生んでるだけだろ。そっちのがよっぽど日本的だと思うがね。
0520デフォルトの名無しさん
垢版 |
2019/03/02(土) 19:33:57.30ID:aD19gS0i
>>519
今時の言語なので、ユニットテストは標準で整備されてるよね
コンパイラは計算ミスや仕様間違いまではチェックしないので
0523デフォルトの名無しさん
垢版 |
2019/03/02(土) 21:36:12.88ID:TjOpVvei
注意力ってのは慣れると省力できるようになるけど、有限リソースだし個人の習熟度と体力に依存するんで、目に見えない負債になる
新しい言語を理解するコストは償却できるけど、注意深さってのはソースコードを触る限りはコストを発生し続ける
機械がチェックできることは機械にやらせた方が絶対に良い
0524デフォルトの名無しさん
垢版 |
2019/03/02(土) 22:15:15.48ID:E3UUkV/K
製品にするコードってどうせMISRA C辺りの静的解析噛ますし
今時ならvalgrindもテスト項目に入ってるだろうし
Rustなら全部コンパイラがやってくれる!と言われても、
いやCにも外部ツール入れれば同じことできるし……としか思わんのだよな

個人的にはクラスよりトレイトの方がしっくりくるからそれだけでもRustは意味があると思うが
0525デフォルトの名無しさん
垢版 |
2019/03/02(土) 22:44:32.15ID:bakyLAA5
>>523
枯れてないコンパイラの癖に合わせる方がよっぽど注意力を削ぐと思う。
コンパイラになんでも機能ぶっこむより524のように構成した方がどのツールが文句言ってるのか
よっぽどわかりやすい。
機械にチェックさせるのはいいがシステムとしてモジュラリティーが高いツールの組み合わせのが
結局使いやすいし、ロバストになる。
0527デフォルトの名無しさん
垢版 |
2019/03/02(土) 22:57:46.43ID:fWMJYJ6q
>>526
C++の方がノイズが多いくらいで表現力自体は大差ないわ
もちろん、そのノイズによる可読性や生産性の低下は決して無視できるものではないが
0529デフォルトの名無しさん
垢版 |
2019/03/02(土) 23:01:34.51ID:E3UUkV/K
>>526
CやC++との比較でそこ(表現力)に触れずに
「Rustは安全!C/C++はfree/delete忘れがーアクセス違反がー領域の破壊がー」ばっか言ってる人が多いのが疑問って話な

俺はトレイトに可能性感じてるから期待してるよ
C++のテンプレートとか関数オブジェクトとか書きたくねえし

あとチェッカーとコンパイラ分けるべきか合体させるべきかについては、
どっちにも善し悪しあるからCとRustどっちが優れてるとかはないと思ってる
0531デフォルトの名無しさん
垢版 |
2019/03/03(日) 00:19:36.71ID:cZvjaCEe
Cじゃ確かに無理かもわからんが、C++のstd::vectorならatメソッドで同じことできるぞ

毎回アクセス範囲が適切か確認するから結局オーバーヘッドになってほぼ使われんがな
0532デフォルトの名無しさん
垢版 |
2019/03/03(日) 00:45:31.79ID:c3K18875
基本はIndex::indexを呼んで必要なとき(オーバーヘッドが気になるとき)にunsafeで囲む
C++は全関数がunsafeで意識せずVec::get_uncheckedを使うようなもの
オーバーヘッドの問題でunsafeで囲んだらRustだってツールじゃムリ五十歩百歩って言われるかもしれないけど、五十歩の方がいい
0533デフォルトの名無しさん
垢版 |
2019/03/03(日) 00:45:55.40ID:m5mWw6SB
MozillaやRust作者の人達が、valgrindやチェックツールの使い方を知らない
アホ揃いだと思ってるの?
0534デフォルトの名無しさん
垢版 |
2019/03/03(日) 00:57:04.94ID:cZvjaCEe
>>533
MozillaやRust作者の人達の過激な信者が
valgrindやチェックツールの存在を知らないか軽視してるせいで
Rustの宣伝に対して過剰にC/C++をディスってるアホ揃いだと思ってる

もちろんそうじゃないRust推しもいることは承知の上だ

逆に、「そういうツール使えばC/C++だけで十分Rustなんてイラネ」って意見も
ベクトル違うだけで同じくらいアホだと思ってるがな

だからこそトレイトの使い方だとかモジュールの仕組みだとか
外部ライブラリ(crate)の扱い方の方向での他言語との比較が
あんまり見えないことが問題だと思うんだが

そういう意味で話題提供すると、cargoって結構disられてるけど
どの変がクソなのかいまいち分からん
キャッシュサーバ持てないって話ならnpmとかbundleとかgo getも大概では?
0535デフォルトの名無しさん
垢版 |
2019/03/03(日) 06:22:48.61ID:ChZC+e8W
>>519
ほんそれ
0536デフォルトの名無しさん
垢版 |
2019/03/03(日) 07:44:53.56ID:lQ42Eo+G
みんな同じ話題について話してるのか?
好き勝手独り言言ってるようにしかみえない。
0539デフォルトの名無しさん
垢版 |
2019/03/03(日) 16:53:34.09ID:4supDM4A
Rustだと(unsafeなし、コンパイラのバグなしなら)プログラムの全実行パスでメモリリークや破壊がないことが保証できると思うけど、
C/C++で同等のチェックができるツールってある?
valgrindは単にvalgrindで実行したパスで問題なかったことが分かるだけって理解なんだけど。
もしあるならそれはそれで使ってみたい。
0540デフォルトの名無しさん
垢版 |
2019/03/03(日) 17:11:00.51ID:vKpOoBmI
>>539
俺もその認識なんだけどvalgrindナメてたかな
Firefoxのcssのバグはテスト書いて発覚した感じなんだけど
0541デフォルトの名無しさん
垢版 |
2019/03/03(日) 17:26:47.25ID:oO/57lY2
その手の静的解析ツールはたいてい商用製品だね。一番手頃なのはVSで使えるSALかな。
0542デフォルトの名無しさん
垢版 |
2019/03/03(日) 17:57:36.24ID:lcRojjEc
顔本のinferがオープンソースで全パス調べてくれるやつだな

企業ならcoverity課金してるだろ
0543デフォルトの名無しさん
垢版 |
2019/03/03(日) 18:42:44.87ID:DMRKI5H5
inferは知らなかった。ちょっと試してみる。
まぁ商用含めても原理的に検出率100%とはいかないだろうけど、
Rustだって標準ライブラリ内のunsafeバグとかあるからいい勝負なのかな。
0544デフォルトの名無しさん
垢版 |
2019/03/03(日) 18:48:10.42ID:Y2LadsyV
全パスチェックしてもRustのコンパイル時のチェックには及ばない
全パスチェック程度で済むものならば、Rustにあんなややこしい概念を持ち込む必要はないんだよ
0545デフォルトの名無しさん
垢版 |
2019/03/03(日) 18:59:21.85ID:jeWiu9AY
言語として縛りを強制するってとこに旨みがあるよね
静的チェックを過大評価云々は的を外した無意味な議論
0546デフォルトの名無しさん
垢版 |
2019/03/03(日) 19:51:05.48ID:BbxzBxVK
Rcなりunsafeなりあるわけでなんだかね。
rustを意識してプログラムをすることに意味はあるがrustの実装系を使うことに
そこまで意味はない。
0547デフォルトの名無しさん
垢版 |
2019/03/03(日) 22:01:18.12ID:lQ42Eo+G
俺はweb屋さんだけどサーバ書くならrustが最高とおもってる
これって過激な信者?
0549デフォルトの名無しさん
垢版 |
2019/03/03(日) 23:36:41.41ID:U4/3Q3+q
coverityとかの静的解析って誤検出が結構ある
で誤検出かどうかの人力解析も超めんどくさい
かつ1度の解析にめっちゃ時間かかる

これがあるからC/C++でもRust同等とかないわ
0550デフォルトの名無しさん
垢版 |
2019/03/03(日) 23:53:56.27ID:60sPzVWf
>>547
web屋さんはもともとC++なんて使ってないし使う人が順調に増えていってる印象
問題はweb屋さん以外にどうアピールするか
0551デフォルトの名無しさん
垢版 |
2019/03/03(日) 23:58:03.76ID:+k8QiguP
どうせ一時の流行で終わるんだから被害は少ないほうがいい
Scalaとかも中途半端に業務系が乗っかってきはじめた矢先に梯子外されて死屍累々の惨状だったし
0554デフォルトの名無しさん
垢版 |
2019/03/04(月) 05:49:29.62ID:DAN4+o0x
えっ
0555デフォルトの名無しさん
垢版 |
2019/03/04(月) 07:38:18.48ID:yQsTNF7X
Javaは今でもクソ言語なのでScalaとは比べるべくもない
単に日本の人月制度とマッチしなかっただけ
Rustもそうなる
学習コストの高い良い言語より学習コストの低い低単価で人を集められる言語
0556デフォルトの名無しさん
垢版 |
2019/03/04(月) 08:34:11.43ID:i9k284UJ
色んな業界があるのに一緒くたにして評価できなくない?
0558デフォルトの名無しさん
垢版 |
2019/03/04(月) 22:48:27.10ID:GJN1vwhQ
個人的な経験だけど、Rustのコンパイラを単純に黙らせるようにソース修正していくと物凄く汚くなることが良くある
ので、そもそもの設計を見直すようになったり、かくあるべしって仮設を明確にするクセが身についた気がするよ
0560デフォルトの名無しさん
垢版 |
2019/03/05(火) 05:49:14.36ID:437fdADv
資源の共有状態を見直すってのはrustは置いといてもプログラムをに置いてやっぱ本質だなと思う。
0561デフォルトの名無しさん
垢版 |
2019/03/05(火) 23:33:10.77ID:oKijR9sc
ArcとかMutexとかRwRockが気に入ってる
最初めんどくさかったけどよく考えたら当たり前に必要なんだよね
そこを隠蔽しないことでコストのトレードオフをプログラマに意識させるのがよい
0562デフォルトの名無しさん
垢版 |
2019/03/06(水) 00:07:02.80ID:2JVBykl1
練習で他言語のプログラムを移植してみたらコンパイラに
ガンガン怒られて本人が壊れるような使い方しないからと手抜きしていた部分が
洗い出されてなるほどなあと思った
0563デフォルトの名無しさん
垢版 |
2019/03/06(水) 00:31:05.23ID:a/Fk2z1+
>>558
黙らせるだけで終わってしまうわ
0568デフォルトの名無しさん
垢版 |
2019/03/06(水) 12:02:48.23ID:mg6kC0Yg
GTKは糞
0569デフォルトの名無しさん
垢版 |
2019/03/07(木) 02:41:58.99ID:se1YsRNA
>>561
当たり前じゃねえから
PythonとかPerlとかRubyで書かれたプログラムにはないけどちゃんと動く
それともこれらの言語で書かれたものはプログラムじゃないとか言っちゃう系?
0570デフォルトの名無しさん
垢版 |
2019/03/07(木) 07:08:20.11ID:USPSPd7n
>>569
パイソンだって排他制御書くじゃん
0571デフォルトの名無しさん
垢版 |
2019/03/07(木) 07:18:52.41ID:rioBJ/QG
RwRockが自然に必要ってのは言い過ぎだわな。
必要なところは必要だろうがそれがあまりに多いのは多分設計ミスってる。
0572デフォルトの名無しさん
垢版 |
2019/03/07(木) 08:07:15.51ID:USPSPd7n
ですから必要なところは必要と言ってるだけじゃないですか
当たり前にってのは原理的に必要と言ってるだけだよ
0574デフォルトの名無しさん
垢版 |
2019/03/07(木) 09:44:04.96ID:kIvAXfDl
まぁ自分の書いている範囲内しか見えない人は普通にいるだろう。
どの言語だってライブラリや処理系レベルでは排他制御はあるし、
逆にどこにもなかったら単に間違ってる。
0575デフォルトの名無しさん
垢版 |
2019/03/07(木) 11:44:24.50ID:ujmnvZmf
Perlは知らんがRubyやPythonには
GILっていう排他制御が言語処理系に含まれてることを考えると
非常に味がある
0576デフォルトの名無しさん
垢版 |
2019/03/07(木) 11:46:01.46ID:MaxgRiSY
Luaって息してないの?
0578デフォルトの名無しさん
垢版 |
2019/03/07(木) 12:47:59.26ID:rQAOToBL
>>575
GILは複数スレッドの競合によってインタプリタがぶっ壊れるのを防ぐために必要な、インタプリタ自身の内部的な排他制御
アプリケーションコードで行う排他制御の代わりにはならないよ
インタプリタがスレッドセーフでない糞実装であるための苦肉の策で、
Rust含め元々スレッドセーフな「まともな処理系」なら全く必要のないもの
0579デフォルトの名無しさん
垢版 |
2019/03/07(木) 12:55:45.82ID:NXRNz+RG
そういや Perl でマルチスレッドのプログラムは作ったことないなあ。fork してマルチプロセスにするのはよくやるが。
0581デフォルトの名無しさん
垢版 |
2019/03/07(木) 14:00:26.28ID:GuWZeuUG
そうか、今時の人はみんなLock-freeアルゴリズム使いこなすんだな
Mutexなんて見たことないんだ
0582デフォルトの名無しさん
垢版 |
2019/03/07(木) 16:39:47.28ID:4Ef40pSv
OSかそれに近いコア領域とかトランザクション必要なデータベースでも書かん限り
MutexとかLockとかが必要だとは思わんなー
Web系にもてはやされてるらしいけど君らそもそもそれオーバーキルどころか逆に足枷ならん?って思う
0584デフォルトの名無しさん
垢版 |
2019/03/07(木) 18:38:08.85ID:G0X+tUuM
>>583
そもそもそんなに並行処理をOSやミドルウェア頼りじゃなくて自分で書くが必要な場面て例えばどこ?
と質問に質問で返してみる
0585デフォルトの名無しさん
垢版 |
2019/03/07(木) 18:43:18.41ID:G0X+tUuM
念のため言っとくと、別にロックなんて無駄だとか言いたいんじゃなくて
ArcとかMutexとかRwRockが当たり前に必要とかいうマウンティングに反論してるだけな
0586デフォルトの名無しさん
垢版 |
2019/03/07(木) 18:54:58.71ID:pnI3L7PU
>>584
仮にお前がミドルウェア使うだけの些末プログラマ
だとしてもミドルウェアがマルチスレッドで動いていたり、
複数のミドルウェアを使う場合は
排他処理が必要なケースは普通に出てくるだろ
0587デフォルトの名無しさん
垢版 |
2019/03/07(木) 19:01:04.74ID:pnI3L7PU
>>585
rustをc++の代替候補として考えるなら使って当然
並行処理でこそrustの有り難みが生きるわけだし
マウンティングに感じるのは単にお前が並行処理に馴染みがないからだろ
0588デフォルトの名無しさん
垢版 |
2019/03/07(木) 19:49:57.49ID:G0X+tUuM
>>586
それはそんな使い方する方が何かしらおかしい
排他制御ってのは本当に必要なところ以外ではやらないように回避するもんだ

>>587
Rustの旨味がそこにあるのは否定しないが、
それが全プログラマが当たり前のように使いこなせるべきっていうのは
ただのマウンティングだろうに
0589デフォルトの名無しさん
垢版 |
2019/03/07(木) 20:59:20.87ID:pnI3L7PU
>>588
排他が必要だからするにきまってんじゃん
そういうところに思考が及ばないやつはjsだけ使ってりゃいいと思うよ
0590デフォルトの名無しさん
垢版 |
2019/03/07(木) 21:02:19.38ID:V2DuVpEL
プログラマーがリソースの共有状態を意識すれば
無駄な排他制御しなくても大丈夫だという主張かねえ
0592デフォルトの名無しさん
垢版 |
2019/03/07(木) 22:06:32.44ID:rioBJ/QG
RwLockが少ない設計で組めたぜ!って自慢するならともかく
RwLockめっちゃ使ってますなんてアピールする奴は普通にバカだろ。
0593デフォルトの名無しさん
垢版 |
2019/03/07(木) 22:11:49.22ID:kIvAXfDl
単に日本語の問題では?
多分解釈が二通りある。
マルチスレッドプログラムにとって排他制御は当たり前に必要
プログラマにとって排他制御は当たり前に必要

個人的には文脈から前者と理解したけど、後者だと思うなら言い過ぎだというのは分かる。
0594デフォルトの名無しさん
垢版 |
2019/03/07(木) 22:15:22.37ID:0XBNAuOg
lockをrockと間違ってもしれっとしてるやつもかなりのバカだよね
ソフトウェアの超頻出単語じゃん
0595デフォルトの名無しさん
垢版 |
2019/03/07(木) 22:34:05.54ID:USPSPd7n
だからプログラマにとって当然の能力という意味で言ってないって
めっちゃ使ってるとも言ってないって
隠蔽しないから必要性とコストを意識できていいねって言ってるやんけ

誤字はすまんかったけど
0597デフォルトの名無しさん
垢版 |
2019/03/07(木) 22:59:19.47ID:USPSPd7n
なぜ自分が採用に関与できない雑魚だと表明してしまうのか理解できないけど、そうしたほうがお互い幸せになれるだろうね
0599デフォルトの名無しさん
垢版 |
2019/03/08(金) 07:01:44.63ID:ySJgt2xb
こういう奴らに並列実装なんてさせるから地獄を見ることになるんだよな。。
0601デフォルトの名無しさん
垢版 |
2019/03/08(金) 09:22:23.55ID:FgM3Elcd
Mutexとかもはや古典技術でしょ
Rust使う領域では理解してて当然と言っていいよ
これがマウントだとしたらキレイなマウント
0603デフォルトの名無しさん
垢版 |
2019/03/08(金) 12:02:47.61ID:qCBno44f
フリーランチの時代はとっくに終わってるのに気づいてないんだ…
プログラミング界の横田庄一だな
0604デフォルトの名無しさん
垢版 |
2019/03/08(金) 12:28:00.15ID:pv8HlopZ
横田庄一と聞いてすぐに誰の事かわかる人は横田庄一
0605デフォルトの名無しさん
垢版 |
2019/03/08(金) 12:29:45.82ID:pv8HlopZ
いやちょっと待て、横井だよな?
0607デフォルトの名無しさん
垢版 |
2019/03/08(金) 13:17:39.94ID:41t9AOm1
Rockといい横田といい、この程度のことも注意できない奴だから
こんな口うるさい姑みたいなやりたいこともやりにくい言語をもてはやすんだと納得
0608デフォルトの名無しさん
垢版 |
2019/03/08(金) 13:28:47.21ID:qCBno44f
横井さんも刺身食えなかったらしいからな
排他処理に拒否反応示すのも無理はない
Rustはやめときな
0612デフォルトの名無しさん
垢版 |
2019/03/09(土) 18:18:24.28ID:jz9xUaFa
>>600
rustでコンパイル通れば安全というわけじゃないっていう例なんだが。。
やっぱバカに並列化コードは触らせないほうがいいな。
0613デフォルトの名無しさん
垢版 |
2019/03/09(土) 18:46:26.86ID:p0Yi5ioR
競合条件がなくなることはないけど、データ競合はほぼ回避してるぞ
安全じゃなくなるのはデータ競合のときなんだから、安全じゃなくなる例になってないぞ

経験上デバッグが難しかったりするのは大体がデータ競合によるものなんで、Rustは並行処理にも威力があるぞ
0614デフォルトの名無しさん
垢版 |
2019/03/09(土) 20:58:43.16ID:IPK2i5wV
兵庫県警の件、brendan eichが証人受けるとまで言い出して面白いことになってるけど、
アレが駄目ならビジーウェイト書いてるやつ全員逮捕だよな。組み込み勢狙われるぞw
0615デフォルトの名無しさん
垢版 |
2019/03/09(土) 21:43:01.59ID:jz9xUaFa
>>613
普通に考えてスレッドでやるメリットってデータ競合が生じるようなアクセスを
考えなきゃならんパターンなわけでそれはrustだろうとなんだろうと楽になんかならんという
当たり前のことがわかってない。
そういうある種のアクセスパターンに対する制限なり証明なんてのは設計をよっぽどシンプルにせにゃ
適応できんってのがまともに実装してれば分かるもんだがな。
0617デフォルトの名無しさん
垢版 |
2019/03/10(日) 06:42:01.75ID:9jhd4KAw
人間には難しいから機械にやってもらうってことだろ
楽になってるやん
0621デフォルトの名無しさん
垢版 |
2019/03/11(月) 00:27:06.99ID:YRmagZmf
>>616
話が通じてないのはよくわかった。
コンパイラエラーが出ていないが意図通りの動作でない例はいくらでも作れるよ。
てか他の言語でもロックなりアトミックなオブジェクトなり作ることについてそんなに困ってない。
0623デフォルトの名無しさん
垢版 |
2019/03/11(月) 06:38:37.83ID:meIK3aBA
作れるかどうかじゃなくて作らないとコンパイルエラーになるかどうかが問題
0624デフォルトの名無しさん
垢版 |
2019/03/11(月) 11:16:28.86ID:I31WZ8ED
例えば、同じ型のArc領域二つ作って複数のスレッドが更新し合うプログラムで
特定の条件でうっかり逆の領域に書き込むように作ってしまったパターンみたいな
単純な仕様の間違いまでRustでコンパイルエラーにしてくれるのか?

人間っていうのは並列計算のモデルが複雑になると
把握しきれないからうっかりこういうことする率が上がるんだよ
だからどんなにRustがコンパイル時安全だろうと
人間がきちんと計算モデル把握できなきゃ結局バグはなくならない

で、人間が把握できるレベルまで設計を単純にできれば
CだろうがRustだろうが大して開発レベルに差はつかない
ライブラリと表現力の差がちょっとRustに分があるくらいで
積み上がったC資産の量でひっくり返るレベル
0627デフォルトの名無しさん
垢版 |
2019/03/11(月) 12:07:53.10ID:FmvoWW+v
Rustでもこんな書きかたしたら駄目だよと言う
例も出せなきゃ単にRust理解してないのかと思われるよ
0628デフォルトの名無しさん
垢版 |
2019/03/11(月) 12:24:56.42ID:Aj/YOxZO
>>627
だから書き方の話なんてしてねえよ設計の話してんだよ
言語以前の話なんだよ
代入する変数を間違えるレベルのミスはRustだって面倒みてくれないし、
そういうミスは複雑な並行をする設計にしたらいくらでも起こるって話になんでコードがいるんだよ
0629デフォルトの名無しさん
垢版 |
2019/03/11(月) 12:30:05.81ID:Aj/YOxZO
あ、それともRustなら代入する先の変数を型が同じ別の変数と間違えるレベルのミスもカバーしてくれるとかそういう話ある?
それなら俺が悪かった
0630デフォルトの名無しさん
垢版 |
2019/03/11(月) 12:43:01.92ID:XUClMORg
人間が把握できるレベルまで設計を単純にできれば開発レベルに差はつかない君
0631デフォルトの名無しさん
垢版 |
2019/03/11(月) 12:53:48.65ID:iGRez5Af
まあ簡単なことをわざわざ複雑にしたがる君はどこでもいるよね
意地でもバッチ使わない奴とかマジで害悪
0633デフォルトの名無しさん
垢版 |
2019/03/11(月) 13:08:54.18ID:FmvoWW+v
>>628
>>629
Rustなら不注意な変数の扱いをコンパイラが
検出してくれる
という話をしてるときに設計ミスなら
何でも起こりうるとかドヤ顔されても
はぁそうすかーとしか返せんけど
何しにきたの?
0634デフォルトの名無しさん
垢版 |
2019/03/11(月) 14:12:19.53ID:l+vIpuAn
仕様の間違いを言語が指摘してくれるなら何も書く必要ないな
0635デフォルトの名無しさん
垢版 |
2019/03/11(月) 14:38:37.91ID:QCR9O3Xc
だから変数の不注意な取り扱いの話だろ?
変数の取り違えは不注意な取り扱いじゃないのか?
0636デフォルトの名無しさん
垢版 |
2019/03/11(月) 15:06:42.33ID:Vz3i6ZDJ
最初は安全でないケースはいくらでもあるとか言ってたのに、なんで話をそらすかね
レッテル貼るのが好きで論破ァしたいのは伝わってきた
0638デフォルトの名無しさん
垢版 |
2019/03/11(月) 22:55:06.72ID:12YVFwCp
お前らまだやってるのか。
まあ、仕様が間違ってる部分でコンパイラ通らなかった事はある。
分岐やステートマシンが網羅性満たしてないとか。
0639デフォルトの名無しさん
垢版 |
2019/03/12(火) 00:10:32.77ID:2rrWszPN
>>612
Rustでコンパイル通るけど危険なコードの
例を出してくれれば議題になると思うのに残念だ
0640デフォルトの名無しさん
垢版 |
2019/03/13(水) 02:29:03.52ID:L2CP12FF
rustの偉い人教えてください。

rustではポインタ演算できますか?
unsefeという指定をすればできる?
関数ないでしなきゃいけなくてオーバーヘッドになったりしないでしょうか。
0641デフォルトの名無しさん
垢版 |
2019/03/13(水) 16:52:00.11ID:9tX9nXc2
Rustでポイント演算が必要な場面ってどんなとき?
0642デフォルトの名無しさん
垢版 |
2019/03/13(水) 22:08:43.38ID:k+ORDxki
オーバーヘッドになるかは、自分でLLVMコードを比較しないと分からないと思うよ
0644デフォルトの名無しさん
垢版 |
2019/03/13(水) 22:46:06.26ID:pX7/4+WY
中間コードを見てパフォーマンスを語るアホ
しってた?最適化はLLVMの仕事なんだよ?
0646デフォルトの名無しさん
垢版 |
2019/03/14(木) 00:08:36.36ID:/7Tw3HBH
rustのコードは最適化有効にするとllvmの時点でかなり消えてるから最適化の有無でrustcが吐いたllvm-irの比較できるよ。

>>643
用途とプラットフォームによるから要件指定して出直して。
0647デフォルトの名無しさん
垢版 |
2019/03/14(木) 01:00:20.74ID:lGFaI2Uv
>>646
比較はできても実際にオーバーヘッドになるかどうかは最終的な機械語を見るまで分からないよね
0648デフォルトの名無しさん
垢版 |
2019/03/14(木) 08:35:56.34ID:BjDIWQCJ
検査例外みたいなもの?Result
0649デフォルトの名無しさん
垢版 |
2019/03/14(木) 11:22:17.62ID:EiiZSkE4
>>643
OrbTKとAzulとDruid試してどれが良かったか俺に教えてくれ
どれもまだ作りかけって感じみたいだが
0651640
垢版 |
2019/03/15(金) 02:46:57.83ID:sc0y6ax5
>>641
c言語側で構造体の配列を共有メモリに置いたのをアクセスしたいです。
rustではこうしろ、でもいいので教えてください。
0652デフォルトの名無しさん
垢版 |
2019/03/15(金) 23:17:26.07ID:hOBF8kWn
>>651
共有が可変ならコンパイラ通せないなそれ。raw pointer使いたいだけならcだけでやったほうが良い。
0654デフォルトの名無しさん
垢版 |
2019/03/16(土) 23:16:00.89ID:nOJfJDgr
>>653
それはosの機能使ってるだけだから元々c使ってるならrust追加する意味がない。
よく読んでないけどservoのipc-channel見た感じ共有メモリ使ってないみたいだし、rust使うなら安全性優先してそうなるだろうね。
当然の帰結だけど潜在的に安全ではない方法で書かれたコードとrustは相性悪いよ。
0655651
垢版 |
2019/03/16(土) 23:46:04.85ID:JtPIcBaF
>>652
ありがとうございます。🙇
一応サイズやオフセットの情報は貰えそうなんですけどね......。
0657デフォルトの名無しさん
垢版 |
2019/03/17(日) 02:05:57.96ID:V2wMrW3D
>>649
azulはWYSIWYGじゃないmorphicにcssもどき付けてオブジェクト指向じゃなくてPFにした感じ。要はReact。
0658デフォルトの名無しさん
垢版 |
2019/03/17(日) 21:51:20.57ID:WgP01y5n
危険なオペレーションをunsafeで包んで安全なインターフェースを提供できるのがrustの良さなのに
潜在的に安全性ではない方法とrustの相性が悪いとはどういうことなのか
0664デフォルトの名無しさん
垢版 |
2019/03/18(月) 22:49:23.85ID:Y4S0f+Ze
読んだけど詐欺だろ
こんなのできるわけない
どっかで非現実的なこと要求してきたりして実用できないポンコツだろう
PatreonやPayPalでのDonateを募っている。
サイトにサンプルコード書いてある以外以外誰もコンパイルしたことなければコンパイルしたコード動いてるとこ見たこともない
0665デフォルトの名無しさん
垢版 |
2019/03/18(月) 23:26:49.06ID:fY+Pki5s
>>663
話題になっているならスレ立ててこのスレから独立したまえ
0666デフォルトの名無しさん
垢版 |
2019/03/18(月) 23:36:21.26ID:tKjFYZI6
比較するならもっとちゃんと比較してほしい。
載ってるサンプルソースじゃ単純過ぎて何で書いても大差ないし。
循環参照ありのコンテナ型とかCライブラリの安全なラッパーみたいな所有権とライフタイムがバリバリ出てくるやつが見てみたいが。
0668デフォルトの名無しさん
垢版 |
2019/03/19(火) 00:05:59.23ID:K8Uba71D
とりあえず否定から入ったり、
趣味で作ってるものに責任感求めたり
やな日本人
0673デフォルトの名無しさん
垢版 |
2019/03/19(火) 02:51:37.75ID:GOZW5Jz6
>>672
racer用にソースコードと、クロスコンパイル環境いっぱい落としたらそんくらいになりそうな気もするが、
最小限のターゲットで30Gは使わんと思う
0675655
垢版 |
2019/03/20(水) 12:34:03.25ID:0UtzG54T
>>662
ありがとうございます。
rustの勉強本格的に始めたいと思います。
0676デフォルトの名無しさん
垢版 |
2019/03/20(水) 15:30:29.81ID:XTJF9v6A
slackとかMozillaの息のかかった詐欺師の巣窟じゃん
むしろどこに行く理由があるのかわからん
0678651
垢版 |
2019/03/20(水) 18:27:12.67ID:RBQe0qVY
>>663
コンパイルしたやつに型の情報とか残ってないとホットリロードってできないですよね?
0680デフォルトの名無しさん
垢版 |
2019/03/20(水) 22:54:36.70ID:v7AHgwpj
rust興味あるけど仕事で使ってる人いるの
0681デフォルトの名無しさん
垢版 |
2019/03/20(水) 23:24:21.44ID:sa2HusWJ
副業解禁で激変する若者世代とマネージャー世代のキャリア観
https://www.businessinsider.jp/post-107782
フリーランスの職種20個の仕事内容と平均年収をわかりやすく解説
https://www.proof0309.com/entry/shokushu
時給1万円のバイトも。会社員向きのプチ副業を、“バイト芸人”が教える
https://headlines.yahoo.co.jp/article?a=20190226-00127948-bizspa-bus_all
副業が「会社にバレる人」と「バレない人」の大差
https://headlines.yahoo.co.jp/article?a=20190303-00268007-toyo-bus_all
正社員の10%以上が副業 中には過重労働で体調崩す人も
https://headlines.yahoo.co.jp/hl?a=20190227-00010000-wordleaf-bus_all
「副業で年2000万円稼ぐ男」に学ぶキャリア戦略
https://headlines.yahoo.co.jp/article?a=20190221-00266856-toyo-bus_all
加速する「副業社会」正社員の4割が「副業したい」 気になる収入はどれくらい?
https://headlines.yahoo.co.jp/hl?a=20190218-00010001-danro-life
おすすめ副業22選を現役フリーランスが解説【在宅も可能】
https://www.proof0309.com/entry/zaitaku-hukugyou
会社を辞めてフリーランスで働きたいあなたが知っておくべき10のこと
https://www.businessinsider.jp/post-165731
フリーランスと会社員、働き方の根本的な差 広がる「雇用されない働き方」の課題とは何か
https://toyokeizai.net/articles/-/263055
フリーランス人口は増える!今後は仕事もプロジェクト単位になる!?
https://freelance.mts-career.com/population/
どのくらい稼げるの?フリーランスエンジニアの単価・報酬・年収の話
https://findy-code.io/engineer-lab/engineer-unitprice-income
0683デフォルトの名無しさん
垢版 |
2019/03/21(木) 01:14:14.02ID:CR4JTZt+
>>682
数Cがあった頃に高校で数Cが選択されずに数Cが範囲外の大学行った人が
何故かマやってたら必須要件満たせないんだな。
薬学系が何故かデスマやっててお薬貰ってたりしないだろうか。
0685デフォルトの名無しさん
垢版 |
2019/03/21(木) 06:45:58.96ID:Gna2ODu0
ほんそれ
今時下限400の会社なんて人集まらないでしょ
0687デフォルトの名無しさん
垢版 |
2019/03/21(木) 18:48:35.34ID:QBzteMDu
dieselのreplace_into(UPSERTみたいな)で更新したい項目を絞り込みたい時ってどうすればいいですか?
0694デフォルトの名無しさん
垢版 |
2019/04/12(金) 22:57:15.59ID:mIeilXq5
本気で手を出したこと無いんだけど、そういうフレームワークをRustに持ってきて良い感じのabstractにできるの?
メモリとかリソースの確保のコードで見づらくなったりしない?
0695デフォルトの名無しさん
垢版 |
2019/04/15(月) 04:11:13.67ID:kujim5do
また今年のsurveyでもrustが一番好かれている言語になったな
rust好きなんだけど正直ここまで好かれる理由がわからない
0697デフォルトの名無しさん
垢版 |
2019/04/15(月) 23:32:54.91ID:skRRWxtn
ブロックがその最後の値を持つ式だというのはいい。
そして、式にセミコロンを付けると文になるというのもわかる。
でもその両者を混ぜるとあんな残念な文法に。
0698デフォルトの名無しさん
垢版 |
2019/04/17(水) 19:57:09.89ID:bfpXtPq4
c言語とどっちが性能高いの?
なんかRustの方が性能良いみたいなベンチがちょっとあるみたいだけど。
0699デフォルトの名無しさん
垢版 |
2019/04/17(水) 20:17:31.03ID:HMcbF5v1
>>697
> でもその両者を混ぜるとあんな残念な文法に。

その残念な文法は具体的にどこをどうすれば良い文法になるの?
0701デフォルトの名無しさん
垢版 |
2019/04/17(水) 21:04:06.60ID:MHZJUsOd
残念ってのはブロックの最後にセミコロンを付けちゃうと値を返せないってとこね。
>>697に書いたようにそれぞれ合理的な選択を組み合わせた結果だから解決策があるとは限らない。
ただ、式文はUnit型じゃなくて式の値を持つってことにするのは無理だったのかな。
0702デフォルトの名無しさん
垢版 |
2019/04/17(水) 22:11:49.04ID:zg2I5mVw
>>695
イヤでも使わなきゃならないのが優れた言語
嫌な奴はさっさと逃げ出して残った少数にもてはやされるのが(ru

>>698
ベンチの取り方も知らないみじく者にもてはやされるのが(ru
0703デフォルトの名無しさん
垢版 |
2019/04/18(木) 00:48:35.35ID:wChKEQpu
>>34の画像ってどこのサイトからもってきたの?
0705デフォルトの名無しさん
垢版 |
2019/04/21(日) 12:13:27.97ID:iFY66t+o
代入式の値はUnitでいいんじゃなかろうか。もともとCのような代入の連鎖はできないわけだし。
0706デフォルトの名無しさん
垢版 |
2019/04/21(日) 15:32:25.18ID:VjQgnkW7
https://play.rust-lang.org/?version=stable&;mode=debug&edition=2015&gist=765849a4e776e00b0c614fc941b02ecf
Defaultを実装してない構造体のフィールドのうちDefaultを実装してるフィールドだけまとめてdefault()で初期化するような記述方法は無いでしょうか?

イメージとしては
let s = S { nd: NonDefault::new( "foo" ), u: Default::default(), i: Default::default() } ;
の部分を
let s = S { nd: NonDefault::new( "foo" ), _: Default::default() } ;
のような形で書けないでしょうか
0708デフォルトの名無しさん
垢版 |
2019/04/21(日) 20:37:02.65ID:svG426BT
>>707
ありがとうございます、ただそれだとSomeOptionsがDefaultを実装している場合の記法ですよね?
(実際試してもthe trait bound `SomeOptions: std::default::Default` is not satisfiedとなります)

質問としてはSomeOptions自体はDefaultを実装していないけど、そのフィールドのうちDefaultを実装している型の値はまとめてdefault()で初期化したいってことなんですが…
0711デフォルトの名無しさん
垢版 |
2019/05/03(金) 23:38:25.91ID:OoY1JZ4j
κeenさんの所でもまだ出てないのに売れてるらしいと書かれてたけどどういう事なんアレ?
0716デフォルトの名無しさん
垢版 |
2019/05/05(日) 16:52:40.49ID:WKR1sgRA
>>715
え?どういう意味?
0718デフォルトの名無しさん
垢版 |
2019/05/05(日) 21:12:05.69ID:kwSPn12m
はい論破
0719デフォルトの名無しさん
垢版 |
2019/05/05(日) 21:34:31.13ID:9/Y+2Yss
メインでrust使ってる企業あったら入りたいもんだけど、実際使ってる企業あるの?
モダンな言語だとせいぜいGoとかelixirじゃない?
0721デフォルトの名無しさん
垢版 |
2019/05/06(月) 04:44:55.95ID:hWGbrmtu
人間からすれば強豪でも、予選落ちで強豪ソフトと呼ぶのは違う気もする
0722デフォルトの名無しさん
垢版 |
2019/05/19(日) 01:45:51.38ID:1MNuuHvp
Rustの本どんなもんかとアマゾンで見てみたら、
中華業者の星5レビューばっかで色々と察した
そもそもの話の言語自体が胡散臭いのも納得
0723デフォルトの名無しさん
垢版 |
2019/05/19(日) 07:53:59.58ID:tquD1oX1
ライフタイム引数のクソさはもうどうにもならんな。
変な省略ルールとかつけて逆に分かりづらくなるとか本末転倒もいいとこだ。
0726デフォルトの名無しさん
垢版 |
2019/05/20(月) 04:17:07.25ID:ljCiVFHi
https://ja.wikipedia.org/wiki/Rust_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E)
>実行時速度性能はC言語と同等程度である[8]。

これマジ?
0727デフォルトの名無しさん
垢版 |
2019/05/20(月) 04:25:14.45ID:ljCiVFHi
こんな記事を見つけた

>Rustのコードを用いたこのためのテストの平均はCコードの実行したものの3.040倍と同じくらいだ。

>この関数により、我々はRustが平均的に2.036倍Cよりも遅いことを知った。

やはりCの方が速いな。省メモリという点でもCが一番だし
0728デフォルトの名無しさん
垢版 |
2019/05/20(月) 04:30:01.80ID:ljCiVFHi
>Rustが事実上Cよりも遅いままで終わってしまったという事実は、より落胆させられた。

>また、全体を通してRust言語は、
この手の高水準な完成されたシステムを作る手助けをすること、
そしてこの領域において少量の変更で効果的にCを置き換えることができることを示すことができた。

現状のRustはCを置き換えれないけど、
将来的な改善まで含めればできるはずだと主張してるな。。
0729デフォルトの名無しさん
垢版 |
2019/05/20(月) 08:44:28.91ID:VITeHWYT
鬼が笑うなw
実現してから言えとww
0730デフォルトの名無しさん
垢版 |
2019/05/20(月) 11:23:27.01ID:lwaSv1ZP
Cと同等はさすがに無理にしても、もう少しCに迫る性能が出ないと、C/C++から脱出したい人の受け皿にはなれないんじゃないか? あるいはCの2〜3倍遅い程度なら許容範囲内ということで割り切るしかないんだろうか。
0731デフォルトの名無しさん
垢版 |
2019/05/20(月) 11:55:14.56ID:tpa/cVpf
2015年の記事だぞ
0732デフォルトの名無しさん
垢版 |
2019/05/20(月) 11:56:49.92ID:VITeHWYT
それが許容できるならNim早く1.0になーれ
0734デフォルトの名無しさん
垢版 |
2019/05/20(月) 21:28:47.95ID:lEqHTAQ5
>>724
ライフタイムとムーブについてはそこまで複雑な概念ではないよ。
ライフタイムに対するシンタックスがヘンテコなだけで。
0735デフォルトの名無しさん
垢版 |
2019/05/20(月) 22:35:24.52ID:7ThundX2
RustでLinuxカーネルを書き直す時代はこなさそうだな
0736デフォルトの名無しさん
垢版 |
2019/05/20(月) 23:11:59.72ID:KADFzuXR
>>726,727
メモリを自分で面倒見る分とセキュリティチェック甘い分早いだけだからcでリージョン使ってメモリ管理して配列の境界チェックとかもすれば似たようなもんだ。
rustのpanicはきれいに落とすぞ。ただ、ランタイムデカイ分とrust用のメタデータ含む分でフットプリントはcの方がいいと思う。

>>734
リージョン推論間違えるか効率悪い位ならリージョン指定させてほしい時はある。
0737デフォルトの名無しさん
垢版 |
2019/05/21(火) 09:41:15.53ID:BVi2WQ22
>>735
新しいOS作れば?
なんだったらAndroidみたいにLinuxの上に構築。
0738デフォルトの名無しさん
垢版 |
2019/05/21(火) 22:10:42.02ID:KjOgf3b2
それをRustでやってもCで書かれたOSを上回れないという話でしょ
0740デフォルトの名無しさん
垢版 |
2019/05/22(水) 06:22:56.65ID:jxnXPPAr
https://discourse.redox-os.org/t/redox-performance/966

まだ初期段階だから比較しないで、みたいな事言ってる

最終段階までいってもCを超えると思えないんだが
しかもLinuxは組み込みでも使われてるがそれはCが省メモリだからで
Rustが勝てる見込みは無いと思うんだがなあ
0741デフォルトの名無しさん
垢版 |
2019/05/22(水) 08:53:37.75ID:WBsAUgo4
原理的には負ける理由もないと思うけどな。
Cは基本ノーチェックで脆弱性が見つかったらチェック入れるのに対して
Rustはいろいろチェック入ってるのをunsafeで外してパフォーマンス上げていくから
最終的に同じところに収束する気がする。
まぁ途中段階とか未知の脆弱性を放置する前提なら勝てないんだけど。
0742デフォルトの名無しさん
垢版 |
2019/05/22(水) 18:27:00.47ID:DB7j5I8y
中華ステマ企業が今押せと言われてるイチオシの言語Rust使ってるやつおるん?
0744デフォルトの名無しさん
垢版 |
2019/05/22(水) 19:42:58.33ID:jxnXPPAr
そのサイトいっつも思うんだけどベンチマークの並べ方恣意的じゃない?
vs Cではmandelbrotが下の方にあるけど
vs Javaでは上から2番目

Rustが勝利している項目では太字だけど
Cが勝利している項目では太字にならない

vs C++では、5項目でRust勝利、5項目でC++勝利で互角なのに、
Rustだけ太字でしかもRustが勝利したベンチマークから並べられてる。

俺はそのサイト少しも信用してない
0745デフォルトの名無しさん
垢版 |
2019/05/22(水) 19:44:17.01ID:jxnXPPAr
さらに言えば言語によって使用されるベンチマークがいつも違う。
勝たせたい言語のためにベンチマークを選択している可能性がある。

新手のマーケティングじゃないの?
0746デフォルトの名無しさん
垢版 |
2019/05/22(水) 19:50:53.32ID:KeZIkOEe
恣意的の意味するところがわからんけど
C++からだとRustに勝ったベンチマークだけ太字
C++が勝利したベンチマークから並べられるよ
使用されるベンチマーク云々はちょっとわからん
0749デフォルトの名無しさん
垢版 |
2019/05/22(水) 20:05:42.30ID:CFcQ0bqb
ソース公開されて比較的新しいコンパイラを使って測定されるbenchmarksgameは信頼ならなくて
2016年に書かれた中国語のブログにあったフィボナッチ数列のベンチマーク(ソース非公開)の方が冷静?
0750デフォルトの名無しさん
垢版 |
2019/05/22(水) 20:13:21.83ID:a23nlY2Z
rust推す人もステマする暇があったらrust dockerでも実装すりゃいいのに。
性能と安全性でいえばgoの実装以上のものができるんでしょ?
0751デフォルトの名無しさん
垢版 |
2019/05/22(水) 20:16:34.45ID:jxnXPPAr
中華ステマ企業がって話があったから中国語圏でどうなのかなと思って調べただけ

あとそのサイトを信じるなら、5項目でRust勝利、4項目でC勝利で、
RustがCより速いという事になる。
その結論は信じがたい。
0754デフォルトの名無しさん
垢版 |
2019/05/22(水) 22:46:43.42ID:Nk05W5oy
rustで書かれたコンテナエンジンはオラクルが作ってたろ
goのgcによるボトルネックがひどすぎるとかで

速度のベンチマークなんてほとんど意味ないだろ
生産性のがはるかに大切
0755デフォルトの名無しさん
垢版 |
2019/05/22(水) 23:01:26.69ID:O9oZmprM
n-bodyのソースとか見ればわかると思うけど、メモリレイアウトとかSIMDとかほぼCと同等まで詰めてあるから、Cに勝っても何の不思議もない。
実質gccとllvmの最適化対決って感じでは。

Arena使って素朴に書かれたbinary-treesが勝ってるのは結構すごいと思う。
0757デフォルトの名無しさん
垢版 |
2019/05/23(木) 00:44:51.06ID:XE3IbYhD
そりゃ互換実装なんてよっぽどメリットがないと使われないでしょ。
railcarは完全互換ですらなかったし。

firecrackerとかlucetみたいな独自路線の方がまだ見込みあるんじゃない?
0758デフォルトの名無しさん
垢版 |
2019/05/23(木) 02:30:59.97ID:srO5/BaD
googleに中国人社員どれくらい居るんやで
0762デフォルトの名無しさん
垢版 |
2019/05/24(金) 06:57:29.74ID:6k1VAzLg
GitHub’s Top 100 Most Valuable Repositories Out of 96 Million
ttps://hackernoon.com/githubs-top-100-most-valuable-repositories-out-of-96-million-bb48caa9eb0b
rust 5位だてよ
0763デフォルトの名無しさん
垢版 |
2019/05/24(金) 19:43:59.31ID:SKAR+TzM
ランキングもベンチマークもいくらでも恣意的に操作できる

実際に製品としてどんくらい世に出たかが全てだけど
Rustはどこの企業も口を揃えて「内部実装で使ってます」って言うだけで
動いてるコードを見たことがない
0765デフォルトの名無しさん
垢版 |
2019/05/24(金) 21:38:08.75ID:fWrnlZuD
AWS https://github.com/firecracker-microvm/firecracker
Fastly https://github.com/fastly/lucet
Dropbox
Microsoft https://github.com/Azure/iotedge https://github.com/dropbox?utf8=%E2%9C%93&;q=&type=&language=rust
Intel https://github.com/intel?utf8=%E2%9C%93&;q=&type=&language=rust
Cloudflare https://github.com/cloudflare?utf8=%E2%9C%93&;q=&type=&language=rust

恣意的に集めてみたけど使ってる証拠にはなれないんだな
0768デフォルトの名無しさん
垢版 |
2019/05/25(土) 01:14:49.01ID:c9gXCl3D
プロダクトがあるか無いかより、「xxxで作ってたものをrustで作り直したよ!」って話が多いのが気になる
既存の作り直しよりも新規性のある何かが出来て、それを皆が使いたくなって言語が広まるってのが普通だと思ってる
(goならdockerとか)
rustでそういうのがまだ見えないのはちょっと嫌な感じはしてる
0769デフォルトの名無しさん
垢版 |
2019/05/25(土) 01:27:20.73ID:ebypXKY1
もともとC++は辛いので作り直せる言語を作ろう
だからしょうがないんじゃない
0770デフォルトの名無しさん
垢版 |
2019/05/25(土) 04:03:12.09ID:7xSHCXjA
C++はまだ進化中(複雑化中)だし、C++使ってる分野では特に移行する必要がないというか
0771デフォルトの名無しさん
垢版 |
2019/05/25(土) 15:49:15.59ID:7Hh+Cor8
Rustは学習を終えたとしてC++より開発効率良いの?
0772デフォルトの名無しさん
垢版 |
2019/05/26(日) 15:37:50.13ID:S6mo90yn
>>768
重箱の隅で申し訳ないが、Goなのはk8sだと思う

Rustでキラーアプリ出ないのはある意味当然で
そういうものって未完成でもとりあえずぶち上げてコンセプト見せないと流行らないんだが
Rustって真逆で完璧に作らないと動かない言語だから
キラーアプリの作成とそもそも相性が悪い
0773デフォルトの名無しさん
垢版 |
2019/05/26(日) 18:38:24.59ID:WPYlQOyC
つまりrustで作られたものは完全無欠ってこと?
そんなばかな

そもそもなんでメジャーな採用事例を気にする必要があるの?
自分が作ってるプロダクトがrustと相性がよければ使えばいいだけじゃん
0774デフォルトの名無しさん
垢版 |
2019/05/26(日) 18:55:54.46ID:3AFdRATm
キラーアプリってあれか
RubyがRailsで人気爆発あるいは
ディープラーニングやるならPython
みたいな話期待してるのか?
0776デフォルトの名無しさん
垢版 |
2019/05/26(日) 19:12:42.72ID:E6uVt8Ff
そもそもキラーアプリが言語の普及に影響したのってRailsくらいだと思うけど。
別にdockerやk8sのユーザがgoで実装しなければならないってことはないでしょ。
0777デフォルトの名無しさん
垢版 |
2019/05/26(日) 19:57:50.92ID:Suq0krAi
>>771
rustで学習を終えてc++で作るのが一番効率が良い。
つまり学習用と割り切ればかなり意味のある言語ではある。
0779デフォルトの名無しさん
垢版 |
2019/05/26(日) 21:40:26.71ID:HleLFBX2
Kotlinもよろしく
0780デフォルトの名無しさん
垢版 |
2019/05/26(日) 21:46:53.56ID:hZzGqJJq
C++で痛い目にあってからRust覚えた後にC++の最新verに戻るのが最適解

じゃないとRustの諸々の安全装置がなぜあるか理解し難く面倒臭いだけと思われてしまう
0781デフォルトの名無しさん
垢版 |
2019/05/27(月) 11:56:38.15ID:tPZ1hzXK
C++に戻るつもりが戻れなくなってしまったな。
最新ならC++の言語機能には特に不満はないけど、標準のテスト・ビルドツール・パッケージマネージャがないのが辛すぎる。
戻った人たちはその辺どうしてるんだろう…。
0782デフォルトの名無しさん
垢版 |
2019/05/27(月) 12:07:35.18ID:cl2rg6uY
困ってない
標準にこだわる理由は?
0783デフォルトの名無しさん
垢版 |
2019/05/27(月) 12:32:08.94ID:tPZ1hzXK
いろんなOSSを触ってるとプロジェクト毎に独自の流儀で、それぞれにいちいち合わせるのが面倒だし、
新規プロジェクトでも何を採用するかで悩む。
別に標準化とかされなくてもデファクトスタンダードが一つに決まってれば十分なんだけど。
0784デフォルトの名無しさん
垢版 |
2019/05/27(月) 23:24:40.87ID:PQS6vJwK
C++とくらべりゃRustのほうがスッキリしてるやろ
Cのほうがもっとスッキリしてるけど
0786デフォルトの名無しさん
垢版 |
2019/05/28(火) 03:03:23.56ID:pxWVGMCU
> 標準のテスト・ビルドツール・パッケージマネージャ

最近のプログラミング言語はそれぞれがこのシステム作るよな
言語を超えた協調もなく
0787デフォルトの名無しさん
垢版 |
2019/05/28(火) 06:25:30.00ID:lNkGbIeC
意味わからない
どゆこと?
0788 ◆QZaw55cn4c
垢版 |
2019/05/28(火) 08:13:08.53ID:XzgLa2KY
>>786
そりゃ、ライブラリの名前だけでも共用すればいいのに、と思いますがそれもできていないし…
0789デフォルトの名無しさん
垢版 |
2019/05/28(火) 08:55:39.10ID:BCLUylsF
なんの意味が??
0790デフォルトの名無しさん
垢版 |
2019/05/28(火) 09:28:40.66ID:tpS8MDSU
Ruby のBundler で、各プロジェクト毎に、異なる依存ライブラリを管理するのが便利だから。
それで、Node.js のnpm, yarn も同じように作った

他にも、Vagrant, Chef, Homebrew など、バージョン管理はRuby で作られる
0791デフォルトの名無しさん
垢版 |
2019/05/28(火) 09:52:05.49ID:BCLUylsF
クソ言語のことは聞いてない。
0793デフォルトの名無しさん
垢版 |
2019/05/29(水) 07:06:20.60ID:z8OD1skQ
vagrantもchefもrubyで作られてるからだしょ?
そもそも言語じゃないし
何が言いたいのかさっぱり分からん
0794デフォルトの名無しさん
垢版 |
2019/05/29(水) 07:23:51.85ID:SSsXq4sa
「俺のやりやすいやり方に周りは合わせろ」ってことだろ。よくあるクソ意見だよ。
0795デフォルトの名無しさん
垢版 |
2019/05/29(水) 12:18:00.52ID:E+7iOED5
Cargoは近年稀に見るクソパッケージ管理ツールだろ
これなら散々クソクソ言われてきたけど
最近pipenv出してきたPythonの方がマシまである
0798デフォルトの名無しさん
垢版 |
2019/05/29(水) 21:24:19.77ID:UDeAAaE3
ひとつの仕事をうまくこなせと言いたい
0800デフォルトの名無しさん
垢版 |
2019/05/30(木) 03:54:53.60ID:6ah9fCcJ
ビルド速度が遅いビルドツールの代表のsbtより遅いのがクソ
crates.ioに強依存しててオフラインビルドができないのがクソ
gitに強依存しててアーカイブ形式で配布できないのがクソ
そもそもcrates.ioの運営がクソ

あといくつ欲しい?
0801デフォルトの名無しさん
垢版 |
2019/05/30(木) 07:44:46.49ID:zRja8bLs
ビルド速度が遅いのをパッケージマネージャのせいだと、言語の違うものと比べて言われてもなんともな
crates.io関連はこれ
https://github.com/rust-lang/cargo/issues/5655#issuecomment-488347426
https://github.com/rust-lang/cargo/issues/6589
アーカイブ形式は無理っぽい
https://github.com/rust-lang/cargo/issues/1139#issuecomment-69398250
>The ABI for a library is not stable between compilations, even when theoretical ABI-compatible modifications are made.
あといくつ?
0802デフォルトの名無しさん
垢版 |
2019/05/30(木) 10:14:12.88ID:jL97nfSA
gitへの依存ってあったっけ?
crates.ioからはソースアーカイブDLだから
gitプロトコルは使ってないと思うけど。
0803デフォルトの名無しさん
垢版 |
2019/05/30(木) 13:03:07.09ID:MN7pCpY/
>>800
ビルド前のスクリプト実行は出来るのにビルド後のスクリプト実行が出来ない
も追加しといて
0807デフォルトの名無しさん
垢版 |
2019/05/30(木) 18:51:26.08ID:WCG+7mjF
某言語って何?
いじわるしないで教えろよ!
0809デフォルトの名無しさん
垢版 |
2019/05/30(木) 19:56:11.95ID:L3QkTmlu
前実測したけどscalaより遅かったぞ?
依存ライブラリ数の差の可能性はあるが
0810デフォルトの名無しさん
垢版 |
2019/05/30(木) 21:43:56.76ID:Y7f6B7st
scalaとビルド速度競ってる時点でお察しのクソ言語
0811デフォルトの名無しさん
垢版 |
2019/05/30(木) 22:00:45.60ID:s4B+etfT
まあ仕事で使ってなきゃビルド時間なんか気にならんもんな。
遊びでやってる層にはコンパイル時になんでもやるってのは受けがいいんだろ。
0812デフォルトの名無しさん
垢版 |
2019/05/30(木) 22:15:09.45ID:od6OGe2E
ていうか何をビルドして計ってるんだよ…
一切出てこないまま話は進んでるのか?
0813デフォルトの名無しさん
垢版 |
2019/05/30(木) 22:35:56.44ID:McNdpOBN
折角なのでHelloWorldのコンパイル速度比較してみた。
まぁ条件は適当なので参考程度だが。
毎回ビルドキャッシュ削除した状態からの10回平均。

C: 41.9ms
C++: 150.9ms
go: 211.4ms
D: 307.3ms
Rust: 320.1ms
Java: 346.5ms
Erlang: 1005ms
Haskell: 1106ms
C#: 3000ms
Scala: 6712ms

こうしてみるとCは異常に速いけど、Rustはまぁ普通と言ってもいいかもね。
0815デフォルトの名無しさん
垢版 |
2019/05/30(木) 22:54:58.11ID:YXFOotcC
ビルドが遅いのはコンパイラの遅さだから根本的には別問題。
cargoがロクに並列ビルドできないのもこっち側。

>>800,801
- 不要な条件付きの依存関係が要求されてビルド/テストできない
- rustup wrapperが遅すぎて色々タイムアウトする

が抜けてる。issue乱立しすぎて最新のissueがどれか分からんからリンクは貼らん。
無駄にissue分けすぎて他にも細かいのが色々あるけど、結局は中央リポジトリに依存しすぎ、オフラインモードが使い物にならない、
パッケージマネージャとビルドツール融合してどっちとしても使い物にならないに集約される。

>>804
intellij rustがon the fly analyze実装したから設定から有効にして試せばいいよ。
サンプルプロジェクト程度じゃ影響ないから実践に近いプロジェクトで試さないと分からないけど。
0816デフォルトの名無しさん
垢版 |
2019/05/30(木) 23:11:51.86ID:McNdpOBN
しかし実際遅さが気になるプロジェクトってどんなサイズ?
普段開発してるソース1万行で依存クレート100個くらいの規模だと気になったことがないんだけど。
もちろんクリーンな状態からの初回ビルドはそれなりにかかるけど、ソース書いてるときに依存クレートの再ビルドってほぼ発生しないし。
0819デフォルトの名無しさん
垢版 |
2019/05/31(金) 03:33:14.27ID:8tjR8Og4
>>818
ないない
競プロはメモリリークしてようがコーナーケースでバッファオーバーフローしようが
とにかく規定の入力に対して速く答えを返すものを
エラーハンドリングとか考えず手早く実装するのが正義
Rustと一番相性が悪い分野だろ
0820デフォルトの名無しさん
垢版 |
2019/05/31(金) 03:42:42.65ID:8tjR8Og4
>>815
端的に集約するとそれだよな
未だにこれが「他の言語のパッケージマネージャーの良いところを集めて地雷を回避した理想的なパッケージマネージャー」とか言ってるやつは
それこそ金掴まされてるとしか思えんくらいにクソ
0821デフォルトの名無しさん
垢版 |
2019/05/31(金) 06:57:55.22ID:bmGleV46
困るのは分かったけどなんで困るの?
2年くらい仕事で使ってるけどあーカーゴって便利だなぁとしか思ってなかったわ
0823デフォルトの名無しさん
垢版 |
2019/05/31(金) 07:10:00.14ID:bmGleV46
それならRustの歌でも作って武道館で歌うくらいやるけどなあ
0826デフォルトの名無しさん
垢版 |
2019/05/31(金) 09:03:19.44ID:yMWj+SpE
なんかもうちょっと具体的に
こういうことやると苦労する破綻するという例が欲しいな
他の言語やツールとの同等のことやろうとした比較があるとなお良し
0827デフォルトの名無しさん
垢版 |
2019/05/31(金) 10:42:30.35ID:gCkhoXwv
困る人は是非積極的にcargoにissueたてるなりpull req送って欲しい
人的リソースが足りないのよ
0828デフォルトの名無しさん
垢版 |
2019/05/31(金) 12:21:42.83ID:IQsfcoDS
Mozillaに金掴まされてるは例のキチの常套句だったなそういえば

>>826
まずcrates.ioそのものは、使う側じゃなくてライブラリ公開する側になったらクソだとわかる
こればっかりは使って体験してくれとしか言えん

ビルドの遅さは、例えばDockerみたいなコンテナの相性がよろしくない

crates.ioに強依存してるから、aptでいうところのsquidみたいなことができない

これらの問題はカジュアルユースなら問題にはならんだろうが、プロユースには耐えんのよ
0829デフォルトの名無しさん
垢版 |
2019/05/31(金) 14:27:52.82ID:bmGleV46
aptでいうsquid?ミラーがほしいってこと?
俺の周りのプロはもうそんなことやってないけど。。。
multi stage buildでもしたらいいんじゃないの
0830デフォルトの名無しさん
垢版 |
2019/05/31(金) 15:23:30.26ID:Iexwvjcg
それはプロユースに耐えんのではなくて、そういう職場もあるってだけの話では?
crates.ioは複数ライブラリ公開しててもクソさが分からんしなぁ。
逆にこのパッケージリポジトリは素晴らしい、とかあるの?
0832デフォルトの名無しさん
垢版 |
2019/05/31(金) 20:19:52.36ID:SYuh0ZxQ
それで十分だろ。
それがわからんやつはboostマンセーして人に迷惑かけてもなんとも思ってない馬鹿と同列にしか思わん。
0835デフォルトの名無しさん
垢版 |
2019/06/01(土) 03:16:17.57ID:dks5+XhG
rustを良い言語だと評価してるやつはrustとより酷い言語しか使ったことないんだろうよ、VBAとか
0836デフォルトの名無しさん
垢版 |
2019/06/01(土) 05:14:44.21ID:VD3g6ze/
最初から期待している点は2つ
1つはHaskellで実証されてる、型システムが豊かであることの安全性と利便性をC並みに低レベルな世界に持ち込んで組み込み業界に1石を投じること
もう一つはオブジェクト指向を言語仕様に取り込まなくてもオブジェクト指向でやりたいことの大部分は実現可能だと証明して、OOPパラダイムを衰退させること
0837デフォルトの名無しさん
垢版 |
2019/06/01(土) 06:05:33.49ID:uJU0WLe5
とあるツールをcargoでビルドしたら、同じcrateが重複してバージョン違いで使われてて驚いた
そんなのアリなんか

Compiling env_logger v0.5.13
Compiling env_logger v0.6.1
0838デフォルトの名無しさん
垢版 |
2019/06/01(土) 08:29:18.06ID:KcRSy+XU
a crateとb crateがそれぞれ違うバージョンに依存してたらそうなるだろう
アリというかそうじゃなきゃ困るだろう
そうじゃない言語もあるけど
0839デフォルトの名無しさん
垢版 |
2019/06/01(土) 11:57:29.44ID:0jNYUL26
hogehoge-sys みたいな外部のライブラリに依存するcrateだと異バージョン混在できなくてつらい
.soを実行時にリンクする都合上仕方ないのだけど
0841デフォルトの名無しさん
垢版 |
2019/06/01(土) 13:12:39.72ID:l6ZXsdGf
>>836
それ以外の部分がクソ過ぎてやっぱダメだわってなってるのが今
以前はこのスレにRustへの苦言かきこんだらボロクソに言われたもんだが
今では俺以外にもRustはクソって声が増えてる。良い傾向
0843デフォルトの名無しさん
垢版 |
2019/06/01(土) 15:12:11.38ID:6vvLTfZk
まあ使ってみないと本当の意味でダメさ実感できないからな。
実際にさわってみたやつが増えて夢から醒めたんだろw
0845デフォルトの名無しさん
垢版 |
2019/06/01(土) 15:47:56.02ID:gFsX3PNG
これ以上バカを現場に増やさないためにプログラム教育にはビルドって科目も入れるべきだな。
0847デフォルトの名無しさん
垢版 |
2019/06/01(土) 16:20:56.50ID:7xyzPCmu
>>840
それは無理があるんじゃないか?
&で借用が妥当だと思うけど

&は借用の記号と同時に型の情報としての意味も有るはずだから
その点で問題が起きると思うが…
0848デフォルトの名無しさん
垢版 |
2019/06/01(土) 16:33:15.53ID:7xyzPCmu
例えば移動に記号をつけようとすると
T型と&mut T型の変数を移動する際はそれに全部記号を付ける羽目になるぞ
それでも良いのか?
ちなみに&T型は移動ではなくコピーなので除外したがコピーであって借用ではない
>>840はコピーはどうすべきだと思っているが知らないが
コピーにも記号を付けろと言うならさらに面倒なことになる
本当にそれでも良いのか?
0850デフォルトの名無しさん
垢版 |
2019/06/01(土) 17:26:39.90ID:7xyzPCmu
まだ他にも問題はあるぞ
例えば移動をmoveで借用を記号無しにすると
let a = 1_i32;
でaはi32型でなく&i32型になる。なぜなら記号無しは借用だから。
aがi32型になるためには
let a = move 1_i32;
と書かなければならない

さらに言うと
let a = move 1_i32;
let b = a;
let c = b;
でaはi32型、bは&i32型、cは&&i32型となるわけだ

俺はそんなヤバイ言語は使いたくないぞ
0851デフォルトの名無しさん
垢版 |
2019/06/01(土) 17:43:27.50ID:7xyzPCmu
この際に言いたくなったから言わせてもらうけど
時々「俺の方が良い言語作れる」とか言ってるヤツがいて
それに対する反論に「じゃあコンパイラ作ってみろよ」とか返してるヤツいるけど
そもそもコンパイラを作る実力が有るか無いか以前に
言語をデザインすることの難しさを分かってないヤツが多すぎて
コンパイラを作る段階にも至っていないっと思うわけよ
0852デフォルトの名無しさん
垢版 |
2019/06/01(土) 18:30:16.77ID:KcRSy+XU
俺は言語を作るセンスないし他のやつもなさそうだしお前にもなさそうだからこの話題はやめとこな
不毛だからな
0854デフォルトの名無しさん
垢版 |
2019/06/01(土) 19:10:56.29ID:y869pNJN
>>853
ポインタの基本をコピーじゃなくてムーブにしたいからムーブの方を記法的に容易にしたんだし、auto_ptrのセマンティクスの非統一による悲劇を避ける為にムーブに統一したんだよ?
議論の順番が滅茶苦茶だぁ
0859デフォルトの名無しさん
垢版 |
2019/06/01(土) 19:18:22.75ID:7xyzPCmu
>>853
取り敢えず借用を記号無しにするのは無理であることは納得してくれたの?

そして移動はどうするの?rustだと移動も結構しょっちゅう使うんだけど…
例えばBox型とかString型とかVec型とか&mut T型とか…
移動もコピーもどちらも=なのが判りづらいってのは一理有るんだけど、
それらの移動に全てmove等の記号をつけていくのはあまりにも面倒だと思うよ
0861デフォルトの名無しさん
垢版 |
2019/06/01(土) 19:29:50.41ID:97VW9w9Z
>>860
所有権を手放すときに記号つく

>>859
そっちを&にして
右辺値が無名で宙ぶらりんのときはつけないでいいことにしたら
0862デフォルトの名無しさん
垢版 |
2019/06/01(土) 19:36:06.88ID:7xyzPCmu
>>861
そっちってどっち?移動を&にするの?じゃあ借用はどうするのよ?
さっぱり言ってる意味が分からん
てか最初の質問に答えてくれないかな?納得したの?してないの?
0864デフォルトの名無しさん
垢版 |
2019/06/01(土) 19:53:40.68ID:7xyzPCmu
>>863
えぇ…
じゃあ君は借用は記号無し=がいいってこと?
でも君さっき記号無し=はコピーが良いって言ったよね?
0865デフォルトの名無しさん
垢版 |
2019/06/01(土) 19:59:43.17ID:KcRSy+XU
だからやめろといったのに
0867デフォルトの名無しさん
垢版 |
2019/06/02(日) 09:27:14.41ID:rhBrDnBE
変にc++のシンタックスと似るようにしたのは良くないかもな。
moveが基本だったり引数の意味がだいぶ違うわけだから。
0870デフォルトの名無しさん
垢版 |
2019/06/02(日) 13:16:55.27ID:BjQrM5yg
少なくとも所有権の移動は右辺に影響するんだからそっちにも記号がつくべきだった

あと見た目即所有権帰ってくるやつまで&で書くから見づらい
誰に貸していつ帰ってくるのかわかんねー
0871デフォルトの名無しさん
垢版 |
2019/06/02(日) 13:42:33.97ID:y5TRCUBk
2年rust書いてるけど君らのいう分かりにくい、が分らん
フューチャーが分かりにくい、なら抱き合って同意するけど
0873デフォルトの名無しさん
垢版 |
2019/06/02(日) 14:11:16.85ID:5wVPTwba
>>871
分かる。futureはマジで難しいよね
Pin/Unpinまでは辛うじて理解できたんやが、Wakerの方が分からん。
誰かRawWakerVTableの解説してくれ…

でもfutureの難しさはasync/awaitが導入されればそれに隠蔽されるから
利用するだけのユーザーならあと少しの辛抱や
0874デフォルトの名無しさん
垢版 |
2019/06/04(火) 20:27:22.80ID:ih9X5y39
継続的に数年使ってる人は新機能が出たら新機能だけ覚えればいいんだろうけど
初めて触る人はその累積してきた機能全部を掌握するのは無理
0876デフォルトの名無しさん
垢版 |
2019/06/06(木) 12:34:55.73ID:mhFONxQE
rustをシステム系じゃないエンジニア(C++の仕事してない)が使うメリットって何かある?
0878デフォルトの名無しさん
垢版 |
2019/06/06(木) 16:40:28.94ID:S02+RpbC
廃止された機能や推奨されない機能も覚えておく必要がある
特にC++で言えばunicodeの変換(std::codecvt**)が超糞
0880デフォルトの名無しさん
垢版 |
2019/06/06(木) 17:43:00.49ID:S02+RpbC
「誰も使ってなかった」ことも含めて
その累積してきた機能全部(結局全部になるだろうな)を掌握する必要がある訳だろ
0883デフォルトの名無しさん
垢版 |
2019/06/06(木) 20:59:27.87ID:ulk3mDRi
それついたの思いっきりつかってるwww
昔のが商売人の都合で切られてるんだもん
つかうよ
0884デフォルトの名無しさん
垢版 |
2019/06/07(金) 01:20:04.91ID:yhNlt0n8
DX8ですね判ります
0885デフォルトの名無しさん
垢版 |
2019/06/09(日) 09:44:49.12ID:16GRLedz
rustでIDE補完が甘いのは誰も気にしてないんか?
そもそもみんなIDE使ってないんか?
0886デフォルトの名無しさん
垢版 |
2019/06/09(日) 10:53:44.61ID:V8qyq4Ge
yes
yes
0887デフォルトの名無しさん
垢版 |
2019/06/09(日) 11:45:40.10ID:16GRLedz
なるほど
ありがと
0888デフォルトの名無しさん
垢版 |
2019/06/09(日) 12:39:28.24ID:KZPUbdMm
カドカワから月末に訳本の
プログラミング言語Rust 公式ガイドが出るけど2018対応じゃないよね?
Rust本が増えてきたのは嬉しい
0890デフォルトの名無しさん
垢版 |
2019/06/09(日) 17:47:47.78ID:fZX8nJhE
>>888
バカが飛び付いて社内に導入しようとするの潰すの
毎回労力がかかってしゃーないからやめて欲しいんだけどな
クソ言語の本出すの
0894デフォルトの名無しさん
垢版 |
2019/06/09(日) 21:29:03.95ID:Hf+s2B1M
なんで潰すんだ?何に恐れているんだ?
0895デフォルトの名無しさん
垢版 |
2019/06/09(日) 22:35:02.37ID:IWnnOtZA
>>888
TRPLの翻訳だと思うけど
TRPL本家は2018対応済みで、webで公開されてる日本語訳は未対応。
本家に追従して対応した可能性もあるかと。
0897デフォルトの名無しさん
垢版 |
2019/06/09(日) 23:15:43.90ID:Hf+s2B1M
それは言語の所為じゃないだろ
レビューしないの?
しないにしても同じクソでもJavaやC++よりマシだと思うんだが
0899デフォルトの名無しさん
垢版 |
2019/06/09(日) 23:29:34.50ID:KZPUbdMm
>>895
ググったらTRPLでした
ただ紙の原著は2018年発売でRust 2018未対応
紙の翻訳なのか最新のWebの翻訳なのかは不明
0900デフォルトの名無しさん
垢版 |
2019/06/10(月) 19:54:10.24ID:pALnBaZ+
borrow checker通せない人にとってはすべてのコードが読めない糞コードなのだろう
0901デフォルトの名無しさん
垢版 |
2019/06/10(月) 20:09:47.13ID:+pGCakeA
>>897
社内でそいつしか使わないから当然レビューも不能
上の人間も「いいじゃんやってみれば」で話にならない
結果まともにレビュー通ってないクソが本番に出てトラブル
作ったやつは雲隠れ

って流れを見たことあるよ。Rustじゃないけど
0902デフォルトの名無しさん
垢版 |
2019/06/10(月) 21:02:28.09ID:Ii7tq5Jr
もちろん言語のせいではないのだが
そういう輩は実績作りのためだけに新しくてより複雑なクソルールの多い言語を選ぶ傾向にある
0903デフォルトの名無しさん
垢版 |
2019/06/10(月) 21:42:17.89ID:YayWwtn2
ボローチェッカに苦しめられてる人は
なにか他から移植をしようとでもしてるのかな?
ゼロからかくぶんにはボローチェッカなんて
ただただすがすがしいだけと思うけど
チェックご苦労さんですってもんだけど
0905デフォルトの名無しさん
垢版 |
2019/06/10(月) 22:39:55.68ID:ztopQxP/
未知の言語を読むストレスは理解できるけど
一件正しそうなぶっ壊れたロジックを探し当てる方がはるかに辛い
Rustなら完璧だなんて思わないけど同じ条件で雲隠れされるならJavaやCよりはるかにマシ
0906デフォルトの名無しさん
垢版 |
2019/06/10(月) 23:55:35.49ID:Ii7tq5Jr
使いたいだけのバカに限ってRefCell使いまくりとかボローチェックなんか
関係ねーわなクソコード残していくわけだがな。
0907デフォルトの名無しさん
垢版 |
2019/06/11(火) 01:15:48.45ID:l5LeGTtt
結局プンプンの人達は何か言いたいん?
初心者が使ったら他言語より酷いことになるって話?
作り逃げされた時に他言語よりメンテきついって話?
それともrust関係ない話?
0908デフォルトの名無しさん
垢版 |
2019/06/11(火) 02:06:13.82ID:96ANt4tY
>>907
結局どの言語だろうとワナビのキッズが使ってレビューも不完全なら悲惨なことになるし
Rustはそういうワナビホイホイなところがある言語で
キッズを拡散すんのは勘弁してくれってことよ

新しいものの宿命みたいなとこはある
0909デフォルトの名無しさん
垢版 |
2019/06/11(火) 03:49:38.56ID:yYbS6F0N
Rustを使いたいって奴はボローチェッカ最高勢だろ
筋の通らない話だ
0913デフォルトの名無しさん
垢版 |
2019/06/14(金) 09:17:15.61ID:pOVU2Gce
FireFoxでプライベートブラウジングモードにしたら
指定してダウンロードしたページまでブラウザ終了時に消しやがる
しかもfilesはそのままでトップのhtmlだけ

きっとRustの融通の利かなさのせいでこんな仕様なんだ
不条理すぎる
0915デフォルトの名無しさん
垢版 |
2019/06/14(金) 13:20:49.03ID:Nd5NXbWJ
>>913
Rust導入してからアドオンの互換性切るわバグ増えるわシェア1割切るわで
いいところのない火狐
0917デフォルトの名無しさん
垢版 |
2019/06/15(土) 21:37:19.62ID:XPu65rgR
dbっていうか、
OracleとかSqlserverに読み書きするような
アプリはあまり現実的でない?
0918デフォルトの名無しさん
垢版 |
2019/06/15(土) 22:21:29.06ID:fdz2jl5D
なんで?
0919デフォルトの名無しさん
垢版 |
2019/06/16(日) 01:21:02.75ID:fpQlVPtj
オラクルを使う常駐物のアプリを
一個書いたんだけど
プロプラなdb向けだと
crateの充実度的な意味で
大変だったし、保守してけるか
ちょっと不安だったので。
0920デフォルトの名無しさん
垢版 |
2019/06/18(火) 06:17:33.52ID:3nOE2mBA
プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
https://mevius.5ch.net/test/read.cgi/tech/1559872586/

142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
0921デフォルトの名無しさん
垢版 |
2019/06/18(火) 06:59:19.24ID:92piNmQC
cargoの自動ダウンロード機能を使わないワークフローのチュートリアルが欲しい
足りないコードを示してくれるのは助かるけど知らないうちにGPLな奴が混じっていたなんて事態は避けたい
0923デフォルトの名無しさん
垢版 |
2019/06/18(火) 21:04:15.94ID:d5A36Be/
パッケージで
依存するパッケージたちの実行可能な環境やライセンスやインストールサイズをパッケージインストール前に分かったりしない?
0924デフォルトの名無しさん
垢版 |
2019/06/18(火) 23:05:26.62ID:LxDQxmkL
>>923
実行環境以外はcrates.ioのAPIから取れるみたいだから可能は可能。
ツールになってるものはぱっとは見つからなかったけど
jsonパースしながら依存関係辿るだけだし適当に作ればいいのでは。
0926デフォルトの名無しさん
垢版 |
2019/06/19(水) 11:14:57.11ID:8YG5H7yC
考えてみれば当たり前なんだがcargoはrust周辺しか面倒を見てくれない。他に依存するライブラリがあっても関与しない
つまりビルドは出来るが実行出来ないということが起きる。コード次第ではpanicして何が足りないかすら出力されない
ドキュメントに何を用意すべきなのかちゃんと書いていないcrateも少なからずあって不完全なメッセージ片手に探し回る羽目になる
0929デフォルトの名無しさん
垢版 |
2019/06/19(水) 18:55:19.96ID:og0z03zN
馬鹿に説明って難しいよな
0930デフォルトの名無しさん
垢版 |
2019/06/19(水) 19:33:39.71ID:MCVHb8SA
動的リンク
0931デフォルトの名無しさん
垢版 |
2019/06/20(木) 06:07:04.22ID:2x0zcOE9
https://www.itmedia.co.jp/news/articles/1906/19/news060.html

2019年06月19日 07時19分 公開
Firefoxに危険度最高の脆弱性、既に攻撃を確認

Array.popの問題により、JavaScriptを操作する際に脆弱性が発生する可能性がある




これ本当にRustのせいじゃないの?
0933デフォルトの名無しさん
垢版 |
2019/06/20(木) 08:04:12.96ID:3d4Affsm
GPL or LGPLコードに依存せずにSVGをレンダリングできるライブラリってないかな?
resvgが使えるかと思ったら
>librsvg is heavily tied to GNOME, which makes it painful to distribute outside the Linux ecosystem
とか書いてあるくせにgdkやglibを要求してくるようだ
0936デフォルトの名無しさん
垢版 |
2019/06/20(木) 17:17:30.44ID:7bp91DBM
おい!なんだかバズってるfacebookのlibraのmoveはrustで書かれてるらしいぞ!!
0937デフォルトの名無しさん
垢版 |
2019/06/20(木) 18:35:24.47ID:7bp91DBM
すまん別にバズってはなかった
0938デフォルトの名無しさん
垢版 |
2019/06/20(木) 19:48:51.60ID:+KLWbCjB
Rustが脆弱性の原因になると宣伝がパーになるから
あっちこっちでC++のせいにする小細工が行われております
0942デフォルトの名無しさん
垢版 |
2019/06/20(木) 20:35:29.73ID:iAGTq6ne
さっぱりわからん
範囲チェックがどうとかって書いてあるけど
バッファオーバーフロー起こしてたってこと?

まんまC++のせいじゃないの?
0943デフォルトの名無しさん
垢版 |
2019/06/20(木) 20:36:09.76ID:iAGTq6ne
バグフィックスってかいてあるけどこれが脆弱性修正?
なんがんあんだかわからん
0944デフォルトの名無しさん
垢版 |
2019/06/20(木) 21:32:48.19ID:+KLWbCjB
>>939
Rustなら安全に書けるとか言っておいてしっかり脆弱性作り込んだから
これはRustではなくC++のせいだからと火消しに回ってるの
日本語わかる?
0953デフォルトの名無しさん
垢版 |
2019/06/21(金) 08:04:50.41ID:zwirEYdx
どういう経緯で何が起こって開発元は原因は何だとしてるのか
ちゃんと説明しろ
0958デフォルトの名無しさん
垢版 |
2019/06/21(金) 22:00:47.70ID:zwirEYdx
それでもFireFoxがいい
軽さとセキュリティの誠実さ
ブックマーク回りはころころ変わってひどいけど
0959デフォルトの名無しさん
垢版 |
2019/06/21(金) 23:52:53.60ID:F6GKmJuz
GoogleやMicrosoftのWebブラウザは十数枚開いただけでメモリ消費がやばいことになる
Mozillaならそんなことない
0961デフォルトの名無しさん
垢版 |
2019/06/23(日) 05:52:27.18ID:PlixDsJK
何ページ?おっちゃんが教えたる
0962デフォルトの名無しさん
垢版 |
2019/06/23(日) 09:03:51.96ID:7oQ4NVSK
実践Rustって、電子書籍版を8インチタブレット(iPad mini)でちゃんと読める大きさ?
前に出たRust本は余白カット表示してギリギリって感じだった
0964デフォルトの名無しさん
垢版 |
2019/06/23(日) 13:00:06.41ID:xLLf8ygu
>>959
逆だろ
火狐はタブ10個も開けばカクツキ起きるしそれからほどなくしてフリーズ
Chromeはもちろんクソクソ言われてるEdgeすらも
動作の安定面では火狐なんぞには負けん
ちなWin10
0965デフォルトの名無しさん
垢版 |
2019/06/23(日) 14:46:23.23ID:1G/MWnzG
>>960
本のステップで分ける説明より、2→4→8→... と増えていく図を見たほうが分かりやすいと思った

ttps://www.cs.rutgers.edu/~venugopa/parallel_summer2012/bitonic_overview.html
0967デフォルトの名無しさん
垢版 |
2019/06/29(土) 22:20:17.93ID:nCAqicSi
>>966
20~30くらい同時に開くとビジーになるからビジーとフリーズの区別がついてないんだと思う。
0969デフォルトの名無しさん
垢版 |
2019/06/30(日) 12:09:57.07ID:QU2Ls1X6
ffモナ
0971デフォルトの名無しさん
垢版 |
2019/07/02(火) 23:13:32.01ID:FbIiTj7v
Firefoxなら100タブくらい大丈夫だよ。IE、Chromiumでそんな事したら他の作業が出来なくなってしまうけど
実際に比べた上でFirefoxを使っている。開発やっていると開くページがどんどん増える
0972デフォルトの名無しさん
垢版 |
2019/07/03(水) 13:38:17.25ID:aJKbsp3m
ffが大丈夫だと思うのは気のせい
0973デフォルトの名無しさん
垢版 |
2019/07/03(水) 23:03:04.57ID:jXq99Py9
Rust→IR→Cが実用出来るようになるのはいつだ
LLVMが対応していないアーキテクチャでRustを使いたいねん
それともトランスパイラを作った方が早いかなぁ
0976デフォルトの名無しさん
垢版 |
2019/07/03(水) 23:20:30.76ID:SPfaWtwb
524 デフォルトの名無しさん sage 2019/07/02(火) 14:38:03.95 ID:ep8keXko
言語機能の複雑さという代償はあったが
GC無しでリージョン推論を実現したのがRust

記述性のためGCを入れつつも遅延を最小にすべく
GCの性能向上に努めたのがGO

一方vlangの公式によると
https://vlang.io/
> V manages memory at compilation time (like Rust)
https://vlang.io/compare
> - No GC
> That's why the language is so simple

・Rustのようにコンパイル時にメモリ管理される
・Goのように書けるがGC不要
・それでいてRustのような複雑さは無い
・という予定(まだ未実装)

本当にこの通り実現するなら
GoとRustの設計者達にマウント取れるレベル
526 デフォルトの名無しさん sage 2019/07/02(火) 14:59:25.78 ID:ep8keXko
ちなみに自動メモリ管理が未実装なので、以下の記事によると
hello worldやvlangコンパイラ自体もメモリリークしているとのこと
https://christine.website/blog/v-vaporware-2019-06-23
> The compiler itself also leaks memory
531 デフォルトの名無しさん 2019/07/02(火) 18:22:15.31 ID:NqAwj9wC
>>526
www
532 デフォルトの名無しさん sage 2019/07/02(火) 18:59:24.21 ID:8dHuftNb
>>526
あっ・・・(察し)
0977デフォルトの名無しさん
垢版 |
2019/07/03(水) 23:31:44.31ID:EsMPn/2r
>>973
rust2cトランスレータはとっくの昔にあるしとっくの昔にどれも開発止まってる
rust->llvm->c->任意のコンパイラで出来るじゃん。
0978デフォルトの名無しさん
垢版 |
2019/07/04(木) 07:00:47.22ID:oyQSn2Ss
>>974
生ポインタ使えるの?新しすぎるせいからしい情報が見つからんかった

>>977
今出てくるCバックエンドの話って関数レベルで使えれば御の字みたいなのばっかりに見える
プロジェクトレベルで実用に耐えるワークフローがあるなら詳細を知りたい
0979デフォルトの名無しさん
垢版 |
2019/07/04(木) 11:51:58.94ID:NOiQUdad
>>608
横田さん潜伏中に生魚あたってハイタのかな?排他だけに。
なかなかRockだね!Lockだけに。
0980デフォルトの名無しさん
垢版 |
2019/07/04(木) 23:15:23.31ID:EwvcD2Pv
>>978
>プロジェクトレベルで実用に耐えるワークフローがあるなら詳細を知りたい
rustでは見たこと無いね。操作的意味論に基づいて命令列とグルーコードに変換するものばかり。
というかそれ以外は難しいと思う。
0981デフォルトの名無しさん
垢版 |
2019/07/05(金) 01:27:12.64ID:kDhA893Y
>>980
やっぱりそうか、残念。LLVMのバックエンドは作れる気がしないしトランスパイラの方が望みがあるけど
それでもELFのパーサとジェネレータ、変換元機械語のデコーダは最低必要だな
こういうのって処理系やエミュレータ等でしばしば使われるけど、単体のライブラリとなるとx86とかの
有名なアーキテクチャですらなかなかないんだよな
0982デフォルトの名無しさん
垢版 |
2019/07/05(金) 20:56:59.69ID:Mh/7XJmJ
Cと比べたらノウハウ少ないかもしれんけど、LLVMバックエンド作るのってそんなに面倒なの?
LLVM->Cって抽象度上げる方向だし参考になるものがもっと少ない気がする。ecmascriptenくらいじゃない?
0983デフォルトの名無しさん
垢版 |
2019/07/05(金) 21:57:46.40ID:kDhA893Y
>>982
Rust to Cは自分の手に負えそうにないので他力本願です
ググって出てくる情報を見る限り最適化コンパイラを自作できるくらいの理解がないとLLVMの理解とバックエンドの開発は難しそうに感じます
各言語やアセンブラを使える程度の理解では歯が立ちそうにないです

なので機械語 to 機械語(もしくはアセンブラ to アセンブラ)の方がまだ望みがあるかなと
0984デフォルトの名無しさん
垢版 |
2019/07/05(金) 23:46:41.28ID:C+fxCwB0
バイナリ変換ってかなり壮大な研究テーマでは…。
どうしてもLLVMに触れたくないならLLVM-IR to アセンブリを自作するほうがまだましかな。

結局素直に勉強してLLVMバックエンド作るのが一番早いと思うけど。
0986デフォルトの名無しさん
垢版 |
2019/07/06(土) 06:53:43.23ID:xpE3I6/t
>>984
LLVM IRってレジスタ数が青天井ですしstd付きとはいえHello worldですら十数本使っているようです
何処まで増えるのか判りませんがレジスタを数百本使うIRとか吐かれたら何とかなる気がしません

勉強すると言ってもどこから手を付ければいいのか判らない状態ですし最近は相対的にローレベルな
情報自体が減少しています。運良く自分が理解できる資料や教材に巡り会えない限り難しそうです
0987デフォルトの名無しさん
垢版 |
2019/07/06(土) 09:55:08.49ID:zcl3Wfgw
オレオレ → LLVM はレジスタ何本あってもOK
LLVM → CPUネイティブ は良きに計らえ

オレらの仕事は前者
気にすんな
0988デフォルトの名無しさん
垢版 |
2019/07/06(土) 12:04:38.86ID:ZIhPrSwc
そこまで部分の最適化って自分でやらにゃならんし
計算と制約を記述するのに適したその手前までの中間言語ってないじゃろか
Lispとかか
0989デフォルトの名無しさん
垢版 |
2019/07/06(土) 13:45:06.47ID:LdZDcwTE
バイナリ変換ってダブルバッファリング的な事しないと整合性とれねー気がした。
0991デフォルトの名無しさん
垢版 |
2019/07/06(土) 17:36:17.74ID:9tt4vzxp
>>988
レジスタが1〜2本足りないくらいなら使用頻度の低いのからメモリに逃がす方法で何とかなりそうだけど
全然足りない場合全く別の方法が必要そうですが思いつかないです。自分にとっては高度な問題です

Rustと言うかLLVMが吐けてターゲットとの相性が良さそうなアーキテクチャを選ぶ必要があるけどこれも難問かな
IA32/AMD64はメジャーだけど建て増ししすぎでアドレッシングモードとかスーパーカオスだし無駄に命令も多い
ARM7あたりが無難だろうか。分岐処理が特徴的なようだけどRISCの割にレジスタが少なめなのも好条件か
純RISC系は命令セットが単純だけどレジスタが多くてLLVM IRと同じ問題が出てきそう
0992デフォルトの名無しさん
垢版 |
2019/07/06(土) 17:38:47.90ID:LdZDcwTE
キューイングしてガンガン処理して節目でプログラムカウンタを1増やす。とか理想を語る俺。
0993デフォルトの名無しさん
垢版 |
2019/07/07(日) 16:07:05.22ID:4q0rOBDI
2つのvectorの同じインデックスの要素を比較したいときってどうかくのがスマートなんでしょう
0996デフォルトの名無しさん
垢版 |
2019/07/14(日) 21:58:47.03ID:u4tB0f+V
コンパイラチェッカーについて簡潔にまとまっている資料とかないんだろうか
数ヶ月ぶりに触ったらすっかり記憶の彼方だわ
0998デフォルトの名無しさん
垢版 |
2019/07/15(月) 16:19:43.86ID:md6OUoiD
RustってVisual Studio Codeとかでビルドしたりインテリセンスが利いたりするようにならんの
0999デフォルトの名無しさん
垢版 |
2019/07/15(月) 19:12:06.92ID:38cZE3Hm
質問いいですか?∩( ´Α`)
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 352日 16時間 14分 50秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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