[過去ログ]
Rust part16 (1002レス)
Rust part16 http://mevius.5ch.net/test/read.cgi/tech/1656285423/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
646: デフォルトの名無しさん [] 2022/09/07(水) 23:31:51.68 ID:qqHULq33 native endianというのは初めて聞いたのですが、これはどういうものなのですか? http://mevius.5ch.net/test/read.cgi/tech/1656285423/646
647: デフォルトの名無しさん [] 2022/09/07(水) 23:54:21.35 ID:En8I5Kb5 この場合 >>644も書いているようにコンパイルターゲット環境のエンディアンのこと 特にターゲット指定がなければ自分の使っているPC環境で通常はx64などlittle endianになりますが そこでleと指定してはダメで環境に応じて適切に対応させるためにneを使います 一方でAPIなどでエンディアンが指定されてる時は指定通りbeかleを使います http://mevius.5ch.net/test/read.cgi/tech/1656285423/647
648: デフォルトの名無しさん [sage] 2022/09/08(木) 00:04:41.95 ID:nmwPOGZ0 >>645 サンクス。u32とかにはfrom_leとかあるみたいですね。こっちの方が使う機会は多そう デフォルトのバイトオーダーを変更したり、変数やフィールド単位でバイトオーダーを設定する みたいな芸当は流石に無理なのかな・・・ググったけどそれっぽい情報は見つけられなかった http://mevius.5ch.net/test/read.cgi/tech/1656285423/648
649: デフォルトの名無しさん [sage] 2022/09/08(木) 00:19:17.65 ID:8UoQH6yi >>648 操作に最適なバイトオーダーは使用CPUで決まるネイティブエンディアン だから原則としてネイティブエンディアンのみでプログラミングする 例外として外部とのやりとりなどエンディアン指定がある時はその境界で変換 http://mevius.5ch.net/test/read.cgi/tech/1656285423/649
650: はちみつ餃子 ◆8X2XSCHEME [sage] 2022/09/08(木) 00:23:28.76 ID:MG9wnc1h >>648 内部的に色々な表現を有りということにするならやりたい操作を個別に定義するしかないよ。 でも普通はそんな煩雑なことをしたくないから 内部的には一環した表現を使って必要な変換は入出力のみというのが一般的な構成だし、 言語やライブラリも基本的には一般的な構成に倣っている。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/650
651: デフォルトの名無しさん [sage] 2022/09/08(木) 01:11:28.44 ID:U6/gufpm >>648 変数やフィールドのメモリ上の表現が特定のエンディアンにしたいのであれば、 #[repr(C)] struct BeU32([u8; 4]); みたいな構造体を用意して impl Be32 { fn get(&self) -> u32 { u32::from_be_bytes(self.0) } fn ser (&mut self, v: u32) { self.0 = v.to_be_bytes(); } } こういうアクセサを実装すれば良いかと 何の役に立つのかはよくわからないけど、特定のエンディアンでシリアライズされたデータにそのままアクセスしたい場合とかに便利なのかな http://mevius.5ch.net/test/read.cgi/tech/1656285423/651
652: デフォルトの名無しさん [sage] 2022/09/08(木) 01:21:33.97 ID:5HeI/FQK mansplainers http://mevius.5ch.net/test/read.cgi/tech/1656285423/652
653: デフォルトの名無しさん [] 2022/09/08(木) 15:55:57.30 ID:Vswe11EN RustをOpenMPIに対応させるようなプロジェクトってありますか? http://mevius.5ch.net/test/read.cgi/tech/1656285423/653
654: デフォルトの名無しさん [sage] 2022/09/08(木) 16:49:24.48 ID:mLv3aAxt 「Rust OpenMPI」でGoogle検索 http://mevius.5ch.net/test/read.cgi/tech/1656285423/654
655: デフォルトの名無しさん [sage] 2022/09/08(木) 18:02:42.70 ID:U6/gufpm OpenMP なのか Open MPI なのかどっち http://mevius.5ch.net/test/read.cgi/tech/1656285423/655
656: デフォルトの名無しさん [] 2022/09/08(木) 20:45:38.87 ID:Vswe11EN 知りたいのはOpenMPIの方です ググるとOpenMPIとOpenMPを勘違いしたと思われるRayonを紹介する記事が出てきたり、OpenMPがらみのサイトが出てきたり、なかなか状況が分かりません・・・・ http://mevius.5ch.net/test/read.cgi/tech/1656285423/656
657: デフォルトの名無しさん [sage] 2022/09/08(木) 20:53:50.25 ID:RwfCQI7B 一番上のrsmpiは違うの http://mevius.5ch.net/test/read.cgi/tech/1656285423/657
658: デフォルトの名無しさん [sage] 2022/09/08(木) 21:56:17.41 ID:fa0yFdt8 MPIはHPC以外では使う必要ないです 機械学習でも有用だとは思いますが そもそもフレームワークが対応していないから 全部自前で作ってるような人以外は必要ないです http://mevius.5ch.net/test/read.cgi/tech/1656285423/658
659: デフォルトの名無しさん [sage] 2022/09/09(金) 01:14:31.51 ID:4b4Wyf25 Open MPIに限らずMPIはアプリから見たらただのライブラリだからRust側で特別な対応は不要で単にCの関数を呼び出せばよいだけでは http://mevius.5ch.net/test/read.cgi/tech/1656285423/659
660: デフォルトの名無しさん [sage] 2022/09/09(金) 08:12:49.36 ID:auDHI5c1 良くありがちな奴だと思うけど struct ARGB32 {A: u8, R: u8, G: u8, B: u8,} みたいに書くとスネークケースじゃないと警告が出るけどどう書くのがRust流なの? これ小文字にしちゃったら少なからず可読性が落ちるよね http://mevius.5ch.net/test/read.cgi/tech/1656285423/660
661: デフォルトの名無しさん [] 2022/09/09(金) 08:31:41.27 ID:WeF8ASv0 #[allow(non_snake_case)] しかしフィールド名だけ小文字にすれば不要 struct ARGB32 {a: u8, r: u8, g: u8, b: u8,} そして可読性が落ちると思わない http://mevius.5ch.net/test/read.cgi/tech/1656285423/661
662: デフォルトの名無しさん [sage] 2022/09/09(金) 09:24:21.25 ID:4b4Wyf25 構造体名もCamelCaseでArgb32とすべきかな http://mevius.5ch.net/test/read.cgi/tech/1656285423/662
663: デフォルトの名無しさん [sage] 2022/09/09(金) 12:29:38.55 ID:6YdHvwwi 識別子を極端に省略するのは良くないという現代のプログラミングの流儀と業界の略語でコンフリクトしてるよね。 略語を使わずに書くとこうかね? Color<T>{alpha: T, red: T, green: T, blue: T} CMYはどうなるとか言い出すやつがいると面倒そうだけど。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/663
664: デフォルトの名無しさん [sage] 2022/09/09(金) 12:42:45.67 ID:VsTRsG1f enum Color { Red, Blue, Green, RGB(u32, u32, u32), HSV(u32, u32, u32), HSL(u32, u32, u32), CMY(u32, u32, u32), CMYK(u32, u32, u32, u32), } http://mevius.5ch.net/test/read.cgi/tech/1656285423/664
665: デフォルトの名無しさん [sage] 2022/09/09(金) 13:41:22.02 ID:4b4Wyf25 最低限ガイドには従った方が良いと思う https://rust-lang.github.io/api-guidelines/naming.html acronymはひとつ単語として扱うとあるから Rgb とか Argb とすべき あとは適当なグラフィック系ライブラリの実装を見て真似してみたら良いのでは 規約に従ってないライブラリも多いけど そもそも既存crate使えば独自にArgb型定義する必要もなくなるかもしれない http://mevius.5ch.net/test/read.cgi/tech/1656285423/665
666: はちみつ餃子 ◆8X2XSCHEME [sage] 2022/09/09(金) 14:02:11.22 ID:gp9Eay33 API ガイドラインってことは、 API として公開しない (内部的な) 名前は雑でいいってことだよね。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/666
667: デフォルトの名無しさん [sage] 2022/09/09(金) 14:15:33.61 ID:+r9uXbjm >>661 個人的にはこっちの方が好きだけど 規約的にダメなら仕方ない http://mevius.5ch.net/test/read.cgi/tech/1656285423/667
668: デフォルトの名無しさん [sage] 2022/09/09(金) 14:42:45.26 ID:4b4Wyf25 >>666 非公開部分を将来公開APIにする可能性や、自分以外の誰かがソース読んでパッチ作ってくれる可能性考えると、 最初から内部も規約に従ったものにしておいた方が良いと思う そもそもひとつのプロジェクトの中で公開部分と非公開部分で異なる規約混在するのも嫌では http://mevius.5ch.net/test/read.cgi/tech/1656285423/668
669: デフォルトの名無しさん [sage] 2022/09/09(金) 15:18:27.40 ID:QLGZdL8Z mozillaは公開できない関数名を使ってオープンソース化が数年遅れた過去があったなぁ。 http://mevius.5ch.net/test/read.cgi/tech/1656285423/669
670: デフォルトの名無しさん [sage] 2022/09/09(金) 15:35:09.62 ID:7NqN1r1N gameraとか? http://mevius.5ch.net/test/read.cgi/tech/1656285423/670
671: デフォルトの名無しさん [sage] 2022/09/09(金) 16:00:26.66 ID:wraz5iEP >>669 94年初リリースで98年ソース公開で 数年遅れるとは? http://mevius.5ch.net/test/read.cgi/tech/1656285423/671
672: デフォルトの名無しさん [sage] 2022/09/09(金) 17:53:00.11 ID:rfSAUeXI CreateFileW in windows::Win32::Storage::FileSystem - Rust ttps://microsoft.github.io/windows-docs-rs/doc/windows/Win32/Storage/FileSystem/fn.CreateFileW.html とかAPIガイドラインもクソもないけど名前だけRustに寄せたところでリファレンスドキュメント(MSDN)との差異が 拡大するだけでメリットはほとんど無いような http://mevius.5ch.net/test/read.cgi/tech/1656285423/672
673: デフォルトの名無しさん [sage] 2022/09/09(金) 21:16:36.10 ID:pyHRaXAz JPEG、MPEG、PNG、HEVC・・・すでに略されている物をありがちな命名規則で書くと判りにくくなる http://mevius.5ch.net/test/read.cgi/tech/1656285423/673
674: デフォルトの名無しさん [] 2022/09/09(金) 22:46:34.35 ID:B0h43lqZ >>673 同意 http://mevius.5ch.net/test/read.cgi/tech/1656285423/674
675: デフォルトの名無しさん [sage] 2022/09/10(土) 00:32:32.71 ID:qBfKxAEz >>663 その方向でやってみます というかこの構造体をArrayに沢山詰めようとすると初期化が難しいのか。どうしようか悩んだ結果こうしてみた #![no_std] const LEN: u32 = 640*480; let mut bitmap:[u32; LEN] = [0; LEN]; let mut bitmap:[ARGB32; LEN] = unsafe {core::intrinsics::transmute::<_, [ARGB32; LEN]>(bitmap)}; bitmap[0].red = 0xFF; アセンブラリストを見る限りは問題なさそう http://mevius.5ch.net/test/read.cgi/tech/1656285423/675
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 327 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.018s