Rust part10at TECH
Rust part10 - 暇つぶし2ch713:デフォルトの名無しさん
21/05/21 16:15:51.92 91Y2FzX3.net
いや、普通に場合分けはできるが…
どちらかというとifの条件を変えるたびにコンパイルが通ったり通らなかったりするほうが不便では?
そこにifがあるってことは(将来的にとか何らかの条件で)実行される可能性があるからあるんでしょ
もし絶対に実行されないことが確定してるなら書く意味ないし

714:デフォルトの名無しさん
21/05/21 16:19:22.28 91Y2FzX3.net
場合分けしたいならこんな感じで
if *_a.id == 1 {
drop(_a);
} else {
sub(&_a);
}

715:デフォルトの名無しさん
21/05/21 17:42:19.92 J6y23PLS.net
>>700
言ってる意味がさっぱりわからん
>>692のプログラムにあるとおり
現実問題、将来的に決して実行されるわけがないif文というものは存在するし
if文があるというのは実行される可能性のあるの十分条件でもなければ必要条件でもなわけでもないんやが。
ワイが言いたいのは仮にrustの型システムを無視して>>692のコードをそのままコンパイルしたとしても
if文は実行されないわけだから安全なはずなものまでを省いているというところが不思議だってことや
つまりuse-after-freeバグが現実には起きないコードまでもif文の他の条件でUAFバグが起きるがために
ひとまとめにUAFが起きる�


716:ニみなすrustコンパイラの姿勢がif文である条件のときだけfreeするコードを書くのを認めないようにみえるという ワイの感想に繋がってるわけでして



717:デフォルトの名無しさん
21/05/21 17:53:39.45 IHGXJo1X.net
use of moved valueやborrow of moved valueを
use-after-freeとして理解してるのがそもそも間違ってる
The Bookを読んでLifetimeとOwnershipを復習してくれ

718:デフォルトの名無しさん
21/05/21 18:00:55.07 J6y23PLS.net
>>692のコードをcに書き直してみたらこうなる
} Droppable;
void drop(Droppable* d) {
printf("> Dropping %d", d->id);
free(d);
}
void sub(Droppable* d) {
if (d->id == 0) {
//free(d);
printf("> Test %d", d->id);
}
}
int main() {
Droppable* _a;
_a = malloc(sizeof(Droppable));
_a->id = 0;
if (_a->id == 1) {
drop(_a);
}
sub(_a);
}

719:デフォルトの名無しさん
21/05/21 18:01:46.42 J6y23PLS.net
これはrustでは弾かれるはずの「if文のある条件のときだけヒープのある部分をfree」というコードのはずだが
安全なCのプログラムや コンパイルは通るしランタイムエラーも起こさない。
メモリ安全なプログラムの中では、cで書けるプログラムのほうがrustで書けるプログラムより広いんだね
rustはメモリ安全なcのプログラムと同等な処理を書けない部分もあって不便じゃないかっていうのが結局のところワイの疑問になるんや
じゃあrustでは「if文のある条件のときだけヒープのある部分をfree」のコードをどう書くんや?
メモリ安全性を損なってるわけでもない処理ではないはずなんやがrustのコンパイラははじくぞ?

720:デフォルトの名無しさん
21/05/21 18:03:27.13 J6y23PLS.net
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int id;
} Droppable;
void drop(Droppable* d) {
printf("> Dropping %d", d->id);
free(d);
}
void sub(Droppable* d) {
if (d->id == 0) {
//free(d);
printf("> Test %d", d->id);
}
}
int main() {
Droppable* _a;
_a = malloc(sizeof(Droppable));
_a->id = 0;
if (_a->id == 1) {
drop(_a);
}
sub(_a);
}
ほい完全版

721:デフォルトの名無しさん
21/05/21 18:06:23.36 p9FphGnI.net
>>705
unsafe使え、というかもうちょっと具体的な例じゃないと困る
今まで出された例だと「最初から絶対通らないの分かってるならif文消せばいい」としか思えないので

722:デフォルトの名無しさん
21/05/21 18:12:17.78 91Y2FzX3.net
別にわざわざCで書いてもらわなくても安全なのは分かるよ
今のRustコンパイラで通らないのはボローチェッカーが最適化前にあるからなんで
部分的にでも先に最適化すれば通るようにはできるだろう
ただそれをしたい動機が分からない
本当にifが実行される可能性が一切ないなら単に消せばいい、といしか言いようがないので

723:デフォルトの名無しさん
21/05/21 18:14:06.78 J6y23PLS.net
>>703
それただの論点そらしだよね
UAFってrustの独特なメモリ管理手法と相反する用語ではないし
use of moved valueやborrow of moved valueもUAFを阻止するためのものだよね
じゃあrustでは「if文のある条件のときだけヒープのある部分をfree」のコードをどう書くんや?

724:デフォルトの名無しさん
21/05/21 18:18:59.35 p9FphGnI.net
>>709
DroppableのメンバにBox<i8>持たせろ
仮に"drop"された後でもsubが正常に動くことが期待されているなら、そこで使うべきなのはdropではない

725:デフォルトの名無しさん
21/05/21 18:22:54.40 91Y2FzX3.net
というか >>701 で書いたif/elseの例はちゃんと「if文のある条件のときだけヒープのある部分をfree」になっているのに何か不満なのか

726:デフォルトの名無しさん
21/05/21 18:24:13.35 IHGXJo1X.net
>>709
UAFを阻止するためだけにあるものじゃないから
やり方は>>701で教えてくれてるやろ
とりあえずThe Book読んでね

727:デフォルトの名無しさん
21/05/21 18:31:38.95 p9FphGnI.net
>>709
これでどうですか?
URLリンク(play.rust-lang.org)

728:デフォルトの名無しさん
21/05/21 18:38:40.69 J6y23PLS.net
>>711
そうやん
rustって不思議やね

729:デフォルトの名無しさん
21/05/21 18:44:49.25 J6y23PLS.net
解決しました。
なにはともあれありがとうございました。>>701の方に救われました。
ここまで関わってくださった皆様まことに協力ありがとうございました。感謝いたします。

730:デフォルトの名無しさん
21/05/21 19:24:50.36 91Y2FzX3.net
「理論的に安全な任意のコードは通るべき」ってイメージだったのかな
実際にはそんなことはなくて、上の例のようなコードを通すためには色々なトレードオフがあるから
単に「理論的に安全」ってだけで無条件に実装されることはない
もっと具体的なユースケースがあって、みんなが「これは通らないと不便だよね」ってなったものが実装される
数年前に実装されたnon lexical lifetimesなんかはまさにその例だね

731:デフォルトの名無しさん
21/05/21 19:31:11.66 bfSFy0HM.net
はぎゃーん

732:デフォルトの名無しさん
21/05/21 21:43:48.32 HgMuIEwp.net
クロージャの disjoint capture が破壊的変更になるのは分かるんだけど最初からこうなってなかったのはなぜ?

733:デフォルトの名無しさん
21/05/21 22:34:26.09 vpqVq/KA.net
iter()とinto_iter()の使い分けが分からない
iter()じゃないといけない場合があるのは分かるんだが

734:デフォルトの名無しさん
21/05/21 22:49:37.59 +ok17UuV.net
into_iterは所有権を奪いItemを得ることができる
iterは&Itemを得る
他のintoで始まるものは所有権を奪うことになってる

735:デフォルトの名無しさん
21/05/21 23:22:44.96 qRzkKAr2.net
>>711 Rustコンパイラが問題視してるのは開放された値を使ってしまう可能性があることで、それが修正された >>701 のコードは問題ないから通る

736:デフォルトの名無しさん
21/05/22 00:04:28.82 yRhz4OAW.net
>>719
Rustでの変数の受け渡し方は
by (shared) reference、by mutable reference、by valueの3つなので
それに対応していろいろなものが3種類1セットになってる
イテレータならiter(), iter_mut(), into_iter()
クロージャならFn, FnMut, FnOnce
コンバージョンならAsRef, AsMut, From/Into

737:デフォルトの名無しさん
21/05/22 00:34:10.91 RuplHzwP.net
as_foo(), to_foo(), into_foo() の違いも覚えておくとよいかもね

738:デフォルトの名無しさん
21/05/22 00:45:11.88 yRhz4OAW.net
覚えておくとはいいのはそうだけど、そのセットは少し観点違うよね
URLリンク(rust-lang.github.io)

739:デフォルトの名無しさん
21/05/22 16:34:10.81 ma8sDMzI.net
Rustややこしいわぁ

740:デフォルトの名無しさん
21/05/22 20:26:18.21 UuUK8ShD.net
Rust慣れたあと他の言語行くと
良い作法が身についてて歓迎される、とかありますか?

741:デフォルトの名無しさん
21/05/22 20:30:50.12 18meLr+O.net
>>726
言語が異なれば同じことをするにも良い作法とされる方法は異なるだろうし、そんなに役に立たないかもよ。
むしろRustでは~と言い出すとかえってうるさがられる可能性も。

742:デフォルトの名無しさん
21/05/22 20:34:58.75 RuplHzwP.net
rustでは変数のshadowing当たり前のように使うけど他の言語では嫌がられそう

743:デフォルトの名無しさん
21/05/22 21:08:16.57 9BHHuuQy.net
let value = value;
とか他言語で書いたらアホだと思われるし

744:デフォルトの名無しさん
21/05/22 21:10:13.17 61y793Zl.net
Rustはメイン関数かその次の関数のローカル変数にリソースを保持する形にしがちじゃない?
他の言語だとあんまりやらない

745:デフォルトの名無しさん
21/05/23 03:12:09.36 1TnUlIAl.net
>>730
他の言語でも同じだよ
それとも禁断のグローバル変数を使う駄目パターンをRustでもしたいということ?

746:デフォルトの名無しさん
21/05/23 06:28:03.88 ApnxiBa8.net
pythonみたいな動的型付け言語ではよう見るけどさ
Rustではこんなん要らなくしてほしいわ

747:デフォルトの名無しさん
21/05/23 13:14:57.61 viOBOYhY.net
ライブラリによってはデータを持ち運ぶということが不可能だったりするからグローバル変数必須だったりするんだよな
(具体例: serenity)

748:デフォルトの名無しさん
21/05/23 13:33:01.51 1FznZ2H5.net
いや別に必須ではないだろ。

749:デフォルトの名無しさん
21/05/23 13:39:52.69 p3SEnqzU.net
log!() みたいなプログラムの各所から呼び出されるマクロや関数の実装の為には rust でも普通にグローバル変数使われているのでは
static 変数にするためには Sync が要求されたり mut にするために Mutex 使う必要があるから他の言語ほど気楽に使えないというだけで
グローバル変数そのものが禁断扱いされることはないかと
グローバル変数の濫用は他の言語同様嫌われるけどね

750:デフォルトの名無しさん
21/05/23 13:43:31.31 1TnUlIAl.net
一般的にどんな言語においても何らかの外部のライブラリを取り込む時には
何か一つのクラスとかオブジェクトとか構造体とかに閉じ込めてしまって
それ一つだけ持ち運ぶからグローバル変数を使うことは無いでしょう

751:デフォルトの名無しさん
21/05/23 16:18:03.34 ljEJPp90.net
>>735
static変数とglobal変数はスコープが違うだろ
global変数が悪とされるのは、そのスコープの広さだからね
いつどこで誰が変更するのか、また参照するのか、スコープが広ければ広いほど把握が困難になる
把握が困難になればなるほど、それだけバグを生む温床になる

752:デフォルトの名無しさん
21/05/23 18:34:32.71 1FznZ2H5.net
io周りは極論すればどう管理してもグローバルだからな。
プロジェクト毎に規約設ける以外にまともに管理する方法なんてない。

753:デフォルトの名無しさん
21/05/23 20:09:32.32 wHpcVS8W.net
>>735
そういやロガーの設定ってどこに保存されてるの?
debug!() 呼ぶたびにMutexロックしてるのかな?

754:デフォルトの名無しさん
21/05/24 12:11:21.84 1Toh/2dP.net
>>736
クラスの中に入れても、グローバル変数であることは避けられないし
どんな言語においてもグローバル変数は必要。

755:デフォルトの名無しさん
21/05/24 12:28:02.03 wwlvG9VZ.net
「:?」ってなんなんですか?
URLリンク(tourofrust.com)

756:デフォルトの名無しさん
21/05/24 12:49:55.25 KKN49LSI.net
>>741
デバッグ用のフォーマットで出力するという意味
詳しくは以下参照
URLリンク(doc.rust-lang.org)

757:デフォルトの名無しさん
21/05/24 13:24:07.35 JJaZh5wC.net
>>740
そんなことはないだろう。
確かにグローバルでも大して変わらんてものはあるけど、
loggerを引数で渡していくっていうような実装方法もある。

758:デフォルトの名無しさん
21/05/24 13:33:20.21 u2umy7DV.net
>>739
logクレートのstatic mut変数だね
ロックするのは初期化とレベル設定時だけ
出力時にロックするかどうかは実装次第

759:デフォルトの名無しさん
21/05/24 15:43:10.46 dukpbHqg.net
>>740
そのクラスの存在そのものがグローバル変数(相当)だという話?
それともそのクラスもしくはそのインスタンスをグローバル変数に入れて使うということ?
後者の意味ならば必要な範囲で引数として持ち歩けばグローバル変数を普通は使わないですよね。

760:はちみつ餃子
21/05/24 16:59:24.57 tdQ8iTTE.net
大事なのは抽象化がきちんとしているかどうか。
各部品が妥当な意味に分離されているかどうか。
グローバル変数がよくないのは色んなパーツから横断的に使われる可能性があって
部品が不必要に密結合していることの表れだからであって、
そのグローバル変数のアクセス範囲が妥当な範囲に制御されているなら問題じゃないよ。
過剰な密結合を解消せずにグローバル変数を引数に置き換えてたら
影響範囲が見えにくくなってもっと悪くなることだってありうる。
まあどういう場合なら妥当なのかってのは色々と意見はあると思うけど。

761:デフォルトの名無しさん
21/05/24 17:17:23.03 qqtJSk72.net
$_POSTはセーフ

762:デフォルトの名無しさん
21/05/24 17:21:32.94 Ig527IlE.net
>>746
まずは長くて区別しやすい名前に変えるのがスタートかね。

763:デフォルトの名無しさん
21/05/24 17:31:54.98 wwlvG9VZ.net
>>742
ありがとう!


764:なんか独特なのね



765:デフォルトの名無しさん
21/05/24 23:12:37.25 rI3Y4Uqa.net
関数型言語やったことないけど、Rustいけるかな
JavaとC++はそこそこ経験あり

766:デフォルトの名無しさん
21/05/24 23:17:37.88 zk4LoLUU.net
Java 8とかC++ 14以降くらいなら結構似たような機能も入ってるし
そこまで大変じゃない気がする

767:デフォルトの名無しさん
21/05/24 23:36:00.17 JJaZh5wC.net
c++はともかく、cくらいはやっぱ理解してた方が早道な気はする。

768:デフォルトの名無しさん
21/05/25 01:36:21.07 5vUI50kp.net
以下のような関数を作ったんですがmatchが多くてどうしようか考えていました
fn foo(x: Option<u32>, y: Option<&str>) { //実際はOptionが5個とか
let x = match x {
Some(x) => x,
None => return,
};
let y = match y {
Some(y) => y,
None => return,
};
println!("{} {}", x, y);
}
考えついたのが、次のようにする方法なのですが、
fn foo(x: Option<u32>, y: Option<&str>) -> Option<()> {
let x = x?;
let y = y?;
println!("{} {}", x, y);
Some(())
}
記載の省略のためだけに返値の型をOption<()>にして最後にSome(())つけるのがすごく気持ち悪いんですが、
返値なしのままどうにかする方法はないでしょうか

769:デフォルトの名無しさん
21/05/25 02:11:48.11 QcInQ0e9.net
if_chain使って
if_chain!{
if let Some(x) = x;
...
then { println!("{}", x); } }

770:デフォルトの名無しさん
21/05/25 02:16:51.35 Ygc8ZzR1.net
>>753
fooの型変えられないなら、戻り値Optionはクロージャないしローカル関数に留めるといいと思う
URLリンク(play.rust-lang.org)

771:デフォルトの名無しさん
21/05/25 03:00:10.05 nrKC74iS.net
Ok(())はよく使うがSome(())はないな
普通にif-letでパターンマッチするのでよくない?
if let (Some(x), Some(y)) = (x, y) {
println!("{} {}", x, y);
}

772:デフォルトの名無しさん
21/05/25 05:18:39.47 gz717nup.net
loggerを引数で渡すためには
ロギングを行うクラスFooがどこかしら(コンストラクタか個々のメソッドで)loggerを受け取る引数を持たねばならない
これ、ロギングみたいな裏方の仕事がFooのインターフェース仕様に影響しているということで、
抽象度が下がってるやんけ;;;
引き換えに得られるメリットは、Fooのインスタンスごとにloggerを切り替えられるというおおよそ現実的にありがたみが無い機能だけ

773:デフォルトの名無しさん
21/05/25 06:08:48.35 FYPKUk3M.net
>>756
それをmachでやるのがよくない?

774:デフォルトの名無しさん
21/05/25 06:23:40.79 gz717nup.net
つか機能の分離と記述の分離はトレードオフがある
1+1=2の形式的証明がどんだけの糞みたいな分量のに成り得るかを見たらワカル
どっかの抽象度をつきつめれば別のところにしわ寄せが逝く
それで良いジャマイカ人間の言語だもの、

775:デフォルトの名無しさん
21/05/25 09:01:56.56 5vUI50kp.net
皆様ありがとうございます
どうもSomeをある程度書くのは避けられない感じですね

776:デフォルトの名無しさん
21/05/25 10:09:28.07 4oEEOZjA.net
まさかstatic変数使ってるなんて、logクレートには失望したわ

777:デフォルトの名無しさん
21/05/25 10:33:41.89 bGIV0Xp5.net
>>757
ログを裏方と考えるのも偏ってるし、ログ切り替えはデバッグ目的で普通にあるわ。
別にグローバルにするという選択が間違いとも思わんがこういう決めつけ野郎は邪魔だな。

778:デフォルトの名無しさん
21/05/25 10:59:01.14 /nQyXsn+.net
サーバ側だとログを取るのが基本だし取り方も変えたくなるからlogger渡しは結構やるな
CLIとかなら雑にstaticでいいけど

779:デフォルトの名無しさん
21/05/25 13:12:03.88 CssgwvqL.net
>>761
stdも使えないじゃん

780:デフォルトの名無しさん
21/05/25 18:48:30.58 4oEEOZjA.net
>>764
なんで?

781:デフォルトの名無しさん
21/05/25 19:25:41.69 CssgwvqL.net
>>765
URLリンク(github.com)

782:デフォルトの名無しさん
21/05/25 19:39:28.48 4oEEOZjA.net
>>766
えー
これからは write() システムコールでプリントするわ

783:デフォルトの名無しさん
21/05/25 21:02:03.28 p1A5R6d8.net
stdが嫌ならcoreを使え

784:デフォルトの名無しさん
21/05/25 22:59:34.15 gz717nup.net
>>762
近代的なログシステムならタグが使えるから
記録時に分っける理由がさらさらない
だいたい並列な事象を並列なまま記録したのでは時系列の解析ができないし、
そもそも>>762がいくら「ログは裏方じゃない」と叫んだところで基準が無い
アプリケーションロジックを汚してまでか?!という議論はいつまでもつきまとう

785:デフォルトの名無しさん
21/05/26 00:00:47.75 S2nFrW0F.net
別に仕事で使ったことないならそういえばいいと思うよ。悪いことしてるわけじゃないんだから。

786:デフォルトの名無しさん
21/05/26 00:04:47.15 PLorGv/T.net
そういやLog4JでいうMDCみたいなやつはあるのかしら?

787:デフォルトの名無しさん
21/05/26 00:07:56.89 rwxZHBm1.net
お前らslog
>>760
ただのzipやん。
URLリンク(play.rust-lang.org)

788:デフォルトの名無しさん
21/05/26 08:19:13.92 AN5OxrIl.net
まあloggingオブジェクトを複数作る仕事なんなら仕方が無いな

789:デフォルトの名無しさん
21/05/26 08:29:19.07 vJAmL6Qi.net
slog見たけど、クソややこしいな

790:デフォルトの名無しさん
21/05/28 09:51:25.19 jQHjx/Sg.net
シンタックスで判断しづらいもので性的分析するって、そのうち破綻しそうだな。

791:デフォルトの名無しさん
21/05/28 09:54:11.42 S8Iz9SRl.net
エロい分析か

792:デフォルトの名無しさん
21/05/28 10:45:17.68 EKMYAKDR.net
やらC

793:デフォルトの名無しさん
21/05/29 20:28:41.06 sKXDX7XX.net
JPEG-XLのリファレンス実装作ってるチームがRustで再実装も始めてて驚いた
URLリンク(github.com)
FirefoxにJPEG-XL対応を入れるかどうか議論するチケットで
今更大量のunsafeなC++コードを入れるのはちょっと……みたいな反応をされてた事と関係あるのかもしれない

794:デフォルトの名無しさん
21/05/30 15:56:56.42 HupJBx7X.net
URLリンク(4e6.github.io)
URLリンク(www.openhub.net)
Firefox、かなりの割合でC++のコード入ってるけどこれでも減らそうとしてるのか

795:デフォルトの名無しさん
21/05/30 16:00:13.57 P46Jh5T1.net
もう9.5%も行ってるのか
と言うかfirefoxからrustは始まったから当然か

796:デフォルトの名無しさん
21/05/30 16:15:38.02 ds+xAsBi.net
でも、大量の有名なWebサービスが一時的にRubyで書いていたのに、
しばらくすると他言語に書き直した歴史がある。
アメリカ人はなぜか言語を書き直すのが好きなようだ。
Rustで書いてもまた別言語に直すかも知れない。
なお、Googleドライブなどの各社のストレージサービスを統一的なAPIで制御できる
ライブラリも何故かGoで書かれている。
メンドクサイ。

797:デフォルトの名無しさん
21/05/30 17:11:41.17 cF4puvJq.net
>>781
遅い方から速い方へ書き直すのよ
特にスクリプト言語からC++/Rustへ書き換えるとサーバー数を1/10にできるケースもあり規模によっては経費激減ね
GoもGCあるから場合によっては他へ書き換えられる対象になりうるかも
Rustが他へ書き換えられる可能性がもしあるとしたら今はまだ存在しない新たに出現する言語へ

798:デフォルトの名無しさん
21/05/31 00:35:54.04 7s+MSAY0.net
なんでClippy大先生がcargoでインストールできるクレートから外されるの?

799:デフォルトの名無しさん
21/05/31 01:50:13.82 u1BqTaEs.net
rustupでインストールできるからでは
rustcとバージョン合わせないといけないから他のcrateと同じ扱いはしづらいのでは

800:デフォルトの名無しさん
21/05/31 08:44:19.92 etoumxTf.net
Ruby on Rails の時価総額は、
Shopify が15兆円、
民泊のAirbnb が、大手ホテル3社の合計以上の10兆円、
Github が8千億円
これぐらい巨大でも、Rails で出来る。
時価総額が千億円以上になったら、Go, Elixir を考えてもよい
食べチョクは売上50億円らしいけど、
若い文系女が1人で起業したような会社は、Rails で十分
売上が千億円を超えたら、考えてもよい

801:はちみつ餃子
21/05/31 15:24:48.93 hqkxpUd6.net
ウェブシステム全体の実行コストはネットワークや IO にボトルネックが有るので
システム構成やらなんやらで工夫するのがまずやることで、
言語の速度が少しばかり速いのはそんなに効いてこないよ。
という話もよく聞くんだけど、実際のところどんなもんやろね?

802:デフォルトの名無しさん
21/05/31 16:31:16.04 slsuSMsk.net
そりゃそうね
でも実行速度だけで選ぶわけじゃないからね

803:デフォルトの名無しさん
21/05/31 19:40:04.29 mBUAbPrR.net
今まではハードにぶん投げても大丈夫だったのが
ハードの進化の鈍化でソフト側が工夫しないと駄目になりつつあるって話ってマジ?

804:デフォルトの名無しさん
21/05/31 21:37:16.00 M7WLmn8V.net
いやそこでソフトで頑張ってもほぼダメだろ。。アーキテクチャで分散化考えないとって話じゃないかね

805:はちみつ餃子
21/06/01 01:05:37.48 69wa4c/Y.net
>>788
ハードウェアがもう伸びないってことではなくて、 CPU の速度が単純に速くなるという方向ではもう伸びにくいって話。
電子の大きさは変えられないから際限なく微細化できるわけではない。
わかりやすい例で言えば今のパソコンはマルチコアが当たり前になってて複数の CPU を載せる方向で性能を上げているが、
マルチコアを想定してないソフトをマルチコアパソコンで動かしてもひとつのコアしか使わないので性能が出ない。
高価な GPU を乗せても GPU を使うプログラムになってなきゃ意味がない。
ハードウェアの総合的な性能を上げるには色んな工夫があり得て、それらを実現すると同時に
ソフトウェアは「ハードウェアに合わせて」「ハードウェアの性能を引き出すように」工夫がいる。
これは今までにも普通にやってたことで、今になって必要になったわけじゃない。
小さな変化の積み重ねなこともあれば大きな変革を迫られることもあるってだけ。

806:デフォルトの名無しさん
21/06/01 07:44:50.11 DWqq5xbS.net
後藤弘茂のWeekly海外ニュース■ Prescott/Tejasは5GHz台、65nmのNehalemは10GHz以上に
URLリンク(pc.watch.impress.co.jp)
当時は景気よかったっすね。すぐ後に爆熱で日和ったけど
そして今、300Wの時代・・・
てか並列化によるスループットの向上はこのあたりから検討されるようになっていた気が

807:デフォルトの名無しさん
21/06/01 19:29:09.48 a3oi+h5L.net
>>784 でも何故かcargoだけはcargo install cargo --forceとすれば自分でコンパイルしたもので上書きができる謎

808:デフォルトの名無しさん
21/06/04 15:33:30.83 kJqxa98Z.net
よくわからないんだけどこれ、C言語のポインタ渡しが諸悪の根源で、そこを断ちさえすればC言語も所有権概念を取り入れられるの?

809:デフォルトの名無しさん
21/06/04 15:42:09.57 03MQShFS.net
>>793
C言語において、ポインタは大発明で、それによってリンクリストやツリー構造
が簡単に実装に出来る様になった、大変重要なもの。
C言語からポインタを絶てば何も残らない。

810:デフォルトの名無しさん
21/06/04 15:48:43.92 1/rRer4v.net
Javaキチガイはポインタ使いこなせない
日本のMSの社員がソレだった
破棄忘れてやんのw

811:デフォルトの名無しさん
21/06/04 15:55:06.60 JfDLBnT5.net
RAIIなしで良いなら多少の拡張で所有権の概念取り込めるかも知れないけど
絶対スマートポインタ欲しくなるしCの表現力だと使いづらい物になりそうな気がする

812:デフォルトの名無しさん
21/06/04 16:03:03.62 KjgiO9jk.net
>>794
>C言語において、ポインタは大発明
笑笑

813:デフォルトの名無しさん
21/06/04 17:24:32.39 Lunsq3fv.net
Cと比較するのは流石に乱暴だろ
C++と比較するべき
で、C++でできなくてRustでできるものというのは現状存在しない (今後その差も埋まっていくだろうが)
C++とRustの違いはひとえにスタンスの違いだよ
自由奔放なC++か良いコードにカッチリ導いてくれるRustか
意欲的に新機能取り込んで発展してるのは両者とも同じ

814:デフォルトの名無しさん
21/06/04 17:31:18.17 AGlHvwIO.net
>>798
>C++でできなくてRustでできるものというのは現状存在しない
こういう比べ方はアホ
チューリング完全ならなんでもできるじゃんみたいなことになる
できるできないの線引きが恣意的

815:デフォルトの名無しさん
21/06/04 17:54:18.33 7u0nl5aT.net
>>799
バカアホじゃなくて、Rustでしかできないものの例を挙げてください
そうすれば一単語で反論の余地なく終わるんで

816:デフォルトの名無しさん
21/06/04 17:58:01.49 UUHTR6cx.net
C++は奇麗に描くと言うのが出来ない

817:デフォルトの名無しさん
21/06/04 18:03:48.84 Pwqe5Yy7.net
>>800
C++でできなくてRustでできるもの
から
Rustでしかできないもの
への華麗な転身www

818:デフォルトの名無しさん
21/06/04 18:16:57.72 hlBLv8XD.net
C++はMemory Safetyをコンパイル時に担保できない
Rustを使う一番の動機

819:デフォルトの名無しさん
21/06/04 18:53:59.58 nHzCWsfU.net
>>802 C++とRustの比較において「C++でできなくてRustでできるもの」と「Rustでしかできないもの」は同じ意味だから転身でもなんでもない
URLリンク(i.imgur.com)

820:デフォルトの名無しさん
21/06/04 19:11:16.95 s8nyhwnD.net
Cloudflareの画像処理責任者を名乗る人も、これ以上C++ライブラリを増やすのはイヤでござると発言してるな

821:デフォルトの名無しさん
21/06/04 19:23:30.63 4pNcWBF2.net
>>804
C++とRust以外にも言語はたくさんある

822:デフォルトの名無しさん
21/06/04 19:29:23.53 nsxzushh.net
Rustのモジュール(ファイル分割)の仕組みはC++のヘッダー+ソース(+名前空間)より扱いやすいと思う
C++は分割コンパイルが主流だった歴史的経緯があるから仕方ないけど事前の宣言が必要なのは地味に面倒くさい

823:デフォルトの名無しさん
21/06/04 19:43:15.38 nHzCWsfU.net
>>806 この会話の流れではC++とRustの比較をしていたから

824:デフォルトの名無しさん
21/06/04 19:58:10.76 4pNcWBF2.net
ライフタイムによるメモリ管理はRustオンリーだろ

825:デフォルトの名無しさん
21/06/04 20:12:39.71 s8nyhwnD.net
マイナーな環境だとC++プログラムは様々な理由でコンパイルが通らないことがよくある
Rustは基本的にはそういう事ないし、コンパイラ実装が一つしかないというのも利点に働く

826:デフォルトの名無しさん
21/06/04 20:40:42.82 CpdoeubZ.net
C++との比較を議論したいなら専用の隔離スレでどうぞ

827:デフォルトの名無しさん
21/06/04 22:02:04.46 ivUqItUs.net
>>793は言語レベルのサポートがほしいんだろ?
substructural type systemがないと無理。
>>809
MLkit,RTSJ,cyclone,ATS/ATS2。学術的にはとっくの昔に廃れたぞ。

828:デフォルトの名無しさん
21/06/04 22:04:58.58 yXI/MC9G.net
WinUIとRustやってる人いる?
同じネイティブのMFCとかと比べて、やっぱり生産性は高いんかな

829:デフォルトの名無しさん
21/06/04 22:26:52.09 I1RVdPKQ.net
メモリ関連って原因不明のバグ引き起こしやすいしトータルな目で見れば上がるんじゃないだろうか

830:デフォルトの名無しさん
21/06/04 23:27:29.47 JfDLBnT5.net
>>810
gcc-rsとかのプロジェクト始まってるけどそれはネガティブなことなのかね

831:デフォルトの名無しさん
21/06/05 06:04:54.16 uC9Joojh.net
>>810
そういえば、C++のSTLは、VSでは動くが、BSD系のLLVM用のlibc++は、
なかなか上手く動いてくれない。理由は、libc++が、その
基礎関数として滅多に使われないようなMB・WC文字変換関連や、
NAN、INFINITYなどのfloat/double調査関数など、昔ながらのC環境では
定義されて無いような(新しい)Cの関数を大量に必要としているため。
その意味で、WasmのWASIなんかは、たとえCUIだけであっても
世界共通の関数群を整備してくれるのだとしたら有りがたいかも知れない。
でもWASI自体の移植作業が必要になるから一緒か。

832:デフォルトの名無しさん
21/06/05 06:14:19.54 uC9Joojh.net
>>816
昔からCには文字種判別として、isalphaやisdigitなどがあるが、
libc++は、isalpha_l()などのlocale指定タイプを必要としていたりして
locale関連がやたらと複雑。また、その
isalpha_lなどを基礎にしてくれているならまだしも、isalpha_lが内部で使っている
文字種テーブル unsigned short _ctype[256]; も仮定していたりする。
このテーブルは、_CONTROL、_SPACE、_DIGIT、_ALPHAなどの
BIT定数とandを取ってBITが立っているかどうかで文字種を判定する。
それは環境依存なのだが、高速化のためか何故かそれを必要としている。
(C++のライブラリが欲しいのに、そのライブラリが、なぜか一般的ではない
大量のC関数や特殊なデータテーブルを必要としてしまっている。)
だから移植が進まない。
plain Cは、標準ライブラリが多くの環境である程度の互換性を持って整備されているが、
結果的にC++のSTLはなかなかそうではないようだ。

833:デフォルトの名無しさん
21/06/05 06:17:47.83 uC9Joojh.net
C++ライブラリがisalpha_lなどを用いてしまったら、速度面でC#やJavaなど
に比べた優位性が少なくなってしまうからかも知れない。
つまり高速化のためにやたらと移植性の低い方法を使っているから、
スムーズに移植が進まない。
それか単純にC++ライブラリを作る人の技術力が低いからだろうか?

834:デフォルトの名無しさん
21/06/05 06:20:08.28 uC9Joojh.net
>>801
すまんが、Rustはもっと出来ない気がする。

835:デフォルトの名無しさん
21/06/05 09:02:04.60 KdS0cXcP.net
RustスレでC++の話題が出てしまうのはもはや運命なのか

836:デフォルトの名無しさん
21/06/05 09:20:03.77 3ILRB2eH.net
>>820
そりゃ better C++言語として作られたんだから当たり前でしょう

837:デフォルトの名無しさん
21/06/05 09:32:35.80 4o2YwJP1.net
ライフラインの書き方がとにかく見づらい

838:デフォルトの名無しさん
21/06/05 09:45:07.09 3ILRB2eH.net
これヤバくない?
どうやって防いだらいいんだろう?
URLリンク(github.com)

839:デフォルトの名無しさん
21/06/05 09:46:58.65 4o2YwJP1.net
localhostに送るだけならいくないん?

840:デフォルトの名無しさん
21/06/05 09:53:33.78 3ILRB2eH.net
え、マジで言ってるの?

841:デフォルトの名無しさん
21/06/05 10:04:24.16 4o2YwJP1.net
あおられてもダメな理由がわかりまそん
びっくりはするけど

842:デフォルトの名無しさん
21/06/05 11:21:46.59 KdS0cXcP.net
悪意を持ったコードをビルドしない

843:デフォルトの名無しさん
21/06/05 12:04:01.08 bvIfRQLF.net
c++との比較はガファムが結論出してくれたからもう話すことなどない

844:デフォルトの名無しさん
21/06/05 12:08:54.56 85+uBK5B.net
何をみて結論だと思ってんだか。短絡的だな。

845:デフォルトの名無しさん
21/06/05 12:26:06.61 YTe/4gPS.net
依存するクレートの依存するクレートの依存するクレートの以下無限ループまで全部チェックしないと駄目ー?(´・ω・`)

846:デフォルトの名無しさん
21/06/05 12:58:14.11 KdS0cXcP.net
チェックするツールとか誰か作っていそうだね
バイナリを診断するよりは簡単だろうし

847:デフォルトの名無しさん
21/06/05 13:57:18.40 IMH8ctkE.net
>>826
念のためマジレスすると公開した人がいつでもlocalhostを〇国サーバーのアドレスに書き換えられるってこと
githubのオープンソースでそれやったらすぐにばれそうだけど
ビルド時ならともかくエディタ起動直後のコード解析でデータが送信されるのは盲点やね

848:デフォルトの名無しさん
21/06/05 14:01:47.49 f5S9H8yw.net
ビルドしなくてもファイルを開いたらコードが実行されるというのはよろしくないね
ファイルやネットワークならアクセスされる側でブロック可能だけど
メモリはサンドボックス内のみで展開・実行されるようにしないとブロックできない気がする
サンドボックス化できなければ
cargo auditやcargo crevを通して怪しいcrateだけ自分でチェックするとかかな

849:デフォルトの名無しさん
21/06/05 14:06:05.14 KdS0cXcP.net
vscodeやlspヤバイな

850:デフォルトの名無しさん
21/06/05 14:13:31.58 8YO6sBC6.net
解決方: vscode を使わない

851:デフォルトの名無しさん
21/06/05 14:27:34.92 4o2YwJP1.net
まったくだ

852:デフォルトの名無しさん
21/06/05 14:48:29.61 uV7DnhUL.net
見た感じVSCode以外でもマクロが実行されるようなことをすると駄目っぽいが

853:デフォルトの名無しさん
21/06/05 14:52:35.33 4o2YwJP1.net
MS自身がやりたい放題だからメンタルも伝播するだろうな

854:デフォルトの名無しさん
21/06/05 15:03:58.08 85+uBK5B.net
>>835
それrust使わなけりゃでも良くね?

855:デフォルトの名無しさん
21/06/05 15:09:20.73 uV7DnhUL.net
そもそもこれ本質はライブラリの信頼性って問題だと思うんだよな
Rustだけじゃなく他の言語にも言える話

856:デフォルトの名無しさん
21/06/05 15:22:11.73 85+uBK5B.net
お得意の静的チェックでなんとかしたら?

857:デフォルトの名無しさん
21/06/05 15:29:47.09 KdS0cXcP.net
中国のipアドレスは


858:全部ブロックしておくのが正解だな



859:デフォルトの名無しさん
21/06/05 15:51:07.65 3ILRB2eH.net
IntelliJ/CLion でもproc_macro実行されちゃうの?

860:デフォルトの名無しさん
21/06/05 16:11:56.77 Fi/fLauk.net
LSPはクソ
vscodeありきの思想

861:デフォルトの名無しさん
21/06/05 16:32:08.49 6EguRj/L.net
LSPってHSPの親戚ですか?

862:デフォルトの名無しさん
21/06/05 16:43:48.73 KdS0cXcP.net
long short play モードだよ

863:はちみつ餃子
21/06/05 16:56:48.31 G0EcoOQC.net
>>844
LSP はエディタとの連携を前提として明文化された規格にしたってだけで、
処理系にコンパイルさせた結果をエディタの表示に反映させるというのは昔から有ったんだぞ。

864:デフォルトの名無しさん
21/06/05 17:38:04.49 ftrSVS/I.net
>>847
> 処理系にコンパイルさせた結果をエディタの表示に反映させるというのは昔から有ったんだぞ。
いやそりゃそうだろ
その説明じゃ flycheck 等と差がない

865:はちみつ餃子
21/06/05 18:00:21.39 G0EcoOQC.net
>>848
Rust のコードをビルドしないときでもエディタ経由で勝手にビルドする
(そのときに悪意のあるコードも走らせられるかもしれない)
という文脈の中で >>844 の発言があったので、
それは LSP が作られる前から同じような危険性はあっただろうという反論を私はしたつもり。
LSP のせいじゃなくてコンパイル時に出来ることが多い Rust のせいって話。

866:デフォルトの名無しさん
21/06/05 18:09:21.84 Fi/fLauk.net
はあ話になんね
こいつといいQZといい「何か物申したい」という気持ちだけで生きてるから常に空回ってんだよな

867:デフォルトの名無しさん
21/06/05 18:52:13.97 ZTm581Ue.net
proc-macroがwasm化されてサンドボックスで動くようになればマシになるのかね
そもそも怪しいコードが依存関係に混入しちゃう時点でcargo runなりtestなりしたらなにされるかわからん訳でproc-macroの件自体にどれくらいの影響度があるのかは分からんが

868:デフォルトの名無しさん
21/06/05 19:44:30.63 uV7DnhUL.net
crossでx86_64-unknown-linux-gnuをtargetにクロスコンパイルしたらいいんじゃないか?
あれ確かDockerで動いてたはず

869:デフォルトの名無しさん
21/06/05 19:45:33.78 uV7DnhUL.net
自分のPC向けにクロスコンパイル用ツールを使ってコンパイルするのがクロスコンパイルというかどうかは知らんけど

870:デフォルトの名無しさん
21/06/06 08:03:37.51 W7azs2BY.net
>>823
特定のエディターの問題ではなく
特定のプログラミング言語の問題ではなく
自分が意図していない自動マクロ(プラグイン)を使えば自分が意図していない動作をするだけの話
大昔からあらゆる環境で起きていること

871:デフォルトの名無しさん
21/06/06 09:39:11.50 3IIg9tuB.net
コーディング時、ビルド時になんでもやらせようって発想が間違ってんだよ。

872:デフォルトの名無しさん
21/06/06 10:03:07.57 mKFU6ep6.net
マクロはやっぱ悪よな、無いと辛みが増すから仕方ないじゃなくて無くても何とか出来る仕様にすべき

873:デフォルトの名無しさん
21/06/06 10:25:40.41 W7azs2BY.net
今回の>>823の問題に限っていえば
そもそもLSPを使う人のためのプラグインなのだからLSPのlocalhost:8080に接続に行くことは何の問題もないよね
問題としているのはSSHの秘密鍵をそこへ自動送付していること
LSPそこまで詳しくないのだけどそれはどうしても必要なことなの?

874:デフォルトの名無しさん
21/06/06 10:32:40.20 MV541K/D.net
LSPは、この騒動(?)と関係なくクソ

875:デフォルトの名無しさん
21/06/06 10:33:23.63 MV541K/D.net
快適なエディタと快適なIDEの区別がつかなくなったバカどもがゴリ押しで流行らせてる

876:デフォルトの名無しさん
21/06/06 11:08:51.30 n+sQSuEO.net
>>857
>LSPのlocalhost:8080に接続に行くことは何の問題もないよね
localhost:8080はLanguage Serverじゃないよ

877:デフォルトの名無しさん
21/06/06 11:16:22.93 W7azs2BY.net
>>860
それはすまなんだ
じゃあ何が問題になってるのかな

878:デフォルトの名無しさん
21/06/06 12:13:20.98 xB3z9vbi.net
>>861
LSPをセットアップした状態だと「VSCodeを起動しただけで」自動ビルドが走ってしまって悪意あるprocedural macroが実行されてしまうこと
手動でビルドすれば同じことになるのでそこは問題の本質じゃなくね?とは思う

879:デフォルトの名無しさん
21/06/06 12:48:13.98 V+UU2WI7.net
LSPというよりrust-analyzerやrls、cargo/rustcの問題と言った方が正確かな

880:デフォルトの名無しさん
21/06/06 14:24:19.60 W7azs2BY.net
では>>823で指摘されている問題点「自分のSSHの秘密鍵が勝手に読み出されて送信される」はどの部分がその動作を要求しているの?
本当に必要な動作なの?

881:デフォルトの名無しさん
21/06/06 14:29:37.79 LOfpkHxA.net
手続きマクロの展開なのでcargo checkでも起こり得る
言ってしまえばRustの言語仕様そのもの
解決策は>>851の言うようにサンドボックス化するみたいな方法しかなさそう

882:デフォルトの名無しさん
21/06/06 14:35:16.58 n+sQSuEO.net
>>861
macroをexpandする時に
macroの定義に書かれてる任意のコードを実行することができるって話
任意のコードの例としてSSHのキーをサーバーに送信する例が書かれてて
試す人に無害なように送信先サーバーはlocalhostになってるだけ
コード見たほうが早いかも
make_answer!がexpandされるときにread_ssh_keyが実行される
URLリンク(github.com)

883:デフォルトの名無しさん
21/06/06 14:40:17.63 3IIg9tuB.net
このコード例はめちゃくちゃわかりやすい。問題は置いといてgoodなコードだ。

884:デフォルトの名無しさん
21/06/06 15:22:49.77 fghVy2Pw.net
crate-typeがproc-macroのときはffiを禁止して使用可能なextern crateを
安全性が保証されたものだけに制限するのがRustっぽいかな
proc-macro専用のstdが必要になるけどno_stdと同じ感覚でmacro_safe属性をつければいい

885:デフォルトの名無しさん
21/06/06 16:06:34.14 xR3kS6+v.net
そもそも普通はproc-macroなんか必要ないだろ
特殊用途以外では一律禁止してよいのでは?

886:デフォルトの名無しさん
21/06/06 16:20:07.52 V+UU2WI7.net
derive が使えなくなるのは結構困る

887:デフォルトの名無しさん
21/06/06 23:45:39.31 xQoKsnFB.net
>>843
マクロ展開すればどんな環境でもできるよ。
>>823はmulti-root workspaceの構成間違ってるから
IntelliJRustだとマクロ展開されないけど。
>>869
custom derive全部禁止だから当然thiserrorもserdeもdelegation系も禁止な。
ボイラープレート全部手書きしろよ。

888:デフォルトの名無しさん
21/06/07 06:02:10.08 k/PpyTws.net
頭悪い奴らばかりで議論にならぬ
趣旨と仕組みはreadme書いてあるのに。。

889:デフォルトの名無しさん
21/06/07 13:37:53.63 BQ22AOvo.net
今勉強中なんだけど、Rustと合わせた時のgdbの使い方を教えてくれんかな
行指定でb main.rs:10みたいにブレイクポイントを指定するのってどうやるの?
>No source file named main.rs.
みたいに言われてしまって、どうやって行指定でブレイクポイントを設定するのかよくわからん
ソースのあるディレクトリがわからないのかと思って指定しても結果は変わらず・・・・
あと、ソースを表示しながらステップ実行したりってどうやるの?

890:デフォルトの名無しさん
21/06/07 13:52:39.17 C46sPHOc.net
vscodeでcodelldb使おう

891:デフォルトの名無しさん
21/06/07 14:06:08.51 BQ22AOvo.net
ああ、デフォルトで-gつかないのか・・・・
でもlldbが主流っぽいし、それ使うかな

892:デフォルトの名無しさん
21/06/07 14:34:12.65 VGLcnon2.net
macのgdbだと今はまともに動かんぞ。

893:デフォルトの名無しさん
21/06/07 14:45:09.07 OvPzoGrd.net
M1になって


894:macの開発環境死んだ



895:デフォルトの名無しさん
21/06/07 15:56:52.66 D0MWfzjy.net
iPhone開発でMac必須になったことで強気に出すぎたか。
Macは滅びると思っていたらx86系になってからなぜかしぶとく生き残ってきたけど、
もうだめかもな。

896:デフォルトの名無しさん
21/06/07 16:08:45.47 BQ22AOvo.net
lldbを試しに使ってみてるんだけどさ
これって、ステップ実行するたびに自動で毎回「memory read --size 8 --format x $sp」をやってもらうことってできないの?
gdb-pedaを使っていたときはスタックの中身が自動で見れてたんだけど、なんか似たようなのないのかな?

897:デフォルトの名無しさん
21/06/07 20:20:51.05 RuDnuZ5b.net
>>878
iphoneアプリ開発のためにmacが生き残ってるのは面白いと思ってる
元マカーだからほんと言うと寂しいし悲しいんだけど

898:デフォルトの名無しさん
21/06/07 21:33:04.68 l0c3FfTp.net
rustのlinux kernel対応の話ってどうなってゆの?なんだかずいぶんと作業が難航しているうだけど
それってrustのどのあたりの言語機能が悪さをしているのかね

899:デフォルトの名無しさん
21/06/07 21:34:18.90 l0c3FfTp.net
難航しているよう

900:デフォルトの名無しさん
21/06/07 23:22:49.68 TtFMbk6H.net
>>873
シンボリックデバッガはまだ有名どころのフロントエンドが
ステップ実行できる程度しか対応してないから、アブソリュートデバッガ併用になる。
シンボルでブレークポイント設定できないとか実行に問題あるとかまだ普通。
msvcツールチェインは特に。
>>877
ねねっち死んだなって思ってたけど現実もか。
>>878
世界シェア15%切ったし頼みの日本シェアすら50%切ったからもう
iPhone専用開発機も持たないだろう。
rustだとandroidほどバインディングが充実してないから開発やりずらいだろうし。

901:デフォルトの名無しさん
21/06/08 13:22:42.82 NxfO+lQp.net
>>881 大部分がRustで書かれたRedox OSっていうOSがあるからRustでカーネルやドライバが書けないというわけではないと思う
恐らくCで書かれた過去の遺産との連携で手こずってそう

902:デフォルトの名無しさん
21/06/08 16:32:33.53 XAjWEwKV.net
>>883
日本でのiPhoneのシェアは、どんどん減っているはずなのに、ググると、
増えているデータになっていて、増えているのに50%を切っているというわけの
わからなさ。
記憶では、70%くらいまでいって、下がった結果、49%くらいになったはずなのに。

903:デフォルトの名無しさん
21/06/08 17:33:30.46 0HakL4nG.net
>>884
具体的には?

904:デフォルトの名無しさん
21/06/08 20:08:36.67 3DogIzpc.net
いやメーリスみにいけよ。。。

905:デフォルトの名無しさん
21/06/08 20:44:34.79 iJOvL9Jr.net
実際の開発状況はこっち見たほうがいいかな
URLリンク(github.com)
ざっと見た感じ難航してるっていうより単にやること多いってだけに見えるけど

906:デフォルトの名無しさん
21/06/08 22:36:25.74 onwST/YK.net
>>885
出荷ベースだと二三年前に65%超えてて2020Q4に約49%だからそれであってるよ。
>>888
OS作ってる人らって開発環境はなんだろ?
intellijrustはデバッガ使えるIDEとツールチェインが限られるし
matklad.rust-analyzerは環境変数の扱いがめちゃくちゃで
環境変数見に行くとまともに動かないし。issueばっか増える。
お前らどうしてる?ツールチェインと環境は?

907:デフォルトの名無しさん
21/06/08 23:20:14.38 x/Of6Ttl.net
rustでOSてもう何回目の話だよ。。過去レスでもあされや

908:デフォルトの名無しさん
21/06/09 00:55:43.69 KzEq3JVg.net
>>889
cargoが-Zbuil


909:d-std対応したからビルドに特別なツールは使ってない rust-analyzerもno_std対応してて特に支障なく動いている (補完候補にstdが出てくることはたまにあるけど) 環境変数がおかしいというのはどういうこと? build.rsが環境変数に依存している? それとも env!() を使っている?



910:デフォルトの名無しさん
21/06/09 01:43:04.13 oLsQ5RHC.net
>>889
URLリンク(simchange.jp)
ところが、↑のサイトも含めていくつかのサイトでは、日本ではiOSがシェアを
伸ばしていると書いてある。
2020/06 : Android:50.2%, iOS:49.7%
2019/06 : Android:60.5%, iOS:38.8%
2018/06 : Android:60.8%, iOS:37.6%

911:デフォルトの名無しさん
21/06/09 08:17:02.86 k36yeEDS.net
元々の話はMacがM1になって開発環境として終わったという流れから
残るMacの存在価値としてiOSアプリ開発環境がありそのシェアがまだ高い(?)という話だと思うけど
多くのサービスがスマホ専用アプリを作らずにウェブアプリ(PWA)化してる状況ではシェアだけの問題ではないと思うな

912:デフォルトの名無しさん
21/06/09 11:25:52.58 oLsQ5RHC.net
>>893
最後の行、flutterなどのマルチプラットフォームライブラリの登場によって、
ウェブアプリからnativeアプリ型への流れが出来ているという説もあるが。

913:デフォルトの名無しさん
21/06/09 11:27:44.28 oLsQ5RHC.net
>>894
後継のSwiftが出来たのでObjective-Cの人気低下はともかく、そのSwiftも人気低下。
その理由が、AndroidとiOSでソースを共通化したい人が増えたからだそうだ。
SwiftはApple専用だから。

914:デフォルトの名無しさん
21/06/09 12:30:04.46 eGaY+zic.net
lldbでpedaみたいな表示するのってこれが良いかな
便利そうだけど保守されてんのかなこれ?誰かしらん?
URLリンク(github.com)

915:デフォルトの名無しさん
21/06/10 06:56:29.59 A6ZEEOGF.net
来週ついにRocket v0.5が出るぞ
安定版Rustで動くようになる

916:デフォルトの名無しさん
21/06/10 09:11:05.37 hslWe/Xh.net
RUSTってORM、Dieselとかいうやつしかねえの?
SQLを明記したいのでJavaでいうMybatisみたいなのをさがしているんだけど、中華の変なものしかない。

917:デフォルトの名無しさん
21/06/10 11:19:36.78 vqPt4/VO.net
Sqlx

918:デフォルトの名無しさん
21/06/11 04:26:27.44 tVW+Rdfi.net
>>897
待ってた!

919:デフォルトの名無しさん
21/06/11 05:32:32.03 O0YtPkZC.net
サーバー側はネイティブコードでクライアント側がwebassemblyで動くとかあるの?

920:デフォルトの名無しさん
21/06/11 15:51:17.70 ThZwz5mq.net
VSCodeアップデートしたら急にDo you trust the authors of the files in this folderとか聞かれてどうしたのかと思ったけど>>823みたいな奴の対策かね

921:デフォルトの名無しさん
21/06/11 23:04:56.42 gr7UCFZ6.net
>>898
Dieselに人が集中してる。
クレートのall-time downloadは200万超だし、
リポジトリのコミットは約4000、closed issueは約1200。

922:デフォルトの名無しさん
21/06/11 23:44:59.89 791JEOt2.net
>>898
rust-postgres 直接使えばええやん

923:デフォルトの名無しさん
21/06/12 05:08:22.45 0lbP+PJD.net
wasmはあらゆる環境で使える汎用コンテナとしてすごい将来性あるみたいだね

924:デフォルトの名無しさん
21/06/12 15:34:21.86 jmn9nDiv.net
>>905
目的外利用だし、そういうこと言っている人がいることは知ってるが、実際にそんなに将来性があるとは思えんが。

925:デフォルトの名無しさん
21/06/12 15:35:41.09 jmn9nDiv.net
wasmはもともとウェブにC++を持ち込みたいというEmscriptenの情熱から
始まったものであって、そんな汎用目的のためではない。

926:デフォルトの名無しさん
21/06/12 15:53:35.18 1HODARj2.net
そのウェブにC++を持ち込むという夢はその後どうなったの?

927:デフォルトの名無しさん
21/06/12 16:29:39.50 wX98kbow.net
ブラウザでDOOMが動いた

928:デフォルトの名無しさん
21/06/12 16:48:34.58 L7rjL3/+.net
zoomみたいなビデオ会議アプリでwasm使ってるってっ聞いた
あとカメラを使った運転免許証認識とか

929:デフォルトの名無しさん
21/06/12 17:34:23.71 6kRi062U.net
当初の目的とかどうでもいいだろ
Linuxだって当初の目的は趣味のおもちゃだぞ
>>907

930:デフォルトの名無しさん
21/06/12 17:38:04.08 4jXDkOdS.net
もしもWebAssemblyとWASIが2008年に存在していたら、Dockerを開発する必要はなかった
ってDocketの開発者が言ってた件だな

931:デフォルトの名無しさん
21/06/12 17:54:20.79 jmn9nDiv.net
>>911
どうもブラウザ外使用を盛んにアピールする人は胡散臭い。

932:デフォルトの名無しさん
21/06/12 18:32:25.93 l5AvwX9O.net
いや、M$の寡占を阻止し正しき未来を創るため立ち上がったとエリックレイモンドが言ってた。

933:デフォルトの名無しさん
21/06/12 20:16:21.66 jmn9nDiv.net
>>914
そいつ人類の中で2番目に嫌いなやつだわ。
一番目はストールマン。

934:デフォルトの名無しさん
21/06/12 20:33:14.57 7X99TIl2.net
>>915
ソフトウェア著作権を否定するあんたと同類だよ。違うのは現行の法律を尊重するかしないかだけ。

935:デフォルトの名無しさん
21/06/12 21:31:34.25 Ap+0oKF5.net
>>912
んなこたない。
2008年にあっても今と扱いは変わらんと思うわ。
結局何らかのコンテナを使うことになる。
OSの件でもそうだが、この界隈は大袈裟にアピールしすぎだわ。

936:デフォルトの名無しさん
21/06/12 21:39:22.31 07O/QVIU.net
>>917
ここでいうコンテナってなんのこと?

937:デフォルトの名無しさん
21/06/12 21:55:04.24 LAH8Z0de.net
Jail、OpenVZ、Solarisコンテナ、LXCみんな早すぎたのだ

938:はちみつ餃子
21/06/13 03:28:54.62 tRZIM+Qs.net
Java (JVM) で駄目だったのはなんで?

939:デフォルトの名無しさん
21/06/13 03:38:03.93 8vbdM5AU.net
>>915
3番目が気になる

940:デフォルトの名無しさん
21/06/13 10:57:47.53 ACaSQ+aI.net
Istioでの使われ方みたいな事例が増えると思う
luaの代替

941:デフォルトの名無しさん
21/06/13 12:14:09.77 CEo6Ln9Y.net
JVM自体がローカルのシステムでグローバルだったからだろ。
低レイヤーをラップするための上位レイヤーのが互換性効かないものになってるとか、よくある話だわ。

942:デフォルトの名無しさん
21/06/13 22:19:56.20 wyOEFD1W.net
>>916
俺は著作権は尊重する。
尊重してないのはFSFの方。

943:デフォルトの名無しさん
21/06/13 22:54:27.20 exUpBE38.net
じゃあOSSを利用する場合はちゃんとライセンスに従わなきゃな。GPLだろうとなんだろうと。

944:デフォルトの名無しさん
21/06/14 01:49:13.38 1vkdQjmk.net
別に俺はGPLは嫌いだから自作プログラムに紛れ込ましたことは無いが、
GPL自体が自ら著作権を放棄してるな。
「COPYLEFT」 の LEFT = 放棄、左。左翼、共産主義。
「COPYRIGHT」の RIGHT = 権利、右。右翼、資本主義。権利=著作権。

945:はちみつ餃子
21/06/14 02:06:08.10 fvxG9/iR.net
GPL は著作権の放棄ではない。
その上で自由な利用を保証するという契約をするの。
著作権を放棄してしまったら自由な利用を強制する根拠を失ってしまう。

946:デフォルトの名無しさん
21/06/14 02:54:46.97 1vkdQjmk.net
アメリカ人はめちゃくちゃで、ライセンスと契約を区別したり訳分からんこと
言って、煙に巻こうとしてるだけ。
GPLは、その名の通り、「ライセンス」といっている。
COPYLEFT と自ら名乗っているし、著作権で無いだろう、あんなもの。

947:はちみつ餃子
21/06/14 02:57:23.52 fvxG9/iR.net
>>928
GPL は著作権ではない。
著作権は作者が持っていて、契約 (の内容) が GPL なの。
なんでそんな簡単なことがわからんのだ。

948:はちみつ餃子
21/06/14 03:06:36.37 fvxG9/iR.net
著作者は作者として強制できる権利。
強制する内容が「自由に利用すること、自由に利用させること」であることが
一般的に作者が求める強制力ではないよねということを茶化して Copyleft と言っているのであって、
強制力の根拠はあくまでも著作権だよ。

949:デフォルトの名無しさん
21/06/14 03:16:22.76 Gk7ZUjpc.net
あれが、本気で自由と思ってるのか。
頭大丈夫か?
自由じゃないからこそ、言葉だけ自由と名乗ってるに決まってるじゃん。
ようは、不自由なことをやることも、自由といや自由、みたいに皮肉みたいな感じで
言ってるんだろ、彼らは。
それか頭がおかしいかだ。

950:デフォルトの名無しさん
21/06/14 03:41:09.12 lTAIWsCW.net
ハァ~~~~~また固定ハンドルが物申したさベースでデタラメ言ってる

まずライセンスと契約は別物ね
ライセンスと契約を混同するのはよくある誤謬
GPLにおいても、これは契約かライセンスかといった議論は昔からあるから勝手に勉強しとけ
勉強したところでここで発表はするなよ邪魔だから

> 自由な利用を強制する
これも、なんでそうなるのだってくらい愚かしい解釈
「自由」の定義をストールマンとか江添の言ってるそれに委ね過ぎて支離滅裂になってるって気付け?
辞書通りの「自由」ならライセンスも警察も裁判所も要らないから
GPL のポイントは二次的な生産物も GPL であれと要請してるところ
「だからそれを私は自由と呼んでいるんです!」と叫ぶのかな?
日本語勉強しろバァ~~~カ

あと著作権著作権って簡単に言うがこれは国にもよる
たんじゅんなアタマのつくりしてるね

俺なら恥ずかし過ぎて固定ハンドル外してるわ
今に始まったことではないが

951:デフォルトの名無しさん
21/06/14 03:45:31.62 A3PFUDNY.net
>>932
この程度のバカは見飽きたのでもうちょっと
変わったこと言ってくれ

952:デフォルトの名無しさん
21/06/14 04:23:31.00 lTAIWsCW.net
即レスで
恥ずかし過ぎて固定ハンドルを外して
何ら具体的な反論をしないことで完全服従の意を表明しつつ
一方でタダで敗北アクメを晒すわけにはいかないので「バカ。陳腐」という当たり障りのない罵倒も置いておく完璧なレス
のように思えてしまうが、なんの用事もないのにわざわざ安価付けてきたコイツが当人じゃない可能性ってナンボほどあるんだろうか

953:はちみつ餃子
21/06/14 04:35:49.09 fvxG9/iR.net
>>932
GPL ほどの広く使われているライセンス形態がその程度の理屈の建付けがちゃんとできてないわけないだろ。
詭弁と言えば詭弁なのかもしれんが、お前ごときに突き崩せるほどの安普請ではないわ。
GPL1 のリリース日の時点ではアメリカがベルヌ条約に加盟して無かったから
それでも国際的に通用するように方式主義にも配慮されておる。
中国に対してさえ (実態はわからんが少なくとも法的な理屈の上では) 通用する GPL が「国による」とかいう雑な
理屈で回避できると思ってるのか?

954:デフォルトの名無しさん
21/06/14 05:16:55.41 lTAIWsCW.net
>>935
GPL の建付け (?) の話なんか全くしてないし、回避 (??) する話なんかもっとしてないんだが、一体何に猛反論してるつもりなのだキミは
関係ない話ベラベラし始めることこそ典型的な詭弁だよ(この場合目的が全くわからんが)

>>932に書いた内容といえば
・ライセンスと契約を同じもののように語ってるのが典型的な誤謬であると指摘して
・「自由」という語の使い方が自由過ぎることを糾弾して
・諸々の根拠を著作権に委ねるならその運用は国による要素を多分に含むと示唆している
というこれだけで、これらには返す言葉もないというのが本音でしょう

> GPL1 のリリース日の時点では
これはお前が今突然言い出したことなので元々の話とは全く関係ないが、GPL が当時と同じように理解されて運用されてるのと思ってるならやっぱ単純なアタマのつくりしてるね

955:デフォルトの名無しさん
21/06/14 05:19:57.80 LaJq0QyW.net
GPLスレでやれ、バカ

956:はちみつ餃子
21/06/14 05:30:15.75 fvxG9/iR.net
>>936
ライセンスは契約だし、 GPL が言うところの「自由」は定義されている。
その「自由」が辞書的な意味とは異なるかもしれんが、 (この場合の) 意味は明白で解釈の幅はない。
「自由」という言葉をあてるのがクソというのがあなたの主張?
著作権の運用が国ごとに違うのは仕方がないが、
GPL の考え方に法的根拠を与えるには他に方法がないのも事実だ。
クソみたいに著作権意識のない国では通用しないから GPL は無力だということが言いたいの?

957:デフォルトの名無しさん
21/06/14 05:45:15.60 EO405yGC.net
スレチ。。。

958:デフォルトの名無しさん
21/06/14 09:29:08.36 57P3hnrE.net
>>922
Goにホストされるって敗北感
そもそもホストはGC言語なのにわざわざそれを封じて縛りプレイしてるんだからアホくせえわ

959:デフォルトの名無しさん
21/06/14 11:54:20.91 xr9L9qN8.net
アホくせえが手段が目的化する奴が多いのよ。言語にこだわるやつってのは。

960:デフォルトの名無しさん
21/06/14 12:02:54.57 Gk7ZUjpc.net
>>938
>その「自由」が辞書的な意味とは異なるかもしれんが、 (この場合の) 意味は明白で解釈の幅はない。
ええ???

961:デフォルトの名無しさん
21/06/14 13:26:47.78 7yJrxgpO.net
スレチせめてプログラミングのこと話せ

962:デフォルトの名無しさん
21/06/14 14:32:30.77 ETfeAHFb.net
>>933,937,939,943
これは恥ずかしいw

963:デフォルトの名無しさん
21/06/14 16:01:14.18 aWTkZB4f.net
こんだけ言われてなんでまだ「ライセンス=契約」で行きたいんだ?
そこが覆ると自分の主張も破綻するから?
まあ難しいところではあるだろうと思うが、「ライセンスと契約は等価じゃない」ってのはあらゆるレイヤで真でしょ
ことOSSにおいては「契約はしてないけどライセンスはされている」という状況が山程あるし、そこ混同するのはやっぱ問題かと

964:デフォルトの名無しさん
21/06/14 16:36:10.82 o7Wm2rLl.net
ライセンスの定義についてはどこで合意が取れてんの?
それともそういうもんは存在しなくて
定義については毎回言い争ってるの?

965:デフォルトの名無しさん
21/06/14 18:32:12.91 Gk7ZUjpc.net
GPLについては、ソース公開しなければならないことについては大量に述べられて
いるが、非公開で良いケースは僅かしか語られず、その場合でも沢山の例外が
述べられていて結局、非公開にするのは茨の道になるようなライセンス。

966:デフォルトの名無しさん
21/06/14 18:48:42.01 A3PFUDNY.net
>>945
じゃあライセンスって法的に何物なの?

967:デフォルトの名無しさん
21/06/14 19:09:41.02 WvbRDa7B.net
GPLの例外条項は結構曖昧で解釈の幅がある
オレオレ解釈は散見されるが最悪争う覚悟は要りそう
あとライセンスとは全く関係無い次元で製品に使うのみで
プロジェクトの開発に貢献していないと晒されたり

968:デフォルトの名無しさん
21/06/14 19:36:33.34


969:BGpTyvuR.net



970:デフォルトの名無しさん
21/06/14 20:31:13.38 6p9bp5Dj.net
ソースコードを公開してもかまわないプログラマの自由を最大化するために作られているんだよ。
逆に言えばソースを隠したがるプログラマのことは考えていない。

971:デフォルトの名無しさん
21/06/14 21:42:01.68 OzvaLd6A.net
>>951
ソースを公開しても構わない連中の意図に背いて
ソースを公開しないプログラムで金儲けしてる連中が
ソースが公開されてる物に独自の拡張を加えて独占する事が往々に起きてるぞ

972:デフォルトの名無しさん
21/06/14 22:24:45.24 Gk7ZUjpc.net
>>949
実際、めちゃくちゃややこしい。
結局、なるべくソース公開させたいんだと悟った。

973:デフォルトの名無しさん
21/06/14 22:41:56.21 G5MB7uUL.net
おまえらrust書けないんだろ

974:デフォルトの名無しさん
21/06/15 01:20:19.29 2aICmAxH.net
rustなんだからせめてMITかApacheの話しろよ

975:デフォルトの名無しさん
21/06/15 12:54:55.77 AFCY8yJO.net
RustでGPLなクレートはほとんどないけどあったらまず使わないな

976:デフォルトの名無しさん
21/06/15 17:22:37.44 goBsDW0I.net
>>956 ワイは別にGPLは気にしないな
どうせGPLなクレート使おうが使わまいがソースコードは公開するから

977:デフォルトの名無しさん
21/06/15 18:41:20.99 /MaPmtJg.net
Rust入門でオススメ書籍ありますか定期

978:デフォルトの名無しさん
21/06/15 19:52:22.79 CPCRgALA.net
ライブラリならLGPLだろ

979:デフォルトの名無しさん
21/06/15 20:51:36.90 2aICmAxH.net
ライブラリにLGPL採用する場合はcrate_type=dylibにすべき?

980:デフォルトの名無しさん
21/06/15 20:59:03.39 ic6VniVo.net
>>958
オライリー本
第2版出てるよ

981:デフォルトの名無しさん
21/06/15 21:24:12.34 5dh+WKsO.net
>ライセンスは文字通り「許諾」で、相手の同意を必要としない。契約は相手と自分の同意を必須とするから、GPLみたいに相手の同意を前提としていない仕組みを「契約」とするのは弱い(と思う)。
>だからGPLでは著作権を使って、違反者にプログラムを使わせないことを強制する枠組みを用意している。
論理が逆転してる。
許諾しない限り著作権により他者はそのソフトウェアを利用できないんであって、その許諾を行うのが許諾契約なわけ。
契約が成立していなければ単に利用できないだけ。

982:デフォルトの名無しさん
21/06/15 22:11:42.99 cZWoJhTA.net
mylibって何のためにあるのでしょうか?

983:デフォルトの名無しさん
21/06/15 22:26:23.96 4eHWI+wO.net
【License】ライセンス総合【利用許諾】
スレリンク(tech板)

984:デフォルトの名無しさん
21/06/16 07:16:27.91 CcbUbI22.net
>>961
原著2版は来月発売では?
Safariか何かで電子書籍版が早期リリースされてんのかね

985:デフォルトの名無しさん
21/06/16 08:08:02.13 FBnPGJqE.net
GPL(LGPL含む)の問題は関連する全てのコードに干渉すること
GPLと干渉しないコードで固められるなら良いが、現実的には難しい事も多い
この場合例外条項の適用を検討することになるけど一般的な解釈はほぼなく自己責任となる
自分がGPLなコードを使いたくない理由は大抵これ
>type foo.bat
GPLなコマンド -i a.wav -o b.wav
プロプラなコマンド b.wav
>
がGPL違反とか言われててもどうしようも無いじゃない
Linux環境でも実用性を考えるとプロプラレスは難しい。nVidiaがらみとかwineとか

986:デフォルトの名無しさん
21/06/16 09:17:59.87 jDDfyj6K.net
>>966
その例がGPL違反ってどういう意味?

987:デフォルトの名無しさん
21/06/16 10:07:22.47 iOI8vAiO.net
>>966
URLリンク(www.gnu.org)
> それはプログラムがどのようにプラグインを呼び出すかによります。たとえば、プログラムが単純なforkとexecでプラグインを起動し、通信するだけならば、プラグインは別のプログラムであり、プラグインのライセンスはメインプログラムになんの要求もしません。

988:デフォルトの名無しさん
21/06/16 11:05:57.56 51hxO3pa.net
>>968
それはプラグインとして解釈できるかがポイント
>>966の例だとGPLなコマンドとしてffmpegにプリプロセスさせるようなケースで
「GPLなコマンドが無かったら機能しないのだからメインの一部でありプラグインではない」
などと主張されたら自分では反論できない

989:デフォルトの名無しさん
21/06/16 11:54:54.60 jDDfyj6K.net
>>969
そんな主張はFSFもしてないけど誰がしてるの?

990:デフォルトの名無しさん
21/06/16 11:56:22.89 0OhzW8Bw.net
ぼく

991:デフォルトの名無しさん
21/06/16 13:02:13.05 ZyaCpIhY.net
>>970
GPL警察・・・はともかくとしてもライセンス文やFSFの主張と矛盾が生じない実装であることを証明できないとリスクが高い
>>968
>「集積物」とそのほかの種類の「改変されたバージョン」の違いは何ですか? (#MereAggregation)
には
>逆に、パイプ、ソケット、コマンドライン引数は通常二つの分離したプログラムの間で使われるコミュニケーションメカニズムです。
>ですからそれらがコミュニケーションのために使われるときには、モジュールは通常別々のプログラムです。
>しかしコミュニケーションのセマンティクスが親密であったり、複雑な内部データ構造を交換したりする場合は、
>それらも二つの部分がより大規模なプログラムに結合されていると考える基準となりうるでしょう。
とも書かれている。別プロセスとして利用しているからGPLの影響を受けないとは限らないと読める
あとGPLにもかかわらずプロプラのライブラリ等を利用する機能があるアプリはプロジェクト自体は問題なくても
運用時にGPL違反になる可能性は非常に高い

992:デフォルトの名無しさん
21/06/16 13:17:01.96 5odmAoP3.net
ここがライセンススレですか

993:デフォルトの名無しさん
21/06/16 13:26:13.58 bmvqoYgA.net
前にも同じような流れになった事あるよな
同じバカかな

994:デフォルトの名無しさん
21/06/16 13:44:16.01 afK0Tn+I.net
>>964が示されてもまだここで続けようとするからな
続きはあっちに書きそのURLをこのスレに書けば
続きに興味がある人はそれを見るのにこのスレで続けようとする
このスレでマウントをとること自体が目的なんだろう

995:デフォルトの名無しさん
21/06/16 15:32:36.57 HrXzCrOv.net
ライセンススレを知っている人なら判るけど論理的な議論にならないからな
条文には「~~」と書いてありFSFの解釈は「○○」だから××と考えるのが妥当
みたいな流れは見たことないし。ソース無しで俺解釈を唱える人はいるけど

996:デフォルトの名無しさん
21/06/16 16:40:31.58 XWzkMsh/.net
まさに彼にふさわしいスレじゃん。

997:デフォルトの名無しさん
21/06/16 17:11:11.66 QlN27RbC.net
        ,r"´⌒`゙`ヽ
       / ,   -‐- !、
      / {,}f  -‐- ,,,__、)
    /   /  .r'~"''‐--、)
  ,r''"´⌒ヽ{   ヽ (・)ハ(・)}、
 /      \  (⊂`-'つ)i-、
          `}. (__,,ノヽ_ノ,ノ  \  
           l   `-" ,ノ    ヽ  


998:頼む、どうか彼らを許してやってくれ彼らはゴリラなんだ            } 、、___,j''      l



999:デフォルトの名無しさん
21/06/16 23:04:16.59 2zUKvOQT.net
>>970
俺は、このスレに書いた人とは別人だが、俺もそういう主張を読んだことがある。
例え別プロセス、別コマンドであっても、そのコマンドがなければそのアプリ自体
が全く成り立たない場合には、GPL感染すると。
プラグインや拡張機能ならセーフだが、GPLなプログラム無しには基本機能さえ
成り立たないようなアプリやOSは、GPL感染してアプリやOSもソース公開しなく
てはならないと主張されていた。

1000:デフォルトの名無しさん
21/06/16 23:12:41.99 cIjelt3H.net
1.53.0 pre-release testing | Inside Rust Blog
URLリンク(blog.rust-lang.org)

1001:980
21/06/17 00:25:15.75 NvYoNP9C.net
たてまいた
Rust part11
スレリンク(tech板)

1002:デフォルトの名無しさん
21/06/17 00:58:03.03 Rm7vvv8R.net
>>979
ライセンススレでやれって >>964
そんな主張を誰がしてるのかと問われてるのに
誰が言ってるのか不明な話をしてもしかたないだろ

1003:デフォルトの名無しさん
21/06/17 01:16:14.81 ZHO1SOin.net
GPLなクレートがかなり排除されてるRustはライセンス談義に最も向かない言語だろう

1004:デフォルトの名無しさん
21/06/17 03:00:35.86 hZA4Axz4.net
twitter見ていて分かって来たことだが、GPLを支持している人は、大体、
ほぼ全くプログラムしないか、理系でもなければ、物づくりとは全く接点が
無い人が多いようだ。プログラムしてもちょろっとだけ。
俺が知る範囲内では哲学科出身の人がやたらとGPLを推進しようとしていた。
2ch/5chだとそれが見えてこないので話がややこしくなる。

1005:デフォルトの名無しさん
21/06/17 07:53:01.41 Bp52a2Ld.net
どこを見てもそんなの見えてこない

1006:デフォルトの名無しさん
21/06/17 08:00:10.18 ukuNCHw3.net
>>983
GPL/LGPLと無縁のマルチメディアデータ処理関連のクレートを教えてくれ。それ使うから
歴史的事情もあってlibavcodecをはじめとする実績のあるコードはGPL/LGPLばかりなんだよな
特に動画は特許とGPL/LGPLで板挟み

1007:デフォルトの名無しさん
21/06/17 08:08:54.07 q1AaV+h7.net
>>986
プログラムを配布しなければGPLだろうがなんだろうが関係ないだろ。

1008:デフォルトの名無しさん
21/06/17 09:36:20.47 ZHO1SOin.net
>>986
動画も音声もどうせ特許で真っ黒なんだからどうでもいいじゃん

1009:デフォルトの名無しさん
21/06/17 13:04:16.09 vro6SqnC.net
所有権を確認するためのデバッガ教えてください

1010:デフォルトの名無しさん
21/06/17 13:25:32.13 zdBr0PGw.net
>>989 rustc

1011:デフォルトの名無しさん
21/06/17 14:12:56.21 hZA4Axz4.net
GPLを推進してるほとんどの人はプログラムほとんど書いたことない人。
これは本当の話。プログラミングがどういうものか分かってない。
大量の資料を見て沢山実験してやっと方法を見つけてコードに直している
という苦労や努力、時間が理解できてないからGPLが社会を良くすると
勘違いしている。

1012:デフォルトの名無しさん
21/06/17 14:17:07.72 hZA4Axz4.net
結果のコードは30行とかでも、それを見出すのに非常に大量の時間を
かけて、googleで検索し、StackOverflowのQ&Aを10個以上読み、
書いてある通りにやっても大部分が失敗し、JavaScriptの公式HPに書いてあるとおり
にやっても出来ず(書き間違いがあることが多い)、実際に動いている例を調べたり
して、公式HPの間違いを発見しても面倒だから報告せずに、やっとの思いで
何日もかけて見出した30行のコードが、GPL感染して世界中に広まっていき、
金持ちのボンボンがそれを我が物顔で使う。そんな社会になってきている。

1013:デフォルトの名無しさん
21/06/17 14:25:35.66 ZHO1SOin.net
>>992
エッセイ書きたいならTwitterでやれ

1014:デフォルトの名無しさん
21/06/17 19:47:14.00 9b5fCkeQ.net
        ,r"´⌒`゙`ヽ
       / ,   -‐- !、
      / {,}f  -‐- ,,,__、)
    /   /  .r'~"''‐--、)
  ,r''"´⌒ヽ{   ヽ (・)ハ(・)}、
 /      \  (⊂`-'つ)i-、
          `}. (__,,ノヽ_ノ,ノ  \  
           l   `-" ,ノ    ヽ   頼む、どうか>>992を許してやってくれ彼はゴリラなんだ
           } 、、___,j''      l

1015:デフォルトの名無しさん
21/06/17 19:59:14.59 Jy0yNCu6.net
サウイフゴリラニ
ワタシハナリタイ

1016:デフォルトの名無しさん
21/06/18 09:59:32.45 ZlIKBEDk.net
>>981
おつでーす

1017:デフォルトの名無しさん
21/06/18 10:07:49.32 bpKpz6fn.net
Rust 1.53きたけど、非ascii識別子って前から使えなかったっけ???

1018:デフォルトの名無しさん
21/06/18 11:41:40.97 qNJOvBlW.net
前はunstableでnightlyでしか使えなかった

1019:デフォルトの名無しさん
21/06/19 01:08:26.25 3FFA7ImF.net
埋め

1020:デフォルトの名無しさん
21/06/19 01:08:36.16 3FFA7ImF.net
埋め

1021:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 77日 3時間 30分 32秒

1022:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch