1 名前:デフォルトの名無しさん [2017/05/21(日) 14:04:29.55 ID:9L9dm7b/.net] Mozillaがリリースした、プログラミング言語「Rust」について語るスレです。 www.rust-lang.org/ https://github.com/rust-lang/rust Servo https://servo.org/ https://github.com/servo/servo ◆前スレ プログラミング言語 Rust 2 echo.2ch.net/test/read.cgi/tech/1478023960
313 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 12:39:25.58 ID:fQ81IbD6.net] pecoもghqもすでにrust版あるよ
314 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 13:18:07.15 ID:E8ESHMbJ.net] wasmがもっと成熟すれば...
315 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 14:21:47.66 ID:5XPEt11J.net] >>308 へー。リンク下さい
316 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 16:53:49.81 ID:qEbQGi9S.net] >>310 https://crates.io/crates/rhq https://crates.io/crates/skim
317 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 17:33:21.29 ID:CUwpfKAw.net] skimええやん
318 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 17:38:52.31 ID:qu0St3oz.net] >>307 Facebookが社内向けにMercurial(Python + C)をRustで一部?書き直したら速かったらしい 俺も、社内向けツールを前任者がgoで書いたのを幾つかRustに移植してる ただの練習素材として移植してたけど、2〜3倍速くなったよ
319 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 19:00:41.47 ID:FbhHJVqk.net] 「Rust 1.19」リリース。union(共用体)をサポート www.publickey1.jp/blog/17/rust_119union.html
320 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 20:32:46.37 ID:5XPEt11J.net] >>313 おおー。魅力的な話だね。 メモリの使用量もrustだと減るようなきがするんだけどそのへんどうかな。
321 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 21:45:29.88 ID:7Ef69C7C.net] rustは今の日本だと凄腕のプログラマが使ってるところはちょいちょい見かけるな。 もっとwebの人たちがたくさん布教すればいいんだろうけど、やっぱrust自体が難しいのかね。 C++とよくセットで名前が出てくるから、ビビる人が多いのかなーとも思う
322 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 22:11:08.39 ID:FfK5LQFv.net] 最近真面目に勉強し始めたけど潜在的に難解なバグを生み出す汚いコードを平気で書く人だと コンパイルが通らないので辛いと思う。 若干煽り気味に言えばPHPやRailsだけやってプログラミングを分かった気になってちゃんと勉強してない人には無理。
323 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 22:21:26.92 ID:5XPEt11J.net] ios -> objc, swift android -> kotlin,java web frontend -> typescript, javascript web backend -> go,ruby,php ってイメージだがrustはどこに入るの?
324 名前:デフォルトの名無しさん mailto:sage [2017/07/25(火) 23:01:36.50 ID:w/P80i1O.net] webassemblyの今後の成熟具合によっては、 web frontendに食い込んでいくかも
325 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 02:52:39.50 ID:mSfCdN7l.net] >>318 希望的観測で言えば、 今までC/C++で書かれていたようなもの全てと、今goで書かれているものの半分 -> rust WebAssemblyをほんとに必要としてるのは、ごく一部の人だと思う
326 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 08:56:45.29 ID:ENBFGRGX.net] >>320 例えばc++ でUE4って書かれてるけど そこをrustでってのはあるのかな? ゲームエンジンとかはc++ってイメージだけどそれがrustでどうなるのか興味あるなー。 c++よりバグが少なくなってメモリ使用量も減るなら 家庭用ゲーム機とかの性能向上に役立ちそうだけど。
327 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 10:26:21.34 ID:ENBFGRGX.net] https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/dining-philosophers.html このチュートリアルもうちょいなんとかならないのか クロージャー周りの説明が抜けてるからなんだかふわっと触って終了みたいな感じになるんだけども。シンタックスの方から学んだほうがしっくりする。
328 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 12:59:44.03 ID:TL1HhZT+.net] >>321 ゲームエンジンそのものがRustで書かれているのでなければ移行はないと思ってる 自分は据え置き開発だけど、ライブラリやツールやアセットパイプライン含めてC++ならそのまま利用する方が楽だし、ゲーム会社ならC++の資産やノウハウも蓄積されてる
329 名前:デフォルトの名無しさん [2017/07/26(水) 16:21:03.85 ID:G2QlGkU/.net] >>323 環境的にc++14使うくらいは許されてるの?
330 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 18:20:47.88 ID:1Yp0AYo7.net] >>324 基本C++11かな 部分的に14の機能も使えるかも そのうち使えるようになると思われる
331 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 18:36:05.35 ID:0VRUk0dC.net] >>320 はゲームエンジンそのものがrustにならんかのーって話じゃないの その上っ面はC++のままで良いんでない
332 名前:デフォルトの名無しさん mailto:sage [2017/07/26(水) 19:49:44.76 ID:FgKZS4eT.net] >>322 最新ではその項無くなったよ
333 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 00:05:30.43 ID:YcR0VV5Q.net] >>327 なんややっぱりそうなんだ。 やっててあんまり面白いとも思えなかったしね。 今シンタックスのところを読んでるけど、goより学習コストは高いなーと思った。 メモリ管理のメンタルモデルは学習を避けることができないから、尚の事学習コストは高いよね。 使い始めに関してはc++より難しいんと違う?
334 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 00:15:56.27 ID:YcR0VV5Q.net] goを学習するモチベーションとなったのはgoroutineで並列処理を簡単に書けるからだったんだよね。 phpのバッチ処理を学習期間は2,3日で goで並列処理を書けるようになった。 まぁ書けたってだけでgoの流儀って独特だから、その後の深淵に結構はまっていったんだけど。 深層学習の為のpython。 iosのためのswift。 みたくrustの始めるきっかけとなる分野ってなんかないのかな? rustを書きはじめる皆さんのきっかけを教えてください。
335 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 08:45:36.82 ID:alz7xNNS.net] >>329 社内でのC++開発に疲れて代替を探して。 ブライベートで使って、社内もこれにしたいと妄想する。そして誰も社内でRust使えない。
336 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 09:07:26.49 ID:alz7xNNS.net] >>313 Rustにしちゃって、あなたの後任が困るとか、そういうことはないの? 社内でもRust認められてる?
337 名前:デフォルトの名無しさん [2017/07/27(木) 10:08:19.56 ID:JZl+5b/l.net] コードに問題があればcargo runでエラーが出ますけど ビルドせずチェックだけを行う方法ないですか? あと定番のlintツールも教えてください
338 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 11:54:01.80 ID:NVUZFqS5.net] cargo check clippy
339 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 12:47:34.70 ID:tmRnr4Iu.net] >>331 前任者も認められてたからgo使ったわけじゃなく、goがもっとマイナーだった頃に勝手に使ってただけだし 俺も存在するかどうかわからない後任者など気にしてない うちは大きな会社じゃないので、何を採用するかはプロジェクトリーダー次第
340 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 14:28:39.09 ID:MedrFN4m.net] 是非rust使ってレポートしてほしい
341 名前:デフォルトの名無しさん mailto:sage [2017/07/27(木) 21:27:35.77 ID:YcR0VV5Q.net] rustって課題を解いていく感じの学習サイトってないすかね? goとかjsだとあるんだけど、、、
342 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 00:41:42.43 ID:eqr+g7ZD.net] rusr by example 本家 https://rustbyexample.com 日本語訳 rust-lang-ja.org/rust-by-example/
343 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 08:34:02.73 ID:O7VztC89.net] >>337 わぉ。ありがとうございます。普通にあってよかった
344 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 10:12:39.22 ID:APGd6g7o.net] nightlyって頻繁に更新ありますか? モバイルに接続してるのであんまり通信したくないからstable選んだんですけど clippyがnightlyでしかインストールできないのつらい
345 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 13:36:38.25 ID:IiZPJKRx.net] てすと
346 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 17:20:05.54 ID:HRHd+c6j.net] cargo checkだと全てのrsファイルをチェックするので cargo check hoge.rsみたいに特定のファイルを指定してチェックする方法ありませんか?
347 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 17:54:04.02 ID:ABEdHekZ.net] Stableでは無理 Incremental compilationの安定化を待ちなされ
348 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 18:24:34.83 ID:cPwtoBYF.net] >>342 あ、そのモジュールが他のモジュールに全く依存していない場合はrustc hoge.rs --crate-type=lib --emit=metadataが一応使えるんだった ただしこれはカレントディレクトリにゴミをまき散らすからあまりおすすめできない
349 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 21:55:20.59 ID:3/dxxKLW.net] REPLが欲しいんですが安定したやつないかな
350 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 22:25:19.67 ID:kWrQnfQi.net] 目の前の便利な箱で調べること出来ない教えて君は 実はRustで作った人工知能試験で動作試験してるんじゃなかろうな
351 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 22:36:44.17 ID:GOfdf3yM.net] いまbookやってるんですけど fn main() { let x = 1; println!("Hello") } これ1回目buildすると warning: unused variable: `x` --> src/main.rs:2:9 | 2 | let x = 1; | ^ | = note: #[warn(unused_variables)] on by default って出るのですが、2回目buildするとこの警告が出なくなる なんででしょうか?
352 名前:デフォルトの名無しさん mailto:sage [2017/07/28(金) 22:40:19.95 ID:jE9FvNjp.net] コンパイルの結果がキャッシュされているから
353 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 00:47:07.63 ID:DIZfrj77.net] rustってまだ安定してない感じ? 開発環境は何がおすすめなんです? vscodeを試したけどあんまりrustに対応してない感が
354 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 02:31:25.76 ID:ZD4o/AdV.net] >>348 俺はIntelliJ派だから
355 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 02:34:36.68 ID:7woiJ3eO.net] そうですか
356 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 10:51:47.46 ID:Xgmp5DuD.net] Rustについて調べているのですが2点ほど質問です ・所有権、借用権ってどのようなケースを想定した機能なのか? 並行処理を行うコードを書く時には同期ミスによる破壊を防止できて便利そうだけど上手い活用ケースを想像できない ・OS無しで動かす
357 名前:コードを書くケースでRustが謳うメリットはどの程度いかせるのか? メモリマップドレジスタへアクセスするためにunsafeと生ポインタを多用することになる このようなケースでコンパイル時の安全性の検査条件などはカスタマイズできたりするのか [] [ここ壊れてます]
358 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 12:41:44.44 ID:cTpvw2dC.net] vim + project.vim + rust.vimもいいぞ コード量が多いと流石にIntelliJ使うけど
359 名前:デフォルトの名無しさん [2017/07/29(土) 12:52:24.62 ID:U9LihKmk.net] IDEAとvscodeってどっちがおすすすめ?
360 名前:デフォルトの名無しさん [2017/07/29(土) 12:52:42.83 ID:U9LihKmk.net] おすすめ?
361 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 14:45:43.16 ID:3C62sBLB.net] >>313 噂をすればなんとやら facebookexperimental/mononoke: A Mercurial source control server, specifically designed to support large monorepos. https://github.com/facebookexperimental/mononoke >>351 メモリ安全性以外での所有権の活用例としては、すでにボディを書き込み始めたHTTPレスポンスに新たにヘッダを書き込めないことを静的に保証する、とかいうのがある https://docs.rs/hyper/0.10/hyper/server/index.html#an-aside-write-status ヘッダを書き込んだレスポンスの所有権を奪って、ボディだけを書き込める型にして返している https://docs.rs/hyper/0.10/hyper/server/response/struct.Response.html#method.start
362 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 16:04:35.17 ID:OScYBSe+.net] もののけ
363 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 16:29:29.84 ID:PuR8d8Sj.net] ideaのrustプラギンはメソッドチェインが深くなるとハイライトされなくなって、リネームとかも取りこぼすことがある。それ以外はよくできてて満足
364 名前:デフォルトの名無しさん [2017/07/29(土) 16:43:27.84 ID:mj0H/MXI.net] >>351 所有と借用は、設計の考え方として言語問わず有効なので、コンパイラに強制されるのはかなり嬉しい。 と言うのも、所有を考えないで動的メモリを使ったプログラムは、シングルスレッドであっても、ライフタイム問題を起こしやすいんだよね。 他人にヤラれると殺意がわく。
365 名前:デフォルトの名無しさん [2017/07/29(土) 16:55:38.17 ID:mj0H/MXI.net] >>351 借用に関しては、不意の同期漏れ防止と思ってる。 ご存知の通り、マルチスレッドでは、同じオブジェクトを触るときに同期処理を入れないと、データ破壊しちゃうじゃん? C言語だと、この危険な状態がデフォルトで、気付くかどうかは人間次第。 でも、rustはコンパイラがその危険な状態を防いでくれると言うだけだと思う。
366 名前:デフォルトの名無しさん [2017/07/29(土) 17:08:36.25 ID:mj0H/MXI.net] >>351 最後、OS無しはどうかなー。 自分ならこうするかなっていうテキトーな意見だけど、生メモリアクセスが必要な部分(デバドラとか)はC/C++で書いて、アプリ部をrustで書いてFFIバインドかなー。
367 名前:デフォルトの名無しさん [2017/07/29(土) 17:23:05.64 ID:H7MJnrUX.net] Rustの素晴らしさを理解するにはC++を理解する必要がある?
368 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 17:27:03.96 ID:DIZfrj77.net] >>360 メモリ安全にかけるのがrustなら 最初から最後までrustで書けるべきじゃない?
369 名前:デフォルトの名無しさん [2017/07/29(土) 17:41:05.57 ID:mj0H/MXI.net] >>362 最初から最後までメモリ安全じゃなくてもいいんじゃない? 適材適所で使い分ければ。 マルチスレッド問題はアプリ側に多い問題かなーって。 デバドラ最下層になると、そもそもマルチスレッド要件が無かったり、メモリイメージが生で見える触れる方が融通があって便利だったりするし。 ドメイン境界で考えて、rustを適用する範囲内で潔白なのが重要と思ってる。 この潔白さは、開発者の人数が多いドメイン(アプリ)で、真価を発揮するんじゃないかなと。
370 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:00:00.71 ID:SaJE2wIQ.net] racer + flycheck-rust でマクロ補完って無理? println!とかwrite!とか毎回全部打つのがダルい
371 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:10:49.31 ID:DIZfrj77.net] >>363 結局cには勝てないのか。 rustってgcがないからメモリイメージを直接いじりやすいのかと思ってたよ。 redoxとかも結局c++に頼ってたりするんかな?
372 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 18:13:03.21 ID:DIZfrj77.net] >>363 あと最初から最後までメモリ安全のほうが良くない? 少なくともメモリ関連のバグを撲滅できるんであればrustの価値はあると思うんだ。 逆にできないならrustの存在意義ってなんだろ。 goは並行処理が言語機能に組み込まれてる。 rustはメモリ安全が売りだと思うんだけど、 そこってなかなか地味な売りな気がして
373 名前:デフォルトの名無しさん [2017/07/29(土) 18:57:22.38 ID:mj0H/MXI.net] >>365 Cに頼る→負けてるって事じゃないと思うけどね。 実際アセンブリ言語はなくならないわけだし。 CPU の高機能化、メモリの大容量化、プログラムの大規模化、があって、開発効率を高めるために、プログラムの大部分がC言語に置き換わったわけじゃん。 で、マルチコア全盛の時代になって、正常稼働面での重大要因としてメモリ安全性が注目されてrustが生まれたのだから、メモリ安全のメリットの大きいところだけrustに置き換わるってのが、普通の流れじゃないのかなーと思うよ。 別にCを駆逐する必要はないしょ。
374 名前:デフォルトの名無しさん [2017/07/29(土) 19:02:32.30 ID:mj0H/MXI.net] >>366 そもそも、ハードに近い層でのメモリ安全性って何?って話だと思うんだ。 で、メモリ安全の話が出てこない領域なのだから、rustの出番が無いって事で良いんじゃない?
375 名前:デフォルトの名無しさん [2017/07/29(土) 19:05:29.70 ID:mj0H/MXI.net] >>361 むしろC++をうまく使うために、rustの意味論(セマンティクス)を勉強して欲しい、って思う。
376 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 19:59:14.72 ID:DIZfrj77.net] goができたのはgoogle社内のc++プロジェクトの置き換えのためだけどrustってどんな動機でできたの?。 まさかブラウザ開発のため?
377 名前:346 mailto:sage [2017/07/29(土) 20:14:02.81 ID:DdYvAide.net] >>347 キャッシュを無効にして毎回警告を出すにはどうしたら良いでしょうか?
378 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 20:22:55.12 ID:OScYBSe+.net] >>369 俺もRustはじめてからC++が少しよく書けるようになりました
379 名前:デフォルトの名無しさん mailto:sage [2017/07/29(土) 21:18:30.65 ID:ZD4o/AdV.net] >>355 へー、monorepo用だからモノノケとな mercurialをベースに仮想ファイルサーバーにする予定とは、なかなか壮大な計画だ
380 名前:351 mailto:sage [2017/07/29(土) 21:52:24.31 ID:Xgmp5DuD.net] レスありがとうございます >>355 ,358-359 なるほど。やはり並列処理時の安全性を担保する機能なのですね 組み込みでRTOSもどきを作って並列処理させるなんて場合には有効なのかな >>360 構文上罠が多いC/C++の代替となる言語を探していてRustを検討しています なのでC/C++を使わずにC/C++相当のことを行いたいです 警告もエラーも無しに動作だけがおかしいとか勘弁して欲しいです 他にDも検討していますが何となく新しい方が何かと便利かなと思ったり・・・
381 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 03:44:39.97 ID:m1nsIIH9.net] 以前にこのスレであったら良いと言われていたOptionのEntry風APIが実装されて、しかも既にstabilizeされている std: Stabilize `option_entry` feature ・ rust-lang/rust@ee064c3 https://github.com/rust-lang/rust/commit/ee064c380652fb7e40c1620fd74fb1406989d009
382 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 08:00:41.23 ID:eSrcFrA9.net] >やはり並列処理時の安全性を担保する機能なのですね race condition の解消はあくまでもメモリ安全の一部でしかない
383 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 08:02:46.70 ID:eSrcFrA9.net] >
384 名前:他にDも検討していますが何となく新しい方が何かと便利かなと思ったり Dが検討対象に入って、かつ、低水準用途なの? 意味わからんな [] [ここ壊れてます]
385 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 08:03:42.92 ID:NzSybo/S.net] 351からは実際にプログラム組んだことの無い人の気配がプンプンしてる。
386 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 11:40:03.02 ID:sZ4wntzb.net] cargo check のメッセージが加工しづらい https://github.com/rust-lang/rust/issues/42653これ追加されて欲しい
387 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 16:21:42.29 ID:vygP638r.net] たぶんnode.js育ちの人だと思うけど、実質1行ないし3行で完結してるクレートが出てきてるね
388 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 17:42:42.26 ID:cNiju5gN.net] clippyインストールできないclippyインストールできないclippyインストールできない clippyインストールできないclippyインストールできないclippyインストールできない clippyインストールできないclippyインストールできないclippyインストールできない 修正したコミットがが日曜の夜にコミットするって作者が言ってるけど遅すぎ 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
389 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 19:43:29.15 ID:IhAKIxVt.net] CランタイムをスタティックリンクしたくてRUSTFLAGSに以下のフラグを設定しています。 RUSTFLAGS='-C target-feature=+crt-static' これを環境変数で設定するのではなくCargo.tomlで指定するにはどうすればいいんでしょうか? doc.crates.io/config.html を参考に下のように書いてみたのですが効いてないようでした。 [build] rustflags = ["-C target-feature=+crt-static"] オプションの書き方が違っているんですかね?
390 名前:デフォルトの名無しさん [2017/07/30(日) 19:51:11.45 ID:m1nsIIH9.net] ["-C", "target-feature=+crt-static"] でどうかしら
391 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 20:00:04.61 ID:IhAKIxVt.net] うーん、このへん試してみたんですけどだめなんですよね。 ["-C", "target-feature=+crt-static"] ["target-feature", "+crt-static"]
392 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 22:39:37.27 ID:KR/rniwV.net] >>381 一時的に古いnightly使えば良いのでは
393 名前:デフォルトの名無しさん mailto:sage [2017/07/30(日) 23:38:44.64 ID:dsY+op8E.net] まだruct学んで2日目だけど これパッケージ入れる時のコンパイルが長いね 補完強化のためにracer入れようとしたらsyntax_syntaxから全然進まなくてCTRL+C押しちゃったよ 基本的なものを覚えるだけならパッケージなんて入れなくても良さそうだけど ステップアップしたときにそれなりのスペックのPC持ってないと学習するのが厳しい言語って感じ
394 名前:351 mailto:sage [2017/07/31(月) 01:33:05.73 ID:0NH1HYUL.net] >>377 C/C++より判りやすく罠が少なくC/C++で出来ることは全て出来る言語を探しています >>378 ネイティブに動くプログラムで一番経験があるのはアセンブラ(組み込み)です C/C++はなんの警告もなくメモリがぶっ壊れるし、どこが壊しているのかも判りにくいし 苦手です
395 名前:デフォルトの名無しさん mailto:sage [2017/07/31(月) 09:17:51.12 ID:nR0sqwYk.net] アセンブラは型がないぶんさらにメモリ壊しやすいと思うが
396 名前:デフォルトの名無しさん mailto:sage [2017/07/31(月) 13:44:43.25 ID:luO5NyKL.net] ライフタイムもコンパイル時に検査してライフタイムの外側からアクセスする処理もコンパイルエラーにするって これって結局 全部ローカル変数になるってこと? プログラム全体を通してアクセスする変数はmain関数で用意したローカル変数だからmain関数を抜けたあとは全部開放しちゃうからメモリリークも起きない? cとかでもやろうと思えばできるって事? cでmallocとかfreeを使わず、 全部変数定義してつかえばrustと同じ?
397 名前:デフォルトの名無しさん mailto:sage [2017/07/31(月) 16:54:10.50 ID:RkZnFpRc.net] メモリに限らずリソース確保全般を行わないプログラムって何ができるのか 可変サイズの入力を受け取るならmallocがほ
398 名前:ぼ必須じゃない? 1行MAX_LENGTH文字までのテキストしか処理しないとか? [] [ここ壊れてます]
399 名前:デフォルトの名無しさん mailto:sage [2017/07/31(月) 17:16:32.22 ID:CRPdTSOK.net] rustってどんな分野に向いてるのかいまいちわからないんだけど webに使うのはおすすめできる?
400 名前:351 mailto:sage [2017/07/31(月) 19:18:45.74 ID:S3S/4XWd.net] C/C++は言語仕様的にメモリの破壊を誘発しやすいと思っているんだけどそう思うのは自分だけなのだろうか >>388 プロジェクトやプログラムの規模という要素もあるけどメモリを自由に管理できるアセンブラの方が見通しが良く メモリ破壊に関するリスクも制御しやすいと思う。人間が理解しやすいように並べることも出来るし もしメモリを壊した時もC/C++より何が起きるかを予測しやすいと思う 個人的にはメモリアクセスの規約を登録できてコンパイル時にそれをチェックしてくれると嬉しいんだけどな
401 名前:デフォルトの名無しさん mailto:sage [2017/07/31(月) 19:24:58.57 ID:nTqL7k1O.net] アセンブリ的な観点でCの挙動が予想できないと言っているようならRustなんて余計に抽象的で分かりづらいと思うのだが Volatile関連の制御とかだって面倒なだけだし
402 名前:351 mailto:sage [2017/07/31(月) 21:28:38.42 ID:S3S/4XWd.net] >>393 C/C++はメモリマップを意識しないと安全を確保できないけど、マッピングするのはコンパイラでありリンカでありOS そのような状態で想定しないメモリアクセスが起きた時の挙動を予想することは自分には出来ないです C/C++でバリバリ書いている人はこの程度出来て当たり前なのかな
403 名前:デフォルトの名無しさん mailto:sage [2017/07/31(月) 22:26:49.07 ID:nR0sqwYk.net] C/C++というレベルじゃなくて LinuxのABIやldのリンカスクリプトがわからんレベルの人と予想
404 名前:デフォルトの名無しさん mailto:sage [2017/08/01(火) 18:09:39.02 ID:TrH0Acv/.net] >>391 いわゆるWebアプリを書く言語としてはおすすめしない。
405 名前:デフォルトの名無しさん mailto:sage [2017/08/01(火) 18:17:25.28 ID:TrH0Acv/.net] >>392 C/C++に慣れていないだけでは。 もしくは動的なメモリ確保を想定していないとか。
406 名前:デフォルトの名無しさん mailto:sage [2017/08/01(火) 18:21:43.31 ID:TrH0Acv/.net] >>394 (わりと一般的な)OS上で動かす限り、アセンブリ言語で書いても リンカとローダが介在することには変わりないと思うけど。
407 名前:デフォルトの名無しさん mailto:sage [2017/08/01(火) 18:52:10.83 ID:8J/offgv.net] >>351 はOS無しと言っている
408 名前:デフォルトの名無しさん mailto:sage [2017/08/01(火) 19:26:38.99 ID:A6tuVNB3.net] >>351 OSなしアセンブラを必要とする層で使える汎用高級言語を探してるならRustは適さないからお帰り そういう言語が存在する気はしないけど夢追い人っぽいから応援はしてるよ
409 名前:351 mailto:sage [2017/08/01(火) 19:28:04.99 ID:ascdikyg.net] 新しめのプログラミング言語は十中八九メモリの安全を謳っているけどこれってC/C++でメモリの破壊や メモリアクセス違反を多発させる事例が多いからと思っているけど違うのかな これらの低減を目的にC/C++の代替言語としてRustやDなどを検討するっておかしな事なのだろうか
410 名前:デフォルトの名無しさん mailto:sage [2017/08/01(火) 21:16:08.18 ID:PIQ133u2.net] >>400 まじかーgcがないってOS無しで動かせる唯一の言語だと思ってたから残念 例えばESP8266とかESP32で使えたらいいとか思ってたよ。 webが利用用途じゃないって残念すぎるな。 そうするとrust使ってる層って仕事でc++を使ってる組み込み関係の層が 趣味的に触る言語ってことかな。
411 名前:デフォルトの名無しさん mailto:sage [2017/08/01(火) 22:02:02.77 ID:A6tuVNB3.net] お前の中ではGC有無とOS要否は直結するのか(驚愕 ESPがどういうチップセット構成なのか知らんけど ARM CPUならクロスコンパイルして動かせるんじゃね 多分、同じ程度の努力でGC載ってるGoも動くと思うけど
412 名前:デフォルトの名無しさん mailto:sage [2017/08/01(火) 22:04:43.31 ID:H6BRQUwS.net] cargo checkすると warning: the option `Z` is unstable というメッセージが出るそうなんですがこのメッセージを出す方法を教えて頂けませんか?
413 名前:デフォルトの名無しさん mailto:sage [2017/08/01(火) 22:04:54.04 ID:8J/offgv.net] Webに関してはそれなりに精力的に開発されているから将来的には使い物になる可能性もある crates.ioとかだってRust製だしね