◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

Rust Part7 ->画像>6枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1563114707/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん2019/07/14(日) 23:31:47.54ID:PySyhRf9

2デフォルトの名無しさん2019/07/15(月) 14:42:37.66ID:Xch0qlQL
>>1おtsuR

3デフォルトの名無しさん2019/07/15(月) 17:56:25.13ID:9ryZm2UI
ビルドエラーが出るのですが、なにか解決策はありますか?

Compiling backtrace-sys v0.1.30
error: failed to run custom build command for `backtrace-sys v0.1.30`
process didn't exit successfully: `C:\Programming\Rust_project\socket_programming\target\debug\build\backtrace-sys-159a954e4a82ac78\build-script-build` (exit code: 1)
--- stdout
cargo:rustc-cfg=rbt
TARGET = Some("x86_64-pc-windows-gnu")
OPT_LEVEL = Some("0")
HOST = Some("x86_64-pc-windows-gnu")
CC_x86_64-pc-windows-gnu = None
CC_x86_64_pc_windows_gnu = None
HOST_CC = None
CC = None
CFLAGS_x86_64-pc-windows-gnu = None
CFLAGS_x86_64_pc_windows_gnu = None
HOST_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
running: "gcc.exe" "-O0" "-ffunction-sections" "-fdata-sections" "-m64" "-I" "src/libbacktrace" "-I"
"C:\\Programming\\Rust_project\\socket_programming\\target\\debug\\build\\backtrace-sys-361946668d7e8f79\\out"
cargo:warning=cc1.exe: sorry, unimplemented: 64-bit mode not compiled in
exit code: 1

--- stderr


error occurred: Command "gcc.exe" "-O0" "-ffunction-sections" "-fdata-sections" "-m64" "-I" "src/libbacktrace" "-I"
"C:\\Programming\\Rust_project\\socket_programming\\target\\debug\\build\\backtrace-sys-361946668d7e8f79\\out" with args "gcc.exe" did not execute successfully (status code exit code: 1).

4デフォルトの名無しさん2019/07/15(月) 18:45:30.04ID:y88H95dP
>cargo:warning=cc1.exe: sorry, unimplemented: 64-bit mode not compiled in

「rust unimplemented: 64-bit mode」で検索すれば?

5デフォルトの名無しさん2019/07/15(月) 23:08:24.27ID:VplRLaA9
32bit mingwで64bitのコンパイルしようとした時のエラーの話だからrust付けると出てこないだろうな。
*-pc-windows-gnuはツールチェーン含んでるから余計な環境でビルドせずに含んでるもの使えばいいんだよ。

6デフォルトの名無しさん2019/07/16(火) 15:23:57.01ID:jMFvbE2f
Rustで
port0.od = 0; // 0b00000000
port0.od.b0 = 1; // 0b00000001
port0.od.b5 = 1; // 0b00100001
port0.od.b0 = 0; // 0b00100000
みたいな実装って出来るんだっけ?
port0.od = 0; // 0b00000000
port0.od.b1(1); // 0b00000010
とか
port0.od = 0; // 0b00000000
port0.od.bitset(6); // 0b01000000
みたいに関数を介せば出来ると思うけど

7デフォルトの名無しさん2019/07/16(火) 19:08:19.57ID:JinG5ry6
bitflags?

8デフォルトの名無しさん2019/07/16(火) 19:17:48.80ID:HPUIeONI
できない

9デフォルトの名無しさん2019/07/16(火) 20:14:44.06ID:56kV8Vkg
>6 標準では用意されてないけど、名前の通りbitfieldってcrateがあるから試してみて
https://github.com/dzamlo/rust-bitfield

1062019/07/16(火) 22:09:31.51ID:mK/lXdx0
サンキュ。やっぱ無理か
こういう記法が出来る処理系って少ないですよね。言語レベルで対応しているか=の上書きと括弧無し関数呼び出しが出来るとかじゃないと難しい

どうやって実装しよう
1.読み出し:b0()、書き込み:b0set([0|1])
2.読み出し:bit(n)、書き込み:bitset(n)、bitclear(n)
どちらもスマートじゃないな。Rustだと引数の初期値を取れないから一つの関数で読み書き兼用というのも出来ないし

>>7
機能上はマスクで足りるのですが名前でビットを指定できた方が読みやすいので

>>9
読み出し:bit、書き込み:set_bitと実装されているみたいですね。こんな書き方しかないのかな

11デフォルトの名無しさん2019/07/16(火) 22:19:22.64ID:BU48xkSV
bitmapで良くない?外部クレートなかったっけ?

12デフォルトの名無しさん2019/07/16(火) 22:25:39.33ID:BU48xkSV
間違えたbitsetだ。

13デフォルトの名無しさん2019/07/16(火) 22:30:18.97ID:p9rPVFUU
マクロ使えば見た目は似せられるかも?
bit! {
od = 0;
od.b0 = 1;
}
みたいにしてASTいじって関数呼び出し形式に変換する感じの。

14デフォルトの名無しさん2019/07/17(水) 00:27:23.47ID:OvMw+j5/
初心者です。苦戦してます。お知恵を貸してください。
仮想端末を含んだ GTK+3 アプリを C++ で作りたいです。
gtkmm だと vte が使えない(?)ので、gtk-3.0 を使って試してます。
サンプルを下のリンクに置きました。

make すると main 最後の return app->run(window); の所で、
[no member named 'run' in '_GtkApplication']とエラーになってしまいます。
この部分は gtkmm の例から持って来たもなので、変える必要があるのですが、
gtk+3 ではどう書くのが正解でしょうか?よろしくお願いします。
あるいは、gtkmm でも vte を使う簡単な方法がもしあれば、教えてください。

Makefile
http://codepad.org/wldK76KY

main_test_3.cc
http://codepad.org/NopgbNXP

sample_3.h
http://codepad.org/BiQt354F

sample_3.cc
http://codepad.org/I1B7AyJL

15142019/07/17(水) 00:29:17.38ID:OvMw+j5/
すみません。誤爆しました。14は無視してください。

16デフォルトの名無しさん2019/07/17(水) 04:37:31.38ID:0r3gt+vm
>>10
配列でいいじゃん

17デフォルトの名無しさん2019/07/17(水) 06:40:54.65ID:miXA5FV0
Rustって、なんでRustっていう名前なんですか

18デフォルトの名無しさん2019/07/17(水) 14:51:22.82ID:HPA9WgE0
>>5
>>4
>>3
64bit のほうでやったらいけました

1962019/07/17(水) 17:35:45.39ID:rYwqYjNV
>>12
一応no_std予定なので・・・

>>13
スマン。マクロ書いたことないんで理解できないです

>>16
あ、そうか。Index、IndexMutを書けば[]と[]=で読み書きできるようになりそう。やってみよう

20デフォルトの名無しさん2019/07/17(水) 17:43:48.56ID:qxRR1SXW
そういや、マクロって保守性悪くなるんじゃない?

21デフォルトの名無しさん2019/07/17(水) 18:02:15.81ID:v7+Dn7CU
Cみたいに
port0 = BIT5
port0 = BIT2 | BIT4
val = port0 & BIT4
じゃあかんの?

22デフォルトの名無しさん2019/07/17(水) 21:24:51.41ID:0r3gt+vm
>>19
enum Bit { On, Off }
let byte = [Bit::Off; 8]
こんなんじゃダメけ?

23デフォルトの名無しさん2019/07/17(水) 23:44:22.07ID:7KdSCzvc
VSCodeにrustupとrlsとC++のツールチェーンを入れてcargo new hello --bin
をShift+Ctrl+Bでビルドしてデバッグ実行もできるようにしたのですが、
できたファイルのうちのどれとどれをGitにコミットすれば一番幸せになれるの?
(1) .gitignore
(2) Cargo.toml
(3) Cargo.lock
(4) main.rs
(5) main.exe
(6) main.pdb
(7) ./vscode/task.json

24デフォルトの名無しさん2019/07/18(木) 05:56:44.97ID:5vDlE6vb
(1) .gitignore

に書かれてないやつ

25デフォルトの名無しさん2019/07/18(木) 22:17:54.85ID:tHz4DA4Z
レス㌧クス、実はcargo cleanして残ったやつ全部コミットにしといた…

それはそうとして分割コンパイル&リンクまでするには一体どうすれば…orz
実はmake不要でcargoが面倒を見てくれる…?
いやしかし次のサイトでは(VSCode環境ではないが)めっちゃmakefile書いてるし…
http://yoshitsugu.net/posts/2019-06-04-haribote-os-in-rust-day3.html

26デフォルトの名無しさん2019/07/18(木) 22:23:30.40ID:cexb+rGl
>>25
普通はmake不要でcargoのみ。そのサイトはどこかから持ってきたアセンブラをnasmするのにmakeつかってるだけっぽいのでrust関係ない。

27デフォルトの名無しさん2019/07/18(木) 23:36:01.21ID:JZFbYeti
Microsoft、安全で高効率のプログラミング言語として「Rust」を高く評価:メモリ破壊
バグを避けるには 2019年07月18日 19時00分 公開
https://www.atmarkit.co.jp/ait/articles/1907/18/news122.html

 Microsoft Security Response Center(MSRC)は2019年7月16日(米国時間)、ソフト
ウェアのセキュリティを確保しつつ、効率性も保ちたい場合、利用可能なシステムプロ
グラミング言語として、「Rust」を高く評価した。

 MSRCによれば、Microsoftが「CVE(共通脆弱性識別子)」を割り当て、修正してきた同社
ソフトウェアのセキュリティ脆弱(ぜいじゃく)性の大部分は1つの要因から起こっている。
開発者がC/C++コードにうっかりメモリ破壊バグを作り込んでしまったことだ。(中略)

C#とC++のメリットを兼ね備えるのは
 C#のような言語が提供するメモリ関連のセキュリティと、C++の効率性を兼ね備えた言語
があれば、開発者にとって理想的だ。MSRCは、両方の要件を満たす最も有望なシステムプロ
グラミング言語として、Mozillaの公式プロジェクトとして進化してきた「Rust」を挙げて
いる。

 さらにMSRCは、業界として真のセキュリティ対策を進めるには、脆弱性に対処するための
ツールやガイダンスを提供するよりもむしろ、「開発者にそもそも脆弱性を発生させない
ための取り組みを行わなければならない」との見解を示した。

 MSRCは、安全性の低いレガシー言語から、モダンで安全なシステムプログラミング言語
への移行を促進するという観点から、Rustをはじめとする安全なシステムプログラミング
言語の活用に向けて、Microsoftが行ってきた取り組みを今後も紹介していくという。

28デフォルトの名無しさん2019/07/19(金) 01:03:06.37ID:GCRlNtpT
ああついにMicrosoftまでMozillaのステマの犠牲に…

2962019/07/19(金) 03:55:32.80ID:vDoYj/5c
参照しか返せない状態で計算結果を返すって方法ってあるんだっけ。通常なら値を返すように宣言すればすむ話ですが
Indexは参照しか返せないようです。たとえば*addr >> idx & 1の結果を返したいです

>>21
それだとセットとクリアでAND or ORと値の両方を変更せねばならずどちらかを忘れてバグを産む可能性があります

>>22
ググるとそのような例が出てきますね。Rust的に正論だと思いますが元となるハードウェアのマニュアルでは
0:○○になる
1:××になる
みたいな表記が主流に見えます。ここから外れた表現の強制は言語の安全性とは別なところでリスクを抱えるように思います

30デフォルトの名無しさん2019/07/19(金) 06:34:47.15ID:hHIdkAH0
>>29
ほんなら0と1でプログラム書けやタコスケ
プログラミング言語ってのはハードウェアを抽象化するためにあるんだぞ

31デフォルトの名無しさん2019/07/19(金) 08:09:28.17ID:1jAR2vN7
>>29
and or orと値の両方を変更せねばならずってどういうこと?

3262019/07/19(金) 11:55:39.50ID:vDoYj/5c
>>31
port0.od = 0b00000000 // 右端を0ビット目とする
port0.od |= 0b00000100 // 2ビット目を1に → 0b00000100
port0.od |= 0b00100000 // 5ビット目を1に → 0b00100100
port0.od &= 0b11111011 // 2ビット目を0に → 0b00100000
ビット列は抽象化できるけどANDとORは一連の処理をラップできない限り手動で変更する必要があります
Cやアセンブラで低レベルの処理をする場合は多用される書き方だと思いますが結構危なっかしいと思います

33デフォルトの名無しさん2019/07/19(金) 12:19:48.14ID:4A+dpHhz
ビット反転するという脳味噌がないって話?

34デフォルトの名無しさん2019/07/19(金) 17:33:35.07ID:ARm0Ww4L
https://www.rust-lang.org/
Chromeの自動翻訳でサイトを見たら吹いてしまった。
「なぜ錆びるの?」って・・・。

35デフォルトの名無しさん2019/07/19(金) 21:01:17.76ID:wRHB2w4J
翻訳しないと読めないやつ

36デフォルトの名無しさん2019/07/19(金) 21:05:45.56ID:g6GhiJm/
義務教育受けてたらwhy rustの訳だろうなってすぐ分かるよなたとえ翻訳かけてたとしても

3762019/07/19(金) 21:40:27.14ID:EuFVnXjl
Index、IndexMutが何でこんな仕様なのかと思ったらC++の[]に合わせたのか
C++ぽく使えるがそれ以外の使い方は想定されていないと

結局普通の関数で妥協するしかないのかな。抽象度はCに毛が生えた程度、C++未満?か
どのみち組み込み用に拡張された処理系相当には出来そうにないっぽい

38デフォルトの名無しさん2019/07/19(金) 22:09:36.92ID:0WNLW8m0
>>37
Rustは構文的な自由度あんまりないからね。Scalaが自由度ありすぎて混乱してた反省を踏まえてるのかな、って思ってる。どうしてもやりたいならマクロがあるし、妥当な落とし所では。

39デフォルトの名無しさん2019/07/19(金) 23:31:27.88ID:ysC8gi5X
groovyと同じast変換するマクロもあるしcompiler pluginもあるし拡張は簡単。

40デフォルトの名無しさん2019/07/20(土) 12:57:28.24ID:rHpvZKFq
rayonでzipイテレータを並列処理できますか?

41デフォルトの名無しさん2019/07/20(土) 22:15:20.44ID:AjHY8stg
rust未経験者がwebプログラミングをrustで始めるのってどう思う?
俺の背景としてはocamlを1年ぐらいやってて「Real World OCaml」みたいな定番書を読んで簡単なコンパイラとかVMを作ったっていうレベル

rustでやるモチベーションとしては
・OCaml誰もやってなくて未来が見えない
・最低でもバリアントとパターンマッチが欲しい
・ネイティブが良いからscala/F#は嫌だ

こういう理由

web自体が初心者だからrailsとかのチュートリアルぐらいは先にやっておくつもり

42デフォルトの名無しさん2019/07/20(土) 22:46:21.59ID:wwp1044b
どうも何もWebアプリは言語の選定は大した問題じゃなくて、Webアプリの基礎がわかってるかどうかだぞ
セッション管理、Rest、クライアントスクリプト、見た目とロジックの分離等々

43デフォルトの名無しさん2019/07/21(日) 00:44:57.93ID:Ct/mrgVP
そうは言っても情報量の多さとかで挫折しにくい言語ってのはあるでしょ
Rustは明らかにきついほうだろうけど...

44デフォルトの名無しさん2019/07/21(日) 01:53:54.94ID:iF1O4o5j
>ocamlを1年ぐらいやってて
>コンパイラとかVMを作った
能力的にはRustでWebするのも余裕なんじゃね;
もっとも、SQLインジェクションみたいな文字列解釈やセッション絡みの脆弱性を
思わず作りこんでしまうことはRustでも避けられないから>>42のは真実だと思うが

45デフォルトの名無しさん2019/07/21(日) 22:07:53.58ID:SjT3tKFm
ocaml辺りやる人間にはつまらんぞwebは。

46デフォルトの名無しさん2019/07/25(木) 18:18:35.03ID:lKY1yvEr
rustむずい
gcのついたrustが欲しい

47デフォルトの名無しさん2019/07/25(木) 19:38:42.91ID:5L4KGe8+
存在意義を否定してどうするよ
go使えば

48デフォルトの名無しさん2019/07/25(木) 20:37:16.64ID:lKY1yvEr
最低でもヴァリアントとレコードとパターンマッチがあって全体的に式指向な言語が良い

ocamlがマルチスレッドに対応しててもっと流行ってれば...
scala/f#がネイティブであれば...
haskellが正格評価でもっとパフォーマンスが良ければ...

皆さんc/c++の置き換えとしてrustやってるの?
自分は関数型言語由来の機能が多くてネイティブで動く言語が欲しい
そういう理由でrustに手を出す人って少ないのかな
rust製のcliツールとかめっちゃ多いし、低レイヤのためだけにrustやってる人のほうが少ないんじゃないかな

49デフォルトの名無しさん2019/07/25(木) 21:49:12.38ID:E2feltVj
多いか少ないかが気になる年頃

50デフォルトの名無しさん2019/07/25(木) 21:54:26.88ID:6TAkPITO
難しいからなんなんだよってかんじ
勉強すればそのうち使えるようになるんだからどうでもいいことじゃん
俺はPHPの置き換えで使ってるけど

51デフォルトの名無しさん2019/07/25(木) 22:40:39.89ID:PNoIdPh5
rust, c++より少しはマシくらいの言語だわな。
実装系含めたらまだc++のがマシになるが。

52デフォルトの名無しさん2019/07/25(木) 22:50:06.02ID:w/leXg8D
C++がましってどのへん?学習コストはどうしようもないとして、学習してしまった今となってはC++に戻る気とか一切しないんだけど。

53デフォルトの名無しさん2019/07/26(金) 15:42:10.78ID:I3xx9WAP

54デフォルトの名無しさん2019/07/26(金) 18:13:40.72ID:a+EwZNsG
ながいから要約たのむ

55デフォルトの名無しさん2019/07/26(金) 18:54:02.12ID:EH3/YLuD
初代wiiもいらんだろ

56デフォルトの名無しさん2019/07/26(金) 22:09:00.78ID:6wMSM/4s
>>46
pony。cliツールっていうかcoreutilsとbusyboxの代替実装とかならあるけど。

57デフォルトの名無しさん2019/07/27(土) 01:35:00.73ID:KwccJBez
>>52
cとかより低いレイヤーの言語をバインドしようとした時、より素直。

58デフォルトの名無しさん2019/07/27(土) 10:26:09.62ID:T7BomvTp
お前らが本当に必要としてるのはRustじゃなくて
ziglangなのでは?

59デフォルトの名無しさん2019/07/27(土) 10:58:34.72ID:S2cl2wQi
流行ってる言語じゃないとしんどいってocamlで学んだ

60デフォルトの名無しさん2019/07/27(土) 12:01:40.60ID:4xSO5KPL
デストラクタ的なのがあればなんでも良い

61デフォルトの名無しさん2019/07/27(土) 17:07:58.74ID:lIukHdgf
>>58
zigはGCあるからダメ

62デフォルトの名無しさん2019/07/27(土) 23:21:52.36ID:YuLtVEnV
rustがリアルタイムで使われてるの聞いたこと無いんだけど
どうせgcあるから駄目とか言ってるやつはメモリの開放タイミングが
予測不能でも致命的にならない事しかしてないんだろ?

63デフォルトの名無しさん2019/07/27(土) 23:56:46.19ID:90NMqXYM
Option<char>とStringを結合させたいんですけど、どうすればいいんですか?

64デフォルトの名無しさん2019/07/28(日) 00:12:52.45ID:BWTSPDmr
>>63
Option<char>はList<char>の特殊な例と考えて良い
これ、関数型言語の常識

65デフォルトの名無しさん2019/07/28(日) 02:05:17.30ID:5UHV96py
let x: String = "Hello World!".toString();
s += Some(x)?;
いや知らんけど

66デフォルトの名無しさん2019/07/28(日) 02:07:09.62ID:5UHV96py
xはcharやったorz,

67デフォルトの名無しさん2019/07/28(日) 09:18:55.32ID:t62k8itt
リアルタイムでってなに?
目の前でrust書いてくれるってこと?

68デフォルトの名無しさん2019/07/28(日) 09:43:05.38ID:2BtEWPhc
致命的(画面が時々固まる)

69デフォルトの名無しさん2019/07/28(日) 11:22:38.76ID:pMfSdwXX
>>63
>>64
unwrapしてformat!で結合できましたm(_ _)m

70デフォルトの名無しさん2019/07/28(日) 12:16:23.87ID:G72VT/2G
GCは結局メモリ以外のリソースはまともに管理できなくて、自分でデストラクタ呼ぶはめになるのがつらい

71デフォルトの名無しさん2019/07/28(日) 12:24:41.52ID:p9n7KwZ9
rustでc++のtemplate<class T, size_t N>struct array{T elm[N];}みたいな事可能なの?

72デフォルトの名無しさん2019/07/28(日) 13:40:28.12ID:GSiaruU8
抜け道はあるかも知れんがジェネリクスでは型しか取れない

73デフォルトの名無しさん2019/07/28(日) 14:40:16.56ID:+9hlsOXW

74デフォルトの名無しさん2019/07/28(日) 15:01:36.78ID:+9hlsOXW
まだ実装終わってないけどnightlyなら一応使えるっぽいよ

#![feature(const_generics)]

75デフォルトの名無しさん2019/07/28(日) 19:04:25.79ID:5UHV96py
高機能なマクロもクロージャも使えるのだから値パラメータなジェネリクスは冗長
なキモス

76デフォルトの名無しさん2019/07/28(日) 19:07:52.98ID:XzK5p4st
C++から機能取り入れるとクソ言語化するからやめてほしい

77デフォルトの名無しさん2019/07/28(日) 19:22:39.84ID:5UHV96py
んまー値パラメータなクラステンプレートを実現しようとしたらマクロでは済まないのか
そうか

78デフォルトの名無しさん2019/07/28(日) 19:31:07.73ID:jklii+Ft
>>70
GCは全く関係ないがな。
try使うとかwith使うとかgoならdefer使うとかそういう話だろ。
オーバーヘッドガー言い出すやつって
ただまともにメトリックとるスキルがないってだけだろ。

79デフォルトの名無しさん2019/07/28(日) 19:45:22.37ID:B+3CJM6Y
この国語力はやばい

80デフォルトの名無しさん2019/07/28(日) 20:15:28.70ID:60uqYffv
>>78
RustやC++のスマートポインタならスコープ抜けたときのデストラクタできれいにリソース解放できるけどGCだとできないね、って話なんだが。
それを部分的に解決する方法としてC#のusingとかがあるけど、関数を跨ぐような寿命の長いリソースには使えない。
try-finallyやGoのdeferなんて、絶対書き忘れてリソースリークするパターンだろ。

81デフォルトの名無しさん2019/07/28(日) 21:21:52.37ID:GSiaruU8
現状静的配列が使い物にならないから const generics は必要だと思う

82デフォルトの名無しさん2019/07/28(日) 21:26:23.70ID:B+3CJM6Y
いらねーだろ
それでどんだけ速くなんだよ

83デフォルトの名無しさん2019/07/28(日) 21:30:14.25ID:GSiaruU8
ゼロコスト抽象化を標榜してる以上は行列計算をVecでやれとは言えんだろ

84デフォルトの名無しさん2019/07/28(日) 21:36:32.69ID:B+3CJM6Y
それはzero costの履き違え

85デフォルトの名無しさん2019/07/28(日) 21:37:48.82ID:GSiaruU8
お前にとってはそうなんだろう

86デフォルトの名無しさん2019/07/28(日) 23:01:30.64ID:jklii+Ft
>try-finallyやGoのdeferなんて、絶対書き忘れてリソースリークするパターンだろ。
一理あるが、資源を正しく管理するデストラクタ書くのそんなに楽じゃねーぞ。
舐めすぎだわ。

87デフォルトの名無しさん2019/07/28(日) 23:39:20.86ID:G08azDw2
>>86
他言語でもさんざん書いたからデストラクタの難しさは知ってるつもりだけど、
ライブラリ作成者が注意深く書いたデストラクタをみんなで使うのと、各自finallyやdeferを正しく実装しましょう、なら前者がましでは?

88デフォルトの名無しさん2019/07/28(日) 23:58:54.12ID:5UHV96py
ちょっデストラクタで開放処理を書けない資源とかもはやプロセスをkillするしか、

89デフォルトの名無しさん2019/07/29(月) 00:07:34.10ID:9xGY09/M
Vecはただのfat pointerのnewtype patternだからアラインが合えば自動ベクトル化できるんじゃないの?

>>80
gcあるならref objectあるだろ。今どき。

90sage2019/07/29(月) 00:09:11.34ID:bStHYZl0
ていうかデストラクタ自体は問答無用に資源を開放するように作ればよいのであって
そうならないのは上位の設計がおかしい
例外のスローが許されないなどただでさえ制約が厳しいところに小難しいロジックを押し込んでどうするんじゃ…

資源の開放に一定の手順が必要ならそれはデストラクタの中ではなくデストラクタが呼ばれる前にすませるべきだし、
必要な手順が抜かされたみたいなバグのケースの救済までデストラクタの任に負わせるのはおかしい
資源の開放自体にエラーの危険性があるならインスタンスの製造元(ファクトリ)にエラー通知してから死ぬ等の
パターンに従うべき

91デフォルトの名無しさん2019/07/29(月) 00:23:30.71ID:ovYGqPmP
>>89
ref objectがなんなのかよく分からないが、GCにリソース解放させる場合の問題はタイミングを制御できないことだと思ってる。
スコープを抜けて回収可能になったからといってすぐ回収されるわけではないから次の確保が早すぎると死ぬ。
まぁたいていの場合問題ないってのはあるけど、本質的にはGCに合ってないと思う。

92デフォルトの名無しさん2019/07/29(月) 00:34:54.17ID:bStHYZl0
すぐに開放されないだけの問題なら開放されるまで待てば良いではありませんか、
さすがに今日日のGCは開放可能な資源の発生と資源の獲得要求がmeetした場合に何もしないほど馬鹿ではないと思われ
(meetのトリガタイミングがなんと2回もある

致命的に問題なのはGCには資源に空きがあるように見えるが、GCが知りようがない上位のロジックで循環依存が生じる場合
ファイルをN個まで同時に複数開けるシステムで、a、bの2個しかファイルが開かれていないんだけど
スレッドAがファイルaを出力し終えた後ファイルbのクローズを待っており、スレッドBはファイルaのクローズを待ってからbを出力せんとしている場合等、

93デフォルトの名無しさん2019/07/29(月) 01:10:00.62ID:X0vpIRmF
>>87
俺は後者のがマシだと思うけどね。
資源解放のパターンをオブジェクトで判断するとか自然な設計だと思えんよ。
解放ルーチンなりをシチュエーションごとに用意する方が明らかに自然だわ。

94デフォルトの名無しさん2019/07/29(月) 01:17:46.83ID:ovYGqPmP
>>92
実際問題例えばC#のGCはそれくらい馬鹿ではある。
というかファイルハンドルの中身と次のリソース要求を見て、適切に回収してくれるGCってあるの?
メモリ解放のタイミングでたまたまその他のリソースも解放されてるだけでは?

95デフォルトの名無しさん2019/07/29(月) 21:42:08.32ID:CSar0obt
Rust Part7 	->画像>6枚

96デフォルトの名無しさん2019/07/30(火) 00:57:12.66ID:ZDjzCSg/
>>95
グロ

97デフォルトの名無しさん2019/07/31(水) 21:59:30.06ID:BBGtrgFp
効率的なTreeの書き方どこかに書いてあったはずなんだけど忘れてしまった

どこにかいてあるかわかるひといますか?

98デフォルトの名無しさん2019/07/31(水) 22:04:33.03ID:BBGtrgFp
enumをつかっていたような気がするんですが・・・

99デフォルトの名無しさん2019/08/01(木) 00:10:45.06ID:zC1laZAw
効率的なTreeってなに?
代数的データ型なら普通はsum type(rustのenum)で書くけど。

100デフォルトの名無しさん2019/08/03(土) 11:04:41.72ID:RLY9hdXo
???@???
Rustとの戦いにつかれたのでDを触った次第

↑RustでコンパイラとかVM作ってる人のツイート
Rustってそんなに難しい?

101デフォルトの名無しさん2019/08/03(土) 13:51:49.63ID:aqiFUikh
配列で親ノードIDや子ノードのID持たせるとかじゃなかったか。
所有権引っかからんようにするとそんな感じになる。

102デフォルトの名無しさん2019/08/03(土) 22:29:28.05ID:Pq9Lnt2C
他言語でもGUIのグラフとかは結局そうなるんだけどな。

103デフォルトの名無しさん2019/08/05(月) 09:41:10.02ID:VmFTmeN2
>>100
面倒くさい

104デフォルトの名無しさん2019/08/06(火) 13:13:46.53ID:trr4oLNQ
Javaとの違いは何

105デフォルトの名無しさん2019/08/07(水) 01:19:35.26ID:go9nzBX4
今日知って驚愕したのだがJavaは構造体の参照を返すということができず、
どうしても参照返ししたいときは構造体のメンバを書き換えて返すという歪な手段を使う
↓こんなやつ
 class CWDPath {
  String mPath = "";
 }  
 boolean getCWD(CWDPath result) {
  result.mPath = "SomeDir";
  return true;  // 性交ステータス
 }

これはresultの寿命がmPathに代入するデータの寿命を下回らないケースでしかRustでは書けないハズ
つまりJavaはRustのアンチパターンで大々的に書くことを余儀なくされる危険な言語

106デフォルトの名無しさん2019/08/07(水) 01:49:51.15ID:KVZqz5pU
性交ステータス

107デフォルトの名無しさん2019/08/07(水) 08:31:50.75ID:eqkXQjzY
Javaすら理解できてないのにRustを使おうとするとは勇ましい

108デフォルトの名無しさん2019/08/07(水) 12:04:18.71ID:Fq68/ECQ
何もかも間違っていて突っ込む気も起こらん

109デフォルトの名無しさん2019/08/07(水) 21:02:26.47ID:bj+hpOaY
javaに構造体はないってことくらい突っ込んでやれ。
value typeは当分先だ。

110デフォルトの名無しさん2019/08/08(木) 05:27:28.23ID:FTUf1Nuq
いや正しいていうかこの話にvalue typeは関係無い(返そうとしているStringは参照型
間違っているというならreturn mPath以外の方法でgetCWD()からStringを返してみると良い

111デフォルトの名無しさん2019/08/08(木) 05:51:36.26ID:FTUf1Nuq
んまー不用意に構造体と書いてしまったのは陳謝するのですよ

112デフォルトの名無しさん2019/08/08(木) 07:38:49.45ID:097LZjtE
組み込みの値型以外は全て参照型で管理されてる事が理解できてないって事?

113デフォルトの名無しさん2019/08/08(木) 13:27:41.32ID:+iXEwaHu
Javaにおける参照はオブジェクトへのポインタのことで、RustやC++の参照とは違う概念なのだよ

114デフォルトの名無しさん2019/08/08(木) 13:30:51.54ID:+iXEwaHu
だから参照を返すという言葉の意味も Java と Rust では違う

115デフォルトの名無しさん2019/08/08(木) 14:49:51.48ID:bpfrenBa
何言いたいのかさっぱりわからん
コンパイルエラーになるがやりたいことを書いてくれ

116デフォルトの名無しさん2019/08/08(木) 15:16:04.89ID:6plAwatI
JVM上で動くJRustはまだか?

117デフォルトの名無しさん2019/08/08(木) 15:54:03.06ID:YYsAu0ua
皮肉や冗句を言うにも一定のセンスと知能が必要と言う証左

118デフォルトの名無しさん2019/08/08(木) 22:35:10.82ID:FTUf1Nuq
>>115
C#の例(これは動く
void Main() { string str = new string(); bool bResult = getCWD(ref str); Console.WriteLn(str); // "some_dir"が表示される }
bool getCWD(ref string str) { str = "some_dir"; return true; // 性交ステータスとしてのtrue }

Javaで同じ事をしようとすると>>105になって、Stringを返すためだけのためにCWDPathみたいなクラスを作らねばならない

>>117
藻前は顔だけは賢そうだな

119デフォルトの名無しさん2019/08/08(木) 22:43:00.72ID:+Da//rmi
脳がC言語で止まってると色々気苦労が多くて大変だな

120デフォルトの名無しさん2019/08/08(木) 22:49:15.66ID:FTUf1Nuq
で、Javaでは何で>>105みたいな変なことになるかというと、参照の参照をとることができないため
ここで参照とは何かというと>>113の前半部で良い
参照自体はレジスタに代入したりスタックに1語で積める値型の一種とみなせる
C#ではrefキーワードにより、参照の参照をgetCWD()に渡すことができる
Javaは参照しかgetCWD()に渡せない。よって、CWDPathみたいなクラスの参照を渡してやって、
そのクラスがメンバとして所有する参照を上書きするという手段で返さざるおえない

121デフォルトの名無しさん2019/08/08(木) 22:54:58.10ID:FTUf1Nuq
>>119
参照型を引数として関数に渡すしくみはCで完成しているのだから>>119の言い様では批判になんね
Cではポインタやんけというのは本質ではない
参照自体はレジスタに代入したりスタックに1語で積める値型の一種とみなせる(>>120)
なのであって機械語レベルでみたらオブジェクトを指すポインタに他ならない
で、Java、C#、C++、Go、Rustいずれも参照型の関数渡しは参照をスタックに積んで渡すモデルであることは変わりない

122デフォルトの名無しさん2019/08/08(木) 23:28:59.60ID:+Da//rmi
とりあえず参照渡しという単語を調べなよ

123デフォルトの名無しさん2019/08/08(木) 23:33:17.49ID:FTUf1Nuq
調べてなお問題があると言うなら>>122の理解にこそ問題がある

124デフォルトの名無しさん2019/08/09(金) 00:50:26.80ID:3pQudWDx
>>118
最初説明したこととまるで違うじゃないか。用語は正しく使えよ。

結論は、戻り値で成功不成功を返そうとしたお前が全部悪い。>>119が正しい

125デフォルトの名無しさん2019/08/09(金) 01:47:43.61ID:A3Et6VBe
・カレントディレクトリを取得する
・取得の失敗を検出したい
というのが要求だとして
Javaでそんな変なことせずに
もっとまともな書き方あるから批判する前に
勉強しろや

126デフォルトの名無しさん2019/08/09(金) 02:00:37.01ID:hvzVkerT
>>118
Javaの場合は普通 >>105 みたいなことをせずに、getCWD() の返り値を CWDPath にして、失敗の場合には null を返す
CWDPathみたいなものを二つ返したいなら Pair を使うし、たくさん返したい場合に初めてクラスを作る
Java の進化系である Kotlin はこの辺を確実簡易に行うために nullable とか data class とかがある

127デフォルトの名無しさん2019/08/09(金) 07:24:48.24ID:L3ygUsvb
optional型とかnullable型みたいなヤツは色んな言語であるわな

128デフォルトの名無しさん2019/08/09(金) 10:03:40.29ID:Fvfs1Ycj
>>120
gcあるからそんなことしない

129デフォルトの名無しさん2019/08/09(金) 21:22:16.39ID:0u6cxkej
CWDてなんなんそもそもw
pwdコマンドにあるようにワーキングディレクトリってことでいいの?
それが失敗する時があるってのが想像できない

130デフォルトの名無しさん2019/08/09(金) 21:48:39.98ID:hvzVkerT
想像力が足りない
Unix だと実行中のプロセスのカレントディレクトリを消すことができるので、
そこでそのプロセスが getcwd すると No such file or directory のエラーになる

131デフォルトの名無しさん2019/08/09(金) 22:06:06.07ID:0u6cxkej
>>130
レスとんくす
勉強になりました

132デフォルトの名無しさん2019/08/09(金) 22:07:54.17ID:f7i7jNks
Cの知識しか無いけどJava語っちゃう痛い人が、参照渡しだの値渡しだのを問題にしたがる
Cを使えるからってプログラミングの技術全てが語れるわけじゃないのにね

133デフォルトの名無しさん2019/08/09(金) 23:42:56.34ID:W/azuYkt
go9nzBX4が最初から間違ってるのは置いといてFTUf1Nuqは結局なんだったの?

134デフォルトの名無しさん2019/08/10(土) 00:03:38.47ID:6zXh0uMN
僕はこう解釈したんだという日記

135デフォルトの名無しさん2019/08/10(土) 13:42:02.08ID:lQ/anG82
>>124
一連のレスの中で漏れが一度も「参照渡し」という用語を使っていない件について:
参照型の参照渡しする、という状況は比較的新しい話で、
Javaはあえてかなんだか知らんが古来からある値型の参照渡しに類似の動作に対応していない
つまり呼び出し先で引数として渡された参照型自体を交換したり出力したりできない
JavaScriptやC#は対応している(呼び出し先で参照型自体を交換できいる。C#の例は>>118。refよりoutキーワードを使ったほうが良かったかもしれん…)

>>126
それで十分使いやすいと思われたのならそれで良いが、後発言語が参照型の参照渡しに対応しているという事実、

>>133
C++脳に汚染されていたのでclassとstructの区別がなかったんじゃ

136デフォルトの名無しさん2019/08/10(土) 13:45:47.02ID:lQ/anG82
すまんまつがえたorz
JavaScriptの参照の渡し方はJavaと同じやった、

137デフォルトの名無しさん2019/08/10(土) 13:58:32.51ID:lQ/anG82
なんか今ググると参照渡しの説明に真っ先にJavaScriptが出てくるが
世の中では参照型については参照型が保持するデータを呼び出し先が書き換えられることをもって参照渡しと言っているのかそうか、
しかしそれでは渡された参照型を呼び出し先が交換したり出力したりできず、
そうしたい場合に>>105>>126(Pairの使用、ただし2個まで)みたいな技巧を要する

138デフォルトの名無しさん2019/08/10(土) 14:09:40.55ID:HCvhh7in
書き込むスレをいつまで経っても間違ったまま
そのことにすら無自覚で気付けないやつは
何してもだめ

139デフォルトの名無しさん2019/08/10(土) 16:21:29.50ID:SX6PRfyx
とりあえずrust全く関係なくね?

140デフォルトの名無しさん2019/08/10(土) 16:31:04.83ID:dHQR6WD8
Java入門スレに来て何言ってるの?

141デフォルトの名無しさん2019/08/10(土) 17:36:21.57ID:EB3chQuK
Cのときからある混乱だよな

単にポインタ渡してるだけなのに
ポインタを値渡してるだけなのに
「ポインタ渡し」だとか「参照渡し」だとか言っちゃう
そーいうブログや個人サイトが今もいっぱいある

そもそもこんな状況だから
これについての議論はスタート地点からもうやる気ほぼ出ない

142デフォルトの名無しさん2019/08/10(土) 18:04:04.89ID:lQ/anG82
>ポインタを値渡してるだけ
フォートランスレにでもしてほしいのけ?

143デフォルトの名無しさん2019/08/10(土) 18:12:12.30ID:0AyH8q+k
>>141
> 単にポインタ渡してるだけなのに
> ポインタを値渡してるだけなのに
> 「ポインタ渡し」だとか「参照渡し」だとか言っちゃう

お前がまず混乱してね?

144デフォルトの名無しさん2019/08/10(土) 18:38:36.22ID:EB3chQuK
×単にポインタ渡してるだけなのに
○単にポインタを渡してるだけなのに

失礼、こう書いたほうが良かったねこの場合

145デフォルトの名無しさん2019/08/10(土) 18:39:45.26ID:EB3chQuK
×ポインタを値渡してるだけなのに
○ポインタを値渡ししてるだけなのに

こっちは完全なるタイプミス

146デフォルトの名無しさん2019/08/10(土) 18:41:40.47ID:SA5rOGgq
佐渡さんと書いて、サドさんと読む人と、サワタリさんと読む人がいるから、紛らわしい!

147デフォルトの名無しさん2019/08/10(土) 21:24:12.25ID:IjQF8yoC
Javaに文句付ける以前に色々基礎知識足りない

148デフォルトの名無しさん2019/08/10(土) 22:21:45.80ID:Wv9w5VNh
じゃばはお茶ですか?

149デフォルトの名無しさん2019/08/10(土) 23:44:39.00ID:lQ/anG82
Rustは身から出た錆

150デフォルトの名無しさん2019/08/10(土) 23:47:37.52ID:nUaGQOUP
名前渡しとか嫌いじゃないよ

151デフォルトの名無しさん2019/08/11(日) 23:57:30.28ID:8dEtrjnB
結局、JITがあるからRustよりJavaの方が速いんじゃないんの?

152デフォルトの名無しさん2019/08/12(月) 02:07:24.69ID:Enx+gBa4
ベンチマークサイトだとRustのが早いっぽい
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/rust-java.html
gcがない分p999とかのレイテンシはRustの圧勝になりそう

153デフォルトの名無しさん2019/08/12(月) 07:11:17.23ID:SKKCu+1X
RustとかC/C++は機械語までコンパイルするから速いんじゃなくて無駄なことをしないから速いのでJITとかそういう問題ではない

154デフォルトの名無しさん2019/08/12(月) 09:05:01.58ID:QXujyVaw
JITコンパイルで性的コンパイル結果より速くなるというのは都市伝説
JITのしくみを考えたらワカル

理論上は分岐の実行時統計をとって最適化することによりローカルループがありえないぐらい爆速になって
JITコンパイラ大勝利!と言うことも考えられないではないが統計をとるオーバーヘッドが生じるし
そこまでやっているJITコンパイラは商用のにはないはず

155デフォルトの名無しさん2019/08/12(月) 09:21:07.56ID:87XSRLvd
性的コンパイル

156デフォルトの名無しさん2019/08/13(火) 02:44:50.22ID:6DdfCCpK
えっち

157デフォルトの名無しさん2019/08/13(火) 08:48:40.97ID:fZHFtPHB
僕の女の子とのリンカーはどこ?

158デフォルトの名無しさん2019/08/13(火) 09:05:59.58ID:6zR84Szz
優しいリンカー

159デフォルトの名無しさん2019/08/16(金) 18:52:17.34ID:0C07dzAa
Rust学び始めたけど難しすぎる...
慣れるのにどれくらいかかるだろうか
ちなc/c++経験ほとんどなし
関数型言語は少しだけ分かるっていう程度

手を出すのは無謀?

160デフォルトの名無しさん2019/08/16(金) 19:38:11.01ID:T3AL3pts
なにを作ろうとしてるのかによるよ
わたしは二ヶ月くらいかかったかな

161デフォルトの名無しさん2019/08/16(金) 21:24:02.93ID:eUh+GOjO
async/await、勉強するのに良いものある?

162デフォルトの名無しさん2019/08/16(金) 23:18:30.16ID:T3AL3pts
まだstableじゃないからなんとも
tokio::netとかはasync/awaitでサンプル出してたりするけどどうかな

163デフォルトの名無しさん2019/08/16(金) 23:43:23.26ID:wNXKziRk
>>159
substructural type systemとregionの前提知識がないならコンパイラに怒られるだけ時間の無駄。
先に必要な知識つけてから。

>>161
stable待つよろし。

164デフォルトの名無しさん2019/08/16(金) 23:44:14.39ID:thOVjQYW
cくらいはやっとらんとなんでこんな事してるんだって思うだけだろ。
メモリイメージがないならrustなんか使う意味がない。

165デフォルトの名無しさん2019/08/17(土) 06:44:20.91ID:7ZAIflK1
そんなに大仰なことかなあ?
書いてればそのうち分かるっしょ

166デフォルトの名無しさん2019/08/17(土) 07:11:11.72ID:vMO96NW+
メモリイメージちゃんとしてるならCでいいだろ

167デフォルトの名無しさん2019/08/17(土) 09:56:37.40ID:wqyoFpBF
それな

168デフォルトの名無しさん2019/08/17(土) 10:00:51.09ID:BwITc4Uh
>>159
C/C++やってからでも遅くない

っていうかC/C++を先にやった方が近道かも知れん

169デフォルトの名無しさん2019/08/17(土) 10:46:08.44ID:9n/jDoCG
寧ろ関数型プログラミングに慣れ親しんだ人ならimmutableなオブジェクトだけでプログラミングしてしまい、
Rustが何も言わなかったりして…

170デフォルトの名無しさん2019/08/17(土) 10:51:56.69ID:0Qq/TjEN
>>160
2ヶ月ですかー
用途としてはとりあえず簡単なCLIツールを考えています

>>168
c++はともかくcはちゃんとやっておいたほうがいいですかね

「低レイヤを知りたい人のためのCコンパイラ作成入門」を読んだのでメモリイメージ的なことは最低限は分かるかも

rubyとかpythonとかからrust始めた人もいるみたいだし気合入れて頑張ってみますか

171デフォルトの名無しさん2019/08/17(土) 11:28:04.92ID:w0cmMCtq
>>170
ガンバ

172デフォルトの名無しさん2019/08/17(土) 12:01:03.69ID:ZxqGKdv4
なんでこんなめんどくさいことやってんだ
というのを理解するにはC/C++の知識があると早い

173デフォルトの名無しさん2019/08/17(土) 12:55:15.72ID:5bHKRRQf
C++で痛い目にあった人達が作った言語だからな

174デフォルトの名無しさん2019/08/17(土) 13:26:05.40ID:ON6K/mb3
苦しめられたほうがラクなんよね
一見苦しい縛りの結果、整理された構造という一粒の宝石を残してくれる

175デフォルトの名無しさん2019/08/18(日) 13:26:59.04ID:j9EKYeL3
お邪魔します
エディタを紹介してもらえませんか?

The Rust Programming Language を読みながら自習しています
第12章 Refactoring to Improve Modularity and Error Handling の最後の節
Splitting Code into a Library Crate まできたのですが
( https://doc.rust-lang.org/book/ch12-03-improving-error-handling-and-modularity.html#splitting-code-into-a-library-crate )
Listing 12-14 のように src/main.rs を変更すると
エディタが minigrep なんて知らんと文句を言いはじめました
これでは Config や run を補完で出してくれません

mod lib;
use lib as minigrep

を入れれば補完してくれますが、cargo build が通りません

この状況に対応しているエディタを紹介してくださると大変助かります

176デフォルトの名無しさん2019/08/18(日) 16:43:08.87ID:HnqnQvDm
-use lib as minigrep
+use lib::Config;

177デフォルトの名無しさん2019/08/18(日) 16:53:31.22ID:HnqnQvDm
ごめんなんか勘違いしてた
vscodeで普通に通るよ

178デフォルトの名無しさん2019/08/18(日) 17:36:07.73ID:j9EKYeL3
助かります
ありがとう

179デフォルトの名無しさん2019/08/20(火) 14:01:19.61ID:gT4uMEVl
トレイト境界をトレイト拘束に置換する拡張機能を書いた

180デフォルトの名無しさん2019/08/20(火) 15:27:32.97ID:hKY2TKrp
RustのArcとかBoxとか複数組み合わせてちゃんと動くってイメージが湧かないんだけどそんなもん?

181デフォルトの名無しさん2019/08/20(火) 15:37:20.44ID:WLDVnSvX
トレイトしばり

182デフォルトの名無しさん2019/08/20(火) 18:36:33.19ID:oenkL37i
そんなもんってどんなもんや?

183デフォルトの名無しさん2019/08/21(水) 12:01:21.04ID:inIEkQey
ちゃんと動く

184デフォルトの名無しさん2019/08/21(水) 22:01:34.30ID:YTqLEh4a
>>180
それ関連のバグが確か上がってたはず。

185デフォルトの名無しさん2019/08/21(水) 22:17:56.76ID:zqKd/4GT
嘘乙。
違うというなら証拠を出せ。

186デフォルトの名無しさん2019/08/22(木) 12:21:26.09ID:7th+iyEr
バグを見たことがあるからちゃんと動くというイメージが沸かないのか?

187デフォルトの名無しさん2019/08/26(月) 20:55:57.18ID:hNXwMePN
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=8c44bed658726ada0deff031799664b7
1. std::env::current_exe()で実行ファイルのフルパスを得る
2. file_name()でファイル名だけにする
3. to_str()で&strにする
4. 途中でErrやNoneが返ってきた場合はデフォルトの値"foo"を使う

ということをやりたいのですが、エラーでビルドできません。
どのように書けばいいでしょうか?

188デフォルトの名無しさん2019/08/26(月) 21:16:34.03ID:e+wL38/M
std::env::current_exe() は PathBuf の"値"を返す
PathBuf::file_name() は PathBuf の中身の部分的な参照を返す

PathBuf::file_name() で生成される &OsStr を参照から値に変換するか、
std::env::current_exe() で生成されるPathBufを変数に束縛して所有権取らせてから、改めて参照を取得するかしないとダメ

189デフォルトの名無しさん2019/08/27(火) 19:57:54.12ID:u0PkUgfg
>>188
ありがとうございます、所有権を意識してto_ownedを使ったらいけました。

190デフォルトの名無しさん2019/08/29(木) 18:47:18.36ID:DitGoMrU
>>27の元ネタだが
We need a safer systems programming language
http://msrc-blog.microsoft.com/2019/07/18/we-need-a-safer-systems-programming-language/
Why Rust for safe systems programming
http://msrc-blog.microsoft.com/2019/07/22/why-rust-for-safe-systems-programming/
あたりを読むとあっちの会社はホント合理的だなと痛感する。C/C++を用いた安全な大規模システムの開発はムリゲーとし
同業他社の方針やツールを認め導入してしまう。日本の大手システム屋にこういう事を出来るところってあるんだろうか

191デフォルトの名無しさん2019/08/29(木) 20:39:56.79ID:7sVXLGAA
合理的ね。。
「戦うプログラマー」読む限りはそうは思えんが。
都合のいいとこだけ切り取ってるな。
むしろ無理やり言語使わせるとかもろSIerのやり口だろ。ばかすぎる。

192デフォルトの名無しさん2019/08/29(木) 21:33:28.37ID:Bp0lvm+/
闘うプログラマーと言えば当時からC++は魔境過ぎてヤベェみたいな記載があって笑った記憶ある。

193デフォルトの名無しさん2019/08/30(金) 12:23:15.14ID:Q74gFuRN
無理矢理使わせてるということは今後出てくるMSプロダクトは全部Rust製になるのか?

194デフォルトの名無しさん2019/08/30(金) 12:35:18.57ID:ATaHXAWZ
>>193
C++で作るようなものを全部Rustにする
ってなったらすごいことになるな

195デフォルトの名無しさん2019/08/30(金) 13:06:45.92ID:KMS/yKjh
JavaScript → TypeScript(型チェック) とか C++ → Rust(借用チェック) みたいな
用途・特性が似通った言語でより安全な方を使わせるってのは、単なるリスクマネジメントであって
SIerのナンデモJava事案とは違うと思う

196デフォルトの名無しさん2019/08/30(金) 15:21:18.59ID:cnXxJRuX
ポストC/C++の座にRustを据えるかどうかはともかくC/C+お払い箱は確定事項じゃね
つーかMSRCの記事の何処にも無理矢理使わせているなんて書いていないぞ?

197デフォルトの名無しさん2019/08/30(金) 15:28:58.11ID:GEn/r+mZ
Cは永遠に不滅です
C++は知らん

198デフォルトの名無しさん2019/08/30(金) 18:16:53.32ID:XBvkkCPm
Rust学び始めたけど噂通りむずい...
やりたいのはcli/tuiとかwebなので習得が無理そうだったら大人しくGoを使うことにする...(´・ω・`)

199デフォルトの名無しさん2019/08/30(金) 18:25:46.18ID:uWYoaax5
結局C以外でOSは厳しくないかと思うのよね

200デフォルトの名無しさん2019/08/30(金) 22:21:40.26ID:Q3blvaVM
>>199
CでOS書いた事あんの?
C意外でOS書いたことあんの?
それとも想像だけ?

201デフォルトの名無しさん2019/08/30(金) 22:22:25.51ID:HNXTienF
OSはアセンブラで書くのが常識だった

202デフォルトの名無しさん2019/08/30(金) 22:58:53.71ID:Okk0GWIA
>>200
OS書かなくても自家製メモリ管理作ってみれば想像できるだろ。

203デフォルトの名無しさん2019/08/31(土) 00:42:16.72ID:aUMbNTSE
ちゃんとしたmallocを作ること自体が難しいのであってCかRustかは難しさへは影響しない

204デフォルトの名無しさん2019/08/31(土) 15:15:02.18ID:j8rV2wO1
GCはクソ!だからRust最高!
とイキがってた奴がボローチェッカにボコボコにされてGCの良さを体感するまでが通過儀礼

どっかにドリルないですかね。>187みたいな問題がサラッと解けるようになりたい

205デフォルトの名無しさん2019/08/31(土) 16:16:15.52ID:pCVRgCCA
GCがクソだと思ったからRust使うという意識なかったな


lud20190831202854
このスレへの固定リンク: http://5chb.net/r/tech/1563114707/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「Rust Part7 ->画像>6枚 」を見た人も見ています:
DANCERUSH STARDOM Part7
次世代言語Part7[Go Rust Swift Kotlin TypeScript]
【BrownDust】ブラウンダスト part73
【Fate/stay night 】 衛宮士郎 part7
【16タイプ】ISTP型 雑談スレ Part7
【コジプロ】 DEATH STRANDING Part7
DANCERUSH STARDAM Part5
【PS4】Conan Exiles / Outcasts Part7
DANCERUSH STARDAM Part10
DANCERUSH STARDOM Part13
DANCERUSH STARDOM Part18
DANCERUSH STARDAM part3
【ドラネス】DRAGON NEST M/ドラゴンネストM part7
bunnybunny_abysslaportee_starryforest part7
††【The Foxes】Leicester City FC†† part7
Y!mobile AQUOS CRYSTAL Y 402SH PART7 プラス Y2 403SH Xx-Y 404SH
DANCERUSH STARDOM プレイヤースレ Part10
DANCERUSH STARDOM プレイヤースレ Part4
Rust part8
Rust part14
Rust part24
Rust part26
Rust part23
Rust part21
Rust part16
Rust part27
Rust part13
Rust part20
Rust part22
Rust part10
Rust part17
Rust part18
Visual Studio 2019 Part7
C vs C++ vs Rust Part.3
[FPSサバイバルMMO]Rust Part44
次世代言語11[Rust Swift TypeScript Dart]
Rust part23Rust part21Rust part21
Android Studio Part3
Visual Studio 2017 Part3
Visual Studio 2019 Part3
Visual Studio 2017 Part4
【BrownDust】ブラウンダスト part117
Visual Studio Code / VSCode Part6
Visual Studio Code / VSCode Part3
【BrownDust】ブラウンダスト part27
Just Because! (ジャストビコーズ) Part.7
【PS3/PS4】PlayStation Plus Part 313【VITA】
【HMD】Oculus Quest Part.20【6DoF VRStandalone】
【HMD】Oculus Quest Part.14【6DoF VRStandalone】
【HMD】Oculus Quest Part.6【6DoF VR/Standalone】
Just Because! (ジャストビコーズ) Part.3
Just Because! (ジャストビコーズ) Part.5
【PS3/PS4】PlayStation Plus Part 299【VITA】
【PS3/PS4】PlayStation Plus Part 275【VITA】
【HMD】Oculus Quest Part.12【6DoF VRStandalone】
【HMD】Oculus Quest Part.23【6DoF VRStandalone】
Boost総合スレ part10
Ruby 初心者スレッド Part 61
Ruby 初心者スレッド Part 60
Ruby 初心者スレッド Part 63
Ruby 初心者スレッド Part 65
Android Studio Part4
Rubyについて(アンチ専用) Part005
Visual Studio 2015 Part5
09:34:33 up 67 days, 10:33, 1 user, load average: 9.66, 10.23, 10.17

in 0.012732028961182 sec @0.012732028961182@0b7 on 062322