X



Rust Part7

■ このスレッドは過去ログ倉庫に格納されています
0433デフォルトの名無しさん
垢版 |
2019/10/06(日) 14:09:28.34ID:UJBvNAqw
RustでVulkanを使いたいのですが、現状非公式のバインディングを使うしか無いのでしょうか…?
0434デフォルトの名無しさん
垢版 |
2019/10/06(日) 16:42:20.66ID:u0a4L4+0
デバッグビルドの時に、リリースビルドした依存クレートを使う簡単な方法はありますか?
target/release/depsをtarget/debug/depsに名前を調整して移すとできてる感じですが
もっと簡単にできないでしょうか。
0436デフォルトの名無しさん
垢版 |
2019/10/06(日) 21:45:30.41ID:u0a4L4+0
なるほど
当面自作のスクリプトでdebug/depsいじります
0437デフォルトの名無しさん
垢版 |
2019/10/07(月) 19:36:11.62ID:ygKDuPd1
Rustに限った話じゃないんだがGUIツールキットもゲームエンジンもC++が主流
でもC/C++以外でC++の呼び出しが出来る処理系はほとんどない。うぼあー
0438デフォルトの名無しさん
垢版 |
2019/10/07(月) 19:40:49.20ID:PWOdjrjM
スマホゲームとか一時はUnityだらけだと思ったけど今は違うの?
0447デフォルトの名無しさん
垢版 |
2019/10/09(水) 17:58:10.09ID:PhcKq1+0
Cは社交界のオキテを知らない村娘だから
不用意に呼ぶとズッキュウウウンしちゃったりするのよ
だから簡単に呼べなかったりするけど呼べるときはシャワーも浴びずにすっ飛んでくる、そんな子
0448デフォルトの名無しさん
垢版 |
2019/10/09(水) 19:00:00.88ID:xdNe6xdo
C++のライブラリへのバインディングでほとんどのAPIがunsafe&unsafeって書いて無い奴もunsafeかもしれんから自分で気をつけてね☆
みたいのがあるんやが

これってRustで書く意味無くね…?
0449デフォルトの名無しさん
垢版 |
2019/10/10(木) 00:27:32.81ID:sVTH7Uak
貴方がRustで書き直せば喜ぶ人もいるんじゃない?
0450デフォルトの名無しさん
垢版 |
2019/10/10(木) 09:54:53.26ID:yMym0WfO
ま〜つもと
いけいけまつもと
がんばれまつもと
0451デフォルトの名無しさん
垢版 |
2019/10/10(木) 10:51:54.74ID:LImRHacY
>>448
C++のライブラリ使うからだろ。
Rustで書かれたもの使うか、Rustで書き直せ。
0452デフォルトの名無しさん
垢版 |
2019/10/10(木) 13:45:05.68ID:sZ93Becg
Box<T>のTを初期化せずに返すunsafe fn box_t() -> Box<T> があったとして
let mut t;
unsafe {
t = box_t();
// Tの初期化
}
にするのと
let mut t = unsafe { box_t() };
// Tの初期化
ですますのとどっちが良いRust?
0454デフォルトの名無しさん
垢版 |
2019/10/10(木) 14:59:57.87ID:MXl+fq4L
>>452
unsafeで囲む範囲はどの言語でも最小限にしろよ
初期化にunsafe要らんのなら囲むな
0458デフォルトの名無しさん
垢版 |
2019/10/11(金) 09:11:01.85ID:+EEmVP7L
unsafe fn vec_t_n(n: usize) -> Vec<T> {
let mut v: Vec<T> = Vec::with_capacity(n);
v.set_len(n);
v
}

fn vec_t_n(n: usize) -> Vec<T> {
let mut v: Vec<T> = Vec::with_capacity(n);
unsafe { v.set_len(n); }
v
}

unsafe fnにするかfnにするか
例えばutf-8を保証するStringのようにTがなにかを保証する型だとして
Vec<T>の中身がTでないかもしれないからunsafe fnが良いRustでOK?
0459デフォルトの名無しさん
垢版 |
2019/10/11(金) 11:00:26.28ID:hkXt1Gtm
>>455
1文字ずつ文字間開いてるとucs2で書かれてるように見える
0460デフォルトの名無しさん
垢版 |
2019/10/11(金) 15:38:54.43ID:LwZAFcHp
>>458
そのコードだけで言えばset_len()を使うことで保証されなくなるlengthの正しさを
呼び出し側が保証する必要があるのかどうか

from_utf8_uncheckedみたいな別のunsafe fn使ってればそれによって壊される安全性があるなら
その安全性を呼び出し側が保証する必要があるのかどうか
0462デフォルトの名無しさん
垢版 |
2019/10/15(火) 21:56:51.61ID:m8AinitX
その千分の一でもまだでかい
0463デフォルトの名無しさん
垢版 |
2019/10/15(火) 22:12:04.54ID:Ko1HPs1y
バイナリゴルフが流行ってんの?
0464デフォルトの名無しさん
垢版 |
2019/10/15(火) 22:36:57.07ID:icVT30E7
たった13バイトの文字列をコンソールに出力するだけで283648バイトを浪費wwwww
0465デフォルトの名無しさん
垢版 |
2019/10/15(火) 22:39:45.49ID:hhqZ1XTX
minimal runtimeってタイトルなんだからランタイムが小さいって話だろ。比較対象はGoとかHaskellとかであって、Cが小さいなんてのは当たり前。
0469デフォルトの名無しさん
垢版 |
2019/10/16(水) 13:39:20.98ID:KKGk/G0e
一方ルーストはhello, worldとコンソールに表示させるだけで277KBwww
0471デフォルトの名無しさん
垢版 |
2019/10/16(水) 19:33:59.18ID:rINTnV3z
Kbitじゃない?
0472デフォルトの名無しさん
垢版 |
2019/10/16(水) 21:08:46.19ID:9tVPGt2A
エミュROMでぐぐったら出てきた
ドラクエ3が256KByte
ドラクエ3が128KByte
ドラクエ1が64KByte
どれもKbitではない
0473デフォルトの名無しさん
垢版 |
2019/10/17(木) 00:23:19.63ID:TtVNUhvN
N88-BASICとかディスク拡張命令とか考えなければ32 KBに収まってた
数十KBというのは広大な情報量
人間の遺伝子もジャンクDNAを除けば10 KB強ぐらいなのではないか
0475デフォルトの名無しさん
垢版 |
2019/10/17(木) 17:16:51.68ID:TwA5RghT
go だと Hello, work! だけで 2MB でした本当にありがとうございました
0476デフォルトの名無しさん
垢版 |
2019/10/17(木) 18:57:57.40ID:yPX5iNuE
日本は欧米と比べてココがダメ!

韓国のほうがもっとダメなのでセーフ!
0478デフォルトの名無しさん
垢版 |
2019/10/17(木) 20:41:23.80ID:8y1HJh15
https://www.atmarkit.co.jp/ait/articles/1910/17/news088.html
「Rust」言語を採用したAWS、Rustプロジェクト支援を開始

Amazon Web Services(AWS)は2019年10月14日(米国時間)、オープンソースのシステムプログラミング言語「Rust」について、開発プロジェクトをスポンサーとして支援することを発表した。

 Rustは、高速で信頼性が高く、効率的なコードを作成、保守できるように設計されている。2015年に最初の安定版がリリースされて以来、実システムへの導入が大きく進んでおり、GoogleやMicrosoft、Mozillaのような企業がいずれもRustを使用している。

 例えばMicrosoftは自社製品の脆弱(ぜいじゃく)性の約7割を占めるメモリ安全性の問題を解決するためにRustが役立つと指摘している(関連記事)。

 AWSでもRustの利用は大幅に拡大しており、「Lambda」「EC2」「S3」のようなサービスにおいて、パフォーマンスに敏感なコンポーネント用の言語として採用している。

 AWSは先ごろ、軽量のマイクロ仮想マシン(microVM)を数秒で起動できる安全な仮想化技術「Firecracker」をオープンソースとして公開したが、ここでもRustが採用されている(関連記事)。
0479デフォルトの名無しさん
垢版 |
2019/10/18(金) 01:27:06.30ID:RRRrLQ0r
それでも数秒かかるんか…
コールドスタートの悪夢未だ醒めず
0480デフォルトの名無しさん
垢版 |
2019/10/18(金) 08:13:39.39ID:dDUU5P0o
>例えばMicrosoftは自社製品の脆弱(ぜいじゃく)性の約7割を占めるメモリ安全性の問題を解決するためにRustが役立つと指摘している(関連記事)。

これWindowsの脆弱性の話だろうけど、
静的解析ツールでは解決しないってことなのか?
0482デフォルトの名無しさん
垢版 |
2019/10/18(金) 17:46:16.42ID:lmpJOwiE
mut を マットって読んでる人いる?

コアチーム含めミュート派が大勢なのは知ってるけど
eがないとミュートって読むのは不自然だし、時々eをタイプしそうになるから
マット派になろうかと思ってるんだが
0487デフォルトの名無しさん
垢版 |
2019/10/18(金) 18:29:52.38ID:lmpJOwiE
結構いろんな読み方してんのね
マット派いたから安心して転向するわ

ちなみにドイツ語ではムートって読んで勇気って意味らしい
0490デフォルトの名無しさん
垢版 |
2019/10/18(金) 21:57:09.28ID:lmpJOwiE
pubはまあわかるけど
fnとunwrapは他言語でもあるし普通にわかりやすいと思ってたわ

IntoIteratorとかは素直にIterableでいいのにとは思う
0491デフォルトの名無しさん
垢版 |
2019/10/19(土) 00:46:14.72ID:ZEJ60z1R
しかしRustでOS作ったらCより性能悪かったという記事があったはず
新しくOS用のプログラミング言語を作った方が良いのでは
RustはOS開発を主眼にしてるわけじゃないだろう
0497デフォルトの名無しさん
垢版 |
2019/10/19(土) 13:43:06.95ID:ZEJ60z1R
OS組もうとするとRustの言語概念を無視するような書き方をしなきゃいけない
みたいに書いてあったんだけど
0498デフォルトの名無しさん
垢版 |
2019/10/19(土) 13:44:39.15ID:xHh5MvNF
「Rust」言語はCよりも遅いのか、研究者がベンチマーク結果を解説
ttps://www.atmarkit.co.jp/ait/articles/1909/13/news133.html
このソースは
A high-speed network driver written in C, Rust, Go, C#, Java, OCaml, Haskell, Swift, Javascript, and Python
ttps://github.com/ixy-languages/ixy-languages
これかな
0499デフォルトの名無しさん
垢版 |
2019/10/19(土) 17:05:59.60ID:xnS8qN86
>>497
ケースバイケースだろ。
なんでも杓子定規にとらえるなって言ってやれ。
0500デフォルトの名無しさん
垢版 |
2019/10/19(土) 18:07:21.38ID:Xn59Im0u
いや普通にOSソース見ればそらrust向いてねーわってなるよ。
杓子定規にrust使おうってほうが気が狂ってるわ。
0501デフォルトの名無しさん
垢版 |
2019/10/19(土) 18:16:31.77ID:JHoWAbaJ
Rustを使わないからそうなっているのかもしれんぞ
どこでRustだと不利なのか説明してくれ
0502デフォルトの名無しさん
垢版 |
2019/10/19(土) 18:58:13.46ID:VwkXsBh7
ストレージからプロセスを読んで起動する、とか
そもそもコンテキストスイッチングの処理とかは所有権の概念(データの寿命が入れ子)から外れてくる
気がするが、別にunsafeにせねばならないほどでもないキモス
他に何かある?
0503デフォルトの名無しさん
垢版 |
2019/10/19(土) 19:38:38.55ID:fKOzCfED
その昔はlispやforthでもos書いたりしたんだからrustで書けないことないだろう。
0505デフォルトの名無しさん
垢版 |
2019/10/20(日) 11:39:50.17ID:Q377Ee/+
それで実際Rustはバグ発生率低いの?
0506デフォルトの名無しさん
垢版 |
2019/10/20(日) 12:22:34.24ID:f+d3Kcps
バグ発生率ってどうやってカウントするのが一般的なんやろか?

完全にただの思いつきで無意味な比較だけどgithubのgoとrustで総issue数/contributor数だと1人あたり2倍ぐらいgoのが多いね
0507デフォルトの名無しさん
垢版 |
2019/10/20(日) 13:14:08.41ID:Df2Q09El
issueってバグじゃないだろ。
機能要望とか議論とかあるじゃん。
0508デフォルトの名無しさん
垢版 |
2019/10/20(日) 23:15:26.37ID:ADDbXmaX
小さめのサイズの本で、初心者向けの本が出た!

Rustプログラミング入門、酒井 和哉、2019/10/13
0509デフォルトの名無しさん
垢版 |
2019/10/20(日) 23:22:23.45ID:ADDbXmaX
>>506
バグ発生率は、バスタブ曲線だろ。
初期によくバグる

土方をやってると、バグを多く出さないと、客に提出できないw

漏れは、平均的なIQ レベルより、間違いが少ないから、
いつも、アホみたいなバグを、わざと自分で作って、バグ発生数を増やしていたw

あらかじめ勉強している人は、滅多に間違わないから、バグ発生数基準だと困るw
一方、全く勉強していない香具師は、バグが多い
0511デフォルトの名無しさん
垢版 |
2019/10/21(月) 13:21:09.04ID:c9dhXgWB
仕様書にバグが多いのはあれわざと仕込んでるのかなるほど
0512デフォルトの名無しさん
垢版 |
2019/10/22(火) 20:56:02.71ID:pBzGAt4J
ネストした構造体のコンストラクトパターンみたいなやつはもっとチュートリアルで
説明した方がいいんでないのとは思う。
多分めんどくさい書き方にしかならんからやらんのだろうけれど。
0515デフォルトの名無しさん
垢版 |
2019/10/23(水) 17:55:49.61ID:GdFoVnvN
三項演算子は便利だったなぁ、と他言語を思い出して感動してるってことかな
0517デフォルトの名無しさん
垢版 |
2019/10/23(水) 20:07:35.94ID:r6mLYpNF
組み込みもネットワークツールもほとんどc以上の生産性を出すことないしな。。
一番有効な領域ってデバッガーじゃねーの?とは思う。
0520デフォルトの名無しさん
垢版 |
2019/10/23(水) 21:12:36.43ID:s8yqv2t4
公式に呼びやすい名前をつけないのがよくない
question mark operatorじゃわかりにくいから
error propagating operatorかerror handling operatorで
0521デフォルトの名無しさん
垢版 |
2019/10/23(水) 21:26:40.40ID:AT7YtDx+
ダサいかどうかとかどうでもよすぎる
性能、書きやすさ、読みやすさ、安全性がすべて
0522デフォルトの名無しさん
垢版 |
2019/10/23(水) 21:31:02.23ID:5Hzic27k
性能 境界チェックのせいでだいぶおそい
書きやすさ 地獄
読みやすさ 悪夢
安全性 噂ではあるらしい

?まみれになるぐらいだったらヌルポで落ちても変わらんやん
どうせ無理に回復とかしないほうがいい類のだろ
0523デフォルトの名無しさん
垢版 |
2019/10/23(水) 22:05:27.50ID:B/jcGWye
ぬるぽで落ちるのは運が良かっただけで何でも起きうるし最悪スーパーハカーの餌食になる
?はちゃんとエラーで終了してくれる


って理解でおk?
0524デフォルトの名無しさん
垢版 |
2019/10/23(水) 22:31:31.88ID:xt74prfP
ヌルポって、javaのあれのこと?
シンタックスだけ比較して意味あんのかな
0525デフォルトの名無しさん
垢版 |
2019/10/23(水) 23:02:51.06ID:5Hzic27k
>>523
ちがう
ぬるぽだとまず間違いなくぬるぽエラーで落ちる

NullSafeのありがたさはnullにならないこと
場合分けを考えずに常に変数を確実なひとつの値として扱える
0526デフォルトの名無しさん
垢版 |
2019/10/23(水) 23:10:47.86ID:5Hzic27k
モナドだろうがなんだろうがNullはNullだ
へたに回復してしまうとほかに影響が波及して大惨事につながりやすい
むしろ最初からNullにならないことを保証してくれる方がうれしい


なのになんでOKで帰ってきた結果からfileNaeme取るのまで?つけさせられとんじゃ
0528デフォルトの名無しさん
垢版 |
2019/10/24(木) 00:39:21.69ID:1+d2lllL
エラーかどうかのチェックは、NULLかどうかのチェックとは違う
ここ大事なところなので間違えちゃダメ
0529デフォルトの名無しさん
垢版 |
2019/10/24(木) 01:03:58.72ID:LM2wjPr+
潔く死んで欲しいなら明示的にunwrapなりexceptなりすればよい
バグなのか想定されたエラーなのかを区別して明示的にコーディングできるのがrustの利点では
0531デフォルトの名無しさん
垢版 |
2019/10/24(木) 06:50:04.06ID:G12eboer
下手に回復して大惨事になるのは、下手だからでしょ

file_nameに?付けてるのはディレクトリの場合無いからでしょ
なんでそんなことが疑問になるのか分からない
0532デフォルトの名無しさん
垢版 |
2019/10/24(木) 09:03:26.66ID:M5uvwdA8
Optionとか中途半端でたちわりーわ。
てかrustみたいにライフタイム意識する言語の場合、あんまり役割ない気がするけどね。
■ このスレッドは過去ログ倉庫に格納されています

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