1 名前:デフォルトの名無しさん [2018/02/11(日) 20:07:24.54 ID:ri7dLd1B.net] Mozilla発のRust言語のスレ 公式 https://www.rust-lang.org/ https://blog.rust-lang.org/ https://github.com/rust-lang/rust Web上の実行環境 https://play.rust-lang.org 前スレ https://mevius.5ch.net/test/read.cgi/tech/1507970294/
331 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 18:12:43.26 ID:B4Vmqq7H.net] FFIの場合jemallocかシステムのmallocかの違い問題になることありそう
332 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 21:02:25.76 ID:EBEN0Rpp.net] >その場合はRustはハンドルをもらうだけでいかなる操作(メモリの解放(free)も含む)もC FFIでC側に >頼むしかない(メモリレイアウトがわからない限りはRust側ではどうあがいても何も出来ない)ので >Dropトレイト実装してdrop時にC側にメモリの解放処理も頼む必要がある だからDropトレイトを意識的に実装せにゃならんと始めから言ってるだろうに。 このタイプは絶対仕事でモメるわ。
333 名前:デフォルトの名無しさん [2018/04/12(木) 22:43:32.09 ID:JdbozTc/.net] >>322 だったら「Rust側からはメモリレイアウトが分からないようなvoidポインタや オペーク構造体がC側から渡された場合は」という前提条件をきちんと書け。 条件を何も書かずに「drop trait を明示的に書かなきゃならん」とだけ書かれれば 全ての場合で必要だと言っているようにしか見えない。 あと、>>321 で「全く」と書いてしまったことは悪かったと思っている >>321 を書いてる時点は上記のような可能性に気づいていなかった…申し訳ない。 お前みたいに「特定の条件下でしか適用されないこと」に対して条件を書かずに結論だけ書いて 「自分はきちんと伝えた」とか思っちゃってるキチガイとの仕事とかこっちの方から願い下げだから。
334 名前:デフォルトの名無しさん [2018/04/12(木) 22:50:55.21 ID:JdbozTc/.net] >>331 そこは自分も同じことを思った。 mallocとjemallocの実装の中身とか見たことないけど、混在してても問題ないのかな?
335 名前:デフォルトの名無しさん [2018/04/12(木) 22:54:07.42 ID:JdbozTc/.net] >>333 訂正 >>322 → >>332
336 名前:デフォルトの名無しさん mailto:sage [2018/04/12(木) 23:08:05.77 ID:9OO0KoJN.net] >>330 「勝手に」の部分が曖昧だったので正確に書くと、 Rustはメモリ解放すべきタイミングは知っている (すなわちCから受け取ったポインタのlifetimeが切れたとき) Rustはメモリ解放の方法は知らない (なぜならCのmallocがシステムのmallocなのかjemallocなのか別の何かなのか知るすべがないから) なので方法について教えるためにdropを実装する。 (このdropでCのfreeを呼べば、mallocと同じメモリアロケータが保証される) ちなみにメモリアロケータ間の互換性はないので、 例えばlibcでmallocしてjemallocでfreeすると多分SEGVする。 コード例は以下でもどうぞ。 https://stackoverflow.com/questions/31486519/how-do-i-free-a-char-allocated-via-ffi-in-rust
337 名前:デフォルトの名無しさん [2018/04/12(木) 23:35:57.15 ID:JdbozTc/.net] >>336 マジか…mallocとjemallocは混在できないのか… そうなると、C側でmallocされてれば必ずC側にfreeしてもらうしかないということか… じゃあ今まで俺が書いた方法じゃダメなケースもあるじゃん…すまん。 自分の無知を晒す羽目にはなったが、むしろ今知れてよかったわ。 でも、そうなると新たな疑問が…
338 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 00:47:00.07 ID:AYGoZS+y.net] jemallocじゃなくてシステムのアロケーター使うオプションだかfeatureだか使えば良いかな
339 名前:337 [2018/04/13(金) 01:19:50.99 ID:rxyiIXLh.net] >>336 間違いの指摘と情報提供のお礼言うの忘れてた。Thanks! あと、これってRustでのC FFI に限った話じゃないよね? C同士でさえもアロケータに何を使ってるか次第で同じ問題が発生する。 Cは時々使ってたのに(しかも仕事で)これを知らなかったのはヤバいな… 恐らく今まではたまたま同じアロケータを使ってたから問題が起きてなかっただけか… 戻り値で文字列(char *)が来た時とかこっちで勝手にfreeしてたぞ…(^_^;) まあ、どのアロケータ使ってるかなんて誰も気にも留めてなかったし大丈夫だろうけど、 今後は気を付けないとな…
340 名前:デフォルトの名無しさん [2018/04/13(金) 01:26:39.63 ID:V+3RqgGh.net] すべての有用なライブラリがRust製にならない限り Rustだけを学べばよいという状況は訪れずCやC++の習得も必須
341 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 02:09:57.24 ID:zBD4nIN6.net] >>339 どういたしまして。 C同士の場合は普通glibcへの動的リンクだし LD_PRELOADとかでjemallocなんかに差し替えても プログラム全体で差し替わるから特に問題にはならないかと。 もしメモリアロケータを静的リンクしたライブラリとかを使っていればまずいはず。 ただそういう場合はリソースハンドルっぽいAPIになりがちなので そのままfreeしようとは思わないかもしれない。
342 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 02:17:49.88 ID:I2PL3qG3.net] >>340 そりゃそうだろ、なにいってんだ
343 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 02:33:17.17 ID:nqEsOLBj.net] やくに立たねー結局cか。rustって趣味だな。
344 名前:デフォルトの名無しさん [2018/04/13(金) 04:00:10.77 ID:V+3RqgGh.net] C/C++だけ覚える or RustとC/C++を覚える 学習コスト高すぎRust
345 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 10:22:17.48 ID:w0WUHq34.net] >>343 趣味でモジラの栄養やるとかどんなドマゾだよ
346 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 10:26:05.50 ID:w0WUHq34.net] 今の会話見るだけでもRustがいかに欠陥言語かわかるのに それでもRust使うって言うんだからなあ 全部C/C++で書く方が遥かに効率いいしバグも出んわ
347 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 11:29:35.51 ID:EHHg9a+/.net] C覚えるの必須当たり前ってんなら構文もっとC系に寄せれば良かったのに。
348 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 12:06:18.44 ID:ybbP8EF+.net] 今までの流れからその結論は極端すぎるだろ もう少し工夫しろ
349 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 12:27:54.41 ID:zH6rmEat.net] いつのまにか、FFI使うことが前提になってる流れって、rustをdisりたい勢の必死さがうかがえて、ある意味、面白い。
350 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 12:52:00.31 ID:Lj3R2dXy.net] >>339 CのfreeはNULLなら何もしないと保証されてるけど 解放済みアドレスへのfreeはセグフォ発生するぞ
351 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 13:00:11.55 ID:w0WUHq34.net] Cの資産に寄生しないとろくなもん作れないのに そのCとの連携部分が腐ってるってことじゃん 使いもんにならねえって評価は妥当だと思うが? それともPure Rustでまともなもん作れるつもりか?
352 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 17:38:51.06 ID:l4JsQkL9.net] まずまともなもんを先に定義してくれ
353 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 18:09:45.57 ID:Z44eD8et.net] バグらない 動く 実用的 上記3点の実績がある
354 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 18:37:13.42 ID:rxyiIXLh.net] 実用的・実積も曖昧だな どの程度を実用的で実積があると呼ぶのか具体例を提示してくれ 突き詰めていくと「バグらない」も程度によりけりだしな Excelだってバグるときゃバグるし…
355 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 18:48:56.96 ID:lEd4ahw7.net] 本スレは相変わらず過疎だしまじ終わったなこの言語
356 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 19:00:16.55 ID:vyE43Z1D.net] 話に入れないからって「………結局駄目!」ってダサすぎない?
357 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 19:21:19.79 ID:EHHg9a+/.net] jsのファミコンエミュレータをrustで実装し直したらパフォーマンス負けたらしいwww
358 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 19:27:43.59 ID:a8AOaj4F.net] >>357 JSに負けるとか草しか生えんなwwwwwww
359 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 19:31:48.55 ID:a8AOaj4F.net] >>354 Linuxくらいバグらないならいいよ
360 名前:デフォルトの名無しさん [2018/04/13(金) 20:22:47.30 ID:rxyiIXLh.net] >>357 噂に尾ひれがつく瞬間を目の当たりにして草 多分これ↓のことだろ blog.bokuweb.me/entry/2018/02/08/101522 誰かC x wasmで書き直してみろよ。きっと似たような結果になるから >>359 ついにLinuxと同レベルじゃないと認めないとか言い始めたぞ…
361 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 20:58:47.99 ID:Ek+y1xD6.net] >>357 ,358 ブラウザ JS版 Wasm版 Chrome 63 4.36ms 5.68ms Firefox 58 5.76ms 3.98ms Safari 11 9.98ms 4.21ms う〜ん草しか生えんね 草草草の草ァ!だね
362 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 21:29:03.20 ID:a8AOaj4F.net] >>361 wasmじゃなくてRustと比べてから言えよ
363 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 21:40:19.55 ID:Ek+y1xD6.net] >>362 草しか生えんわwww
364 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 22:58:07.23 ID:LXloKsM4.net] まあメモリの管理モデルが違う言語同士でやりとりすれば 色々苦労するのは当たり前なんだよね。 それなのに「rustは勝手に解放してくれる」とか言い張っちゃう信者が有害な訳だよ。 rustが悪いというよりか、こういう馬鹿が多いところが問題。
365 名前:デフォルトの名無しさん mailto:sage [2018/04/13(金) 23:04:17.07 ID:bso+BPDq.net] Haskellは副作用が無いとか参照透過性があるって言った時に C FFIを持ち出して反論するのと同様の不毛さを感じる
366 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 07:00:49.94 ID:xdB8fLqn.net] 不毛?現実によくあることなのにね。。 言語の一番下ではアセンブラが動いてるんだから、そことどう調和もしくは隠蔽させるかってのは コンピュータ言語にとって本質でしょうが。
367 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 07:18:52.94 ID:S65yHOqM.net] は?何で一番下が機械語じゃなくてアセンブラなの馬鹿なの?
368 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 09:16:33.44 ID:/jFvD9M/.net] コンピュータ言語w
369 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 11:34:49.77 ID:+NzeE6vg.net] アセンブラと機械語は1:1で訳せるから…
370 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 11:47:39.37 ID:oZ68B8i3.net] アセンブリやろ
371 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 13:58:04.39 ID:dXnZwWyG.net] 結局Rustはサーバ向けでもコマンドツール向けでもGUI向けでも組み込み向けでもない って事実はほんと覆らんよ
372 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 14:12:11.55 ID:9z5cq9ls.net] 話に入れないからって「………結局駄目!」ってダサすぎない?
373 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 14:55:11.55 ID:42ccGSN6.net] jsのファミコンエミュレータをrustで実装し直したらパフォーマンス負けたらしいwww
374 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 15:21:13.70 ID:TDyE7icd.net] >>372 悔しかったら反論してみたらぁ?
375 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 15:23:55.88 ID:xdB8fLqn.net] >>372 メモリ管理みたいな重要なことについてデララメ振りまいて、 「理解しない奴がrust批判してる」とか言い出してる方が恥ずいわ。
376 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 15:34:36.03 ID:TDyE7icd.net] 上の流れ素直に読んでも、 メモリ管理も全部C側で完結させるのが一番いいって結論にしかならんぞ? Rustのいいところなんぞ皆無だ
377 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 15:44:33.95 ID:TDyE7icd.net] というかコンパイラにメモリ管理任せるのが無理だろ。FFIのためにいちいちDrop定義するとか非効率でしかない メモリ管理はGCに任せるか完全手動にするかの二択なのに、無理矢理そこにヘンテコリンなソリューションもどき持ち込んで混乱引き起こしてるだけじゃん
378 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 15:50:41.81 ID:TDyE7icd.net] Rustの提案するエセソリューションは機械語のレベルと相性が悪い CやC++のほうがまだまともなアプローチしてる
379 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 15:53:50.88 ID:LmbQudMt.net] >>377 うおっ! ここにきてまさかのRAIIを否定し始めるとか予想外すぎたわ! お前C++のスマポってなにか知ってる?
380 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 15:55:07.64 ID:TDyE7icd.net] >>379 ほとんどのコンパイラで採用されてない仕様書上にしかない機能なんざ知らんよ
381 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 15:58:27.76 ID:TDyE7icd.net] 実際混乱引き起こしてるまともじゃない方法なのは上の流れで自明だろ
382 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 16:02:24.43 ID:LmbQudMt.net] >>380 よろしい。そんな君にはJavaがおすすめだ。そっちで元気にやりたまえ。
383 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 16:05:01.76 ID:75zALjkM.net] 以前も言われてたけど「ひまわり学級の子が普通の授業に出て暴れてる」って表現が実に的確で草
384 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 16:07:01.72 ID:TDyE7icd.net] 間違ったものを間違った奴が流行らせようとしてるんだからそれには「違う」って言っとかないとダメだろ 話にならんと放置したらいずれ手遅れになるほど蔓延する そうならないうちに叩いておくべきなんだよ
385 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 16:10:39.48 ID:w273LxVR.net] 混乱引き起こしてるのは違いないけどさ 「俺の頭の中で混乱を引き起こしてる」って正確に書こうよ
386 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 16:11:44.32 ID:TDyE7icd.net] >>385 上のFFI絡みの流れは俺じゃないけど?
387 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 16:15:30.43 ID:w273LxVR.net] 完全手動でメモリ管理するのは混乱起きないからいいよね〜
388 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 16:21:52.10 ID:TDyE7icd.net] >>387 コンパイラに丸投げするよりは良いな 混乱しないって意味だとGCが一番だが
389 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 16:27:01.78 ID:nFvlFlcl.net] >>375 上のやり取りは俺じゃないけど? 散々間違いがあったら指摘してくれって書いてたのがデタラメを振りまいた? 間違いの指摘に礼を言って終えるところに、鳴りを潜めていたアンチがウキウキで「混乱を引き起こしたRust!!!」と喚き立てた このスレでも何回もやってる流れじゃんクソダセー
390 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 16:38:44.62 ID:TDyE7icd.net] はいはい内ゲバですね ほんとくだらん言語
391 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 16:43:14.18 ID:nFvlFlcl.net] >>390 内にいるつもりなんだお前
392 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 16:44:00.69 ID:nFvlFlcl.net] インタプリタへの丸投げ>完全手動でメモリ管理>コンパイラへの丸投げ 実行開始までの混乱しない順だなどう考えても
393 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 16:47:43.87 ID:TDyE7icd.net] >>391 外から内ゲバ眺めてやっぱこの言語くだらねって思ってるだけ C++の(後方互換維持のための苦しい構文追加以外)なにが悪いんだか
394 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 17:00:21.56 ID:LmbQudMt.net] >>393 スマポが何かを知らないヤツがC++を語り始めたぞ…
395 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 17:00:54.52 ID:nFvlFlcl.net] >>378 ていうかこれ知りたい Rustの何が(例:MIR)どう機械語との相性が悪く それに対してC/C++のまともなアプローチの具体例を教えて
396 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 17:03:21.15 ID:LmbQudMt.net] >>395 代弁してやろう。 「自力で頑張る」 以上
397 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 17:17:27.65 ID:TDyE7icd.net] >>395 結局解放処理は自分で書くんだろ? メモリ上の確保のされ方はコンパイラにはわからないんだから 結局中途半端にしか自動化できないから無意味で、それなら自分で管理した方が結果的に良いって話
398 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 17:24:46.46 ID:Syz4zWn3.net] 解放の仕方を実装したら、後はコードのどの場所で何回確保しても自動で解放される事が分かってないっぽいね
399 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 17:31:29.95 ID:LmbQudMt.net] >>398 だってRAIIもスマポも知らないんだもん。しょうがないじゃん
400 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 17:34:05.03 ID:nFvlFlcl.net] >>397 C FFIとかの一部分で解放処理を書くんだよ お前が言ってる通り「手動」だしお前の好きな「手動」でよかったな 中途半端にとは言っても機能するし「無意味」と言い切るには典型すぎる誤謬 で>>395 にまともに答えてくれる?どう相性が悪いの?どんなアプローチ?
401 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 17:50:25.61 ID:TDyE7icd.net] >>400 今の説明でわからんなら一生わからんよ
402 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 17:56:25.03 ID:LmbQudMt.net] >>401 あっ! 逃げたww
403 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 18:04:42.44 ID:nFvlFlcl.net] Q. Rustの何がどう機械語との相性が悪く、それに対してC/C++のまともなアプローチの具体例を教えて A. 結局中途半端にしか自動化できないから無意味で、それなら自分で管理した方が結果的に良い Rustアンチ君との最後のやり取りがこれなのか…?悲しい
404 名前:デフォルトの名無しさん mailto:sage [2018/04/14(土) 23:45:32.28 ID:lczq2IdA.net] いい加減ワッチョイスレに移動しようぜ
405 名前:デフォルトの名無しさん [2018/04/14(土) 23:54:45.22 ID:LmbQudMt.net] >>404 実際問題ワッチョイは過疎る
406 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 03:16:54.39 ID:8wseEBgk.net] >>404 YOUがワッチョイのほうで話題ageれば
407 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 09:21:32.45 ID:eccSQZbu.net] ここはネタスレだからこれでいいよ まともな話題ないし
408 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 10:16:53.40 ID:pCFT19cL.net] ワッチョイは運営が管理を放棄するための口実
409 名前:デフォルトの名無しさん [2018/04/15(日) 10:33:02.44 ID:E1b18XLI.net] ワッチョイあった方が良い派です
410 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 11:32:28.09 ID:fK7P6CAL.net] いちおう指摘しておくと以下にわっちょい付きのスレはある。 https://mevius.5ch.net/test/read.cgi/tech/1514107621/l50
411 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 14:26:16.16 ID:WuS7UUJE.net] そう思うんなら勝手にそっちでやってくれ いちいちこっちに宣伝しないでよろしい
412 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 14:57:22.17 ID:eccSQZbu.net] せめてスレ立てたやつくらいはあっち書き込んでくれよ。 ワッチョイスレ(本スレ)には俺しかいない。
413 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 15:05:21.27 ID:6SePuRaV.net] 人が集まってる(勝ち残った)方が本スレ
414 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 16:17:50.87 ID:vLrea5+q.net] アンチスレの方が人多いっていい加減認めようぜ
415 名前:デフォルトの名無しさん [2018/04/15(日) 20:40:55.33 ID:oxsxYGoa.net] >>414 いちおうアンチスレも存在するんだぜ mevius.5ch.net/test/read.cgi/tech/1509028624/
416 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 21:13:20.51 ID:0BluVJwA.net] >>384 大元に言わないで、ここでグダってる時点で説得力無いけどな。
417 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 09:16:50.73 ID:fU1aO3Gb.net] 英語で説明する気力がないんだろ
418 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 15:59:38.16 ID:GAOK2TS0.net] それもあるが日本語の記事でrustマンセーしてるやつは大抵バカっていうのもある。
419 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 18:22:00.01 ID:u/5OPPGG.net] 会話になってないし 時間おいたところで>>395 に答えなくてもいいことにはならないからね
420 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 12:28:50.40 ID:fDht+F2y.net] もう答えた >>397
421 名前:デフォルトの名無しさん [2018/04/22(日) 15:34:45.59 ID:4jEar62+.net] 自分から「機械語のレベルと相性が悪い(>>378 )」と言ってるのに 「具体的にはどういうこと?(>>395 )」と聞かれて、 その返答(>>397 )に機械語のことが一切出てこないのは流石に草
422 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 20:55:11.63 ID:jr6NU+gW.net] 英語で説明する以前に日本語でのコミュニケーションに難ありなのか 日本語ネイティブじゃない方なのかな
423 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 22:58:46.99 ID:lYpO0H1A.net] 機械語との相性のいいC,C++のソリューションって、機械語バイト列を関数ポインタにキャストして呼び出すとかじゃないの? そんなことRustでできるようになって欲しくはないな。
424 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 23:13:49.80 ID:KagmHCpN.net] できるよ 推奨してないけど
425 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 00:45:39.39 ID:Fi1E6adA.net] JITとかそういう用途?
426 名前:デフォルトの名無しさん mailto:sage [2018/04/24(火) 00:26:37.67 ID:IHcLIR+Z.net] rustで書かれたjitなかったっけ? ところでrustで書かれたウィルスとかマルウェアとかないよな。 goならMiraiで使われてたけど。
427 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 21:30:01.00 ID:Tx6nrcMv.net] C/C++の弱い型付けによるキャストは機械語と関係ないだろ Rustは強い型付けしか原則許してなくてunsafe使えば弱い型付けも出来るけど好んでする必要性はないよねー プログラミング言語と機械語の間はC/C++もRustもLLVM IRで仲介されてるから、どっちかだけが相性良いとかなさそう LLVM IRじゃなくGas仲介するとこう違うんだよ、くらいの反論を期待してみるテスト
428 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 23:30:19.86 ID:AfC0onIC.net] >>427 フロントエンドの話してるのに、バックエンドがLLVMだから違いなどない!は、おかしいのでは? そんなこと言い始めたら、言語仕様の優劣など語るに値しないということになってしまう。
429 名前:デフォルトの名無しさん mailto:sage [2018/04/27(金) 23:43:23.39 ID:MR18u0zM.net] >>427 Any使ったdowncastはunsafeじゃないけどどういうコードの話してんの?
430 名前:デフォルトの名無しさん mailto:sage [2018/04/28(土) 16:19:50.16 ID:6S6rcsk3.net] このRustのチャットみたいなのって公式のもの? https://gitter.im/rust-lang/rust
431 名前:デフォルトの名無しさん mailto:sage [2018/05/01(火) 14:27:18.61 ID:riKaEN0n.net] rustでフォントをレンダリングしたいのですがfont-rsやfreetypeなどの設定逆引き的なサイトってありませんかね? チュートリアル的なサイトは見つかるのですがそこから突っ込んで使用したい場合に参考になりそうな情報がみあたらないです レンダリングされる線を任意の幅にしたいです 極細フォントを使って線幅1ピクセル×2=計2ピクセルでアンチエイリアス無しみたいな感じの結果が欲しいです
432 名前:デフォルトの名無しさん mailto:sage [2018/05/01(火) 14:37:54.06 ID:riKaEN0n.net] 具体例を補足します 出力が2値の場合に普通にレンダリングした物を減色してしまうと線幅の不均一になったりディザが掛かってしまって 表示品質が極端に悪くなってしまうのでそれを防止したいです たとえば「田」みたいな字をレンダリングして減色するとある線は1ピクセルだけど別の線は2ピクセルになってしまったり 交わるところに不要なドットが出現したりします それを全て任意の線幅に統一したいです
433 名前:デフォルトの名無しさん mailto:sage [2018/05/01(火) 14:58:24.50 ID:8Qa5eQjM.net] ここはアンチスレなので、まともな質問はslackへどうぞ
434 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 04:26:15.76 .net] えぇ。。
435 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 04:45:47.66 ID:JZRYx+4v.net] https://rust-jp.herokuapp.com/ rustのslack ↓のサービス使ってオープンにすればよい slackarchive.io 👀 Rock54: Caution(BBR-MD5:b95868ef2c0ed5e765a4d10ada4cf289)
436 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 11:08:56.76 ID:C2OG+VM0.net] Rustってカルトみたいなもんだよな 実態はスカスカで教祖の金儲けに使われてるだけなのに、信者は正義と信じて疑わない辺り slackなんて内輪の集会に逃げ続けて表の評価に曝されることを避けてる時点でまともなプログラミング言語じゃない
437 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 11:13:07.30 ID:9TOinEtH.net] >>436 Rustの提案するエセソリューションは機械語のレベルと相性が悪い CやC++のほうがまだまともなアプローチしてる
438 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 11:39:02.32 ID:C2OG+VM0.net] >>437 お前はさっさとその答え教えてくれよ Rust批判するにしてもコンピュータの知識皆無すぎるわ。批判側がお前と同じ知的レベルに見られるのがクソ
439 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 11:55:03.24 ID:9TOinEtH.net] >>438 へー今日はたくさん書き込むつもりなんだ
440 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 12:31:00.89 ID:ZVrvL9q8.net] こちらはまともなアンチとキチガイアンチのスレになります。
441 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 12:53:31.01 ID:vKwn9vOL.net] いやどっちもキチガイだから
442 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 12:58:01.18 ID:vKwn9vOL.net] >>436 表の評価(2ch)wwww
443 名前:デフォルトの名無しさん mailto:sage [2018/05/02(水) 20:38:46.50 ID:Ua9w95BC.net] 少しずつRustの研究が出てきたね ttps://arxiv.org/abs/1804.10806
444 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 01:12:08.40 ID:Sirn7AO1.net] win10 rs4にしてからrustdocが遅い。 rs4にMeltdown/Spectre対応のパッチも含まれてたんだろうか。
445 名前:デフォルトの名無しさん [2018/05/03(木) 02:54:28.33 ID:Rj4yBmSF.net] Rustを導入している企業・組織の一覧をご覧ください https://www.rust-lang.org/ja-JP/friends.html
446 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 08:55:22.99 ID:4wWpk2nD.net] Windows defenderが動いてるとかでは
447 名前:デフォルトの名無しさん mailto:sage [2018/05/03(木) 12:04:38.70 ID:y3R7schb.net] 少なくとも5chではgoよりrustの方が盛り上がってるな。
448 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 01:41:55.63 ID:jFUdx6HI.net] impl traitはよ
449 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 21:29:46.74 ID:RGDg6ogT.net] パフォーマンスとマルチスレッドを理由にRustを採用という事らしい https://logmi.jp/282807
450 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 22:15:52.43 ID:W4Ax9FiD.net] ドワンゴといい、ヤバい会社の指標としていいねw
451 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 22:23:27.27 ID:T0pMALEX.net] 機械語のレベルと相性が悪いしなw
452 名前:デフォルトの名無しさん [2018/05/08(火) 22:26:07.82 ID:EnN/pyur.net] >>450 >>445 これでもそんな知恵遅れみたなこと言うの?
453 名前:デフォルトの名無しさん mailto:sage [2018/05/08(火) 23:31:08.80 ID:W4Ax9FiD.net] 同じリストを他言語でも作ってみたら? どれだけバカなこと言ってるかわかると思うよ。
454 名前:デフォルトの名無しさん [2018/05/08(火) 23:52:08.90 ID:EnN/pyur.net] ああそりゃ分かるだろうね、是非作ってみたまえよ
455 名前:デフォルトの名無しさん mailto:sage [2018/05/09(水) 00:11:01.28 ID:ZcDO5kt6.net] >>449 謳い文句通りの「速度とマルチスレッド」で選んだら後でめんどくさいよ。 MIRの導入もなかなか成果出てないし、同期はセマフォ/ミューテックスしかなくて javaみたいに高レベルから低レベルまで自分で書けるわけじゃないし、 non blocking ioも、lock free collectionもなくて外部ライブラリへの依存度が極めて高いし、 cargo腐ってるせいでrustのtooling絡みのissueが日に日に増えるし。 rustの良いところは言語の部分だからコアな機能使わないなら他言語のほうが良い。 土方の要求には合わないでしょ。 それよりimpl traitまだー?
456 名前:デフォルトの名無しさん [2018/05/09(水) 00:44:09.86 ID:D/4RZNTl.net] 間も無くなんだから静かに待ってなさい
457 名前:デフォルトの名無しさん mailto:sage [2018/05/09(水) 08:29:25.33 ID:SINErtCB.net] >>449 これってgoでは無理だったんかね? 単純に趣味の問題?
458 名前:デフォルトの名無しさん mailto:sage [2018/05/09(水) 13:55:28.84 ID:9bmRNzTn.net] goって言語仕様でマルチスレッドによるデータレースを起こさない仕組みってあるの? 無かったらその部分が大きいのでは?
459 名前:デフォルトの名無しさん mailto:sage [2018/05/09(水) 15:04:31.38 ID:bH4TOh4o.net] goはchannel経由にすれば自動的にアトミック mutex部分が隠ぺいされてるので意識する必要が無い
460 名前:デフォルトの名無しさん [2018/05/10(木) 01:52:41.29 ID:8hhZ9q5s.net] むしろrustがなぜチャネル的なもの入れなかったんだ?
461 名前:デフォルトの名無しさん mailto:sage [2018/05/10(木) 02:11:20.77 ID:71z1/J2u.net] 標準にも外部crateにもいっぱいあるだろ ライブラリとしてではなく言語仕様としてという意味か?
462 名前:デフォルトの名無しさん mailto:sage [2018/05/10(木) 10:12:22.36 ID:sqBEyANZ.net] >>459 言ってることがよくわからんメモリ共有は基本的にmutexみたいな物はついてない気がするけど。基本的にchannel経由で情報交換しない方針にすれば データ競合は防げるって話では? rustってデータ競合がコンパイル時点で防げるって意味がわからん。 そんなことがかのうなん?
463 名前:デフォルトの名無しさん mailto:sage [2018/05/10(木) 10:16:06.63 ID:sqBEyANZ.net] >>462 X 基本的にchannel経由で情報交換しない方針 ○ 基本的にchannel経由で情報交換する方針
464 名前:デフォルトの名無しさん mailto:sage [2018/05/10(木) 10:17:49.30 ID:sqBEyANZ.net] >>463 詳細はこちら Goでスレッド(goroutine)セーフなプログラムを書くために必ず注意しなければいけない点 https://qiita.com/ruiu/items/54f0dbdec0d48082a5b1
465 名前:デフォルトの名無しさん mailto:sage [2018/05/10(木) 13:22:21.00 ID:MOe7VLfi.net] 数十GBのオブジェクト管理は、gc待ちきついからオフヒープでとか、(これ聞いたときよりgcは良くなってる) goroutineで確保したメモリは解放せずgoが管理するから、常駐で同時に大量に走ると解放されないとかはあるみたい。
466 名前:デフォルトの名無しさん mailto:sage [2018/05/10(木) 13:35:12.76 ID:71z1/J2u.net] >>462 それが売りの一つなんだから当然出来る 具体的にはこれでも読んでくれ https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/concurrency.html
467 名前:デフォルトの名無しさん mailto:sage [2018/05/10(木) 18:25:01.25 ID:0Uo+Yl5e.net] 以下の場合に&*fで具体的にどうなってるのかが分からない *でderefされてトレイトオブジェクトの実態になって、&を付けることで再度トレイトオブジェクトになってる? ちなみにexec(f.deref())だとそのまま通るけど、これはBoxのderefが&Tを返すからだよね? *だとBoxのderefで返った&Tではなく、さらにderefされてTが返っているってこと? fn create() -> Box<Fn()> { Box::new(|| println!("test")) } fn exec<F: Fn()>(f: F) { f() } fn main() { let f = create(); exec(&*f); }
468 名前:デフォルトの名無しさん [2018/05/10(木) 21:37:45.30 ID:r2ZBYv9N.net] Derefを実装した型に対しての*xは*x.deref()の糖衣構文 つまり、&*xは&*x.deref()と同じで、それはつまり、x.deref()と同じ
469 名前:デフォルトの名無しさん mailto:sage [2018/05/10(木) 22:16:14.49 ID:0Uo+Yl5e.net] なるほど *x ==x.deref() って言う認識だったのが間違ってたのか ありがとう
470 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 02:06:23.28 ID:6a2pRrds.net] impl trait来たな
471 名前:デフォルトの名無しさん [2018/05/12(土) 14:27:50.20 ID:CbmhA0Cx.net] きた
472 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 08:56:23.29 ID:+8ra2A+L.net] 久しぶりにRustやろうと思ったけど公式リファレンスが最新版に追いついてないのな どっかに変更履歴のまとめとか無いのかな
473 名前:デフォルトの名無しさん [2018/05/14(月) 12:00:52.07 ID:fAXXTBeo.net] >>427 公式リファレンスって何のことを指してるんだ? APIリファレンスならきちんと最新版に追従してるし、 チュートリアル(The Book)も2nd Editionがきちんと出てる バージョンアップの追従ならリリースノート見るかRustの公式ブログ見れば大体分かると思う Rustは6週間に1回のハイペースでマイナーバージョンアップ繰り返してるから The Bookのほうは最新版に追いつくこと自体がほぼ不可能だと思うけど (つい最近もimpl traitがstable化されたばっかりだし…)
474 名前:デフォルトの名無しさん [2018/05/14(月) 12:06:29.06 ID:fAXXTBeo.net] >>473 間違えた X >>427 ○ >>472
475 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 21:32:55.87 ID:+8ra2A+L.net] そのimpl traitが気になってまたRustやろうと思ったんだけどね 全機能の索引みたいなのがないと学習効率が落ちる
476 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 09:49:24.40 ID:iDnHcMfd.net] rustって生産性高い? 安全性が高まって結果的に高くなるということではなくね やっぱでかいプログラムじゃなきゃ使う効果ない?
477 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 10:44:40.51 ID:eZl7hMvh.net] Javaでnull参照が10億ドル単位の損害と言われてるので RustはJavaより10億ドルほど生産性が高い
478 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 11:16:01.90 ID:mMzQfbWV.net] まあ、ネタにマジレスになるが、 その論法だと俺の未完成言語は誰もバグを生み出してないので Rustより生産性が高いなw
479 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 11:48:49.35 ID:UfgM043o.net] >>478 分母分子共にゼロなので計算不能ってやつね。
480 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 14:42:41.57 ID:5Q9GbdJl.net] チーム開発に良さそうな気がするけどメンバーのレベルにかなり依存しそう
481 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 15:12:36.48 ID:xSjwlbqQ.net] 自分がGCなしの言語使ってた時の経験だと、ヌルポより、freeした後にアクセスするバグの方が多かったから、オーナーを一つにするrustはいいと思う。 まあ、objective-cのARCでいいじゃんとも思うけど。
482 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 15:31:36.59 ID:eZl7hMvh.net] そこでoptionalですよ こいよ継承クラス、ポリモーフィズムなんて捨ててかかって来い! 実際、null非許容のポインタが欲しい
483 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 15:59:25.11 .net] 誰がヌルポなんか 、ヌルポなんか怖かねぇ!
484 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 16:39:48.45 ID:l6lckqvi.net] C#だとぬるり
485 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 19:10:55.29 ID:eQ6djlVW.net] C#の発想元はJavaよってC#もぬるぽ(意味不)
486 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 23:47:12.62 ID:STJHYINb.net] 1.27.0-nightly (2f2a11dfc 2018-05-16)がregressionしとる。 issueある。待つヨロシ。 >>427 ,473 the rust referenceのことじゃね?the bookとは別にあるだろ。 全然追いついてないよアレ。そもそもまだ仕様書がない言語だし。 " best-effort document"って書いてあるでしょ
487 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 23:04:38.08 ID:e1n+oPRU.net] httpサーバでありかつクライアントであるみたいなプログラム書く場合、現状hyper一択なのかね? acitx-webとか誰か使ってない?
488 名前:デフォルトの名無しさん mailto:sage [2018/05/19(土) 02:24:33.88 ID:1CYkmYAx.net] 最初rocketで書いてたけどactix-webで書き直してる 今だとactix-webが一番良い感じだと思う 必要に応じて同期、非同期、アクターモデルと使い分けられるし
489 名前:デフォルトの名無しさん mailto:sage [2018/05/19(土) 22:00:56.80 ID:o9r1YzQK.net] >>488 良い感じか。使ってみるか。ありがとう
490 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 01:20:45.09 ID:RRIpR+v2.net] https://github.com/rust-lang/rfcs/pull/2444 有志「クソ機能入ったのいらねえから消そうぜ」 大勢「いいな!賛成」 独裁開発チーム「もう入ったから消せませーーーーんwwwwww(クローズ&ロック)」 systemdかよって
491 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 03:14:02.94 ID:V0Z2NuNB.net] >>490 もう入ったから消せませんってのは横暴なようにも見えるがしようがないとも思う 一度入れてしまった機能をまた使えなくするとか、それこそ混乱するし… そもそも何故impl trait を引数の位置にも書けるようにしたのかは確かに甚だ疑問ではあるけど… 引数の位置でジェネリクスとトレイト境界じゃなくてimpl trait じゃないとダメなケースとかある? 無いなら、warning出してジェネリクスとトレイト境界に書き直すように促すのが妥当じゃないかな?
492 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 07:29:53.45 ID:chu47WW7.net] 例があるけどすっきり書きたいみたい https://github.com/phaazon/rfcs/blob/undo-universal-impl-trait/text/1951-expand-impl-trait.md
493 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 10:44:20.66 ID:KWn7zjxF.net] こういうところでマウンティングとらないといけない辺り 言語(笑)開発チームとやらも内情はどうなってることやら
494 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 11:19:22.58 ID:2AZG2/zg.net] たしかにどっちで書くべきかよくわからんくなった
495 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 12:46:35.30 ID:wx8WkS/n.net] <T: Trait> foo: T と foo: &Trait との比較で特殊なケースを除き前者の方が効率良いが syntax上後者の方が簡単なので 初心者が誤って後者を使ってしまうケースがあった これを防ぐためにimpl Trait および &dyn Traitを導入し &Traitをdeprecateすることになった
496 名前:デフォルトの名無しさん [2018/05/23(水) 19:22:54.70 ID:Au5e7VGg.net] 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 D49IO
497 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 20:12:10.79 ID:OqqpDSMd.net] もう入ったから消せません は正論 何故クソ機能の進入を許してしまったのか、どうすれば食い止められたのかについて追求すべき
498 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 21:15:28.51 ID:cEWT5Ura.net] ジェネリクスの型変数って引数と戻り値の型を揃えるとかそういう使い方をすべきであって Traitをimplした型を受け取るという意味ではimpl Traitを使うべきだと思う ただimpl Traitを導入するなら1.0の時点で導入してて欲しかった
499 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 23:34:44.01 ID:J44hs+nP.net] こういうところでマウンティングとらないといけない辺り 言語(笑)開発チームとやらも内情はどうなってることやら
500 名前:デフォルトの名無しさん mailto:sage [2018/05/24(木) 00:25:13.01 ID:XbYocBeq.net] javaのジェネリックスが理解できてないやつが多いだけ。
501 名前:デフォルトの名無しさん [2018/05/25(金) 02:08:00.91 ID:MJUyxiHQ.net] Rust始まる前に終わったか
502 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 10:28:02.89 ID:fl2+4CP3.net] 始まる要素が欠片でもあっただろうか
503 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 10:31:47.59 ID:fl2+4CP3.net] >>495 それはdyn Traitの実装理由であっても、 引数位置のimpl Traitを実装した理由の説明になってない
504 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 12:05:08.76 ID:2Lpcv/H6.net] fn foo(a: &dyn Trait) と fn foo<T: Trait>(a: T) では前者の方がlightweightでは
505 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 19:15:02.85 ID:MDdgGfn5.net] target/debug 以下に生成されるdepsとかbuildって何なの? goとかにはないよね? gtk-rsだと500MB消費しちゃうんだけど他のプロジェクトで使い回しとか出来ないの?
506 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 23:04:02.93 ID:R7SeORIn.net] >>505 環境変数CARGO_TARGET_DIRを指定してやれば再利用してくれるよ ただ、vscodeのrustプラグインの何かがこの環境変数を考慮してないんで挙動がおかしくなったことがあるんで注意
507 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 23:26:47.02 ID:MDdgGfn5.net] >>506 おお流石に出来たんですね プラグインがおかしくなるのはrls側の問題ですかね🤔
508 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 23:29:14.13 ID:TMN/Dqsk.net] Rustと言えばcookpad。
509 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 14:08:55.25 ID:EgEwhYIf.net] >>501 最近Rustの話聞かなくなったな
510 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 18:12:45.66 ID:pSj5bsTP.net] HNはリリースの度に話題になってるけど
511 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 06:31:41.15 ID:Ao0QiwhU.net] 日本の企業くらいだよ。 rustで書いてまっせっていうバカなアピールするのは。
512 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 06:42:55.06 ID:RS4tQXGE.net] まあCloudflareも日本にリージョンあるしな
513 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 10:37:31.25 ID:QFV8wAla.net] >>511 泥箱って日本企業だっけ
514 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 15:17:41.00 ID:Rs+XOVpI.net] 日本の企業って凄いんだなー
515 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 20:32:40.66 ID:ITatAB0P.net] wtftwっていうタイル型WM、設定ファイルまでrustで書くのどうなんだろ 設定ファイルはluaあたりが無難?
516 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 22:08:10.33 ID:Ao0QiwhU.net] >>513 いやもうなかったことにしたがってるじゃんw それなのに変なのに付きまとわれてるっていう。
517 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 22:30:50.22 ID:Rs+XOVpI.net] >>516 「なかったことにしたがってる」というソースをプリーズ
518 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 22:43:00.94 ID:RS4tQXGE.net] Dropboxのbrotliデコンパイラが昨日更新されてたから 24時間以内のホットな情報だ
519 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 22:43:34.41 .net] Rustが失脚すると得をする組織があるの? どうしてそこまで情熱的にRustを貶すの?
520 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 22:46:14.56 ID:Qkx1CtmH.net] >>515 ざっとコンフィグファイル見たらXMonadのコンフィグよりは理解しやすいように思った xmonad.hsはもっと宣言的に書けて、モナドとか上手く作って見栄えは良くできるんだけど、 馴染みのない演算子(<+>とか)使いまくるんで、よっぽどHaskellに慣れ親しんだ人でないと全容が理解できない 設定ファイルのフォーマットを開発言語と同じにするのはdwmから続くタイル型WMの流儀だし、 思ったより読めていいと思うよ。
521 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 00:57:19.91 ID:Lcv3mjW7.net] >>519 前段 モジラとその小判鮫以外の全組織が喜ぶ 後段 技術的にカスなものを貶すのは技術者の義務だろ
522 名前:デフォルトの名無しさん [2018/06/01(金) 01:23:36.92 ID:n6iooPs9.net] >>521 >技術的にカスなものを貶すのは技術者の義務だろ じゃあPHPではなく敢えてRustをdisる理由は? あちらの方が広く使われてるからより害悪だと思うが
523 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 04:40:22.00 ID:WbqigEkQ.net] >>520 ほうほう
524 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 06:21:30.96 ID:/a7YB1o/.net] >>522 あれを使ってるやつも害悪性は理解してるからな。 こういう技術的にインテリな要素のある言語って信者がとにかく頑なで 実際のプログラムの現場で非常に問題になることが多い。
525 名前:デフォルトの名無しさん [2018/06/01(金) 07:12:12.64 ID:V5eoRgyy.net] ほーん具体的にどんな問題がおきたの?
526 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 07:23:19.18 ID:M/qnTWL0.net] んー例えば Rustの提案するエセソリューションは機械語のレベルと相性が悪い CやC++のほうがまだまともなアプローチしてる
527 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 08:47:59.46 ID:n6iooPs9.net] >>525 んー例えば コンパイルが通せなくて自尊心が傷ついて自ら会社をやめちゃう問題とか この話どこまで事実か知らないけど仮に本当だったとしても これって言語の問題というよりチームのプログラマの腕を過大評価 もしくは計算に入れてなかったというマネジメントの問題だよね
528 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 09:23:44.51 ID:vv7FkXWB.net] んー例えば プラズマクラスター付き家電が話に出てきたら今まで黙ってたのに凄い勢いでエセ科学だと解説し出すよね
529 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 11:58:37.06 ID:HQSTzzds.net] いや、この粘着をクビにするためにRust導入したんでしょ 性格異常だもん
530 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 17:08:52.31 ID:j7xDfBQ9.net] 老害をふるい落とすために新しい言語を取り入れてるって話?
531 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 19:16:22.80 ID:q9V9sFRe.net] このフィボナッチ数列も書けないあほ 何度言い返せなくなっても数日後に甦る粘着性 C++で実行時にエラーが出るようなコードを書きまくったのでしょう。性格の悪さと溢れる自尊心から誰の耳も貸さなかったのでしょう。 プログラマーとして生きるよりかは、匿名掲示板で巨悪組織Mozzilaと闘うBBS戦士の方が社会的に良さそう
532 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 19:29:07.67 ID:M/qnTWL0.net] たとえばドワンゴとかDropboxとか Rustを採用した企業自体を叩く行為をよくしているよな あれ見るとちょっと辛くなる
533 名前:デフォルトの名無しさん [2018/06/01(金) 20:33:15.28 ID:hus0bbCf.net] >>526 具体的には?
534 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 22:00:45.35 ID:/a7YB1o/.net] 例えばここみたいに安全でもなんでもないドヤしたいだけのクソなrustコードが量産されるとか。 ttp://tanakh.jp/posts/2016-12-20-rust-pezy-sc.html
535 名前:デフォルトの名無しさん [2018/06/01(金) 22:44:23.66 ID:hus0bbCf.net] だから具体的はどこが問題なの?
536 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 22:47:27.38 ID:aoTZOmsj.net] 槍玉にあげる例が1個しかないのがダサ過ぎるわ。しかもその例も対象が特殊だし >>534 は「それRustでやる意味がある?」という疑問に全く応えられないのが問題 LLVM IR-> PEZY-SCというコンパイラがあるんだったら、LLVMがバックエンドの他言語でもいいよねって話 それができないなら、LLVM->PEZY-SCは未完成か現実に即してないんじゃねえのって話
537 名前:デフォルトの名無しさん [2018/06/01(金) 22:57:48.57 ID:hus0bbCf.net] rustでやってみたって記事にrustでやる意味あるの?って疑問が出てくるのが不思議なんだけど rustでも出来た、以外に意味はないでしょう
538 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 23:37:58.33 ID:RhYZ0Afc.net] 新しいこと覚えられないから焦ってるんじゃね
539 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 00:12:03.87 ID:LoS19xRX.net] >>534 安全じゃないコード も 書けるってことに価値があるんだろ? C/C++以外の他言語では書くことさえできない。でもC/C++は安全性を売りにはしていない Rustは安全性を売りにしつつ、必要に応じて安全性を捨てる選択もできるということに価値がある で、たまたまその記事が安全性を捨てることが必要な数少ない例の1つだったってだけ
540 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 08:09:01.38 ID:yQHVvQ0k.net] 安全でもなんでもないって unsafeあるやんけ!危険危険! 前後の文脈一切分からんけどとにかく危なそうなこと書いてあるやんけ! つって叩いてるんだろうなw >>535 その手の問いにそいつが素直に答えたこと無いからあきらめよう
541 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 09:00:03.22 ID:uxIlP8w7.net] たまたまねw どんだけコード例出しても言い出しそうだなw そもそもコード例が少ない訳で、推進してる奴のコードがそんなもんなら 十分否定的な要素だけどね。
542 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 09:25:00.11 ID:yb2DUuBi.net] grep出来ねえのか^^;
543 名前:デフォルトの名無しさん [2018/06/02(土) 09:27:20.96 ID:1kkEW1PU.net] ちょっとrustの記事書いただけで代表的な推進派扱いかよ
544 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 09:29:46.62 ID:IrGCDZgn.net] >>541 お前さんの理屈だと、Rustじゃこんなに危険になる!って事だろ? じゃあ、Rustではそういう危険な書き方しか出来ない!って示さなきゃな。 俺は中立だが、あんまり非論理的なdisりはアンチ=低能と思わせたがってるピエロにしか見えんよ。
545 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 09:41:57.37 ID:yb2DUuBi.net] 既に20万行はコードあるからレビューがてら指摘したら喜ばれるよ
546 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 11:52:56.13 ID:SXqC6st7.net] >>541 ほんとだどこが問題で悪いのか全然書かない 具体的に言及しだすとフィボナッチ数列とか機械語レベルとか、残念なことになるのが自分でもわかってたのか まあ本人が書いた通り「ドヤしたいだけ」とか…なんかな?前もマウンティング取られたとか訴えてたし…
547 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 07:31:39.66 ID:OBhxUt76Z] #[no_mangle] pub fn _Z8pzc_vadd(a: *const f64, b: *const f64, c: *mut f64, n: usize) { let tid = (get_pid() * get_maxtid() + get_tid()) as isize; let threads = (get_maxpid() * get_maxtid()) as isize; for i in (tid..n as isize).step_by(threads) { unsafe { *c.offset(i) += *a.offset(i) * *b.offset(i); } } flush(); } まあこういうコード見てもアホかこいつと思わん連中なら話してもしょうがないしな。。 やっぱrustスゲーわ。
548 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 21:39:05.60 ID:xPSrrQIy.net] またいつもの、ボロクソにされたらしばらく潜伏してから復活するパターンかな たまには芸風変えたら
549 名前:デフォルトの名無しさん mailto:sage [2018/06/04(月) 06:53:30.60 ID:OFCCUtyY.net] Rustの不満は言語仕様やrustcよりcargoやその辺の連携(情報の少なさも含む)にある
550 名前:デフォルトの名無しさん mailto:sage [2018/06/04(月) 07:51:33.98 ID:+kVYhEiS.net] 既成のクレートを探すのはcrates.ioになると思うけどライセンスってどうやって調べるんだろ 同様にクレート間の依存関係も判りにくい どちらも一式を落としてきて中身を確認しないと判らないような・・・ Cargoで自動ダウンロードして・・・みたいな使い方をしていると意図せずGPL/LGPLになっていた みたいなライセンス事故が起きそう
551 名前:デフォルトの名無しさん mailto:sage [2018/06/04(月) 09:21:50.73 ID:wd+rp+GF.net] >>550 $ cargo install cargo-lichking $ cargo lichking check 一先ずlichkingでチェックできるよ
552 名前:デフォルトの名無しさん mailto:sage [2018/06/04(月) 09:35:16.99 ID:4FFAt/Kh.net] LGPLのstatic linkとかやめて欲しいよね
553 名前:デフォルトの名無しさん mailto:sage [2018/06/04(月) 22:37:59.16 ID:OFCCUtyY.net] >>551 えぇー・・・わざわざインストールしないと出来ないのかよ。とりあえずやってみるか 依存関係はどうすりゃいいんだ?no_stdでも使える奴だけ探したいとか
554 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 01:20:50.84 ID:4vI8haY4.net] >>553 ライセンスをついては、crate名が既知なら、 ttps://crates.io/api/v1/(クレート名) でjson取れるので、そこから再帰的に依存辿れば収集はできそう
555 名前:デフォルトの名無しさん mailto:sage [2018/06/05(火) 01:35:07.04 ID:4vI8haY4.net] >>553 no_stdかどうかについては、Cargo.tomlのcategoryパートに"no-std"があるかどうかぐらいしか確認するすべなさそう(2017-2-10に追加されたっぽい)。 皆が皆付けてるとは思えないので、参考程度にしかならないだろうけど。
556 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 04:08:38.62 ID:SHaHb3Ap.net] ちょうどいい機会だから、カーゴのギフハブべったり依存をやめて抽象化してほしいわん
557 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 07:27:41.91 ID:j1CMVtJk.net] は?
558 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 08:37:47.80 ID:hN7IXoGK.net] crates.ioべったりは分かるけどGitHub依存って何
559 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 09:53:27.50 ID:x7s61f1u.net] goと勘違いしてるのでは
560 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 09:42:43.51 ID:W19N5ngq.net] rustダメじゃん firefoxは言語オタに支配されたのか? 【IT】高速化を進めてアドオンを排除したFirefox、ついにシェアが10%切る★2 https://asahi.5ch.net/test/read.cgi/newsplus/1528388348/
561 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 10:00:10.77 ID:4+qUC/SZ.net] FirefoxのシェアでRust叩きって前スレでもやったじゃん mevius.5ch.net/test/read.cgi/tech/1507970294/100-
562 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 12:47:19.10 ID:Cz/ni8by.net] ? 前やったから何?
563 名前:デフォルトの名無しさん [2018/06/09(土) 13:15:23.42 ID:qABRMkwT.net] なんで筋の通らない批判を平然とするのか不思議
564 名前:デフォルトの名無しさん mailto:sage [2018/06/09(土) 15:26:07.97 ID:4+qUC/SZ.net] >>562 ええ…?FFアドオン排除でRustディスは気にならないのか 以前の試みはアドオンとRustを絡めてみた感じだったな ↓のレスをいつものごとく無視し数日潜んでRust叩きを試みていたけど、スレを跨いで同じ材料出すなよ 109 デフォルトの名無しさん sage 2017/11/15(水) 14:21:13.24 ID:FBksKtwj >>108 失敗してるやん Rustなんかで書き直したせいでアドオン全滅してる 114 デフォルトの名無しさん 2017/11/15(水) 14:36:17.78 ID:bBOLEH2G >>109 それは設計の段階で従来のアドオンとの互換性の一部を捨てるように仕様変更したからだよ。 firefoxのアドオンは自由度が高すぎるが故に、セキュリティに問題を抱えやすかったし、 アドオン同士が衝突して落ちるとかも結構あったから、そこら辺をChromeと同レベルくらいに制限して、 セキュリティと安定性を取る方向に方針転換した。 仕様が変わってるんだから、Rustで書こうが他の言語で書こうがどっちにしろ従来のアドオンの一部は動かないよ。
565 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 00:29:32.38 ID:+hx+JhDk.net] 今回は1週間も我慢できなかったのか ほかに行く場所ないの
566 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 01:42:55.67 ID:x48+YOhO.net] >>556 の話だけど、 >>556 はhg使えなかった時代で止まってんじゃないの?
567 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 09:09:46.77 ID:gHOtKfe5.net] >>566 gitとgithubはちがうよ?
568 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 09:10:23.63 ID:gHOtKfe5.net] キチガイ帰ってきてよかった
569 名前:デフォルトの名無しさん mailto:sage [2018/06/10(日) 10:06:20.84 ID:flig3pd5.net] 相変わらず宗教じみてんな
570 名前:デフォルトの名無しさん mailto:sage [2018/06/16(土) 11:05:45.57 ID:dxp9ohIz.net] 何でio::Errorにファイル名入ってないんだろう? 不便だなーと思ってたけど 検索してみたら、前は入ってたのに1.0リリース前に削除されたんだとさ https://internals.rust-lang.org/t/add-filename-information-to-io-error/
571 名前:デフォルトの名無しさん mailto:sage [2018/06/16(土) 13:06:12.19 ID:Om4I19uv.net] >>570 非効率になるのを嫌ったってことみたいですね stdでもつには重すぎるってのは理解はできるけど 確かに不便なんだよなー 自分は結局 ioの関数呼ぶ前にinfo!でログ出すとか 戻ってきたio::Errorをmap_errでPathBuf埋め込んだ自前のErrorに変換するとかしてます
572 名前:デフォルトの名無しさん mailto:sage [2018/06/16(土) 18:58:29.98 ID:dxp9ohIz.net] >>571 ここで紹介されてる、failureを拡張して let file = File::open(path).with_path(path)?; と書けるようにするのが カッコいいなと思った https://github.com/rust-lang-nursery/failure/issues/189 failureは1.0に向けてまだまだ変えていくみたいだし、これ書いた焦げ寿司氏も参加するみたいだから 期待してるわ throw!マクロが標準化したら、?の時みたいにrustプログラムの見た目変わりそう
573 名前:デフォルトの名無しさん mailto:sage [2018/06/16(土) 20:35:40.86 ID:unm3Vek/.net] 2回もpath書くの全然かっこよくないから、少し重くてもなんでもいいから便利なライブラリがあれば使うわ
574 名前:デフォルトの名無しさん [2018/06/16(土) 23:56:34.69 ID:f9DGXpDH.net] トレイトオブジェクトってなんでトレイトオブジェクトって呼ぶん? ようはヒープに動的に作られたストラクトだら?
575 名前:デフォルトの名無しさん mailto:sage [2018/06/17(日) 01:17:39.67 ID:TG/aPZPS.net] 何らかのTraitを実装したオブジェクトだから、じゃ駄目なの? 変に勘ぐって誤解してるよ。スタックにある構造体でもトレイトオブジェクトになる
576 名前:デフォルトの名無しさん [2018/06/17(日) 07:51:39.85 ID:p2Sm4Lro.net] うーんここにはそういうニュアンスでは書いてない気がするんだけどなあ https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/trait-objects.html
577 名前:デフォルトの名無しさん mailto:sage [2018/06/17(日) 11:48:23.47 ID:an9lNlus.net] traitってなんだよ
578 名前:デフォルトの名無しさん mailto:sage [2018/06/17(日) 12:00:53.08 ID:erltHdM+.net] >>577 特性
579 名前:デフォルトの名無しさん mailto:sage [2018/06/17(日) 12:03:03.50 ID:an9lNlus.net] わかんねえよw
580 名前:デフォルトの名無しさん mailto:sage [2018/06/17(日) 14:20:21.15 ID:rd16QG+W.net] traitは写像の集合で本来的には定義域の集合でないものなので、それとして扱う場合を特別にトレイトオブジェクトって呼んでるんじゃないの?
581 名前:デフォルトの名無しさん mailto:sage [2018/06/17(日) 14:55:33.49 ID:TG/aPZPS.net] >>576 ヒープにある構造体である、とはどこにも書いてないよね 複数の異なる型を同じ関数や構造体で持っておきたいけど、 型が違うからコンパイル時にサイズが決まらないんで困ったねって状況を解決するのがトレイトオブジェクト そういう事態じゃなければfn foo<T: TraitFoo>(obj: T)とかやって型毎に関数をコンパイラに作ってもらうのが普通
582 名前:デフォルトの名無しさん mailto:sage [2018/06/17(日) 15:32:03.62 ID:hewfXZ0r.net] マス科の淡水魚じゃなかったけ
583 名前:デフォルトの名無しさん mailto:sage [2018/06/17(日) 15:36:27.65 ID:Wo64nPZg.net] それはトラウト トラウトサーモン。
584 名前:デフォルトの名無しさん [2018/06/17(日) 20:19:57.60 ID:p2Sm4Lro.net] なんらかのトレイトじゃなくて特定のトレイトを実装したなんらかの型ってことかな
585 名前:デフォルトの名無しさん [2018/06/17(日) 20:38:08.98 ID:JVUiE6fQ.net] D言語の再来と言われるRustには注目しています。
586 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 11:09:28.26 ID:LH5G8a9n.net] さすがに「C#とか糞wwこれが俺の考えた最強言語ww」→「結局C#が全部正しかったですサーセンww」で終わったただの中二言語と一緒にするのは失礼
587 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 15:38:58.79 ID:/sFO+jYl.net] そうだな。D言語に失礼だ
588 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 17:49:36.48 ID:fn6n18W4.net] C#に、な
589 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 18:41:33.59 ID:MmynirXE.net] まるでD言語が死に絶えたみたいな口振り
590 名前:デフォルトの名無しさん mailto:sage [2018/06/18(月) 18:44:27.51 ID:eWM+pHRs.net] え?とっくに死に絶えたでしょ
591 名前:デフォルトの名無しさん mailto:sage [2018/06/19(火) 00:05:30.49 ID:wsgBP7Sf.net] >>572 1.0待てなくてもう現行のfailureにどっぷり浸かっとる。 failureはいいぞ!
592 名前:デフォルトの名無しさん mailto:sage [2018/06/19(火) 13:49:32.69 ID:77HD0esi.net] D言語は最近顔本コミットを受けて活発化してる Rustは採用企業が全く増えなくなって資金も枯渇 メインコミッタもリンゴのSwiftやらにヘッドハントされて もう将来ないでしょ
593 名前:デフォルトの名無しさん mailto:sage [2018/06/19(火) 13:50:33.43 ID:77HD0esi.net] もちろん言語のエコシステムとしての将来がないってだけで、 ライフタイムとかの実装系の先駆としての意義はあったとおもうが
594 名前:デフォルトの名無しさん mailto:sage [2018/06/19(火) 15:45:39.61 ID:Es9NuDl6.net] 終わってみればdartの舞の海だったな。
595 名前:デフォルトの名無しさん mailto:sage [2018/06/19(火) 17:08:02.40 ID:menX4d1R.net] なんで急に元力士の名前が出てきたんだ? 二の舞って言いたかったのか?
596 名前:デフォルトの名無しさん mailto:sage [2018/06/19(火) 17:13:53.63 ID:TNMX9OjF.net] >>591 なんかfailureのissues見ると、現状のstd::errorの設計は失敗作扱いみたいだな それって共通認識なんかな?
597 名前:デフォルトの名無しさん mailto:sage [2018/06/19(火) 17:47:33.05 ID:cDjhSbaW.net] Haskellかじってて、Rustに興味出てきたんだけど、なに、廃れつつあるの?
598 名前:デフォルトの名無しさん mailto:sage [2018/06/19(火) 18:00:26.05 ID:LBhs/jk2.net] 廃れるもクソも、Rustが世間の注目を浴びたことなど未だかつて無い
599 名前:デフォルトの名無しさん [2018/06/19(火) 18:16:13.49 ID:menX4d1R.net] 大丈夫、大丈夫。 ユーザーが年々すごい勢いで減っているDに比べりゃ 規模は小さいもののRustは年々少しずつ増えてるわけだから 今後普及するかどうかはともかく少なくとも廃れちゃいないし、 学習コストが高いから敬遠されてるだけで注目もされてる それにHaskellと同じで勉強しといて損はない言語だと思うし
600 名前:デフォルトの名無しさん mailto:sage [2018/06/19(火) 19:21:40.76 ID:30ZWMBay.net] そもそも普及を目指してるような気配もないよな バッテリ同梱などと言い出しもしないばかりか randすらクレイトになってるから rustcだけで楽しんでると涙目(´・ω・`)になる
601 名前:デフォルトの名無しさん mailto:sage [2018/06/19(火) 19:22:11.75 ID:b5m1uThb.net] Dのユーザが減ってRustのユーザが増えてる世界線はどこにありますか?
602 名前:デフォルトの名無しさん mailto:sage [2018/06/19(火) 19:50:06.21 ID:R39QGoSG.net] 別に趣味でやってりゃいいんでないの。 ライフタイムとか所有権の感覚は他言語でも役にはたつでしょ。
603 名前:デフォルトの名無しさん mailto:sage [2018/06/19(火) 22:33:45.56 ID:jJOU+tvI.net] wasm やるなら stdweb と wasm-bindgen のどちらを使ったらいいですかね? もしくは他の選択肢の方がいいとかありますか?
604 名前:デフォルトの名無しさん mailto:sage [2018/06/19(火) 23:34:50.37 ID:X5Ll7hqK.net] >>596 std::error+error_chain/log crateの問題点を 解決するためにfailure/slog crateが 作られたからだいたいそんな感じだと思う。 failureの方は今nurseryだし。 failureのエラーとstd::errorのエラーを相互変換できるから 移行や依存ライブラリがstd::error使ってる場合に対応簡単だよ。 まあ、1.0待ったほうがいいけど。
605 名前:デフォルトの名無しさん mailto:sage [2018/06/19(火) 23:47:20.77 ID:X5Ll7hqK.net] >>603 wasm-bindgenはhost bindings proposalの実装でstdwebはweb apiのrustバインディング。 host bindings proposalはWebAssembly用の(ホストとの)ffiみたいなもん。
606 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 00:10:51.10 ID:pTH4tzak.net] >>603 stdwebベースのyewとか面白いよ Reactっぽいことが出来る
607 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 07:50:19.18 ID:wh0fPVE/.net] >>605 >>606 レスどうもです host binding(wasm-bindgen)が後発で cargo-webがあるstdwebの方が開発サイクルが楽そうという感じがしてます yewも見てみます
608 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 08:12:54.01 ID:wc145BD7.net] >>604 stdの下にあるけど非推奨、みたいなのが今後だんだん増えてくるのかな
609 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 08:14:53.51 ID:mWzW79Bi.net] はよRust4.0くらいにならんかな
610 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 10:36:39.96 ID:YLzmhKZ9.net] >>608 使ってはいけない標準ライブラリとかC言語のgetsかよwwwww 21世紀の言語とは思えねえなwwwwwおもちゃもいいところwwwwwww
611 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 10:37:49.71 ID:zK9FZNDh.net] きたきたw
612 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 13:21:29.03 ID:aMAqNpY0.net] テンション高杉wwww
613 名前:デフォルトの名無しさん [2018/06/20(水) 17:10:00.84 ID:XqMiT4dO.net] 愛され言語ナンバーワンに2年連続で輝いたのに人気ない扱いは意味不明だ
614 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 18:22:38.96 ID:vXpw0FFs.net] >>613 純粋に聞くがお前の周りでRustサイコーって言ってるエンジニア何人いる?
615 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 18:41:59.74 ID:CaLRYR6s.net] 標本数1〜2のデータよりこれ見ません? https://insights.stackoverflow.com/survey/2018/#technology-most-loved-dreaded-and-wanted-languages
616 名前:デフォルトの名無しさん [2018/06/20(水) 18:44:15.98 ID:XqMiT4dO.net] >>614 2/6人かな
617 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 18:51:57.98 ID:vXpw0FFs.net] >>615 いくらでも組織的に水増しできる問答や投票になんの意味が?
618 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 18:52:41.55 ID:vXpw0FFs.net] >>616 その程度の言語が世界一位って統計的におかしいと思わん?
619 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 18:54:56.56 ID:Vsx9tnAR.net] >>617 dreadedに水増ししたの?w
620 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 18:55:44.33 ID:CaLRYR6s.net] >>618 お前と匿名の一人で統計語ろうっておかしいと思わん?
621 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 18:57:44.45 ID:CaLRYR6s.net] あとこいつ好感度と使用者の数をごっちゃにしてるの?凄いよそれは フィボナッチ数列も書けないだけはあると思うよ
622 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 20:41:21.29 ID:Hd+sK95t.net] フィボナッチ数列って円周率みたくいまもなお計算され続けてたりするのかな
623 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 21:15:36.40 ID:vXpw0FFs.net] どう考えてもRustなんかよりJavaのほうが愛好家多いだろ プロダクトの数考えろよ
624 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 21:52:02.37 ID:x0fgVEGk.net] GithubではJavaScriptが一番多いからJavaScriptが一番愛された言語だよ(お前の中で) この記事オカズに1年ぐらい黙れそう? wolfbash.hateblo.jp/entry/2017/07/30/193412
625 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 22:24:58.84 .net] ハンバーガーはマクドナルドが世界一売上高いんだから、マクドナルドのハンバーガーが世界一美味いに決まってるだろ?
626 名前:デフォルトの名無しさん [2018/06/20(水) 22:35:12.33 ID:6Ldi6ZQ0.net] >>618 なんで一つのサンプルで統計的にとらえるんだ? プログラマー的におかしいと思わん?
627 名前:デフォルトの名無しさん mailto:sage [2018/06/20(水) 23:15:44.76 ID:kIAOzAlL.net] そういや何でmainが必要なんだろね
628 名前:デフォルトの名無しさん mailto:sage [2018/06/21(木) 07:34:12.21 ID:yU20OhIB.net] Nimへの風評被害記事を貼るのはやめろ
629 名前:デフォルトの名無しさん mailto:sage [2018/06/21(木) 09:00:57.14 ID:osGR8xHL.net] 初見の人のために何度も貼るけど↓が本スレ mevius.5ch.net/test/read.cgi/tech/1514107621/ ここはキチガイと戯れるスレ
630 名前:デフォルトの名無しさん mailto:sage [2018/06/21(木) 10:39:54.15 ID:n536ipp2.net] >>624 それ>>8 でオレが貼った記事な このスレでも反論の余地の出なかった良記事。Nimについてはともかく Rustのクソさについては本当によくまとまってる
631 名前:デフォルトの名無しさん mailto:sage [2018/06/21(木) 12:34:03.16 ID:c3YkgC6b.net] 真正のアホだった
632 名前:デフォルトの名無しさん mailto:sage [2018/06/21(木) 17:49:56.62 ID:ay5pVfJh.net] だからさー。文句あるなら記事に反論してみなよ 取り下げられた記事以外誰も出せないまま人格批判だけとか全く理論的じゃないし そういう人ばっかだよねRust信者って
633 名前:デフォルトの名無しさん mailto:sage [2018/06/21(木) 18:20:34.36 ID:tEqpfdQL.net] ここ本スレじゃなかったのか お邪魔しました
634 名前:デフォルトの名無しさん mailto:sage [2018/06/21(木) 18:35:12.47 ID:ZtwQwgWl.net] >>632 archive. fo/7NUr2 なんかある?
635 名前:デフォルトの名無しさん mailto:sage [2018/06/21(木) 18:46:46.63 ID:ay5pVfJh.net] >>634 だから取り下げられた記事は反論にならないって 本人が間違いだって取り下げたんだから
636 名前:デフォルトの名無しさん mailto:sage [2018/06/21(木) 19:00:49.88 ID:c3YkgC6b.net] >>635 読んでもねぇのに自分勝手に判断して否定するバカが 「理論的じゃない」とかよく言えたな その言葉そっくりそのままお返しするよ
637 名前:デフォルトの名無しさん mailto:sage [2018/06/21(木) 20:30:12.03 ID:Do17eRfw.net] >>636 自分勝手じゃないよ? そもそも論を取り下げたのは向こうじゃん 取り下げられた論が議論の俎上に上がるのはおかしいでしょ
638 名前:デフォルトの名無しさん mailto:sage [2018/06/21(木) 21:05:10.85 ID:6Hcg3ucp.net] ある人がどのレベルでプログラミングしてるか、という差がある ある人にとってはプログラミングとは設計作業に他ならず ある人にとってはプログラミングが指の労働でしかない 書き間違えるから、書き忘れるから、という理由でもって しょうもないバッドノウハウを拝み続ける者すらいる 塩と砂糖を入れ間違う、塩を入れ忘れる、自称料理人 そーいうレベルのプログラマ
639 名前:デフォルトの名無しさん mailto:sage [2018/06/21(木) 21:10:50.36 ID:tPTNHe4P.net] クソ言語はRuで始まるの法則。 ソースはRubywwwww
640 名前:デフォルトの名無しさん mailto:sage [2018/06/21(木) 21:12:31.35 ID:c3YkgC6b.net] >>637 何故取り下げたかの理由も書いてあったがそっちのほうは完全に消えたかな… アーカイブすら残ってなさそうだ… 「他の記事を貶めるような記事は品性が疑われるからやっぱり取り下げる」 みたいな理由だっと思うけど、どうせお前はそれも認めないんだろ… ………ふぅ………もういいよ…… お前の頭ん中ではRustはクソ言語で良いよ……
641 名前:デフォルトの名無しさん [2018/06/21(木) 21:16:43.31 ID:THBJN+Sm.net] まあ人気であることは否定できないし好きに言わせとけば
642 名前:デフォルトの名無しさん mailto:sage [2018/06/21(木) 21:55:24.51 ID:cUkhcSdq.net] Rubyスレいってこい
643 名前:デフォルトの名無しさん mailto:sage [2018/06/21(木) 22:10:18.40 ID:IDDH/Zj5.net] >>637 そういう人だね お前だけは確実に
644 名前:デフォルトの名無しさん mailto:sage [2018/06/22(金) 06:32:29.82 ID:dlC04wo2.net] rustup update stable
645 名前:デフォルトの名無しさん mailto:sage [2018/06/22(金) 07:54:28.27 ID:eG6Vx+RS.net] クソ言語に固執し続けるクソ人間
646 名前:デフォルトの名無しさん mailto:sage [2018/06/22(金) 08:36:26.70 ID:YRNyKvjT.net] 1.27.0がstableになったんね
647 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 08:31:56.29 ID:XcMMhDbo.net] rustは個人開発向けで仕事に使うものじゃないのね。
648 名前:デフォルトの名無しさん [2018/06/23(土) 09:39:24.90 ID:tcOUUI9f.net] ソースは?
649 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 10:17:10.81 ID:YCFgkK7r.net] Cargo.tomlに対応するrustcの最低バージョン番号を書く方法ってある?
650 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 10:36:49.30 ID:SR6K28vn.net] ネタスレで質問するやつはキチガイ
651 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 11:42:32.40 ID:FNwUUYYn.net] スレチ Rustスレに行け
652 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 12:03:08.67 ID:SR6K28vn.net] キチガイがまともなふりして質問するふりするんだよなー
653 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 12:36:47.01 ID:VZhdie4n.net] >>649 https://qiita.com/tatsuya6502/items/8b31e2b162aff78787fe プロジェクトフォルダにrust-toolchainファイル置いてその中で指定出来るみたい toolchain指定なんでrustup必須になるのと固定指定しかできないっぽいけど
654 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 17:56:54.88 ID:ADF05MCP.net] みんな英語どうやって勉強したの
655 名前: mailto:sage [2018/06/23(土) 18:09:48.96 ID:OlLfOCSW.net] >>654 受験勉強で
656 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 18:09:55.67 ID:592i1cd7.net] >>654 俺は英語なら分かるんだけど、日本語はさっぱり分からん
657 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 18:11:27.27 ID:ADF05MCP.net] >>655 すげーな オライリーのやつKindleで読んでるけどまず訳すのが大変だわ
658 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 18:27:07.96 ID:ADF05MCP.net] >>656 英語圏に生まれたかったと切に思う
659 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 19:52:59.41 ID:1v1LX/MG.net] 訳さず英語で読んだ方が… 情報の早さ・量・正確さが段違いだし原著読むと意外と難しい単語使われてない。 bind(bound)を束縛とかアホかと。 せめて結びつけとかにしろよと。 翻訳のセンス無さすぎ。 もしくはわざと小難しくして地位を守ってるのか…
660 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 19:59:41.54 ID:G+zkBspm.net] 結びつけだとassociateの訳ともとれそう 英語と一対一で対応できる和訳の方があとから英語情報に触れるときのハードルを下げると思う
661 名前: mailto:sage [2018/06/23(土) 20:01:25.05 ID:OlLfOCSW.net] >>659 get / put / take なんかで言い換えしたからといって、わかりやすくなったとは思わない
662 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 20:13:20.08 ID:1v1LX/MG.net] それにしても〜を〜に束縛しますとかセンス無さすぎる。 明治時代の翻訳見習ってほしい。 漢籍の素養が必要だが…
663 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 20:59:38.24 ID:hXAC/kvi.net] 逆に聞くが「変数にbindする」って日本語にどう訳したら自然なんだ?「結びつける」は別の意味になるぞ 明治期のアレは翻訳っていうよりは対応する訳語を創出するって感じだから、単純な翻訳じゃないぞ 「縛りつける」みたいな感じになるしかないと思うんだが 束縛は単純に漢語にしただけで大差なかろう
664 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 21:03:29.72 ID:YCFgkK7r.net] >>653 ありがとう 一応そういうのあるんだ そのページの下に書いてある、edition 指定出来るようになるのを期待、という感じかな
665 名前:デフォルトの名無しさん [2018/06/23(土) 21:53:58.53 ID:eYj7ZreJ.net] > 翻訳のセンス無さすぎ。 お前にはあるかのような口ぶりで > せめて結びつけとかにしろよと。 ↑こんなこと言い放ちつつも > もしくはわざと小難しくして地位を守ってるのか… 束縛っていうふつうの単語を小難しく感じると白状し 地位を守るだのなんだのという珍妙な価値観まで丸出しにするとは恐れ入る
666 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 22:00:12.26 ID:iDCSFlv+.net] まあ、英語のbindからして数理論理の変数束縛と同じ単語を別の意味で使いまわしてる 近い分野なんだから専門用語もう少し考えてくれても良かったのに
667 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 22:31:42.63 ID:3sIWKIRG.net] 慣れちゃってるから気づきもしなかったけど代入からして大概だよな。 英語だと単にassignだぞ。
668 名前:デフォルトの名無しさん mailto:sage [2018/06/23(土) 22:44:14.17 ID:YCFgkK7r.net] その点、グーグルは気が利いてて、 「錆は、安全性、スピード、並行性に重点を置いたシステムプログラミング言語です。 以前のバージョンのRustが錆びてインストールされている場合、」 だからな
669 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 00:43:46.88 ID:8RP1t8O+.net] 「バインドする」で良いのでは traitとかcrateとか訳すとよくわからなくなるもの多いし全部カタカナでよい
670 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 00:53:31.43 ID:EUL7CrQi.net] a に 1 を綴じます。
671 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 01:02:45.16 ID:AYN9x63N.net] タイプアノテーションのないバリアブルのタイプはライトサイドをエバリューションしたときのタイプになります
672 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 02:00:22.91 ID:cQRh0RXw.net] 是々非々だな。 型アノテーションのない変数の型は右側を評価したときの型になります 束縛するはバインドするでよかった。SMの趣味ないし。
673 名前:デフォルトの名無しさん [2018/06/24(日) 07:41:58.64 ID:yrJGTcca.net] 束縛と代入ってなにか違うんけ?
674 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 08:29:18.59 ID:4dDfbtJe.net] 誰に確認したわけじゃないが、変数に何か値を設定するのが代入で、値に名前を付けるのが束縛だという認識 fn foo(...) {...} は、ある関数に対しfooという名前をつけるので「関数をfooに束縛する」とは言うかもしれないけど、 「fooに関数を代入している」とは言わない、みたいな
675 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 09:14:33.52 ID:aLprG8s0.net] 緊縛と挿入!
676 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 09:46:27.06 ID:dcl6yRWH.net] 単にイミュータブルかミュータブルかの違いでないの?
677 名前:デフォルトの名無しさん [2018/06/24(日) 09:52:28.95 ID:yrJGTcca.net] >>674 伝統的な表現だと宣言に近いニュアンスかな
678 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 10:29:37.13 ID:O0XPf3sp.net] rustはバインドしていない状態の変数も合法だからややこしい let hoge; hoge = 100; // これをコメントアウトするとコンパイルできない println!("{}", hoge);
679 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 12:51:16.68 ID:1I2gvIDj.net] 初心者なんですが、文字列を作成して返す関数を作るときって、 fn hoge() -> String { "hoge".to_string() } と書くものですか? それとも fn hoge() -> &'static str { "hoge" } と書くべきでしょうか?
680 名前:デフォルトの名無しさん [2018/06/24(日) 13:59:02.13 ID:yrJGTcca.net] その例だと関数にする必要なくない
681 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 15:24:02.20 ID:7t4PbT1U.net] >>679 テケトーにググっただけ つ https://qiita.com/Mizunashi_Mana/items/db88cb0bff002abce1ae
682 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 18:18:06.50 ID:ImbiQntl.net] Stringもstrも返す可能性があるなら Cow<str> で それ以外なら使えるときは &str を使うのが良いのでは
683 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 19:01:12.28 ID:n+g5Cjrk.net] Stringとstrを両方残しちゃうあたり 優柔不断でグダグダな言語に思えてしまう
684 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 19:14:57.34 ID:knj+uGWY.net] はあ…?
685 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 19:22:46.99 ID:rqN/F7y5.net] C FFIに関する技術資料ってどこにあるんだろ? ttps://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/ffi.html にチュートリアルはあるけどexternの記述方法とかがわからない 見よう見まねで書けなくはないけどそのまま行くのは事故の元だし ついでにlibcが何をしているのかもわからない
686 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 20:18:07.31 ID:gRETAB5B.net] >>685 CのヘッダからRustのインターフェースを自動生成してくれる bindgenを追っかけてみればよいかと https://github.com/rust-lang-nursery/rust-bindgen
687 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 22:15:14.01 ID:W9MJDxOG.net] >>684 せめて理論的に反論しろよグダグダ言語の信者
688 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 22:29:21.43 ID:ztKvyOBw.net] >>687 ごめんなさい 論はどこですか?
689 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 23:26:54.62 ID:rqN/F7y5.net] >>686 えぇ・・・ソース見るしかないのかよ・・・ リファレンスマニュアル見てもちゃんと書いてないんだよな さらにググってもリファレンスマニュアルが引っかかってこない罠
690 名前:デフォルトの名無しさん mailto:sage [2018/06/24(日) 23:57:53.79 ID:O0XPf3sp.net] >>685 ,686 unsafeまわりの文書に入ってる(ただしdraft) https://doc.rust-lang.org/nomicon/ffi.html 公式文書はgithubのorganization(rust-lang、rust-lang-nursery)から探している
691 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 00:22:53.39 ID:U0L6J6Ez.net] C言語ライブラリの関数を3回呼び出すコードと格闘すること数時間。ようやく動いた まだ不明点は残っている ・#[link(〜のkindが何を示しているのか判らない C FFIの使用例を見るとよく見るんだが・・・ ・C言語配列の渡し方が不明 元は >int p[]={16,9}; >foo(p); とりあえず >foo("\x10\x09".as_ptr()); などと書けばデータ上は整合するから動くけどどう見てもスマートな記述方法ではない ・文字リテラルの仕様が不明 ↑の表記を得るのに数回試行錯誤した データの与え方もCStringを使った(=\x00終端する)方法は出てくるけど、そうではない方法は 中々見つからなかった。結局↑の表記に落ち着いたが >>690 ありがとう。kind値について書いてありますね。静的リンクだとkind = "static"らしいですが 付けても付けなくてもファイルサイズは大差ないようです。何が違うのだろう
692 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 12:50:29.35 ID:vFqeQKwN.net] Cの配列は第一級の値じゃないからas_ptrが正攻法だと思う
693 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 20:19:17.73 ID:U0L6J6Ez.net] >>690 によればFFIで使用できる物として ・#[repr(C付きのstruct ・#[repr(C付きのenum ・box? ・vec ・str が挙がっているけどCと互換性があるのはこれらのみって事なのだろうか vecを試してみたら動いたけどextern時に安全じゃないから#[repr(C)]付きのstruct使えなどと言いだした >>692 マジかよ!確かに文字列は汎用性が高いけど可読性が良くない・・・必要に応じて抽象化しろという事か
694 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 20:24:02.61 ID:J2kal8dh.net] Rustの側では変更しないけどCの側で変更するような変数ってmutにしないと駄目よね?
695 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 22:00:13.27 ID:U0L6J6Ez.net] あっ、ヤベェ・・・いきなり重大なバグ出してら × foo("\x10\x09".as_ptr()); ○ foo("\x10\x00\x00\x00\x09\x00\x00\x00".as_ptr()); こうだよな 標準で[16: i32, 9: i32]を"\x10\x00\x00\x00\x09\x00\x00\x00"に変換してくれるようなのが欲しい
696 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 22:05:44.09 ID:KKbqvHaH.net] うわこれは読みたくないw 難しいもんだな
697 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 22:59:19.25 ID:U0L6J6Ez.net] ちなみに間違っている状態でも呼んだC関数は正常に終了します。まさにunsafeです。怖いです 何か対策を考えないと大事故を起こしそう 要素数2しかないのにstructを書くのはコード効率の点からも可読性の面からもあまり良いとは思えないし・・・ いろいろ試してみたら >let p: [i32; 2] = [16, 9]; >foo(&p); ならいけるようだ。コンパイラは何も言わないけどこの表記が適切かどうかは不明 Rubyだと foo([16,9].pack("i2")) #配列をint2個分の文字列(=8byteのバイナリ列)に変換 とか書けるんだよなぁ。コストは安くないけど>>695 みたいなポカミスは起こらない
698 名前:デフォルトの名無しさん mailto:sage [2018/06/25(月) 23:46:12.87 ID:kYoiRQin.net] >>697 何がしたいかよく分からんが 何故にC側がintの配列なのにRust側では文字列を使おうとしてるんだ? C側がintってことはRust側で対応する型はisizeだろ (Cのintが事前に32bitと分かってる場合はi32でも可 同様に64bitだと分かっている場合は対応する型はi64) つまり、Cで int[] x = {16, 9}; なら、Rustで同じデータを表すものは let x: [isize; 2] = [16, 9]; // let x = [16_isize, 9]; でもおk って書けば良いはず Rubyと同じように考えようとするから変なことになる RustでFFIするならCと対応する型は何かを考えれば良い
699 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 00:21:30.73 ID:kImvQJUH.net] >>698 いや、isizeはまずいんじゃない? 例えばx86_64だとisize:64bit,int:32bitだし。 libcクレートのc_intならアーキテクチャ毎に適切なサイズになるから こちらがいいかと。
700 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 00:26:36.57 ID:kImvQJUH.net] ついでに言うとFFIするときの型はプリミティブ型以外でも とりあえずlibcクレートを探すといい。 まぁマイナーなアーキテクチャだと間違ってたりすることもあるから 確認は必要だけど。
701 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 00:50:28.55 ID:85MS96V/.net] とりあえず仕返しにrubyスレ荒らそうぜ mevius.5ch.net/test/read.cgi/tech/1523954817/
702 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 00:50:41.38 ID:Hc+GAUt1.net] >>699 あれ?そうだっけ? うかっりしてたゴメン そう言えばCのintはポインタのサイズに合わせるんじゃなくて アーキテクチャ毎に変わるんだったっけか
703 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 01:08:16.37 ID:Hc+GAUt1.net] 調べたらCのintにRustで対応する型はisizeじゃなくてstd::os::raw::c_intだったわ libcのc_intとの違いがよく分からん 対応アーキテクチャの数か?
704 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 02:21:07.36 ID:kImvQJUH.net] >>703 一応libcはno_stdでも動くというメリットがあった気はする。 逆にプリミティブ型限定でも依存ライブラリ増やしたくないならstdなのかな?
705 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 08:11:12.99 ID:xzmHFSgh.net] >>698 あなたの言うとおりですが、そのような情報はどこをから得られるのか・・・ >>690 等のFFIに関する資料に書いてあるようには見えません std::os::raw::c_intも>>703 を見て探してみたら ttps://doc.rust-lang.org/std/os/raw/index.html ここにあるのか 配列等の長さが変わる型のC互換性に関する情報もどこにあるんだろ アドレスの連続性とメモリの確保が保証されている必要があると思いますが
706 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 08:35:08.35 ID:Hc+GAUt1.net] >>705 資料が少ないのはまだ普及してない言語では仕方がない FFIとか皆が頻繁に使う機能じゃないようなものはなおさら Cの配列とRustの配列は互換があるはずだけど 悪いがその情報をどこから手に入れたかは覚えていないし 信用されても困る(ついさっきも間違えたしね) 場合によっては資料探すよりソースコード読んだほうが早いことも多いし 根気良く調べるしかないとしか言いようがない あとはFFIみたいなunsafe部分は出来る限り念入りにテストを書くとか
707 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 09:06:54.14 ID:ffYAyO/t.net] >>705 arrayとsliceの連続性保証はここですかね。 https://doc.rust-lang.org/reference/type-layout.html#array-layout
708 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 10:23:55.54 ID:MUW40HUm.net] 今のnightlyだとclippyビルド出来ないよね? ビルド出来る最後のバージョンと、それをインストールする方法教えてください
709 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 12:18:25.05 ID:8xBVh24a.net] RustのABIについてはドキュメント増やすことはできるだろうけど それ以前の問題としてCのABI知らないとFFIつらいのでは
710 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 18:47:03.15 ID:xzmHFSgh.net] 付き合ってくれてありがとう まとめるとFFIで使えるのは ・#[repr(C付きのstruct ・#[repr(C付きのunion ・#[repr(C付きのenum ←条件付き ・box? ・vec ←非推奨? ・str ・array ・slice ・std::os::rawの中にある物 このへんで良いのかな std::os::rawの中とarray、struct、union、strがあれば一通り出来そうか
711 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 20:49:29.40 ID:qO0rk7ac.net] vecもas_ptr用意されているし非推奨と言うことはないはず sliceにderefできるし
712 名前:デフォルトの名無しさん mailto:sage [2018/06/26(火) 23:28:33.57 ID:+xThVrkU.net] IDが変わっています vecの件 >extern {fn foo(p: &std::vec::Vec<i32>);} >foo(&vec![16, 9]); これだと >warning: `extern` block uses type `std::vec::Vec<i32>` which is not FFI-safe: this struct has unspecified layout >・・・ > = help: consider adding a #[repr(C)] or #[repr(transparent)] attribute to this struct と言われ正常に動作しない。クラッシュはしないが実行結果がおかしい >extern {fn foo(p: *const i32);} >foo(vec![16 as i32, 9 as i32].as_ptr()); これなら問題ないようだ。奥が深い あとC関数から帰ってきたアドレスをu32へ入れていたのをc_voidへ入れるようにしたら所有権で怒られて動かなくなった 同じコードでも型によって所有権の移動のしかたが違うのか
713 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 00:01:15.59 ID:a5PFJKPe.net] RustのVec自体には確かCとの互換性はないはずだよ ただし、Vecはsliceにderefが可能でsliceはCの配列と互換がある vec![16 as i32, 9 as i32].as_ptr() はVecに対してas_ptr()メソッドを呼んでるように見えるけど (ドキュメントを確認すれば分かるが)実際にはVecにas_ptr()メソッドなんて定義されていない as_ptr()はsliceの方に定義されていて、暗黙的にderefされてからas_ptr()が呼ばれてる つまり上のコードは丁寧に書き直すと↓と同じ意味(のはず) let vec: Vec<i32> = vec![16, 9]; let slice: &[i32] = vec.deref(); let ptr: *const i32 = slice.as_ptr();
714 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 00:13:14.65 ID:95B8/IDl.net] あとC関数の引数&戻り値はmove(ポインターか実値)しないとだめじゃない? &付けて参照渡しにするのはよく分からない、たぶん未定義動作じゃないかなあ
715 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 01:04:32.64 ID:9Rd9nmLi.net] >>708 clippyは最新のnightlyは**追ってない**けど常に開発中だから ビルドできるバージョンは常に変わる。 自分の環境のビルドできる最大のnightlyに合わせろしか言えん。 常にclippyを使い続けたいなら環境の方をclippyに合わせないとだめ。 >>710 - cの配列はraw pointer - 配列以外ならrepr(C)してメモリレイアウト合わせるか - C側でopaque pointer定義してas_ptr - 汎用ポインタはrust側は pub enum Void; type VoidRef = *mut Void; - cのvoid*がrust側にほしいならlibcクレート - VLAや不完全配列はrustnomicon読む まずC abi覚えろ。 std140レイアウトならクレートあるぞ。
716 名前:デフォルトの名無しさん [2018/06/27(水) 02:41:49.66 ID:yfKVc+j6.net] Rustだけ覚えればいい時代はまだ来ない C/C++の知識皆無では
717 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 09:44:32.66 ID:SAllJH2o.net] オライリーの訳本が8月に出るのね
718 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 10:05:32.17 ID:YMyBwU5o.net] 本が出る頃には内容が古くなってるやつだろ
719 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 14:44:22.85 ID:3NxQrIF4.net] >>717 英語で出る分には多目に見たが、日本語で出るんなら出版社の不買運動だな どこが訳すか知らんけど
720 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 17:59:19.20 ID:06nI5JoX.net] 不買運動何人参加するの?大規模にやろうぜ
721 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 18:21:05.70 ID:nwq6g8g7.net] 英語なら多目に見るwwwwwwww
722 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 18:35:05.31 ID:hr/rqCUy.net] >>713 ありがとう、そういうオチか。&で正常に動かないのも納得です 暗黙の変換って便利ですけど理解が浅いとハマる元だったりしますよね 不適切な入力を入れると自分が書いたつもりのコードとは無関係っぽいエラーを出して???になったり >>714 #[link(name = "・・・")] extern { fn func1(x: *const u8) -> u32; fn func2(y: u32); fn func3(z: &u32); } fn main() { unsafe { let mut a = func1("foo.dat".as_ptr()); //C側でメモリが確保されアドレスが帰ってくる func2(a); //アドレスを使って処理 func3(&a); //確保したメモリを解放 } } これは動きます。u32をstd::os::raw::c_voidにするとfunc2のaで >use of moved value: `a` >= note: move occurs because `a` has type `std::os::raw::c_void`, which does not implement the `Copy` trait そんな事を言われても困る・・・ついでにenumなので格納されているアドレス値の確認も面倒 usizeなら問題ない。ドキュメントが正しいならusizeはポインタのサイズらしいしこっちの方が楽かも
723 名前:デフォルトの名無しさん [2018/06/27(水) 19:40:13.19 ID:5BauIrrs.net] 訳本情報どこにある?
724 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 19:41:49.80 ID:Z4vkTjjE.net] てかrust覚えるなら普通にc++のスマポくらいは知っとかんとわけわからんだろ。
725 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 19:45:28.45 ID:luhHLeJ1.net] 今日発売の新しいrust本買った人いるのかな 評判良ければKindle出た頃に買おうかなと思うけど
726 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 20:11:21.04 .net] 貧乏なのでPacktの糞本を$10セールの時しか買えない
727 名前:デフォルトの名無しさん [2018/06/27(水) 20:16:03.57 ID:aPrQo9aq.net] 訳本amazonにあったわ 早速予約した
728 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 20:16:12.37 ID:YMyBwU5o.net] オライリーの本って、オンラインに無料であるやつとおなじやなかったん?
729 名前:デフォルトの名無しさん mailto:sage [2018/06/27(水) 21:01:38.86 ID:IGU3gLqH.net] >>728 オライリーの原著は去年12月に発売、今年8月に訳本 今日発売された英語の本は公式ドキュメント(第2版)の印刷版 版元はno starch press
730 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 01:06:21.38 ID:cJz1WTLf.net] >>722 他の人も似たようなこと書いてるけど、Cの配列は結局はポインタに過ぎないから C側がポインタを求めれば、当然Rust側でもポインタを渡す あと>>712 の >同じコードでも型によって所有権の移動のしかたが違うのか は半分正解で半分不正解 正確には、型によって違うんじゃなくて、Copyトレイトをimplしてるか否かで違う u32はCopyトレイトをimplしてるから所有権はmoveじゃなくてcopyされる c_voidはCopyトレイトをimplしてないから所有権をmoveしようとする The Bookちゃんと読んだ?読んでないなら一度きちんと通読することを勧める
731 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 06:00:08.46 ID:YYPKz5qu.net] rustやるのにあったほうがいい前提知識ってどれくらい? c++とhaskellがまともに出来ないときつい?
732 名前:デフォルトの名無しさん [2018/06/28(木) 06:30:25.53 ID:fobuFGlz.net] そんなわけないだろw どっちかてと根気が必要だ
733 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 07:54:11.40 ID:1UW06GNd.net] いや最低限c++のコンストラクタ、デストラクタの動くタイミングくらいは知っとかないと無理だろ。
734 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 08:12:22.16 ID:MOChRiis.net] >>730 一応deriveでCopy(とClone)を実装すればいいらしいと言うところまでは確認しているのですが 1.std::os::raw::c_voidへ追加で実装できるのか未確認(できたとしてもモンキーパッチになってしまう) 2.別名の型を新規に作る(usizeもしくはusizeへのエイリアスに対するメリットが思いつかない) なもんで問題なさそうならusizeで良いかなと・・・ というかCのライブラリを使うと>>722 みたいなケースは良くあると思うけど他の人はどうしているんだろ libcのc_voidもlib.rsを見るとstd::os::raw::c_voidと同じみたいだし同様の現象が起きそうです ググると引数はc_voidを使って戻り値はusizeを使っているようなコードも出てくるしusizeが正攻法なのか? ちなみにこのコードだとusizeを使ってもmutが不要の警告が出るんですよね。これもそんな事を言われても 困るのですが
735 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 08:55:27.92 ID:bLMLowda.net] >>734 Cで確保したポインタ(特に○○ハンドルみたいなリソース)は普通はopaque structで受けると思う。 https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/ffi.html#%E3%82%AA%E3%83%9A%E3%83%BC%E3%82%AF%E6%A7%8B%E9%80%A0%E4%BD%93%E3%81%AE%E8%A1%A8%E7%8F%BE どちらかというと、func2の引数が参照渡しでなくて値渡しなのが問題では。 見た感じfunc2では借用して呼び出し後に返してもらえばいいっぽいけど。
736 名前:デフォルトの名無しさん [2018/06/28(木) 10:18:12.24 ID:MyWFnKdA.net] >>733 えーなんで?rust書いてる人の大半は知らないでしょ
737 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 10:38:48.43 ID:LheEK93m.net] こりゃC++まだ覚えてない人はrustなんか勉強してる場合じゃないねw
738 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 12:56:07.56 ID:rDWw9n99.net] c++といってもRAIIとスマートポインタくらいで良いのでは 知らなくてもtrplなど読めばなんとかなるとは思うが 代数的データ型なども同様 あとは用途次第だけどFFIやるならCのメモリレイアウトくらいは押さえておいた方がよい
739 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 13:32:58.62 ID:LheEK93m.net] そんないい加減なことでいいのだろうか? ちゃんとC/C++一から十まできちんと理解した方がよいのでは? それからじゃないとそこがいい加減でRustなんて本当に使えるようになったと言える?
740 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 14:08:04.32 ID:QGaIyydK.net] C++完全に理解した人間なんて世界中に何人いるやら
741 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 14:14:44.86 ID:rY43/kt0.net] Cはともかく、C++に時間を割く必要はないじゃろ
742 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 14:20:27.58 ID:61gzDvUq.net] むしろCすら知らないほうが変な先入観とか無くて所有権とかライフタイムとか素直に理解しやすそうな気もする
743 名前:デフォルトの名無しさん [2018/06/28(木) 14:28:13.71 ID:MyWFnKdA.net] 必要という理由が分からない 言語なんて使いながら覚えていくもんでしょ
744 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 15:28:41.63 ID:a2wUxb0k.net] >>739 RustはC/C++分かってないと書けない →C/C++を分かるまでやる →C/C++がわかってしまえばそもそもRustなんて不要だと気づく →Rustを捨てる
745 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 16:07:41.79 ID:cJz1WTLf.net] >>731 確かにC++とHaskellが出来きればRustの習得にはそれほど苦労しないだろうとは思う ただ、理解できるまでにかかる時間量の問題であって、それがないとキツイってわけじゃない むしろ、Rustの学習するためにC++とHaskellを先に学習するとか時間の無駄 The Bookが懇切丁寧に解説してくれるので前提知識はなくても全く問題ないと思う ただし、Goみたいな言語と違ってサンプルコード読めばある程度理解できて 何となくで書けてしまうような言語ではないのでThe Bookの熟読は必須 それと、FFIする場合はある程度のCの知識は必要だよ
746 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 16:49:45.85 ID:Z76aQv2+.net] FFIしたいけどCは知らん、とかレアケースだから そんな心配はせんでいい
747 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 16:53:35.27 ID:rY43/kt0.net] 別にRustは大して関数型言語じゃないし、Rustのために他の関数型言語から、っていうのは本末転倒すぎるな
748 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 16:59:30.65 ID:Z76aQv2+.net] 全然モナドってないし、関数型言語フレーバーぐらいでしょ
749 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 17:13:53.31 .net] C++は速いがコーディングストレスで禿げる Rustで若干のパフォーマンスを犠牲にしてでも、いかに毛髪を守れるかがテーマ
750 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 17:18:23.47 ID:GP5sTNn0.net] >>749 C++程度で禿げてたらRustのコンパイル通らん Rustのコンパイル通せるならC++でやる方がよいコード書ける つまりRustは実用にならん。C++er養成ギプスって話ならわかる
751 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 17:41:56.51 ID:BmtmAhz0.net] 結論: やっぱりC++からしっかりやったほうがよい
752 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 17:46:58.11 ID:GP5sTNn0.net] >>751 違う違う、そもそもRustは不要って結論な C++勉強してC++そのまま使い続ければいい
753 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 17:47:09.81 ID:tKvy+NRw.net] C++98 C++03 C++TR1 C++11 C++14 C++17 C++20 C++23 C++26 C++29 C++32 C++35 C++38
754 名前:デフォルトの名無しさん [2018/06/28(木) 17:56:38.73 ID:MyWFnKdA.net] なんだコンパイルできないおじさんか。。
755 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 18:32:36.30 ID:f0Ft93Jb.net] >>747 単純に最初期のRustコンパイラはOcamlで組まれてたからって事情でないの
756 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 18:34:20.70 ID:f0Ft93Jb.net] >>750 C++より潜在的なメモリ管理バグを減らせるってのは十分有用な話では
757 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 18:54:33.03 ID:frbOjHXy.net] リストとリスト操作をなんで組み込んでくれなかったのかな? ::とか@とかあるだけでだいぶ捗るよね(一部の人にとって)
758 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 19:41:35.09 ID:Z76aQv2+.net] パフォーマンス面だけで言えば、リンクトリストは問題外だからじゃない?
759 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 20:19:23.05 ID:X+ujNNAX.net] コンパイルできないおじさんのコードもNLL有効にしたらコンパイルできたから 来年にはrust書けるようになるよ
760 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 20:29:59.05 ID:1UW06GNd.net] 別にどの言語だろうと所有権を考えるってのは普遍的に必要だとは思うぞ。 rustだろうとc++だろうとはたまた動的言語でもメモリ以外にも資源管理なんて 問題はどこにでも出てくるわけで。
761 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 20:30:03.07 ID:rY43/kt0.net] consとかが使えないのはmutとの兼ね合いもあるんじゃないの あれ完全にイミュータブルリスト向けだもんよ
762 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 21:16:31.35 ID:YYPKz5qu.net] https://www.reddit.com/r/rust/comments/8ub964/microsoft_announces_using_rust_to_build_some_of MSもRust使ってるんですか やるしかない
763 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 21:22:26.06 ID:MOChRiis.net] >>735 なるほど。c_voidの正体はそれでしたか 引数は既成Cライブラリの仕様なのでなるべく変更したくありません *mutを使うコードを検討していて気がつきましたがRustの生ポインタにfunc1が返すアドレスを入れると Cと同じ危険を抱えますよね。func3でアドレスがNULL=0になりますからその後に触ると当然クラッシュします
764 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 21:27:33.58 ID:wCMJyKP8.net] NLLいまだに理解できなくて使えない
765 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 21:36:28.71 ID:cJz1WTLf.net] >>762 actixとactix-webのメインコントリビュータもよく見ると普通にMS所属の人だった ttps://github.com/actix/actix/graphs/contributors ttps://github.com/actix/actix-web/graphs/contributors
766 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 21:45:00.19 ID:CykyBbY/.net] MSは英語なので、大目に見てもらえる
767 名前:デフォルトの名無しさん [2018/06/28(木) 22:08:43.56 ID:fobuFGlz.net] > Please never sell Rust to Microsoft! ちょっとわらった
768 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 22:56:56.15 ID:mQsBu3Yx.net] 言語に関してはMSがオーナーになるのは大勝利だろ
769 名前:デフォルトの名無しさん mailto:sage [2018/06/28(木) 23:58:14.47 ID:aJbqINcy.net] ではここからはC# おじさんどぞー
770 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 00:13:26.39 ID:9NU4CCEP.net] MSには新しいプログラミング言語のQ#があるから Q# 【量子プログラミング】 https://mevius.5ch.net/test/read.cgi/tech/1513059627/l50
771 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 00:20:17.66 ID:1B/tcpoY.net] 汎用言語でないからRustと競合はしないな
772 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 05:02:04.02 ID:HciN/Bk/.net] Visual StudioでRustサポートされないかな rlsが不安定すぎるのでMSが作り直して欲しい...
773 名前:デフォルトの名無しさん [2018/06/29(金) 07:15:45.03 ID:pVbM0h49.net] rlsもracerもポンコツよね あんまり力入れてないのかな
774 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 10:18:57.05 ID:azKeAftH.net] intelliJ使えばええやん インテリじゃない人もタダで使えるよ
775 名前:デフォルトの名無しさん [2018/06/29(金) 11:21:37.40 ID:eINaY/I2.net] 支援機能だけ考えるとそうなんだけどさ 手に馴染んだemacsから離れるのは簡単じゃない
776 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 12:06:31.66 ID:1B/tcpoY.net] ワイもIDE使いこなせない
777 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 12:09:37.82 ID:l0U/js7n.net] intellijをつかうのです… vsなんかよりよっぽどいいですよ…
778 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 12:09:46.01 ID:ZOJKMSLg.net] >>764 従来のborrow checkerの制約が緩くなるだけだから従来の理解してれば不自由なく使えるはず
779 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 12:27:36.55 ID:1B/tcpoY.net] intelij買ったけどemacs使っちゃうのよね。コード書くのにmouseが必要になるのが受け付けないみたい。
780 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 18:17:46.77 ID:HciN/Bk/.net] intellijちゃん自力でパースしてるのアホでしょ CLionもclang使わず自力でやってるけどリリースから随分経つのに初歩的なバグ残ってるみたいだし
781 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 18:55:33.43 ID:abdfGqyU.net] >>735 の方法だとこんな感じなのかな enum ABC {} #[link(name = "・・・")] extern { fn func1(x: *const u8) -> *mut ABC fn func2(y: *mut ABC); fn func3(z: &*mut ABC); } fn main() { unsafe { let a = func1("foo.dat".as_ptr()); //C側でメモリが確保されアドレスが帰ってくる func2(a); //アドレスを使って処理 func3(&a); //確保したメモリを解放(以降aを触ってはいけない) } } 中身にアクセスしたいならenumを#[repr(C)]付きのstructにして構造を定義すればいいのかな 読み書きするRustのコード全てをunsafeにする必要がありそうだけど
782 名前:デフォルトの名無しさん mailto:sage [2018/06/29(金) 20:25:27.91 ID:jUvi1FZV.net] 英語は多めに見るおじさん、今頃rustについて必死で勉強して弱点探してるのかな
783 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 01:38:16.37 ID:bJf+PXWq.net] >>781 func1とfunc2は関数プロトタイプがわかるけど fn func1(x: *const u8) -> *mut ABC; → ABC* func1(const char *x); fn func2(y: *mut ABC); → void func2(ABC *y); fn func3(z: &*mut ABC);に相当するCのプロトタイプはないよね?
784 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 01:40:31.49 ID:bJf+PXWq.net] func1のxはu8だからunsigned charかuint8_tだね
785 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 01:59:30.31 ID:VVUAg8sI.net] >>783 func1の引数はRustのコンパイラにその型を使えと言われたから func2の引数はfunc1の返値に合わせた func3の引数はfunc1が返したアドレスが格納されているアドレス。Cで言うポインタのポインタでABC **z 自分も詳しいわけではないので勘違いしているかもしれないが一応動いている
786 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 05:09:23.98 ID:bJf+PXWq.net] >>785 ダブルポインタだったのか それならvoid func3(ABC **z); → fn func3(z: *mut *mut ABC); let mut p = func1(...); let pp = &mut p as *mut *mut ABC; func3(pp); // 単にfunc3(&mut p)で大丈夫なはず
787 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 11:01:24.70 ID:6fEIEQu0.net] ダブルポインタはあんま想定してなさげな気はする。 俺だったらもう一枚、インターフェイスかましてもう少し楽なインターフェイスにしてから rustと繋げるわ。
788 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 11:27:27.95 ID:BB0BPsjY.net] 結局C/C++ある程度わかってないと話にならないよね。 経験ないやつはいきなりrust勉強してる場合ではない。
789 名前:デフォルトの名無しさん [2018/06/30(土) 12:46:04.79 ID:gEYLih9T.net] コンパイルできないならまずプログラミングを勉強しなおしたほうがいいよ
790 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 14:28:27.26 ID:d1l1Trl+.net] FFIの話をrust全体の話に主語をでかくしてるおっさんがおるな
791 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 16:28:11.02 ID:oxrLiD+S.net] FFIもrustの魅力の一つなのですが? C/C++知らないやつはいつまでたってもrustを全て分かったことにならない 半人前のまま 別に必要なとこだけ使うスタンスでもいいけど半人前のクセにいっぱしのrustプログラマーヅラしないでね
792 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 16:34:04.77 ID:WiulWXxB.net] 昔はアセンブラ知らずにC++語るなとか言われてたが時代は変わったもんだな
793 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 16:40:34.19 ID:jlw7G6p9.net] 結局どの言語を選べばいいのかわからなくなった C++?Go?
794 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 17:06:44.52 ID:NH6TT+Fu.net] Coqを選べばいいと思うよ
795 名前:デフォルトの名無しさん [2018/06/30(土) 17:07:23.25 ID:QJJEkoJ9.net] 目的に合ったもの やりたいものをやればいい
796 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 17:07:54.55 ID:5+sKgUjT.net] 迷うならGoでいいんでは。
797 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 17:10:05.48 ID:CMs/fWc6.net] Prolog
798 名前:デフォルトの名無しさん [2018/06/30(土) 17:38:54.49 ID:RHrrdh8p.net] rustを視野に入れながらgoという選択はない kotkinかswiftかgoかってなら分かるけど
799 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 17:52:45.29 ID:5+sKgUjT.net] 分からないなら無理してrust使わなくていいって意味じゃろ
800 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 18:08:54.39 ID:9Q6R3Qzj.net] 腐ってないでお前らも俺と一緒にRustで競技プログラミングしようぜ! https://yukicoder.me/submissions?submitter=5971
801 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 18:21:37.09 ID:UB7qEnEv.net] クロージャで再帰が出来ないのって所有権的な問題?
802 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 18:24:45.75 ID:cH9c2bse.net] rustは競プロには向かない https://users.rust-lang.org/t/rust-for-competitive-programming/17682
803 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 18:38:35.11 ID:cH9c2bse.net] クロージャの再帰ってこれのこと? recursion - Is it possible to make a recursive closure in Rust? - Stack Overflow https://stackoverflow.com/questions/16946888/is-it-possible-to-make-a-recursive-closure-in-rust
804 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 18:57:41.58 ID:dTg1EP/S.net] >>803 おー、できた ありがとう ローカル関数だと外部変数キャプチャできないし、クロージャだと再帰できないし、 同時にしたいときどうすんのかなーって思ってたから そんなに使うこともないだろうけど、心に留めときます
805 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 22:59:14.25 ID:pdhum8J2.net] >>786 ありがとう。なるほどそういう書き方もあるのか。確かに書き換わるので&mutの方が適切ですね 欲しいのはアドレスなのだからと単にアドレス演算子&を付けていました unsafe外から任意のアドレスにあるデータへアクセスするにはその部分を関数化するようなのかな 一般的に言うプロパティの読み書きをプログラマブルに出来れば綺麗に書けるけど無理なんだろうなぁ ()無しの関数呼び出しとも言えるけどこれが出来る言語は少ない
806 名前:デフォルトの名無しさん mailto:sage [2018/06/30(土) 23:04:00.05 ID:BB0BPsjY.net] 相変わらず驚き最大の言語だな
807 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 07:43:42.19 ID:XZ+Fcjv4.net] >>806 例えば何に驚いてんの? Rustの目的はシステム言語だが、目的から乖離してるとこって何?
808 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 08:30:53.21 ID:vf9gJxu2.net] マルチパラダイムの場合、驚き最小の原則の法則に反するかどうかは実装者の責任じゃないだろうか
809 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 08:46:31.97 ID:E4o6QfBe.net] 抽象的なことしか言わなくなったんだよ 機械語のレベルと相性が悪いし
810 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 11:50:23.63 ID:YY7LPhac.net] >>808 半分はその通りだが、それならc++で良くね?になるぞ。
811 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 13:30:01.00 ID:TGjVBuJr.net] 日本語でこんなに議論が行われてることに驚いた
812 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 13:37:40.54 .net] 恥ずかしくて外国人には見せられない掲示板だ
813 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 13:54:17.46 ID:YY7LPhac.net] そもそもcの呼び出しはメモリ管理モデルのギャップがあるんだから どうあがいてもc++のが簡易にできるのは当然なんだよ。
814 名前:デフォルトの名無しさん mailto:sage [2018/07/01(日) 15:26:57.84 ID:HnzLcrw0.net] >>811 このスレは英語推奨だぞ
815 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 01:23:28.76 ID:5g9b1rVY.net] >ローカル関数だと外部変数キャプチャできないし、クロージャだと再帰できないし、 ここに関してはクロージャでないものをクロージャと呼ばなければ誰も驚かなかっただろうな。 javaは似非クロージャのことはラムダ式と呼んでるし。
816 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 01:51:37.55 ID:v1kLQBFZ.net] Haskellの「外側のシンボルを参照することによる暗黙的な部分適用」はクロージャと呼ばれてるから アレが許されるなら少なくともJavaのはクロージャと呼んでいい
817 名前:デフォルトの名無しさん mailto:sage [2018/07/02(月) 22:14:52.04 ID:KKQokwkO.net] >>816 javaのアレは元々クロージャ導入するつもりが、 仕様と実装でクソ揉めて妥協案としてクロージャ じゃないものとしてラムダ式を作ったんやで。 だから意図的な"クロージャではないモノ"よ。 メモリ管理にgc使うからエンクロージャの束縛の解放に 制限ないから実質クロージャだし第一級関数だけど。
818 名前:デフォルトの名無しさん [2018/07/02(月) 22:54:50.18 ID:F0SAJ301.net] hyper使って簡単なwebアプリ描いてみたけどわりと素直に書けるのね
819 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 16:24:59.60 ID:ZNPbo2Ku.net] >>804 は本当に満足してるのだろうか >>803 のやり方だとパラメータ増えてるじゃん こういうのは既存のシグネチャに合わせられないと 単にひとつの関数を小洒落た書き方にしてみましたってだけにしかならないのでは
820 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 17:05:40.29 ID:ZNPbo2Ku.net] 連投になって申し訳ないが、環境をRefCellで持ち出す例を見つけた ttps://wandbox.org/permlink/hkwccgD2oXp0fTm7 組み合わせて、802の2番目の例のstructを更にRefCellに入れたらシグネチャ変えずに行けるかな
821 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 17:29:45.80 ID:LuUToNY2.net] >>819 一応満足してるよ スッキリ書けないことがわかったから、素直にループで書くか、ローカル関数作って引数で渡そうと思えた Rustは関数型じゃなくて手続き型だし、特に不満ではない
822 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 17:31:22.43 ID:nNrfrM83.net] >>820 RefCell使うなら、Rustで書く意味ないだろ
823 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 18:19:36.75 ID:ZNPbo2Ku.net] >>821 すまん、クロージャでないとできない用途(環境をキャプチャーして高階関数に渡す等)を想定していると 勝手に気を回してしまったみたいだ
824 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 21:26:26.07 ID:9JOKXkQl.net] クロージャじゃないとできない用途って具体的にどういうものなの 想像つかなかったので単純な興味本位
825 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 21:32:07.93 ID:2DeV5pvZ.net] 例えば最適化ライブラリなどに目的関数を渡す場合などで 引数以外からパラメータを注入する必要がある場合。
826 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 22:38:00.99 ID:9ONgpSq2.net] >>823 キャプチャ自体はクロージャで出来るから別に困ってないかな たまたま再帰させたくなったときがあっただけだから
827 名前:デフォルトの名無しさん mailto:sage [2018/07/03(火) 23:58:54.50 ID:6KvlcSKZ.net] クロージャじゃなきゃできないことじゃなくて、 クロージャの再起呼び出しじゃなきゃできないことを聞きたかった 引数以外のパラメーターを差し込む場合、普通は再起は必要ないよね
828 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 00:52:48.93 ID:MQVza7QA.net] 風雲再起ぃ〜!!
829 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 01:08:42.88 ID:ace/1w5F.net] 1.28はrustdocするときソースコードのlintするようになったんの? deny属性に違反するソースコードがドキュメント生成時にエラー投げる。 >>823 クロージャがある言語は普通、関数とクロージャ区別しないからその感覚はおかしくないと思う。 でもクロージャの実装上の制約とかライフタイムとかでループで書いたほうがいいと思うコードはある。
830 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 09:35:17.80 ID:7aH0kDWz.net] >>827 それは、てっきり最初の>>801 がキャプチャと再帰を同時に使いたいことがあったんとばかり
831 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 20:54:21.49 ID:1R4S9ii/.net] >>827 ある種の動的なtree構造に対して探索、実行を繰り返すとか。。 やっぱ具体的じゃねーな。。
832 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 21:42:58.93 ID:JvJNYHQo.net] 最近rustの勉強始めたものです この言語ってstatementなのかexpressionなのかをどういう方針で決めてんでしょう? ifがexpressionなのはわかったけど、letはなぜstatementなんだろ? 他の関数型言語のようにexpressionでもよかろうに、と思った
833 名前:デフォルトの名無しさん [2018/07/04(水) 21:53:13.67 ID:gFgZc5FG.net] KCX
834 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 23:31:21.37 ID:kqLSfqeN.net] 古いCで良く在る if ( (let a = f()) != 0 ) {} みたいなのが嫌だったんだろう。 そもそも、変数束縛が値を持つ必然性は無いよね。
835 名前:デフォルトの名無しさん mailto:sage [2018/07/04(水) 23:32:39.47 ID:kqLSfqeN.net] >>834 あ、ごめん。大嘘だった。 if let なんてのあったのね…
836 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 00:07:01.10 ID:wS7IFFVg.net] 他の関数型言語のletは随分来歴が違うイメージ。 let x = ... in expはラムダ式の糖衣構文の一種なので関数型なら容易に実装できて便利に使えるのに対し、 rustのletは手続き型の変数宣言の方が近い schemeのletとdefineが全然意味が違うのを知ってると違和感無い
837 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 00:16:12.98 ID:OgxnbJsr.net] >>832 この辺読めばいいかと。 https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/functions.html#%E5%BC%8F%E5%AF%BE%E6%96%87 letは所有権移動だけど、返り値を認めちゃうと 束縛先と返り値のどちらに移動すべきか分からない、ということかな。
838 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 00:52:35.42 ID:YJbjvjoP.net] >>837 それは let a = (let b = c) がだめな理由にはなるけど >>832 の言ってる関数型言語風の let a = (let b = c in d) がだめな理由にはならないよね
839 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 01:22:02.41 ID:DZKRf+tO.net] えっ、毎回コピーすんの? それ無駄じゃね?
840 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 03:33:15.42 ID:CGu9cAAd.net] >>838 ブロック式で let a = { let b = 1; let c = b + 1; b + c }; と書ける けどミュータブルな変数を書けるからコードが関数型言語風になるかどうかは書き手次第
841 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 20:22:41.90 ID:yHZEHedG.net] >>837 >>840 ほー勉強になりました fnもいまいち釈然としないけど もうちょっと読み進めてみます
842 名前:デフォルトの名無しさん [2018/07/05(木) 21:13:46.28 ID:nmRduEAc.net] あるstructもとに任意のフィールドを追加した別のstructを定義することってできる?
843 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 21:35:03.85 ID:wS7IFFVg.net] イテレータ系はみんなそれやってる mapとかfilterとか、元のイテレータ+変換・フィルター関数みたいな構造体を返してくる
844 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 22:08:25.13 ID:uqSz2h6E.net] へー今気がついた strはmutの有無にかかわらずRO領域に配置される sliceはmutの有無にかかわらずRW領域に配置される つまり今風のOS上だと strをポインタ経由で書き換えようとするとメモリアクセス違反 sliceをmut無しで宣言した物でもポインタ経由で書き換えられる リンカの設定にもよると思うけどマイコンなどで使うときは注意が必要そう
845 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 22:15:27.91 ID:B3fauv+j.net] えぇ…安全に使えないじゃん。キツツキに縛りつけてる意味ないじゃんrustの存在意義が…
846 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 22:46:05.11 ID:5CTMsWjW.net] 再現コードはよ
847 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 23:38:48.53 ID:+dwFnTVE.net] unsafeの話でしょ 脊椎反射したいつもの人が見事に釣られている
848 名前:デフォルトの名無しさん mailto:sage [2018/07/05(木) 23:53:13.69 ID:uqSz2h6E.net] もちろんunsafe中の話です fn main(){ let s:[i32;2] = [10, 20]; println!("s[0]={}", s[0]); unsafe{*(s.as_ptr() as *mut i32)=30} println!("s[0]={}", s[0]); } 実行結果 s[0]=10 s[0]=30 これそのものが問題になるケースは少ないだろうけど ROにいるはずと思い込んでいるとハマるケースがありそう 任意の場所に配置するアトリビュートとかあるのかな
849 名前:デフォルトの名無しさん [2018/07/06(金) 00:07:24.39 ID:0SVgWEm6.net] これのArrayのとこに書いてない? https://doc.rust-lang.org/book/second-edition/ch03-02-data-types.html
850 名前:デフォルトの名無しさん [2018/07/06(金) 00:36:54.90 ID:iypT0A6c.net] >>843 返すんじゃなくて定義したいんだけども
851 名前:デフォルトの名無しさん mailto:sage [2018/07/06(金) 06:49:56.18 ID:Sybd3k2C.net] >>842 >>850 stackoverflowとリファレンスを見た限りstruct定義の入れ子はサポートしてない https://stackoverflow.com/questions/23629201/nested-structs-in-rust https://doc.rust-lang.org/reference/items/structs.html
852 名前:デフォルトの名無しさん [2018/07/06(金) 18:21:10.44 ID:iypT0A6c.net] どうもありがとう。でもちょっとニュアンスが違う。 struct 2d {x, y} struct 3d extends 2d { z } で3dが2dのxとyのフィールドと独自のzを持つようなかんじ マクロで出来ないか精一杯やってみたが出来なかった 元となるstructごとにマクロ作ればできるんだけどそれじゃ意味ないし
853 名前:デフォルトの名無しさん [2018/07/06(金) 18:57:55.41 ID:0SVgWEm6.net] 設計見直したら?
854 名前:デフォルトの名無しさん mailto:sage [2018/07/06(金) 19:23:23.92 ID:6zaAciaG.net] >>852 Rust Design PatternsにはDerefでやるのはアンチパターンだと書いてあるけど、別の似たようなサイトではお勧め扱いだった気がする https://github.com/rust-unofficial/patterns/blob/master/anti_patterns/deref.md
855 名前:デフォルトの名無しさん mailto:sage [2018/07/06(金) 21:12:32.07 ID:CzZn5kZZ.net] struct A {int size; char data[];} みたいなのをRustから読み書きするインターフェイスを考えてみた enum PTR {} struct A {p:*mut PTR} impl A { fn new(ptr:*mut PTR) -> Self {A {p:ptr}} fn get_size(&mut self) -> i32 {unsafe {*(self.ptr as *mut i32).offset(0)}} fn set_size(&mut self, n:i32) {unsafe {*(self.ptr as *mut i32).offset(0) = n;}} fn data(&mut self) -> &mut [u8] {unsafe{std::slice::from_raw_parts_mut((self.ptr as *mut u8).offset(4), self.get_size() as usize)}} } fn main() { let mut s:[u8;14] = [10,0,0,0,1,2,3,4,5,6,7,8,9,0]; let mut x = A::new(s.as_ptr() as *mut PTR); println!("x.get_size()={}", x.get_size()); println!("x.data()[0]={}", x.data()[0]); println!("x.data()[1]={}", x.data()[1]); x.set_size(7); println!("x.get_size()={}", x.get_size()); x.data()[1] = 225; println!("x.data()[1]={}", x.data()[1]); println!("s[5]={}", s[5]); } 実行結果 x.get_size()=10 x.data()[0]=1 x.data()[1]=2 x.get_size()=7 x.data()[1]=255 s[5]=255 美しくないコードだ・・・ メインのRustコードにunsafeを書きたくないので全てstructに突っ込んだらこうなった dataはslice経由で比較的自由に読み書き出来るけど、sizeは任意のアドレスを挿している数値型の作り方が判らないので関数が2つに
856 名前:デフォルトの名無しさん mailto:sage [2018/07/07(土) 01:32:56.18 ID:odAPlBjD.net] rustからrust-bindgenが吐いたC++のクラス使うのめんどくさいな
857 名前:デフォルトの名無しさん mailto:sage [2018/07/07(土) 18:52:04.06 ID:Otm/KpKR.net] ところで、全然話変わるんだけどさ、mutってどう発音してる? 自分は「むっと」ってよんじゃってて、なんか、かっこわるいんだけど。
858 名前:デフォルトの名無しさん mailto:sage [2018/07/07(土) 19:12:39.63 ID:HR9VVpP9.net] 当然、「みゅっと」でしょ
859 名前:デフォルトの名無しさん mailto:sage [2018/07/07(土) 20:15:18.96 ID:h+p+JRvo.net] 怒ってるのね
860 名前:デフォルトの名無しさん mailto:sage [2018/07/07(土) 20:19:35.52 ID:Ty8z3s6n.net] 鬼太郎のCVほっぽりだして産休に入るみゅ
861 名前:デフォルトの名無しさん [2018/07/07(土) 20:58:49.46 ID:PbU76+k2.net] mjúːtəbl
862 名前:デフォルトの名無しさん mailto:sage [2018/07/07(土) 23:03:04.65 ID:cEw8AP4C.net] ミュート
863 名前:デフォルトの名無しさん [2018/07/08(日) 00:41:02.43 ID:tBFClkmn.net] tanakhがrustのクロージャー再帰を望んでいる https://twitter.com/tanakh/status/1015609559673475073
864 名前:デフォルトの名無しさん mailto:sage [2018/07/08(日) 11:33:21.07 ID:6xrO+JsL.net] そりゃ入れないほうがいい証左になるなw
865 名前:デフォルトの名無しさん mailto:sage [2018/07/08(日) 13:33:35.86 .net] みゅう太
866 名前:デフォルトの名無しさん mailto:sage [2018/07/09(月) 02:59:46.84 ID:4B4QAQi1.net] >>863 いつまでtanakhなんてスパコン詐欺師を崇めるんだろうなこのスレの住人
867 名前:デフォルトの名無しさん mailto:sage [2018/07/09(月) 07:41:39.43 ID:DXSSRVdR.net] 国内の会社は大目に見てもらえないから大変だなあ
868 名前:デフォルトの名無しさん mailto:sage [2018/07/09(月) 09:23:25.63 ID:6MpumzZl.net] NEDOとかダメだろ
869 名前:デフォルトの名無しさん mailto:sage [2018/07/09(月) 22:56:35.23 ID:M/GPMU7W.net] 「nvidiaの倒し方、知らないでしょ?オレらはもう知ってますよ」
870 名前:デフォルトの名無しさん mailto:sage [2018/07/10(火) 08:37:04.49 ID:wS3GMIgw.net] 実際green500で倒してるんだからたいしたものだよ
871 名前:デフォルトの名無しさん [2018/07/10(火) 14:26:10.12 ID:+spxUUiC.net] https://github.com/saschagrunert/webapp.rs これいいね、Webアプリを完全Rustで作成
872 名前:デフォルトの名無しさん mailto:sage [2018/07/11(水) 12:56:28.28 ID:8BQ5VZH8.net] WebアプリをRustで書くって、どういう需要があるの? ラズパイみたいな環境?
873 名前:デフォルトの名無しさん mailto:sage [2018/07/11(水) 13:05:53.98 ID:A6luu057.net] 車買ったらムダにドライブしたくなるじゃん。すぐ飽きるのに。 あんな感じ。
874 名前:デフォルトの名無しさん mailto:sage [2018/07/11(水) 13:08:35.26 ID:uU0OdRlq.net] クライアントサイドとサーバサイドで同じコードが使えるって話ちゃうのん?
875 名前:デフォルトの名無しさん mailto:sage [2018/07/11(水) 13:30:09.56 ID:QvLfDUJ3.net] 同じ言語 だな それはnode.js環境も同じだが
876 名前:デフォルトの名無しさん mailto:sage [2018/07/11(水) 13:31:28.26 ID:QvLfDUJ3.net] 期待できる点は速くて安全
877 名前:デフォルトの名無しさん [2018/07/11(水) 16:34:41.89 ID:dzRS/LEU.net] 全部rustって需要はあんまりない気がするけど、サーバ側ならかなりマッチしてる
878 名前:デフォルトの名無しさん mailto:sage [2018/07/11(水) 17:15:53.86 ID:NEswxD4L.net] webassebly
879 名前:デフォルトの名無しさん mailto:sage [2018/07/11(水) 18:10:54.52 ID:EHDLIx8N.net] サーバーサイド → Rust クライアントサイド → Rust ブラウザ → Rust 完璧じゃないか
880 名前:デフォルトの名無しさん mailto:sage [2018/07/11(水) 18:17:02.02 ID:4XcPTXi0.net] Yewのベンチマークって他に誰か取ってた?
881 名前:デフォルトの名無しさん mailto:sage [2018/07/11(水) 18:46:56.99 ID:8BQ5VZH8.net] やたらノンブロッキングに拘ってるけど、それが本当に必要な人ってごく一部だよね 人気サービスの中の人だけ 普通はスレッド立てまくりで対応可能だし、たまに台数増やすだけで問題ないでしょ?
882 名前:デフォルトの名無しさん [2018/07/11(水) 18:59:32.73 ID:v5sVc8KX.net] だからそれは並列性が必要ってことでしょ
883 名前:デフォルトの名無しさん mailto:sage [2018/07/11(水) 19:13:29.64 ID:A6luu057.net] 真のアイルランド人はノンブロッキングなど必要としないwww
884 名前:デフォルトの名無しさん mailto:sage [2018/07/11(水) 20:14:09.83 ID:IOg1uM7w.net] アイルランドいつ統一するん?
885 名前:デフォルトの名無しさん mailto:sage [2018/07/12(木) 20:27:33.26 ID:vXAFXBtg.net] オライリーの奴予約した
886 名前:デフォルトの名無しさん mailto:sage [2018/07/12(木) 22:30:46.69 ID:Wlqbcgdb.net] >>885 白紙の未来を絶望に染めてやろう。 あれもうかなり古いぞ。 rust 2018で今よりさらに変わるんだぞ。 エラーハンドリングもモジュールもTraitも重要な部分全部かわるぞ。 nightlyで結構実装済みだから現行のnightlyですら違うぞ。 macro 2.0はいいぞ!
887 名前:デフォルトの名無しさん [2018/07/12(木) 22:39:04.16 ID:sU95dCXR.net] この仕事してるならそんなの普通じゃん
888 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 00:41:53.18 ID:MpWeaOSk.net] >>886 Rust 2018にエラーハンドリングの変更とかあったっけ? Rust 2018での追加・変更って"module, impl trait, Generators/async/await, macros 2.0, NLL, SIMD"だけじゃなかったっけ? もしかしてdo catchがstable化されるの?それとも、それ以外で変更があるの? エラーハンドリングで互換性を崩すような変更があるならかなり痛いんだけど…
889 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 04:40:11.96 ID:7ZPDFHpF.net] https://github.com/rust-lang/rfcs/blob/master/text/2388-try-expr.md 2018からtryがキーワードとして予約される(catchは廃案) editionが未完成だと実装できないから2018リリースにはきっと間に合わない
890 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 08:17:48.56 ID:wonLmOyY.net] RustもC++みたいに何年かおきに大きく変更されるの?
891 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 10:05:43.27 ID:U/mhKMvJ.net] こないだ1.0になったばかりな気がするんだが。仕事じゃつかえないな
892 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 10:19:59.41 ID:MpWeaOSk.net] こないだってもう3年前だぞ C++が仕事で使えるんだから使えるだろ てか、Swiftなんてもう4でそろそろ5になるとか言ってるんだぞ あれが仕事で使えるんだからRustなんか楽勝だろ
893 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 10:29:57.41 ID:U/mhKMvJ.net] swiftなんてappleのDSL
894 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 10:31:39.87 ID:U/mhKMvJ.net] C99勢が砦
895 名前:デフォルトの名無しさん [2018/07/13(金) 11:07:37.12 ID:sS4PjtpX.net] 実際仕事で使っている人たちがいるのに使えないということは、別のところに問題があるのよ
896 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 11:48:20.64 ID:ERNuP0HI.net] 安定性以前にまともにfibが書けない言語だから仕事じゃ使えない
897 名前:デフォルトの名無しさん [2018/07/13(金) 12:52:21.80 ID:sS4PjtpX.net] 突然の自己紹介
898 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 13:54:10.99 ID:GXltVmCz.net] >>50 辺りの流れは何回見ても本当に秀逸
899 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 15:05:24.82 ID:KpXdroi9.net] 車輪の再発明を抑止し過ぎるとnode.jsみたいになるからね やり過ぎはだめってことよな
900 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 15:40:42.13 ID:5L9NPjD5.net] どゆこと?
901 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 16:06:42.44 ID:AcLm8Zma.net] たかだか一行二行のプログラムのnpmパッケージであふれ、しかも子孫含めた被参照ダウンロードが100万とかざらで、さらにそれがバグっている。
902 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 17:28:42.65 ID:vZnflVWC.net] Rust関係ないけど最近ArchLinuxのAURに細工されたパッケージが上げられててほんのちょっとだけ話題になったんだけど 正直自分が使うcrateやそれの依存関係まで含めて全部書いてる人が信用できるかとかソースまでチェックしてる人なんていないよね…? イカンなぁと思いながら盲目的に使っちゃってるわ(´・ω・`)
903 名前:デフォルトの名無しさん [2018/07/13(金) 17:44:54.43 ID:sS4PjtpX.net] CPUのL2キャッシュを作った人の叔母の恋人がテロリストがどうか気にするところから始めたほうがいいな
904 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 17:46:33.55 ID:U/mhKMvJ.net] 某ファイルシステムの作者が奥さんを殺してしまってな
905 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 18:29:15.55 .net] 怖いなぁ、戸締まりすとこ…
906 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 19:36:34.68 ID:wonLmOyY.net] そういえばRUSTという殺し合いをするゲームがありますね
907 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 20:34:31.63 ID:Cw5pkNzp.net] crate以前に詐欺企業Mozillaが信用できないから
908 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 20:59:24.06 ID:IpXdw+4i.net] Mozillaが詐欺企業なら、Mozilla以上に言う事やる事がコロコロ変わるAppleや 個人情報を収集しまくりのGoogleやMicrosoftはどうなってしまうんだろうなw
909 名前:デフォルトの名無しさん [2018/07/13(金) 21:16:35.53 ID:Y3xd+pZ1.net] > 仕事じゃ使えない おじさんのことじゃん
910 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 21:19:05.39 ID:EK55GFqW.net] crates.ioを見に行かないようにして、社内で確認済みのcrateしか置いてない社内リポジトリだけ 参照するような設定って出来るんだっけ?
911 名前:デフォルトの名無しさん [2018/07/13(金) 21:39:00.40 ID:Y3xd+pZ1.net] RFCはあるみたいだけどまだ出来ないのかな https://github.com/rust-lang/rust/issues/44931
912 名前:デフォルトの名無しさん mailto:sage [2018/07/13(金) 21:50:09.75 ID:EK55GFqW.net] >>911 まだ半分も済んでないね
913 名前:デフォルトの名無しさん [2018/07/14(土) 00:26:44.88 ID:nZvQhL00.net] >>910 cargoはそこらへん腐ってるから無理。 出来はするけどcrates.ioをクローンするツールの開発が 殆ど動いてないしクローンしてもそのローカルリポジトリを管理するツールがない。 ここらへんはoffline modeも絡んでくるけど、 どうせ欠陥機能作って廃止してまた作っての繰り返しでめちゃくちゃになるだけ。
914 名前:デフォルトの名無しさん [2018/07/14(土) 06:22:32.24 ID:brBR1uF1.net] crates.ioのソースを持ってきてローカルに立ち上げてhostsで向ければ出来上がりじゃん
915 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 06:46:24.80 ID:W3qfg8ZM.net] cargoが便利コマンドすぎて、原始的な事がやりづらくなってる問題
916 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 09:02:37.98 ID:5xFWH4XP.net] 便利っつーかモジュラリティーの低い構造になってるだけだろ。。 バカ設計だわ。
917 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 10:21:42.77 ID:7J+9ARNC.net] >>909 go使うよ。32bitsマシン以上向けならgoで十分だ。
918 名前:デフォルトの名無しさん [2018/07/14(土) 11:25:26.45 ID:brBR1uF1.net] 仕事じゃ使えないのは言語じゃなくてお前だって言われてるのに何故goが出てくる
919 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 11:57:28.13 ID:7J+9ARNC.net] Rust使えないから
920 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 14:38:38.90 ID:HNobJoZ0.net] Rust(が/を)使えないから どっち
921 名前:デフォルトの名無しさん [2018/07/14(土) 14:41:53.11 ID:6PGIbnJP.net] にほんごむずかしいあるね
922 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 14:53:02.90 ID:fAbuOpO3.net] Rustの提案するエセソリューションは機械語のレベルと相性が悪い CやC++のほうがまだまともなアプローチしてる
923 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 15:01:24.24 ID:3YOZASYs.net] 「機械語のレベルと相性が悪い」が "All your base are belong to us" みたいに見えてきた なんかもう根本的に解ってないなっていう感じからくる面白さがある
924 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 15:14:29.28 ID:HNobJoZ0.net] モジラに職を奪われたおじさんと そのおじさんの物まねをするおじさん達のスレ
925 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 15:18:04.39 ID:n16W1iUj.net] LLVMについていけないおじさん
926 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 15:22:17.69 ID:P7IB+4yp.net] Cやアセンブラなどの低レベルな処理と連動する場合unsafeを使わざるを得ないが、言語の仕様上普通に書くとunsafe祭りになってしまい ソースコードの可読性が低下するのが残念。抽象化したくてもこれまた仕様的に完全な抽象化が出来なかったりするし
927 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 15:47:47.15 ID:7J+9ARNC.net] gcが有って良いならgo。 ない方が良いならnimってことか
928 名前:デフォルトの名無しさん [2018/07/14(土) 16:00:11.16 ID:6PGIbnJP.net] まだ学習し始めたばかりでみんなが何を言っているのかよくわからない。
929 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 16:53:11.51 ID:QBMXvyuq.net] どいつもこいつも適当なことをそれっぽく言ってるだけだから気にしなくておk
930 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 16:57:03.73 ID:7J+9ARNC.net] ここはアンチの溜まり場だよ
931 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 17:09:58.35 ID:lldWHLOY.net] 今日は本物がいないな
932 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 17:28:07.35 ID:veV9L5cz.net] >>927 一体いつからNimにはGCがなくなったんだ…?(困惑)
933 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 17:41:12.64 ID:/EttrqmU.net] >>931 狂人の真似をすれば実際狂人 つまりみんな本物のRustに職を奪われたおじさんなんだよ
934 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 17:45:59.63 ID:h94PG7c/.net] https://nim-lang.org/docs/gc.html RustはできないしNimも詳しくない専門性なしのおじさん
935 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 18:18:40.34 ID:yo3MGbyq.net] お前らもモジカスに親を殺されてみろよ
936 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 20:02:32.48 ID:3YOZASYs.net] バトー「つまり、本物の "Rustによる被害者" というのは最初の一人だけで、 残りは全て模倣犯による狂言だったってのか?」 トグサ「ああ。狂言を読んだ者は初めのうちは怒りを覚える。 だが、その理不尽な怒りを抱えきれなくなると、 衝動的に自らが "Rustによる被害者" になりすますことで、 狂言によって植え付けられた怒りを共有しようとしていたんじゃないか」 バトー「実在しない "Rustによる被害者" たちが連鎖するってわけか……。 ── 最初の一人はとうの昔に死んじまってるのにな」
937 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 23:00:52.98 ID:6hFYodEH.net] >>923 懐かしいなAYBか。文法エラーを直しても通じないのがいいよなw "All of your bases belong to us." "お前らの卑しいものすべては我々に首ったけ" ヒドイw
938 名前:デフォルトの名無しさん mailto:sage [2018/07/14(土) 23:51:21.23 ID:5xFWH4XP.net] rustに職を奪われたおじさんなんて実際は存在しないわけだが。。 まあそういう人がいると思った方が幸せな人がいるのは事実。
939 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 00:42:05.31 ID:NkViXM6D.net] Rustに職を奪われたおじさんなんて名称なんてどうでもよくて fibも書けない確かな"存在"がぐちぐち居座るせいで幸せになれない
940 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 02:53:02.00 ID:x6haH/8s.net] 良かった。Rustに職を奪われたおじさんは居ないんだ。
941 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 10:56:41.89 ID:NalVqF46.net] NLLがstabilizeされたらfibを書けないおじさんもfib書けるようになって成仏できるよ
942 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 11:00:28.92 ID:rsj4GyZ/.net] >>941 「fibを書けないアホ」が「木構造を書けないアホ」に変わるだけと予想
943 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 14:08:56.51 ID:Um7D2OLN.net] rustでfibが書けたり、木構造が書けることをここまで自慢してくる輩って。。
944 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 15:31:20.30 ID:rsj4GyZ/.net] 自慢も何もプログラマを名乗るなら最低限それくらい書けて当然だろ?ってこと 例えば、「俺は数学者だ」とか言ってる奴が微積分すら理解出来てなくて 「でも、因数分解ならできるし」とか言ってたら全力でぶっ叩くだろ? つまりは程度の問題ってわけ そして俺はRustでfibや木構造すら書けない奴はどうせ他の言語使ったって ろくなコード書いてないだろうからそんな奴がプログラマを名乗るなんて片腹痛いわ!と思ってるだけ
945 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 15:42:24.47 ID:ppRXQOVy.net] このスレに迷い込んだ新規にはfibをどんな書き方をしたらrustで問題になるのか想像もつかない
946 名前:デフォルトの名無しさん [2018/07/15(日) 17:23:07.93 ID:upVjqm6g.net] fibってなんですか?
947 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 17:23:57.93 ID:vPMHyt9R.net] >56でしょ? fibがかけなくて5時間も喚いた挙げ句 答えを大量に示されても礼のひとつも言えない 下らない批評をしては論破されて潜伏を繰り返しているあほ 「rustに職を奪われた」「fibを書けない」もこいつの本質ではないんだよな
948 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 17:58:08.24 ID:f+8P4DFr.net] ここはネタスレなんで
949 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 19:36:55.02 ID:YZYcatpB.net] >>56 もそもそも拾い物みたいだしなぁ…… (検索に引っ掛かる
950 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 19:51:13.58 ID:H2FcMtiY.net] ツイッターでrust-lang-ja.orgのドメインが〜みたいな話が先月からあるみたいだけど このスレでは誰も話題にしてない?
951 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 20:03:03.01 ID:NalVqF46.net] fib拾いものなのか 正しくないfibすら書けないおじさんだったか
952 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 20:56:16.71 ID:vPMHyt9R.net] https://www.google.co.jp/search?q=%E2%80%9Ca352230e08bc0a76fb5f116bd3c7abf4%E2%80%9C ? >>950 検索にも引っ掛からないし誰が困るんだろう
953 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 21:35:06.48 ID:YZYcatpB.net] >>950 Slackでは話題に出てたけど ここでは出てないかな >>952 流石にplaygroundには貼ったんでしょうね コード4行目で検索
954 名前:デフォルトの名無しさん mailto:sage [2018/07/15(日) 21:45:35.35 ID:rsj4GyZ/.net] >>953 ほんとだ4行目だけを直接検索したら出た しかも解決法までご丁寧に解説してあった >>56 はそれも読まなかったのか… はたまた、読んでも理解できなかったのか…
955 名前:デフォルトの名無しさん mailto:sage [2018/07/16(月) 16:06:24.68 ID:NRqWPJmE.net] 推察するに日本語が読めなくて、「できない」だけで飛び付いたんだろうなあ こんな奴でもC++は書ける(自称)って辺りが日本のプログラマの闇だな
956 名前:デフォルトの名無しさん mailto:sage [2018/07/16(月) 16:24:01.28 .net] 軽々しくC++書けるなんて口にしようものなら茂みからマサカリが飛んでくるぞ
957 名前: mailto:sage [2018/07/16(月) 16:41:06.37 ID:PLRcL5uS.net] C/C++ については、いつまでたっても「書ける」とはいいきれない存在ですね… 仕様が結構複雑だからなのか?
958 名前:デフォルトの名無しさん mailto:sage [2018/07/16(月) 18:39:02.08 ID:NeMQsq8I.net] Rustは「書ける」んですか?
959 名前:デフォルトの名無しさん mailto:sage [2018/07/16(月) 18:52:42.01 ID:tJPrOapS.net] Go使うよ。
960 名前:デフォルトの名無しさん mailto:sage [2018/07/16(月) 19:02:04.84 ID:+TKchfUN.net] perlがライトオンリー言語なんて言われていたけどリードオンリー言語なんてのもあるんだな。 wiki.c2.com/?ReadOnlyLanguage rustはノミネートされてないから「書ける」と思うよ(すっとぼけ
961 名前:デフォルトの名無しさん mailto:sage [2018/07/16(月) 19:32:53.55 ID:PkmPgg8A.net] 確かにAppleScriptは中途半端に英文風で多彩かつ何でこれダメなのってパターンも多くread onlyに相応しいな 昔はAdaの称号だったと思うが
962 名前:デフォルトの名無しさん mailto:sage [2018/07/17(火) 01:20:02.37 ID:XTfqg8Os.net] Eclipse Corrosion使ってるやついないの?
963 名前:デフォルトの名無しさん mailto:sage [2018/07/22(日) 20:18:59.26 ID:6WNc4gpj.net] Rustでプラグイン機構を持ったアプリを作る場合、本体とプラグインでjsonでやり取りするのが無難? それとも動的リンクでいける?
964 名前:デフォルトの名無しさん mailto:sage [2018/07/23(月) 00:12:51.84 ID:t7f2tjaz.net] jsonでどうやるんだ。 ttps://crates.io/crates/libloading
965 名前:デフォルトの名無しさん [2018/07/23(月) 00:44:55.55 ID:CBB4e6ta.net] それOSやRustコンパイラがどういうコード作るかによるのでは? なんとなく出来そうな気はするけど。