Mozillaがリリースした、プログラミング言語「Rust」について語るスレです。
http://www.rust-lang.org/
https://github.com/rust-lang/rust
Servo
https://servo.org/
https://github.com/servo/servo
◆前スレ
プログラミング言語 Rust 2
http://echo.2ch.net/test/read.cgi/tech/1478023960
探検
プログラミング言語 Rust 3 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/05/21(日) 14:04:29.55ID:9L9dm7b/322デフォルトの名無しさん
2017/07/26(水) 10:26:21.34ID:ENBFGRGX https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/dining-philosophers.html
このチュートリアルもうちょいなんとかならないのか
クロージャー周りの説明が抜けてるからなんだかふわっと触って終了みたいな感じになるんだけども。シンタックスの方から学んだほうがしっくりする。
このチュートリアルもうちょいなんとかならないのか
クロージャー周りの説明が抜けてるからなんだかふわっと触って終了みたいな感じになるんだけども。シンタックスの方から学んだほうがしっくりする。
323デフォルトの名無しさん
2017/07/26(水) 12:59:44.03ID:TL1HhZT+ >>321
ゲームエンジンそのものがRustで書かれているのでなければ移行はないと思ってる
自分は据え置き開発だけど、ライブラリやツールやアセットパイプライン含めてC++ならそのまま利用する方が楽だし、ゲーム会社ならC++の資産やノウハウも蓄積されてる
ゲームエンジンそのものがRustで書かれているのでなければ移行はないと思ってる
自分は据え置き開発だけど、ライブラリやツールやアセットパイプライン含めてC++ならそのまま利用する方が楽だし、ゲーム会社ならC++の資産やノウハウも蓄積されてる
324デフォルトの名無しさん
2017/07/26(水) 16:21:03.85ID:G2QlGkU/ >>323
環境的にc++14使うくらいは許されてるの?
環境的にc++14使うくらいは許されてるの?
325デフォルトの名無しさん
2017/07/26(水) 18:20:47.88ID:1Yp0AYo7326デフォルトの名無しさん
2017/07/26(水) 18:36:05.35ID:0VRUk0dC >>320はゲームエンジンそのものがrustにならんかのーって話じゃないの
その上っ面はC++のままで良いんでない
その上っ面はC++のままで良いんでない
327デフォルトの名無しさん
2017/07/26(水) 19:49:44.76ID:FgKZS4eT >>322
最新ではその項無くなったよ
最新ではその項無くなったよ
328デフォルトの名無しさん
2017/07/27(木) 00:05:30.43ID:YcR0VV5Q >>327
なんややっぱりそうなんだ。
やっててあんまり面白いとも思えなかったしね。
今シンタックスのところを読んでるけど、goより学習コストは高いなーと思った。
メモリ管理のメンタルモデルは学習を避けることができないから、尚の事学習コストは高いよね。
使い始めに関してはc++より難しいんと違う?
なんややっぱりそうなんだ。
やっててあんまり面白いとも思えなかったしね。
今シンタックスのところを読んでるけど、goより学習コストは高いなーと思った。
メモリ管理のメンタルモデルは学習を避けることができないから、尚の事学習コストは高いよね。
使い始めに関してはc++より難しいんと違う?
329デフォルトの名無しさん
2017/07/27(木) 00:15:56.27ID:YcR0VV5Q goを学習するモチベーションとなったのはgoroutineで並列処理を簡単に書けるからだったんだよね。
phpのバッチ処理を学習期間は2,3日で
goで並列処理を書けるようになった。
まぁ書けたってだけでgoの流儀って独特だから、その後の深淵に結構はまっていったんだけど。
深層学習の為のpython。
iosのためのswift。
みたくrustの始めるきっかけとなる分野ってなんかないのかな?
rustを書きはじめる皆さんのきっかけを教えてください。
phpのバッチ処理を学習期間は2,3日で
goで並列処理を書けるようになった。
まぁ書けたってだけでgoの流儀って独特だから、その後の深淵に結構はまっていったんだけど。
深層学習の為のpython。
iosのためのswift。
みたくrustの始めるきっかけとなる分野ってなんかないのかな?
rustを書きはじめる皆さんのきっかけを教えてください。
330デフォルトの名無しさん
2017/07/27(木) 08:45:36.82ID:alz7xNNS331デフォルトの名無しさん
2017/07/27(木) 09:07:26.49ID:alz7xNNS332デフォルトの名無しさん
2017/07/27(木) 10:08:19.56ID:JZl+5b/l コードに問題があればcargo runでエラーが出ますけど
ビルドせずチェックだけを行う方法ないですか?
あと定番のlintツールも教えてください
ビルドせずチェックだけを行う方法ないですか?
あと定番のlintツールも教えてください
333デフォルトの名無しさん
2017/07/27(木) 11:54:01.80ID:NVUZFqS5 cargo check
clippy
clippy
334デフォルトの名無しさん
2017/07/27(木) 12:47:34.70ID:tmRnr4Iu >>331
前任者も認められてたからgo使ったわけじゃなく、goがもっとマイナーだった頃に勝手に使ってただけだし
俺も存在するかどうかわからない後任者など気にしてない
うちは大きな会社じゃないので、何を採用するかはプロジェクトリーダー次第
前任者も認められてたからgo使ったわけじゃなく、goがもっとマイナーだった頃に勝手に使ってただけだし
俺も存在するかどうかわからない後任者など気にしてない
うちは大きな会社じゃないので、何を採用するかはプロジェクトリーダー次第
335デフォルトの名無しさん
2017/07/27(木) 14:28:39.09ID:MedrFN4m 是非rust使ってレポートしてほしい
336デフォルトの名無しさん
2017/07/27(木) 21:27:35.77ID:YcR0VV5Q rustって課題を解いていく感じの学習サイトってないすかね?
goとかjsだとあるんだけど、、、
goとかjsだとあるんだけど、、、
337デフォルトの名無しさん
2017/07/28(金) 00:41:42.43ID:eqr+g7ZD338デフォルトの名無しさん
2017/07/28(金) 08:34:02.73ID:O7VztC89 >>337
わぉ。ありがとうございます。普通にあってよかった
わぉ。ありがとうございます。普通にあってよかった
339デフォルトの名無しさん
2017/07/28(金) 10:12:39.22ID:APGd6g7o nightlyって頻繁に更新ありますか?
モバイルに接続してるのであんまり通信したくないからstable選んだんですけど
clippyがnightlyでしかインストールできないのつらい
モバイルに接続してるのであんまり通信したくないからstable選んだんですけど
clippyがnightlyでしかインストールできないのつらい
340デフォルトの名無しさん
2017/07/28(金) 13:36:38.25ID:IiZPJKRx てすと
341デフォルトの名無しさん
2017/07/28(金) 17:20:05.54ID:HRHd+c6j cargo checkだと全てのrsファイルをチェックするので
cargo check hoge.rsみたいに特定のファイルを指定してチェックする方法ありませんか?
cargo check hoge.rsみたいに特定のファイルを指定してチェックする方法ありませんか?
342デフォルトの名無しさん
2017/07/28(金) 17:54:04.02ID:ABEdHekZ Stableでは無理
Incremental compilationの安定化を待ちなされ
Incremental compilationの安定化を待ちなされ
343デフォルトの名無しさん
2017/07/28(金) 18:24:34.83ID:cPwtoBYF >>342
あ、そのモジュールが他のモジュールに全く依存していない場合はrustc hoge.rs --crate-type=lib --emit=metadataが一応使えるんだった
ただしこれはカレントディレクトリにゴミをまき散らすからあまりおすすめできない
あ、そのモジュールが他のモジュールに全く依存していない場合はrustc hoge.rs --crate-type=lib --emit=metadataが一応使えるんだった
ただしこれはカレントディレクトリにゴミをまき散らすからあまりおすすめできない
344デフォルトの名無しさん
2017/07/28(金) 21:55:20.59ID:3/dxxKLW REPLが欲しいんですが安定したやつないかな
345デフォルトの名無しさん
2017/07/28(金) 22:25:19.67ID:kWrQnfQi 目の前の便利な箱で調べること出来ない教えて君は
実はRustで作った人工知能試験で動作試験してるんじゃなかろうな
実はRustで作った人工知能試験で動作試験してるんじゃなかろうな
346デフォルトの名無しさん
2017/07/28(金) 22:36:44.17ID:GOfdf3yM いま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するとこの警告が出なくなる
なんででしょうか?
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するとこの警告が出なくなる
なんででしょうか?
347デフォルトの名無しさん
2017/07/28(金) 22:40:19.95ID:jE9FvNjp コンパイルの結果がキャッシュされているから
348デフォルトの名無しさん
2017/07/29(土) 00:47:07.63ID:DIZfrj77 rustってまだ安定してない感じ?
開発環境は何がおすすめなんです?
vscodeを試したけどあんまりrustに対応してない感が
開発環境は何がおすすめなんです?
vscodeを試したけどあんまりrustに対応してない感が
349デフォルトの名無しさん
2017/07/29(土) 02:31:25.76ID:ZD4o/AdV >>348
俺はIntelliJ派だから
俺はIntelliJ派だから
350デフォルトの名無しさん
2017/07/29(土) 02:34:36.68ID:7woiJ3eO そうですか
351デフォルトの名無しさん
2017/07/29(土) 10:51:47.46ID:Xgmp5DuD Rustについて調べているのですが2点ほど質問です
・所有権、借用権ってどのようなケースを想定した機能なのか?
並行処理を行うコードを書く時には同期ミスによる破壊を防止できて便利そうだけど上手い活用ケースを想像できない
・OS無しで動かすコードを書くケースでRustが謳うメリットはどの程度いかせるのか?
メモリマップドレジスタへアクセスするためにunsafeと生ポインタを多用することになる
このようなケースでコンパイル時の安全性の検査条件などはカスタマイズできたりするのか
・所有権、借用権ってどのようなケースを想定した機能なのか?
並行処理を行うコードを書く時には同期ミスによる破壊を防止できて便利そうだけど上手い活用ケースを想像できない
・OS無しで動かすコードを書くケースでRustが謳うメリットはどの程度いかせるのか?
メモリマップドレジスタへアクセスするためにunsafeと生ポインタを多用することになる
このようなケースでコンパイル時の安全性の検査条件などはカスタマイズできたりするのか
352デフォルトの名無しさん
2017/07/29(土) 12:41:44.44ID:cTpvw2dC vim + project.vim + rust.vimもいいぞ
コード量が多いと流石にIntelliJ使うけど
コード量が多いと流石にIntelliJ使うけど
353デフォルトの名無しさん
2017/07/29(土) 12:52:24.62ID:U9LihKmk IDEAとvscodeってどっちがおすすすめ?
354デフォルトの名無しさん
2017/07/29(土) 12:52:42.83ID:U9LihKmk おすすめ?
355デフォルトの名無しさん
2017/07/29(土) 14:45:43.16ID:3C62sBLB >>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
噂をすればなんとやら
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
356デフォルトの名無しさん
2017/07/29(土) 16:04:35.17ID:OScYBSe+ もののけ
357デフォルトの名無しさん
2017/07/29(土) 16:29:29.84ID:PuR8d8Sj ideaのrustプラギンはメソッドチェインが深くなるとハイライトされなくなって、リネームとかも取りこぼすことがある。それ以外はよくできてて満足
358デフォルトの名無しさん
2017/07/29(土) 16:43:27.84ID:mj0H/MXI >>351
所有と借用は、設計の考え方として言語問わず有効なので、コンパイラに強制されるのはかなり嬉しい。
と言うのも、所有を考えないで動的メモリを使ったプログラムは、シングルスレッドであっても、ライフタイム問題を起こしやすいんだよね。
他人にヤラれると殺意がわく。
所有と借用は、設計の考え方として言語問わず有効なので、コンパイラに強制されるのはかなり嬉しい。
と言うのも、所有を考えないで動的メモリを使ったプログラムは、シングルスレッドであっても、ライフタイム問題を起こしやすいんだよね。
他人にヤラれると殺意がわく。
359デフォルトの名無しさん
2017/07/29(土) 16:55:38.17ID:mj0H/MXI >>351
借用に関しては、不意の同期漏れ防止と思ってる。
ご存知の通り、マルチスレッドでは、同じオブジェクトを触るときに同期処理を入れないと、データ破壊しちゃうじゃん?
C言語だと、この危険な状態がデフォルトで、気付くかどうかは人間次第。
でも、rustはコンパイラがその危険な状態を防いでくれると言うだけだと思う。
借用に関しては、不意の同期漏れ防止と思ってる。
ご存知の通り、マルチスレッドでは、同じオブジェクトを触るときに同期処理を入れないと、データ破壊しちゃうじゃん?
C言語だと、この危険な状態がデフォルトで、気付くかどうかは人間次第。
でも、rustはコンパイラがその危険な状態を防いでくれると言うだけだと思う。
360デフォルトの名無しさん
2017/07/29(土) 17:08:36.25ID:mj0H/MXI >>351
最後、OS無しはどうかなー。
自分ならこうするかなっていうテキトーな意見だけど、生メモリアクセスが必要な部分(デバドラとか)はC/C++で書いて、アプリ部をrustで書いてFFIバインドかなー。
最後、OS無しはどうかなー。
自分ならこうするかなっていうテキトーな意見だけど、生メモリアクセスが必要な部分(デバドラとか)はC/C++で書いて、アプリ部をrustで書いてFFIバインドかなー。
361デフォルトの名無しさん
2017/07/29(土) 17:23:05.64ID:H7MJnrUX Rustの素晴らしさを理解するにはC++を理解する必要がある?
362デフォルトの名無しさん
2017/07/29(土) 17:27:03.96ID:DIZfrj77363デフォルトの名無しさん
2017/07/29(土) 17:41:05.57ID:mj0H/MXI >>362
最初から最後までメモリ安全じゃなくてもいいんじゃない?
適材適所で使い分ければ。
マルチスレッド問題はアプリ側に多い問題かなーって。
デバドラ最下層になると、そもそもマルチスレッド要件が無かったり、メモリイメージが生で見える触れる方が融通があって便利だったりするし。
ドメイン境界で考えて、rustを適用する範囲内で潔白なのが重要と思ってる。
この潔白さは、開発者の人数が多いドメイン(アプリ)で、真価を発揮するんじゃないかなと。
最初から最後までメモリ安全じゃなくてもいいんじゃない?
適材適所で使い分ければ。
マルチスレッド問題はアプリ側に多い問題かなーって。
デバドラ最下層になると、そもそもマルチスレッド要件が無かったり、メモリイメージが生で見える触れる方が融通があって便利だったりするし。
ドメイン境界で考えて、rustを適用する範囲内で潔白なのが重要と思ってる。
この潔白さは、開発者の人数が多いドメイン(アプリ)で、真価を発揮するんじゃないかなと。
364デフォルトの名無しさん
2017/07/29(土) 18:00:00.71ID:SaJE2wIQ racer + flycheck-rust でマクロ補完って無理?
println!とかwrite!とか毎回全部打つのがダルい
println!とかwrite!とか毎回全部打つのがダルい
365デフォルトの名無しさん
2017/07/29(土) 18:10:49.31ID:DIZfrj77366デフォルトの名無しさん
2017/07/29(土) 18:13:03.21ID:DIZfrj77 >>363
あと最初から最後までメモリ安全のほうが良くない?
少なくともメモリ関連のバグを撲滅できるんであればrustの価値はあると思うんだ。
逆にできないならrustの存在意義ってなんだろ。
goは並行処理が言語機能に組み込まれてる。
rustはメモリ安全が売りだと思うんだけど、
そこってなかなか地味な売りな気がして
あと最初から最後までメモリ安全のほうが良くない?
少なくともメモリ関連のバグを撲滅できるんであればrustの価値はあると思うんだ。
逆にできないならrustの存在意義ってなんだろ。
goは並行処理が言語機能に組み込まれてる。
rustはメモリ安全が売りだと思うんだけど、
そこってなかなか地味な売りな気がして
367デフォルトの名無しさん
2017/07/29(土) 18:57:22.38ID:mj0H/MXI >>365
Cに頼る→負けてるって事じゃないと思うけどね。
実際アセンブリ言語はなくならないわけだし。
CPU の高機能化、メモリの大容量化、プログラムの大規模化、があって、開発効率を高めるために、プログラムの大部分がC言語に置き換わったわけじゃん。
で、マルチコア全盛の時代になって、正常稼働面での重大要因としてメモリ安全性が注目されてrustが生まれたのだから、メモリ安全のメリットの大きいところだけrustに置き換わるってのが、普通の流れじゃないのかなーと思うよ。
別にCを駆逐する必要はないしょ。
Cに頼る→負けてるって事じゃないと思うけどね。
実際アセンブリ言語はなくならないわけだし。
CPU の高機能化、メモリの大容量化、プログラムの大規模化、があって、開発効率を高めるために、プログラムの大部分がC言語に置き換わったわけじゃん。
で、マルチコア全盛の時代になって、正常稼働面での重大要因としてメモリ安全性が注目されてrustが生まれたのだから、メモリ安全のメリットの大きいところだけrustに置き換わるってのが、普通の流れじゃないのかなーと思うよ。
別にCを駆逐する必要はないしょ。
368デフォルトの名無しさん
2017/07/29(土) 19:02:32.30ID:mj0H/MXI369デフォルトの名無しさん
2017/07/29(土) 19:05:29.70ID:mj0H/MXI >>361
むしろC++をうまく使うために、rustの意味論(セマンティクス)を勉強して欲しい、って思う。
むしろC++をうまく使うために、rustの意味論(セマンティクス)を勉強して欲しい、って思う。
370デフォルトの名無しさん
2017/07/29(土) 19:59:14.72ID:DIZfrj77 goができたのはgoogle社内のc++プロジェクトの置き換えのためだけどrustってどんな動機でできたの?。
まさかブラウザ開発のため?
まさかブラウザ開発のため?
372デフォルトの名無しさん
2017/07/29(土) 20:22:55.12ID:OScYBSe+ >>369
俺もRustはじめてからC++が少しよく書けるようになりました
俺もRustはじめてからC++が少しよく書けるようになりました
373デフォルトの名無しさん
2017/07/29(土) 21:18:30.65ID:ZD4o/AdV374351
2017/07/29(土) 21:52:24.31ID:Xgmp5DuD375デフォルトの名無しさん
2017/07/30(日) 03:44:39.97ID:m1nsIIH9 以前にこのスレであったら良いと言われていたOptionのEntry風APIが実装されて、しかも既にstabilizeされている
std: Stabilize `option_entry` feature ・ rust-lang/rust@ee064c3
https://github.com/rust-lang/rust/commit/ee064c380652fb7e40c1620fd74fb1406989d009
std: Stabilize `option_entry` feature ・ rust-lang/rust@ee064c3
https://github.com/rust-lang/rust/commit/ee064c380652fb7e40c1620fd74fb1406989d009
376デフォルトの名無しさん
2017/07/30(日) 08:00:41.23ID:eSrcFrA9 >やはり並列処理時の安全性を担保する機能なのですね
race condition の解消はあくまでもメモリ安全の一部でしかない
race condition の解消はあくまでもメモリ安全の一部でしかない
377デフォルトの名無しさん
2017/07/30(日) 08:02:46.70ID:eSrcFrA9 >他にDも検討していますが何となく新しい方が何かと便利かなと思ったり
Dが検討対象に入って、かつ、低水準用途なの?
意味わからんな
Dが検討対象に入って、かつ、低水準用途なの?
意味わからんな
378デフォルトの名無しさん
2017/07/30(日) 08:03:42.92ID:NzSybo/S 351からは実際にプログラム組んだことの無い人の気配がプンプンしてる。
379デフォルトの名無しさん
2017/07/30(日) 11:40:03.02ID:sZ4wntzb cargo check のメッセージが加工しづらい
https://github.com/rust-lang/rust/issues/42653これ追加されて欲しい
https://github.com/rust-lang/rust/issues/42653これ追加されて欲しい
380デフォルトの名無しさん
2017/07/30(日) 16:21:42.29ID:vygP638r たぶんnode.js育ちの人だと思うけど、実質1行ないし3行で完結してるクレートが出てきてるね
381デフォルトの名無しさん
2017/07/30(日) 17:42:42.26ID:cNiju5gN clippyインストールできないclippyインストールできないclippyインストールできない
clippyインストールできないclippyインストールできないclippyインストールできない
clippyインストールできないclippyインストールできないclippyインストールできない
修正したコミットがが日曜の夜にコミットするって作者が言ってるけど遅すぎ 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
clippyインストールできないclippyインストールできないclippyインストールできない
clippyインストールできないclippyインストールできないclippyインストールできない
修正したコミットがが日曜の夜にコミットするって作者が言ってるけど遅すぎ 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
382デフォルトの名無しさん
2017/07/30(日) 19:43:29.15ID:IhAKIxVt CランタイムをスタティックリンクしたくてRUSTFLAGSに以下のフラグを設定しています。
RUSTFLAGS='-C target-feature=+crt-static'
これを環境変数で設定するのではなくCargo.tomlで指定するにはどうすればいいんでしょうか?
http://doc.crates.io/config.html を参考に下のように書いてみたのですが効いてないようでした。
[build]
rustflags = ["-C target-feature=+crt-static"]
オプションの書き方が違っているんですかね?
RUSTFLAGS='-C target-feature=+crt-static'
これを環境変数で設定するのではなくCargo.tomlで指定するにはどうすればいいんでしょうか?
http://doc.crates.io/config.html を参考に下のように書いてみたのですが効いてないようでした。
[build]
rustflags = ["-C target-feature=+crt-static"]
オプションの書き方が違っているんですかね?
383デフォルトの名無しさん
2017/07/30(日) 19:51:11.45ID:m1nsIIH9 ["-C", "target-feature=+crt-static"]
でどうかしら
でどうかしら
384デフォルトの名無しさん
2017/07/30(日) 20:00:04.61ID:IhAKIxVt うーん、このへん試してみたんですけどだめなんですよね。
["-C", "target-feature=+crt-static"]
["target-feature", "+crt-static"]
["-C", "target-feature=+crt-static"]
["target-feature", "+crt-static"]
385デフォルトの名無しさん
2017/07/30(日) 22:39:37.27ID:KR/rniwV >>381
一時的に古いnightly使えば良いのでは
一時的に古いnightly使えば良いのでは
386デフォルトの名無しさん
2017/07/30(日) 23:38:44.64ID:dsY+op8E まだruct学んで2日目だけど
これパッケージ入れる時のコンパイルが長いね
補完強化のためにracer入れようとしたらsyntax_syntaxから全然進まなくてCTRL+C押しちゃったよ
基本的なものを覚えるだけならパッケージなんて入れなくても良さそうだけど
ステップアップしたときにそれなりのスペックのPC持ってないと学習するのが厳しい言語って感じ
これパッケージ入れる時のコンパイルが長いね
補完強化のためにracer入れようとしたらsyntax_syntaxから全然進まなくてCTRL+C押しちゃったよ
基本的なものを覚えるだけならパッケージなんて入れなくても良さそうだけど
ステップアップしたときにそれなりのスペックのPC持ってないと学習するのが厳しい言語って感じ
387351
2017/07/31(月) 01:33:05.73ID:0NH1HYUL388デフォルトの名無しさん
2017/07/31(月) 09:17:51.12ID:nR0sqwYk アセンブラは型がないぶんさらにメモリ壊しやすいと思うが
389デフォルトの名無しさん
2017/07/31(月) 13:44:43.25ID:luO5NyKL ライフタイムもコンパイル時に検査してライフタイムの外側からアクセスする処理もコンパイルエラーにするって
これって結局
全部ローカル変数になるってこと?
プログラム全体を通してアクセスする変数はmain関数で用意したローカル変数だからmain関数を抜けたあとは全部開放しちゃうからメモリリークも起きない?
cとかでもやろうと思えばできるって事?
cでmallocとかfreeを使わず、
全部変数定義してつかえばrustと同じ?
これって結局
全部ローカル変数になるってこと?
プログラム全体を通してアクセスする変数はmain関数で用意したローカル変数だからmain関数を抜けたあとは全部開放しちゃうからメモリリークも起きない?
cとかでもやろうと思えばできるって事?
cでmallocとかfreeを使わず、
全部変数定義してつかえばrustと同じ?
390デフォルトの名無しさん
2017/07/31(月) 16:54:10.50ID:RkZnFpRc メモリに限らずリソース確保全般を行わないプログラムって何ができるのか
可変サイズの入力を受け取るならmallocがほぼ必須じゃない?
1行MAX_LENGTH文字までのテキストしか処理しないとか?
可変サイズの入力を受け取るならmallocがほぼ必須じゃない?
1行MAX_LENGTH文字までのテキストしか処理しないとか?
391デフォルトの名無しさん
2017/07/31(月) 17:16:32.22ID:CRPdTSOK rustってどんな分野に向いてるのかいまいちわからないんだけど
webに使うのはおすすめできる?
webに使うのはおすすめできる?
392351
2017/07/31(月) 19:18:45.74ID:S3S/4XWd C/C++は言語仕様的にメモリの破壊を誘発しやすいと思っているんだけどそう思うのは自分だけなのだろうか
>>388
プロジェクトやプログラムの規模という要素もあるけどメモリを自由に管理できるアセンブラの方が見通しが良く
メモリ破壊に関するリスクも制御しやすいと思う。人間が理解しやすいように並べることも出来るし
もしメモリを壊した時もC/C++より何が起きるかを予測しやすいと思う
個人的にはメモリアクセスの規約を登録できてコンパイル時にそれをチェックしてくれると嬉しいんだけどな
>>388
プロジェクトやプログラムの規模という要素もあるけどメモリを自由に管理できるアセンブラの方が見通しが良く
メモリ破壊に関するリスクも制御しやすいと思う。人間が理解しやすいように並べることも出来るし
もしメモリを壊した時もC/C++より何が起きるかを予測しやすいと思う
個人的にはメモリアクセスの規約を登録できてコンパイル時にそれをチェックしてくれると嬉しいんだけどな
393デフォルトの名無しさん
2017/07/31(月) 19:24:58.57ID:nTqL7k1O アセンブリ的な観点でCの挙動が予想できないと言っているようならRustなんて余計に抽象的で分かりづらいと思うのだが
Volatile関連の制御とかだって面倒なだけだし
Volatile関連の制御とかだって面倒なだけだし
394351
2017/07/31(月) 21:28:38.42ID:S3S/4XWd >>393
C/C++はメモリマップを意識しないと安全を確保できないけど、マッピングするのはコンパイラでありリンカでありOS
そのような状態で想定しないメモリアクセスが起きた時の挙動を予想することは自分には出来ないです
C/C++でバリバリ書いている人はこの程度出来て当たり前なのかな
C/C++はメモリマップを意識しないと安全を確保できないけど、マッピングするのはコンパイラでありリンカでありOS
そのような状態で想定しないメモリアクセスが起きた時の挙動を予想することは自分には出来ないです
C/C++でバリバリ書いている人はこの程度出来て当たり前なのかな
395デフォルトの名無しさん
2017/07/31(月) 22:26:49.07ID:nR0sqwYk C/C++というレベルじゃなくて
LinuxのABIやldのリンカスクリプトがわからんレベルの人と予想
LinuxのABIやldのリンカスクリプトがわからんレベルの人と予想
396デフォルトの名無しさん
2017/08/01(火) 18:09:39.02ID:TrH0Acv/ >>391
いわゆるWebアプリを書く言語としてはおすすめしない。
いわゆるWebアプリを書く言語としてはおすすめしない。
397デフォルトの名無しさん
2017/08/01(火) 18:17:25.28ID:TrH0Acv/398デフォルトの名無しさん
2017/08/01(火) 18:21:43.31ID:TrH0Acv/399デフォルトの名無しさん
2017/08/01(火) 18:52:10.83ID:8J/offgv >>351はOS無しと言っている
400デフォルトの名無しさん
2017/08/01(火) 19:26:38.99ID:A6tuVNB3401351
2017/08/01(火) 19:28:04.99ID:ascdikyg 新しめのプログラミング言語は十中八九メモリの安全を謳っているけどこれってC/C++でメモリの破壊や
メモリアクセス違反を多発させる事例が多いからと思っているけど違うのかな
これらの低減を目的にC/C++の代替言語としてRustやDなどを検討するっておかしな事なのだろうか
メモリアクセス違反を多発させる事例が多いからと思っているけど違うのかな
これらの低減を目的にC/C++の代替言語としてRustやDなどを検討するっておかしな事なのだろうか
402デフォルトの名無しさん
2017/08/01(火) 21:16:08.18ID:PIQ133u2 >>400
まじかーgcがないってOS無しで動かせる唯一の言語だと思ってたから残念
例えばESP8266とかESP32で使えたらいいとか思ってたよ。
webが利用用途じゃないって残念すぎるな。
そうするとrust使ってる層って仕事でc++を使ってる組み込み関係の層が
趣味的に触る言語ってことかな。
まじかーgcがないってOS無しで動かせる唯一の言語だと思ってたから残念
例えばESP8266とかESP32で使えたらいいとか思ってたよ。
webが利用用途じゃないって残念すぎるな。
そうするとrust使ってる層って仕事でc++を使ってる組み込み関係の層が
趣味的に触る言語ってことかな。
403デフォルトの名無しさん
2017/08/01(火) 22:02:02.77ID:A6tuVNB3 お前の中ではGC有無とOS要否は直結するのか(驚愕
ESPがどういうチップセット構成なのか知らんけど
ARM CPUならクロスコンパイルして動かせるんじゃね
多分、同じ程度の努力でGC載ってるGoも動くと思うけど
ESPがどういうチップセット構成なのか知らんけど
ARM CPUならクロスコンパイルして動かせるんじゃね
多分、同じ程度の努力でGC載ってるGoも動くと思うけど
404デフォルトの名無しさん
2017/08/01(火) 22:04:43.31ID:H6BRQUwS cargo checkすると
warning: the option `Z` is unstable
というメッセージが出るそうなんですがこのメッセージを出す方法を教えて頂けませんか?
warning: the option `Z` is unstable
というメッセージが出るそうなんですがこのメッセージを出す方法を教えて頂けませんか?
405デフォルトの名無しさん
2017/08/01(火) 22:04:54.04ID:8J/offgv Webに関してはそれなりに精力的に開発されているから将来的には使い物になる可能性もある
crates.ioとかだってRust製だしね
crates.ioとかだってRust製だしね
406351
2017/08/01(火) 22:43:53.38ID:ncmaIafS >>402
ググるとラズパイ(タダのLinuxだが)向けコードをRustで書いてみたとか、プレステ1用のコードをRustで書いてみた
とか出てくるんだよね。自分が組み込みに使えるんじゃないかと思ったのもその辺が目にとまったから
昔よりかなり良くなっているとは言え汎用機と比べるとデバッグ手段は限定されるし、コンパイル時にコードの妥当性が
ある程度保たれるというのはメリットだと思う
組み込みで「どこかのメモリを壊しているようだが皆目見当が付かない」なんて事態は可能な限り回避したいしね
ググるとラズパイ(タダのLinuxだが)向けコードをRustで書いてみたとか、プレステ1用のコードをRustで書いてみた
とか出てくるんだよね。自分が組み込みに使えるんじゃないかと思ったのもその辺が目にとまったから
昔よりかなり良くなっているとは言え汎用機と比べるとデバッグ手段は限定されるし、コンパイル時にコードの妥当性が
ある程度保たれるというのはメリットだと思う
組み込みで「どこかのメモリを壊しているようだが皆目見当が付かない」なんて事態は可能な限り回避したいしね
407デフォルトの名無しさん
2017/08/02(水) 00:38:23.97ID:Oyyz61S9408デフォルトの名無しさん
2017/08/02(水) 00:46:25.26ID:9o+N0qJU 上の人はOSを書こうとしているんじゃなくてOS無しのままコードを書くつもりなんでないの?
言い換えると、extern crate coreすら出来ないやつ
言い換えると、extern crate coreすら出来ないやつ
409デフォルトの名無しさん
2017/08/02(水) 01:03:22.66ID:OoZ5R2Ag なんか勘違いしてる人がいるね
Rustが強いのは「ちゃんとラップしてあげれば」どんな環境でも「安全に」動かせること
例えばとあるレジスタを触っているときに他のレジスタを触れないようにするとかも(場合によってはコンパイルエラーのレベルで)できる
ただこのラップするっていうのが一番面倒で、そこで安全を担保できなければ=unsafe祭りならむしろCのが楽とも言える
ちょっとググったらArduinoでRustを動かすためのライブラリもあるからその辺り参考にすると良さそう
>>408
OS書くのもOS無しで書くのも変わらないと思うんだけど、coreを含められないってどういう状況?
libcoreは何にも依存してないからそんな状況ありえないと思ってた
Rustが強いのは「ちゃんとラップしてあげれば」どんな環境でも「安全に」動かせること
例えばとあるレジスタを触っているときに他のレジスタを触れないようにするとかも(場合によってはコンパイルエラーのレベルで)できる
ただこのラップするっていうのが一番面倒で、そこで安全を担保できなければ=unsafe祭りならむしろCのが楽とも言える
ちょっとググったらArduinoでRustを動かすためのライブラリもあるからその辺り参考にすると良さそう
>>408
OS書くのもOS無しで書くのも変わらないと思うんだけど、coreを含められないってどういう状況?
libcoreは何にも依存してないからそんな状況ありえないと思ってた
410デフォルトの名無しさん
2017/08/02(水) 01:08:41.51ID:CN84q205 アセンブリ君
411351
2017/08/02(水) 01:16:10.65ID:Qb6MNIfM あー・・・何となく判ってきた。組み込みでそのようなコードを書くのか判っている人からレスが付いていたのか
412デフォルトの名無しさん
2017/08/02(水) 01:21:03.63ID:E8GFzbft413デフォルトの名無しさん
2017/08/02(水) 01:21:20.56ID:Hth04IJp coreだって何にも依存しないというわけではない、けれどそれは自分で用意すれば良いしね
rust_begin_panicとかをどうやって用意するのかは知らないけど
rust_begin_panicとかをどうやって用意するのかは知らないけど
414デフォルトの名無しさん
2017/08/02(水) 01:22:27.24ID:/y5AMSWR RustでもOS書けるでしょ
(もちろんCと同じく最低限のアセンブラはいるが)
ぐぐればいろいろ見つかるぞ
(もちろんCと同じく最低限のアセンブラはいるが)
ぐぐればいろいろ見つかるぞ
415351
2017/08/02(水) 01:38:12.16ID:Qb6MNIfM >>411ミスった。訂正
× 組み込みでそのようなコードを書くのか判っている人
○ 組み込みでどのようなコードを書くのか判っていない人
>>409
>例えばとあるレジスタを触っているときに他のレジスタを触れないようにするとかも(場合によってはコンパイルエラーのレベルで)できる
そういう話を聞きたかった。レジスタの操作順までコンパイラレベルで面倒を見てくれたらありがたいと思う
xに値を書き込む時はyのnビットを1にしてからxへ書き込むとかあるしな。その定義を作る気力があるかはともかくとして
>そこで安全を担保できなければ=unsafe祭りならむしろCのが楽とも言える
ペリフェラルレジスタだけunsafeにしてすればと思ったけどそう単純な話ではないのかな
もちろん入力値のチェックは必要になるだろうけど
× 組み込みでそのようなコードを書くのか判っている人
○ 組み込みでどのようなコードを書くのか判っていない人
>>409
>例えばとあるレジスタを触っているときに他のレジスタを触れないようにするとかも(場合によってはコンパイルエラーのレベルで)できる
そういう話を聞きたかった。レジスタの操作順までコンパイラレベルで面倒を見てくれたらありがたいと思う
xに値を書き込む時はyのnビットを1にしてからxへ書き込むとかあるしな。その定義を作る気力があるかはともかくとして
>そこで安全を担保できなければ=unsafe祭りならむしろCのが楽とも言える
ペリフェラルレジスタだけunsafeにしてすればと思ったけどそう単純な話ではないのかな
もちろん入力値のチェックは必要になるだろうけど
416デフォルトの名無しさん
2017/08/02(水) 02:29:19.43ID:OoZ5R2Ag >>413
確かにmemcpyとかあるね、忘れてた
まあこの辺りはCでも間違いなく自分で書くとこなので大したコストじゃないね
> rust_begin_panic
組み込みならシリアルにでもログ出して無限ループとかが普通かな?
こういうのはOS系のプロジェクトがとても参考になる
>>415
> その定義を作る気力があるかはともかくとして
実行時チェックなら多少楽になるだろうしそこは(精神的)コストとの相談だね
> ペリフェラルレジスタだけunsafeにしてすればと思ったけどそう単純な話ではないのかな
個人的にはunsafe使い始めると至る所で使うようになっちゃうのでお勧めしない
Rustの思想的にも未定義の挙動を許すunsafeはできるだけ避けるべきだしね
そんなの気にせずチェックしたいとこだけチェックさせるLint的な使い方もありっちゃあり
確かにmemcpyとかあるね、忘れてた
まあこの辺りはCでも間違いなく自分で書くとこなので大したコストじゃないね
> rust_begin_panic
組み込みならシリアルにでもログ出して無限ループとかが普通かな?
こういうのはOS系のプロジェクトがとても参考になる
>>415
> その定義を作る気力があるかはともかくとして
実行時チェックなら多少楽になるだろうしそこは(精神的)コストとの相談だね
> ペリフェラルレジスタだけunsafeにしてすればと思ったけどそう単純な話ではないのかな
個人的にはunsafe使い始めると至る所で使うようになっちゃうのでお勧めしない
Rustの思想的にも未定義の挙動を許すunsafeはできるだけ避けるべきだしね
そんなの気にせずチェックしたいとこだけチェックさせるLint的な使い方もありっちゃあり
417デフォルトの名無しさん
2017/08/02(水) 07:02:07.94ID:nq2BG13A redoxのアセンブラで書いてる所すらもrust(高級言語)で書きたいって夢を語ってるんじゃないの?
結局何がしたいのか分からんな・・・
そこについては諦めているなら既に実用化されているし
そこを追っているならチップ毎のクロスコンパイラ作りを頑張れとしか言いようがねぇよ
結局何がしたいのか分からんな・・・
そこについては諦めているなら既に実用化されているし
そこを追っているならチップ毎のクロスコンパイラ作りを頑張れとしか言いようがねぇよ
418デフォルトの名無しさん
2017/08/02(水) 08:11:06.98ID:Oyyz61S9 >>415
レジスタまで意識する用途なら、高級言語を使わないのが正解では
> xに値を書き込む時はyのnビットを1にしてからxへ書き込むとかあるしな。
それこそボード固有の話になるので。
高級言語でやるとしたら機能レベルで関数化して中身はインラインアセンブリで頑張るとか。
何れにせよ言語レベルで対応する話ではないな。
レジスタまで意識する用途なら、高級言語を使わないのが正解では
> xに値を書き込む時はyのnビットを1にしてからxへ書き込むとかあるしな。
それこそボード固有の話になるので。
高級言語でやるとしたら機能レベルで関数化して中身はインラインアセンブリで頑張るとか。
何れにせよ言語レベルで対応する話ではないな。
419デフォルトの名無しさん
2017/08/02(水) 10:50:44.07ID:AyM7Pnm7420デフォルトの名無しさん
2017/08/02(水) 12:12:53.41ID:m0LDca1I rustっていまのところ
何にも向いてないということか。
golangみたいにgoといえば並列処理!みたいなウリがないとなかなか厳しいな。
とりあえずwebはgoでいいや。
何にも向いてないということか。
golangみたいにgoといえば並列処理!みたいなウリがないとなかなか厳しいな。
とりあえずwebはgoでいいや。
421デフォルトの名無しさん
2017/08/02(水) 12:21:18.09ID:E8GFzbft■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【おこめ】「有能だったんじゃ」おこめ券で批判殺到の鈴木農水大臣…ネットでは前任の“進次郎再評価” [ぐれ★]
- アメリカ、入国時に「日本人を含む外国人観光客の最大5年分のSNS履歴の提出」義務化へ 過去10年間に使用のメールアドレスや電話番号等も★2 [Hitzeschleier★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★3 [Hitzeschleier★]
- 【中国外務省】日本への渡航自粛を再度呼びかけ 今度は「地震発生」を理由に [ぐれ★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず★3 [七波羅探題★]
- 内閣支持、微減59.9% 5割超が補正予算評価 時事通信世論調査 [どどん★]
- 自民党のヒゲ「トランプおやびんが中国に何も言ってくれない」 [834922174]
- 日本人、世界で最もブランドに興味なし🇯🇵 [462275543]
- キャンプ場 寝ている少女(19)のテントに入り120分わいせつ行為をした会社員(45)を逮捕 京都市 [546716239]
- ネトウヨ「中国の例の証拠動画、日本側の応答が海自の無線規則とは違うので捏造です」海自の動画でネトウヨの嘘だとバレる [165981677]
- 【悲報】たぬかなが渡邊渚を壮絶バッシング 「グラビア出したあたりから臭いな~と思ってたが激臭になってたわ。中居は悪くない」 [455031798]
- お昼のまったり🍵😶‍🌫🤏すこすこハウス🏡
