Rust part25

■ このスレッドは過去ログ倉庫に格納されています
2024/07/31(水) 00:46:26.17ID:DBMWY2QT
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

公式ドキュメント
https://www.rust-lang.org/learn

Web上の実行環境
https://play.rust-lang.org

※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/

※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust

※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/

※次スレは原則>>980が立てること

前スレ
Rust part24
https://mevius.5ch.net/test/read.cgi/tech/1716759686/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
2024/09/03(火) 07:16:54.59ID:1bP400Ev
オブジェクトプールって要はキャッシュのことでいいの?
650デフォルトの名無しさん
垢版 |
2024/09/03(火) 07:43:29.24ID:kXSWNX4e
>>645
訂正
アリーナ方式(=オブジェクトプール方式)はC++とNim2.0だけに導入されてるわけではないと

じゃあNim言語開発者が、RustやC++、そしてSwiftがどのようにメモリ管理を行っているかを調べ、良い部分を再組み合わせたオブジェクトプールは他の言語にあるの?

無いなら、現時点でRustやC++、そしてSwiftがどのようにメモリ管理を行っているかを調べ、良い部分を再組み合わせたオブジェクトプールはを導入してるのはNim2.0だけって事で異論はない?
651デフォルトの名無しさん
垢版 |
2024/09/03(火) 07:47:47.67ID:kXSWNX4e
訂正(オブジェクトプール → ムーブセマンティクス)
じゃあNim言語開発者が、RustやC++、そしてSwiftがどのようにメモリ管理を行っているかを調べ、良い部分を再組み合わせたムーブセマンティクスは他の言語にあるの?

無いなら、現時点でRustやC++、そしてSwiftがどのようにメモリ管理を行っているかを調べ、良い部分を再組み合わせたムーブセマンティクスはを導入してるのはNim2.0だけって事で異論はない?
2024/09/03(火) 07:52:41.59ID:e/LVUItZ
アロケータを細かく制御したいなら断然Zigだろ
Arena Allocatorももちろん用意されてるし、他にも選択肢がある
2024/09/03(火) 07:59:06.62ID:32lfd5Tu
>>649
普通オブジェクトプールをキャッシュとは言わないと思うけど
まぁ挙動としてはメモリ領域のキャッシュみたいなイメージでいいかもしれない
小領域の確保と解放が繰り返されるときにキャッシュすることで実際のmalloc/free(あるいはGC)呼び出し回数を減らすためのもの
2024/09/03(火) 08:03:36.62ID:LULqlZCj
来年にはZigがメジャーバージョン1到達見込みみたいだし期待
2024/09/03(火) 08:04:09.12ID:UM5ITwja
Zigはこのまま未完成に終わって極少数の趣味人にしか使われないでしょう
2024/09/03(火) 10:06:28.79ID:+fPFl5kU
なんかZigファン多いみたいだから、単独スレ立てて議論したら?
ここはRustスレだから、ただ単にZigはすごいんだあって宣伝するだけなのはつまらんぞ
2024/09/03(火) 10:17:54.29ID:Dbzwi48i
C++とかGoとかNimとかの他所様のスレにRustの宣伝を書き散らしてたカスもいたわけだし
今更そんなこと言っても誰も相手にせんだろう
2024/09/03(火) 10:20:47.01ID:e/LVUItZ
アロケータ周りの不自由さはRustの代表的なウィークポイントだから
Zigと比較するのは有意義だと思うよ

Rust for Linuxで不備を指摘されて、unstable featuresとして整備し始めてるのが現状でしょ?
2024/09/03(火) 10:30:58.77ID:oCyo/VGZ
入院が安定化されればクリアする話だから年内か年明けにでも解決
2024/09/03(火) 13:17:35.66ID:q/sgL6ap
スレ違いなのに書き込んでるやつは頭悪そう
2024/09/03(火) 16:24:34.66ID:/Ve5otW6
>>631
>C++を置き換えるものがRust、

doubt
662デフォルトの名無しさん
垢版 |
2024/09/03(火) 16:46:40.15ID:/Ve5otW6
>>657
いたね
ほんとめいわく
世界中のケンタという名のプログラマを敵に回しただろう
663デフォルトの名無しさん
垢版 |
2024/09/03(火) 20:18:41.62ID:70res71t
>>589
Nim2.0は循環参照が大量に使用されていればいるほどオブジェクトプールとムーブセマンティクスのメモリ最適化アルゴリズムで、人間がCの手動メモリ管理したベンチマークより速くなる

だからNim2.0は循環参照が大量に使用されていない通常の短いコードの言語間ベンチマーク比較だとÇと変わらなくなる

>しかもNimはC言語へトランスパイルされるんだろw
人間がCの手動メモリ管理したプログラムだとメモリの最適化に限界がある
Nim2.0はオブジェクトプールとムーブセマンティクスのアルゴリズムでメモリの最適化をしてるから、オブジェクトプール版のNimから生成したCのコードは人間には書けない

Nim2.0のムーブセマンティクスの本当に優れたメモリ最適化アルゴリズムと明示的にオブジェクトプールでプログラミングすることによって、人間がCの手動メモリ管理したベンチマークより2倍以上速くできる
664デフォルトの名無しさん
垢版 |
2024/09/03(火) 20:29:12.43ID:70res71t
補足
NimはCのソースコード吐けるからから、Nimの手動メモリ管理はCの手動メモリ管理と同じとしてベンチマーク計測してる
https://github.com/Araq/fosdem2020
https://zenn.dev/dum...icles/af2b2b9f8fd890
2024/09/03(火) 20:30:56.39ID:65xXv9p+
比較コードとベンチ結果すら示せない嘘つきがまた来てるのか
666デフォルトの名無しさん
垢版 |
2024/09/03(火) 20:49:25.51ID:70res71t
>>665
https://github.com/Araq/fosdem2020

ベンチマーク:処理能力
Memory management strategy Time Peak Memory
mark&sweep GC         17s    588.047MiB
deferred refcounting GC      16s    304.074MiB
Boehm GC           12s      N/A
ARC                6.75s   472.098MiB(379.074MiB)
manual             5.23s    244.563MiB
manual(with RC)        6.244s    379.074MiB
object pooling           2.4s      251.504MiB
パフォーマンスはどうでしょうか?結果ははるかに速く、パフォーマンスが2倍以上向上し、メモリ消費もほぼ同じです。
2024/09/03(火) 20:59:57.60ID:vYs0R68S
それはNim同士の別方式の比較
他の言語と比較しないと意味がないね
もちろん他の言語で書いてもobject pooling (= arena allocation)方式が一番速くなることが昔から知られている
668デフォルトの名無しさん
垢版 |
2024/09/03(火) 21:00:53.22ID:FoNe+zrO
そもそもGCを使わない方法での比較はしてるの?
669デフォルトの名無しさん
垢版 |
2024/09/03(火) 21:03:35.60ID:WuK8CTt/
V8とRustをベースとしたJavaScript/TypeScriptランタイム環境「Deno」v1.46.2
https://forest.watch.impress.co.jp/docs/digest/1620908.html
2024/09/03(火) 21:22:39.41ID:Duh4gTgK
Poolの概念
tps://boostjp.github.io/archive/boost_docs/libs/pool/concepts.html

他の実装
Pool 割り当て機構は多くのプログラミング言語に見ることができ、多くのバリエーションが存在する。
多くの実装の端緒は、ごく普通のプログラミングに関する文献に求めることができる。
いくつかを以下に示す。これらの何れも完全な実装ではない。
多くは実装のある局面を読者への練習問題としている。
しかしながら、これらの例はどれも、ある局面が欠落しているとはいえ、
このドキュメントで述べている単純分離記憶域と同じ基底概念を使用している。

"The C++ Programming Language", 3rd ed., by Bjarne Stroustrup, Section 19.4.2.
(略)
"MicroC/OS-II: The Real-Time Kernel", by Jean J. Labrosse, Chapter 7 and Appendix B.04.
(略)
"Efficient C++: Performance Programming Techniques", by Dov Bulka and David Mayhew, Chapters 6 and 7.
(略)
"Advanced C++: Programming Styles and Idioms", by James O. Coplien, Section 3.6.
(略)
2024/09/04(水) 00:24:08.00ID:WSrhyWiD
なんでstdで公開してるんだか知らんが、rustc開発陣には面白いこと考えて実装してしまう人がいるもんだね
https://doc.rust-lang.org/std/intrinsics/mir/index.html
2024/09/04(水) 06:25:46.42ID:L9jt2Atz
>>669
https://zenn.dev/ekusiadadus/articles/bench-go-node-rust-zig

denoって遅いんだな
2024/09/04(水) 06:51:22.28ID:jUst+7wI
>>672
バカなベンチマーク記事の典型例
Goはマルチスレッドをフルに使っていて8倍速い結果
2024/09/04(水) 08:21:33.86ID:YIdoJmrM
こっちのが各種負荷が分かりやすい
youtu.be/2hWfLiRGaNM
675デフォルトの名無しさん
垢版 |
2024/09/04(水) 13:53:11.19ID:gtSSINdp
どっちのロゴもださい
2024/09/04(水) 18:38:20.03ID:LischCmo
いくつか記事出てるけど、Rust for Linuxは失敗に終わったみたいだね
2024/09/04(水) 18:53:43.06ID:kEJZEp+0
>>676
既に次々とRustコードが入っていってる
一方でRustを理解できない人が抵抗勢力になっていてLinus氏が釘をさした形
2024/09/04(水) 20:38:51.07ID:WSrhyWiD
具体的にLinuxの何がRustで書かれてるんだっけか
2024/09/04(水) 20:51:35.06ID:pD6zdA4Y
https://github.com/torvalds/linux

カーネルにはまだ何も入ってなさそう
2024/09/04(水) 21:35:17.87ID:WSrhyWiD
だよね
知ってた
2024/09/04(水) 21:39:00.59ID:DkGnoe2A
抵抗勢力のクズを一掃できないとLinuxの敗北の始まりになるかもな
682デフォルトの名無しさん
垢版 |
2024/09/04(水) 22:30:46.44ID:kVp+OLCr
何に敗北するんだろうか
Rust製でもっと高信頼性かつ高機能なOSをどこかが作ってたりするの?
2024/09/05(木) 00:00:09.27ID:zViJFvGA
linux はバイナリ互換性を大事にする。
(Windows ほどではないけど。)
ドキュメントに書いてない仕様外の挙動であってもそれを変更して動かなくなるアプリケーションがあってはならないというのが基本指針。
コンパイラの挙動とも協調して細部をコントロールしてる工芸品だ。
この状態を維持したまま Rust を導入するのは無理だよ。
比較的疎結合な一部のモジュールはなんとかなるかもしれんがあえてやるには時期尚早。
2024/09/05(木) 00:04:52.28ID:clMGp1Hb
それバイナリ互換と関係ない話
2024/09/05(木) 00:33:15.38ID:9Qm4YGNu
>>683
それはカーネル外と際の話
さして言語は関係ない
実行バイナリファイル形式は同じだからRustで書かれたものも動いているしCで書かれたものと混在リンクしても動いてる
バイナリインタフェースのうちシステムコールについてはlibcそのまま用いている
そのためためRustでもレジスタの使用方法積み方全て同じ
実行バイナリへの混在リンクの関数呼び出しについてもCと同じくレジスタ割り当てや退避を行うためこれも同じ
2024/09/05(木) 01:05:51.55ID:hShQUNIv
カーネルとモジュールの間ではバイナリ互換性の問題は発生しないとでも言うつもりなんだろうか
2024/09/05(木) 01:54:33.69ID:3g7CnUji
>>686
カーネルモジュールはRustで書いても問題なく動いている
興味があるなら誰でも自由に書くことができてローカルにモジュールロードもできるのでどうぞ
2024/09/05(木) 05:13:44.23ID:e3jYYrt5
>>679
unsafeを使うときには必ずそのすぐ上に // SAFETY: コメントで説明を書かないといけない
ってコーディングルールなんだね
Documentation/rust/coding-guidelines.rst
2024/09/05(木) 07:32:51.81ID:YoL+MCk6
>>682
なぜかそれはしない
2024/09/05(木) 08:27:51.37ID:2XHFyhSG
小さいものはある
しかし巨大なものを置き換えるにはコストがかかる
特に安定している部分はメリットがない
一方でデバイスドライバなど次々と新たなコードが実装されていってる部分はメリットがある
そのためカーネル本体ではなく新たなモジュールからRust化されつつある
691デフォルトの名無しさん
垢版 |
2024/09/05(木) 09:24:04.12ID:NUwXZfpl
>>677
判らないから反対してるのか
判ってるけど入れたくないから反対してるのか
どっちだろうね(どっちもあると思う)
692デフォルトの名無しさん
垢版 |
2024/09/05(木) 09:29:32.76ID:NUwXZfpl
>ドキュメントに書いてない仕様外の挙動であってもそれを変更して動かなくなる
>アプリケーションがあってはならないというのが基本指針。

そういう規定されていない挙動がセキュリティホールになるんじゃないの
アプリじゃなくてウィルスやワームなら動かなくなっても良いという考えは感心しない
(いいけどさ)
2024/09/05(木) 09:53:36.80ID:4TgHYLLA
Windowsアーキテクチャを捨てる時rustでスクラッチから書き直すんじゃね?

もう誰かが実験的に始めてるかも知れないけど
2024/09/05(木) 10:28:42.83ID:e3jYYrt5
Windowsカーネルにはもう既にRustで書かれたモジュールが入ってるぞ
695デフォルトの名無しさん
垢版 |
2024/09/05(木) 11:26:57.99ID:MrUlEodS
>>691
結局、たとえCとRustが相性良いとか言っても現実は
Cプログラマ「Cで十分。はい論破!」
やからな
696デフォルトの名無しさん
垢版 |
2024/09/05(木) 11:28:29.71ID:ucx37QCe
linuxについてもリーナスはrust導入に期待してるからね。
少しずつだけど前進はしてる。けどrust推進者がメンタルやられて後退もしてる。
リーナスも老害には釘さしてる。
2024/09/05(木) 11:43:44.01ID:KbFebBvQ
rust製OSといえばRedox
https://redox-os.org/
2024/09/05(木) 12:01:55.65ID:FfD21zGl
RedoxはMITライセンスだから、Redox開発者&コントリビュータはLinuxのGNUソースを一切見ることが出来ないね
2024/09/05(木) 12:03:41.73ID:zViJFvGA
たとえばヌル終端した文字列を Rust に持ってくるのが面倒くさい (かといって素のポインタで扱うのは Rust の良さが活きない) とかそういう些細な不整合の積み重ねがある。
よく分離されたモジュールの間で通信する分にはたいした話じゃないが一体の塊の中で内容が同じ異なるオブジェクトがあって頻繁に変換するなんてのは論外だ。
カーネルが Rust に配慮するよりは libc みたいなポジションの Rust 版みたいなやつがあればいいんでないの。
700デフォルトの名無しさん
垢版 |
2024/09/05(木) 12:11:34.88ID:ucx37QCe
>>698
?何で見ることできない?
2024/09/05(木) 12:11:54.33ID:kbcpGSLl
そう、それもGPLな
Redoxに流用すなると、RedoxもGPL
Redoxソースを見たらそれもGPL
2024/09/05(木) 12:14:00.92ID:kbcpGSLl
>>700
GPL/GPLAライセンスを舐めたら痛い目に遭う
2024/09/05(木) 14:03:52.89ID:8gaPnIRW
ライセンスはApache-2.0 licenseしか信じてないわ
704デフォルトの名無しさん
垢版 |
2024/09/05(木) 15:24:16.99ID:ucx37QCe
>>702
それは 見ることできない とは別問題だよ
2024/09/05(木) 15:28:43.04ID:QwnqngeR
>>699
ヌル終端文字列の一部を切り取ったヌル終端文字列はたいていヒープに割り当てられ
たいていリファレンスカウントまたはマークアンドスイープの対象になる

ヌル終端しない自由があればヒープがいらなくなる
2024/09/05(木) 15:38:39.94ID:Vdc38OeX
やばい、やばい、別言語に書き換えたらGPLロンダリング出来ると本気で思ってそうだな
会社ぐるみで参考とか調査と称してGPLコード内の処理内容をパクってそう

新興OSがLinuxコードをパクって無いと主張するのはダウト
707デフォルトの名無しさん
垢版 |
2024/09/05(木) 16:03:51.09ID:eP4hkN3V
GPLの力をそこまで拡大するのはカスなんだよな
そこまでやるなら裁判でもなんでもしてGPLごと破壊していくべき
2024/09/05(木) 16:10:43.66ID:clMGp1Hb
そこまで気にするならGPLに限らず他人の
著作物見ると危険だから
709デフォルトの名無しさん
垢版 |
2024/09/05(木) 16:22:33.75ID:CfpHO291
「GPLのソースをコピーして使ったソースは、ソース公開の義務が生じ、それもGPLになる」
というものだから、目で見て脳で記憶してそっくりに真似た場合はコピーしたわけではないから
GPL感染しないかも。
そもそも、目で見たものを再現したら、駄目、なんて理屈、特許も取れてないのに主張できる
ものなのかいな。絵とか文章をそのままコピーするのは著作権違反だけども、目で見て真似た
だけでは著作権違反ではなかろう。ミッキーマウスみたいなのは駄目なんだろうけども。
GPLは、ライセンス自体が法解釈的に「無効」かも知れない。
2024/09/05(木) 16:26:01.06ID:CfpHO291
memcpyのx86用のアセンブリコードがあったとして、それ以上ほぼ高速化できない場合が有るから、
それを真似てはいけないと言うのは、技術の進歩を阻害してしまうだろう。
それとは異なるが速度は同じ、というようなものを考え出す苦労がGPLのせいで生まれる
ことになり、それに時間をとられて人類は損失を被ることになる。
2024/09/05(木) 16:29:22.37ID:CfpHO291
そもそも、人類は技術を少しずつ改良している。memcpyに関しても基本的にそう。
しかも、ハーバード、スタンフォード、MITなどの最高レベルに優秀な人が研究目的
だからライセンスを気にせずにGPLのものを改良を重ね、最良に近いものを作り出して
いることがある。しかし、それを真似てはいけないと言うのは、GPL以外のものは、
人類の英知を利用してはいけない、ということになってしまう。研究費が国から出るような
立場の人はそれでよくても、民間企業はそれではとても困る。
2024/09/05(木) 17:03:49.47ID:ehhJfJsl
GPLじゃないOSSなんていくらでもあるのに「GPLロンダリング」をどうしても正当化したい勢が結構いる事に驚いた今日この頃
2024/09/05(木) 17:05:55.92ID:QwnqngeR
誰が作っても同じ物ができる部分は遵法精神があろうがなかろうが同じ物ができるから
法律は関係ない

関係あるのは、ふつうと違う物を作ったらボーナスがもらえるような奴だけだろう
2024/09/05(木) 17:14:02.07ID:CfpHO291
>>712
例えば、多倍長計算ライブラリは、GPL以外のものに良いものがない。
2024/09/05(木) 17:19:12.62ID:zViJFvGA
>>711
> GPL以外のものは、人類の英知を利用してはいけない、ということになってしまう。

そうだよ。 真似しなければ滅びるというなら滅びるべきであるのに
どうして生き延びるために真似していいと思うんだ?
GPL の感染を許したくないなら「お前が」適当なライセンスで作ればいい。
お前が作れなければ出来る人に金を払って作らせろよ。
それがオープンソースの理念だろ。
716デフォルトの名無しさん
垢版 |
2024/09/05(木) 17:28:10.99ID:CfpHO291
>>715
>GPL の感染を許したくないなら「お前が」適当なライセンスで作ればいい。
memcpy や多倍長計算は、世界最高レベルのものが、GPLで出来てしまえば、
異なるアルゴリズムや書き方で、それと同じか、または、超える効率のものは作りえない。
2024/09/05(木) 17:33:36.15ID:zViJFvGA
>>716
なら滅びろと言ってるのがまだわからんのか。
しつこい。
2024/09/05(木) 17:46:49.89ID:9d7Gx9oD
アイデア・ノウハウ・情報などは著作物ではなく保護の対象ではない
だから考え方やアルゴリズムを真似たところで著作権違反にはならない

逆に言語を変えていてもコードを丸コピしてれば違反に問われる可能性はある
コードに「創作性」が認められる場合のみだけど

ただCを例えばHaskellで書き換えたら
基本ルールが違いすぎて異なる表現にしかならないので
複製にあたる可能性は限りなくゼロ
719デフォルトの名無しさん
垢版 |
2024/09/05(木) 17:51:37.45ID:CfpHO291
>>718
>アイデア・ノウハウ・情報などは著作物ではなく保護の対象ではない
>だから考え方やアルゴリズムを真似たところで著作権違反にはならない
だとすれば、GPLで書かれた数値計算ライブラリやmemcpyのアイデア・ノウハウ・アルゴリズム
と完全に同じものを使ったプログラムを作っても、著作権の保護にならないと言うことか。
2024/09/05(木) 18:02:59.65ID:k9PbGgWS
無理筋で弾幕張ってるのは「GPLロンダリング」し過ぎてもう取返しがつかないのか
自動車のECUをリバースエンジニアリングする様子がツベで視聴数を稼ぐ時代にリスク張り過ぎw

>>718
それ論文の話でしょ
>>719
違う

アルゴリズム論文みてHaskell実装するならOK、好きなライセンス形態を選べる
GPL CコードみてHaskell実装するならGPL感染する
2024/09/05(木) 18:13:46.19ID:zViJFvGA
著作権は表現を守る権利だよ。
どこまで表現でどこからアイデアなのか知財関連は素人には判断できないが、 memcpy レベルの基礎的なやつは CPU のドキュメントとかに書いてあるのが元だったりするからどうしても GPL なソフトウェアを真似しないといけないってことはあまりない。
GPL に知恵が集約されてるなんてことはない。
722デフォルトの名無しさん
垢版 |
2024/09/05(木) 19:53:46.83ID:eP4hkN3V
企業が収めた税で食ってる立場の人間が企業の邪魔するようになっちゃ終わりよな
そういう資金がなくなるような政党に投票していこうな
2024/09/05(木) 20:22:43.47ID:MKUftFeD
>>721
>memcpy レベルの基礎的なやつは CPU のドキュメントとかに書いてあるのが元だったりするから
調べてみたが、Intel PDF Manual からは発見できなかった。
724デフォルトの名無しさん
垢版 |
2024/09/05(木) 20:36:21.56ID:MKUftFeD
>>720
>アルゴリズム論文みてHaskell実装するならOK、好きなライセンス形態を選べる
>GPL CコードみてHaskell実装するならGPL感染する
「アルゴリズム」というけれど、memcpyみたいなものは高速化のためにCではなく、
アセンブラレベルにする。だから、レジスタや細かい命令の使い方まで含めてアイデア。
レジスタは、完全には自由には選べないので、個人の自由で選べる範囲は狭い。
だから、効率を落とさずに変更できる余地は少ない。
725デフォルトの名無しさん
垢版 |
2024/09/05(木) 20:36:22.59ID:MKUftFeD
>>720
>アルゴリズム論文みてHaskell実装するならOK、好きなライセンス形態を選べる
>GPL CコードみてHaskell実装するならGPL感染する
「アルゴリズム」というけれど、memcpyみたいなものは高速化のためにCではなく、
アセンブラレベルにする。だから、レジスタや細かい命令の使い方まで含めてアイデア。
レジスタは、完全には自由には選べないので、個人の自由で選べる範囲は狭い。
だから、効率を落とさずに変更できる余地は少ない。
2024/09/05(木) 20:49:43.99ID:uJyBKCNl
>>720
何も知らんのだなw
Nim推ししてたやつと同じ低知能臭い
2024/09/05(木) 22:10:14.25ID:QwnqngeR
多倍長整数は、整数もObjectクラスを継承している系の言語と相性が良かったが
そういう言語とアセンブラの相性は良くないからアセンブラにこだわる意味は昔はなかった
今は知らんけど
728デフォルトの名無しさん
垢版 |
2024/09/05(木) 22:17:29.12ID:/+8Jbbe1
民業圧迫ωωω
2024/09/05(木) 22:41:12.21ID:mB2Npkme
>>705
C言語の\0終端文字列は部分文字列をそのままでは作れないから不利なのか
長さが最後まで読まないと不明で不利なだけでなく
730デフォルトの名無しさん
垢版 |
2024/09/05(木) 22:47:40.53ID:MKUftFeD
memcpy(のアセンブリコード)だと、たまたま良く似たコードになる可能性も有る。
絶対に真似したかどうかの判定は難しい。
また、そんなことで裁判起こされても困る。
731デフォルトの名無しさん
垢版 |
2024/09/05(木) 22:47:40.53ID:MKUftFeD
memcpy(のアセンブリコード)だと、たまたま良く似たコードになる可能性も有る。
絶対に真似したかどうかの判定は難しい。
また、そんなことで裁判起こされても困る。
2024/09/05(木) 22:51:02.28ID:zViJFvGA
ヌル終端の文字列が不利かどうかは知らんが C で書かれたプログラムは原則としてそうなっていて、
OS レベルに互換性が重要なものはいまさら変更することもできない (から Rust と相性が悪い要素のひとつ) って文脈の話ね。

どちらが良いとかじゃなくて混ぜるのはしんどいという話。
733デフォルトの名無しさん
垢版 |
2024/09/05(木) 23:25:02.06ID:/+8Jbbe1
let hoge: &str = "hoge\0";
で解決
2024/09/05(木) 23:28:42.24ID:krot3bvf
Rustに std::ffi::CStr が出来たから大丈夫
2024/09/06(金) 07:46:48.97ID:BoX7C6E+
>>731
ちゃんと上流に問い合わせた方が良い

何かあったら切捨てられるように何も知らない下流を使っている可能性大
確認して一蓮托生だと認識させないとだめ
2024/09/06(金) 08:16:00.50ID:EpQXEMSG
>>677 >>691
そりゃそうだろ。マネージャーとコーダーで立場が違うんだから。
Rustはコーダーに余計なことをやらせない管理者向けの言語だからLinusが受け入れるのは分かるし、コーダーにとっては無駄に複雑で自由の無い言語だからクソ判定するのもわかる。

実際、Rustは設計固めないとコーティングできないクソ言語だし。
2024/09/06(金) 08:41:14.19ID:EpQXEMSG
>>718
日本の場合、翻訳は二次著作物で原著作者の支配下だよ。
外国も同様のところが多くなかったっけ?
2024/09/06(金) 09:22:28.52ID:mKGFkZT8
>>737
GPLのプログラムソース中のアルゴリズムを別の言語で書いてGPL違反になった判例ある?
739デフォルトの名無しさん
垢版 |
2024/09/06(金) 09:23:43.25ID:zzPaKLb6
>>736
Rustは清書用(キリっ
740デフォルトの名無しさん
垢版 |
2024/09/06(金) 09:25:11.78ID:zzPaKLb6
>>738
コードそのものは違反にならないね
アルゴリズムに著作権は無いとして
外部とのインターフェースに著作権があるかどうか
741デフォルトの名無しさん
垢版 |
2024/09/06(金) 10:11:20.75ID:KHdVu5nS
>>740
インターフェースに著作権は無いよ
2024/09/06(金) 10:16:26.58ID:n4+9uRqg
マネージャとコーダーとか多重請負SIer文化で
linuxカーネル開発を語るなよ…
2024/09/06(金) 11:01:47.89ID:7lTmc6Nm
じゃあメンテナーとコミッターで
2024/09/06(金) 11:05:42.46ID:P1Lpy4RD
linuxで余計なことをやろうとしたのはコーダーではなく
継承とか仮想関数とか設計を語る人達だよね
継承とか仮想関数とかを使わない方針が固まるまでC++コードを書かなかった情強がRustを書き始めた
745デフォルトの名無しさん
垢版 |
2024/09/06(金) 12:04:11.30ID:zzPaKLb6
C++でOS造ろうとした●●ぽんとかいう人は情弱か
2024/09/06(金) 12:19:00.64ID:onD85wsi
linuxカーネルのソース読んだことないのか
c言語とは言え実質的に継承、仮想関数で実装されているところ数多あるから
このあたりはもしオブジェクト指向言語であれば非常にすっきり書けたはずだ
c++の問題はそれ以外の落とし穴が多すぎる
2024/09/06(金) 12:20:47.23ID:EpQXEMSG
>>738
GPLに限定した話は知らんけど、ソースコード->機械語のコンパイルは翻訳として扱われるんだから同じじゃね?
2024/09/06(金) 12:30:31.40ID:P1Lpy4RD
カーネルが清書だ
何言語だろうがカーネルを書いた者は清書おじさんだ
749デフォルトの名無しさん
垢版 |
2024/09/06(金) 13:03:06.23ID:zzPaKLb6
ここでRust持ち上げてC++叩いてる人は
C++のこと全然判ってないね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。