Rust part10
レス数が950を超えています。1000を超えると書き込みができなくなります。
proc-macroがwasm化されてサンドボックスで動くようになればマシになるのかね
そもそも怪しいコードが依存関係に混入しちゃう時点でcargo runなりtestなりしたらなにされるかわからん訳でproc-macroの件自体にどれくらいの影響度があるのかは分からんが crossでx86_64-unknown-linux-gnuをtargetにクロスコンパイルしたらいいんじゃないか?
あれ確かDockerで動いてたはず 自分のPC向けにクロスコンパイル用ツールを使ってコンパイルするのがクロスコンパイルというかどうかは知らんけど >>823
特定のエディターの問題ではなく
特定のプログラミング言語の問題ではなく
自分が意図していない自動マクロ(プラグイン)を使えば自分が意図していない動作をするだけの話
大昔からあらゆる環境で起きていること コーディング時、ビルド時になんでもやらせようって発想が間違ってんだよ。 マクロはやっぱ悪よな、無いと辛みが増すから仕方ないじゃなくて無くても何とか出来る仕様にすべき 今回の>>823の問題に限っていえば
そもそもLSPを使う人のためのプラグインなのだからLSPのlocalhost:8080に接続に行くことは何の問題もないよね
問題としているのはSSHの秘密鍵をそこへ自動送付していること
LSPそこまで詳しくないのだけどそれはどうしても必要なことなの? 快適なエディタと快適なIDEの区別がつかなくなったバカどもがゴリ押しで流行らせてる >>857
>LSPのlocalhost:8080に接続に行くことは何の問題もないよね
localhost:8080はLanguage Serverじゃないよ >>860
それはすまなんだ
じゃあ何が問題になってるのかな >>861
LSPをセットアップした状態だと「VSCodeを起動しただけで」自動ビルドが走ってしまって悪意あるprocedural macroが実行されてしまうこと
手動でビルドすれば同じことになるのでそこは問題の本質じゃなくね?とは思う LSPというよりrust-analyzerやrls、cargo/rustcの問題と言った方が正確かな では>>823で指摘されている問題点「自分のSSHの秘密鍵が勝手に読み出されて送信される」はどの部分がその動作を要求しているの?
本当に必要な動作なの? 手続きマクロの展開なのでcargo checkでも起こり得る
言ってしまえばRustの言語仕様そのもの
解決策は>>851の言うようにサンドボックス化するみたいな方法しかなさそう >>861
macroをexpandする時に
macroの定義に書かれてる任意のコードを実行することができるって話
任意のコードの例としてSSHのキーをサーバーに送信する例が書かれてて
試す人に無害なように送信先サーバーはlocalhostになってるだけ
コード見たほうが早いかも
make_answer!がexpandされるときにread_ssh_keyが実行される
https://github.com/lucky/bad_actor_poc/blob/master/bad_actor/src/lib.rs このコード例はめちゃくちゃわかりやすい。問題は置いといてgoodなコードだ。 crate-typeがproc-macroのときはffiを禁止して使用可能なextern crateを
安全性が保証されたものだけに制限するのがRustっぽいかな
proc-macro専用のstdが必要になるけどno_stdと同じ感覚でmacro_safe属性をつければいい そもそも普通はproc-macroなんか必要ないだろ
特殊用途以外では一律禁止してよいのでは? >>843
マクロ展開すればどんな環境でもできるよ。
>>823はmulti-root workspaceの構成間違ってるから
IntelliJRustだとマクロ展開されないけど。
>>869
custom derive全部禁止だから当然thiserrorもserdeもdelegation系も禁止な。
ボイラープレート全部手書きしろよ。 頭悪い奴らばかりで議論にならぬ
趣旨と仕組みはreadme書いてあるのに。。 今勉強中なんだけど、Rustと合わせた時のgdbの使い方を教えてくれんかな
行指定でb main.rs:10みたいにブレイクポイントを指定するのってどうやるの?
>No source file named main.rs.
みたいに言われてしまって、どうやって行指定でブレイクポイントを設定するのかよくわからん
ソースのあるディレクトリがわからないのかと思って指定しても結果は変わらず・・・・
あと、ソースを表示しながらステップ実行したりってどうやるの? ああ、デフォルトで-gつかないのか・・・・
でもlldbが主流っぽいし、それ使うかな iPhone開発でMac必須になったことで強気に出すぎたか。
Macは滅びると思っていたらx86系になってからなぜかしぶとく生き残ってきたけど、
もうだめかもな。 lldbを試しに使ってみてるんだけどさ
これって、ステップ実行するたびに自動で毎回「memory read --size 8 --format x $sp」をやってもらうことってできないの?
gdb-pedaを使っていたときはスタックの中身が自動で見れてたんだけど、なんか似たようなのないのかな? >>878
iphoneアプリ開発のためにmacが生き残ってるのは面白いと思ってる
元マカーだからほんと言うと寂しいし悲しいんだけど rustのlinux kernel対応の話ってどうなってゆの?なんだかずいぶんと作業が難航しているうだけど
それってrustのどのあたりの言語機能が悪さをしているのかね >>873
シンボリックデバッガはまだ有名どころのフロントエンドが
ステップ実行できる程度しか対応してないから、アブソリュートデバッガ併用になる。
シンボルでブレークポイント設定できないとか実行に問題あるとかまだ普通。
msvcツールチェインは特に。
>>877
ねねっち死んだなって思ってたけど現実もか。
>>878
世界シェア15%切ったし頼みの日本シェアすら50%切ったからもう
iPhone専用開発機も持たないだろう。
rustだとandroidほどバインディングが充実してないから開発やりずらいだろうし。 >>881 大部分がRustで書かれたRedox OSっていうOSがあるからRustでカーネルやドライバが書けないというわけではないと思う
恐らくCで書かれた過去の遺産との連携で手こずってそう >>883
日本でのiPhoneのシェアは、どんどん減っているはずなのに、ググると、
増えているデータになっていて、増えているのに50%を切っているというわけの
わからなさ。
記憶では、70%くらいまでいって、下がった結果、49%くらいになったはずなのに。 実際の開発状況はこっち見たほうがいいかな
https://github.com/Rust-for-Linux/linux
ざっと見た感じ難航してるっていうより単にやること多いってだけに見えるけど >>885
出荷ベースだと二三年前に65%超えてて2020Q4に約49%だからそれであってるよ。
>>888
OS作ってる人らって開発環境はなんだろ?
intellijrustはデバッガ使えるIDEとツールチェインが限られるし
matklad.rust-analyzerは環境変数の扱いがめちゃくちゃで
環境変数見に行くとまともに動かないし。issueばっか増える。
お前らどうしてる?ツールチェインと環境は? rustでOSてもう何回目の話だよ。。過去レスでもあされや >>889
cargoが-Zbuild-std対応したからビルドに特別なツールは使ってない
rust-analyzerもno_std対応してて特に支障なく動いている
(補完候補にstdが出てくることはたまにあるけど)
環境変数がおかしいというのはどういうこと?
build.rsが環境変数に依存している?
それとも env!() を使っている? >>889
https://simchange.jp/post-164095/
ところが、↑のサイトも含めていくつかのサイトでは、日本では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% 元々の話はMacがM1になって開発環境として終わったという流れから
残るMacの存在価値としてiOSアプリ開発環境がありそのシェアがまだ高い(?)という話だと思うけど
多くのサービスがスマホ専用アプリを作らずにウェブアプリ(PWA)化してる状況ではシェアだけの問題ではないと思うな >>893
最後の行、flutterなどのマルチプラットフォームライブラリの登場によって、
ウェブアプリからnativeアプリ型への流れが出来ているという説もあるが。 >>894
後継のSwiftが出来たのでObjective-Cの人気低下はともかく、そのSwiftも人気低下。
その理由が、AndroidとiOSでソースを共通化したい人が増えたからだそうだ。
SwiftはApple専用だから。 lldbでpedaみたいな表示するのってこれが良いかな
便利そうだけど保守されてんのかなこれ?誰かしらん?
https://github.com/snare/voltron 来週ついにRocket v0.5が出るぞ
安定版Rustで動くようになる RUSTってORM、Dieselとかいうやつしかねえの?
SQLを明記したいのでJavaでいうMybatisみたいなのをさがしているんだけど、中華の変なものしかない。 サーバー側はネイティブコードでクライアント側がwebassemblyで動くとかあるの? VSCodeアップデートしたら急にDo you trust the authors of the files in this folderとか聞かれてどうしたのかと思ったけど>>823みたいな奴の対策かね >>898
Dieselに人が集中してる。
クレートのall-time downloadは200万超だし、
リポジトリのコミットは約4000、closed issueは約1200。 >>898
rust-postgres 直接使えばええやん wasmはあらゆる環境で使える汎用コンテナとしてすごい将来性あるみたいだね >>905
目的外利用だし、そういうこと言っている人がいることは知ってるが、実際にそんなに将来性があるとは思えんが。 wasmはもともとウェブにC++を持ち込みたいというEmscriptenの情熱から
始まったものであって、そんな汎用目的のためではない。 そのウェブにC++を持ち込むという夢はその後どうなったの? zoomみたいなビデオ会議アプリでwasm使ってるってっ聞いた
あとカメラを使った運転免許証認識とか 当初の目的とかどうでもいいだろ
Linuxだって当初の目的は趣味のおもちゃだぞ
>>907 もしもWebAssemblyとWASIが2008年に存在していたら、Dockerを開発する必要はなかった
ってDocketの開発者が言ってた件だな >>911
どうもブラウザ外使用を盛んにアピールする人は胡散臭い。 いや、M$の寡占を阻止し正しき未来を創るため立ち上がったとエリックレイモンドが言ってた。 >>914
そいつ人類の中で2番目に嫌いなやつだわ。
一番目はストールマン。 >>915
ソフトウェア著作権を否定するあんたと同類だよ。違うのは現行の法律を尊重するかしないかだけ。 >>912
んなこたない。
2008年にあっても今と扱いは変わらんと思うわ。
結局何らかのコンテナを使うことになる。
OSの件でもそうだが、この界隈は大袈裟にアピールしすぎだわ。 Jail、OpenVZ、Solarisコンテナ、LXCみんな早すぎたのだ Istioでの使われ方みたいな事例が増えると思う
luaの代替 JVM自体がローカルのシステムでグローバルだったからだろ。
低レイヤーをラップするための上位レイヤーのが互換性効かないものになってるとか、よくある話だわ。 >>916
俺は著作権は尊重する。
尊重してないのはFSFの方。 じゃあOSSを利用する場合はちゃんとライセンスに従わなきゃな。GPLだろうとなんだろうと。 別に俺はGPLは嫌いだから自作プログラムに紛れ込ましたことは無いが、
GPL自体が自ら著作権を放棄してるな。
「COPYLEFT」 の LEFT = 放棄、左。左翼、共産主義。
「COPYRIGHT」の RIGHT = 権利、右。右翼、資本主義。権利=著作権。 GPL は著作権の放棄ではない。
その上で自由な利用を保証するという契約をするの。
著作権を放棄してしまったら自由な利用を強制する根拠を失ってしまう。 アメリカ人はめちゃくちゃで、ライセンスと契約を区別したり訳分からんこと
言って、煙に巻こうとしてるだけ。
GPLは、その名の通り、「ライセンス」といっている。
COPYLEFT と自ら名乗っているし、著作権で無いだろう、あんなもの。 >>928
GPL は著作権ではない。
著作権は作者が持っていて、契約 (の内容) が GPL なの。
なんでそんな簡単なことがわからんのだ。 著作者は作者として強制できる権利。
強制する内容が「自由に利用すること、自由に利用させること」であることが
一般的に作者が求める強制力ではないよねということを茶化して Copyleft と言っているのであって、
強制力の根拠はあくまでも著作権だよ。 あれが、本気で自由と思ってるのか。
頭大丈夫か?
自由じゃないからこそ、言葉だけ自由と名乗ってるに決まってるじゃん。
ようは、不自由なことをやることも、自由といや自由、みたいに皮肉みたいな感じで
言ってるんだろ、彼らは。
それか頭がおかしいかだ。 ハァ〜〜〜〜〜また固定ハンドルが物申したさベースでデタラメ言ってる
まずライセンスと契約は別物ね
ライセンスと契約を混同するのはよくある誤謬
GPLにおいても、これは契約かライセンスかといった議論は昔からあるから勝手に勉強しとけ
勉強したところでここで発表はするなよ邪魔だから
> 自由な利用を強制する
これも、なんでそうなるのだってくらい愚かしい解釈
「自由」の定義をストールマンとか江添の言ってるそれに委ね過ぎて支離滅裂になってるって気付け?
辞書通りの「自由」ならライセンスも警察も裁判所も要らないから
GPL のポイントは二次的な生産物も GPL であれと要請してるところ
「だからそれを私は自由と呼んでいるんです!」と叫ぶのかな?
日本語勉強しろバァ〜〜〜カ
あと著作権著作権って簡単に言うがこれは国にもよる
たんじゅんなアタマのつくりしてるね
俺なら恥ずかし過ぎて固定ハンドル外してるわ
今に始まったことではないが >>932
この程度のバカは見飽きたのでもうちょっと
変わったこと言ってくれ 即レスで
恥ずかし過ぎて固定ハンドルを外して
何ら具体的な反論をしないことで完全服従の意を表明しつつ
一方でタダで敗北アクメを晒すわけにはいかないので「バカ。陳腐」という当たり障りのない罵倒も置いておく完璧なレス
のように思えてしまうが、なんの用事もないのにわざわざ安価付けてきたコイツが当人じゃない可能性ってナンボほどあるんだろうか >>932
GPL ほどの広く使われているライセンス形態がその程度の理屈の建付けがちゃんとできてないわけないだろ。
詭弁と言えば詭弁なのかもしれんが、お前ごときに突き崩せるほどの安普請ではないわ。
GPL1 のリリース日の時点ではアメリカがベルヌ条約に加盟して無かったから
それでも国際的に通用するように方式主義にも配慮されておる。
中国に対してさえ (実態はわからんが少なくとも法的な理屈の上では) 通用する GPL が「国による」とかいう雑な
理屈で回避できると思ってるのか? >>935
GPL の建付け (?) の話なんか全くしてないし、回避 (??) する話なんかもっとしてないんだが、一体何に猛反論してるつもりなのだキミは
関係ない話ベラベラし始めることこそ典型的な詭弁だよ(この場合目的が全くわからんが)
>>932に書いた内容といえば
・ライセンスと契約を同じもののように語ってるのが典型的な誤謬であると指摘して
・「自由」という語の使い方が自由過ぎることを糾弾して
・諸々の根拠を著作権に委ねるならその運用は国による要素を多分に含むと示唆している
というこれだけで、これらには返す言葉もないというのが本音でしょう
> GPL1 のリリース日の時点では
これはお前が今突然言い出したことなので元々の話とは全く関係ないが、GPL が当時と同じように理解されて運用されてるのと思ってるならやっぱ単純なアタマのつくりしてるね >>936
ライセンスは契約だし、 GPL が言うところの「自由」は定義されている。
その「自由」が辞書的な意味とは異なるかもしれんが、 (この場合の) 意味は明白で解釈の幅はない。
「自由」という言葉をあてるのがクソというのがあなたの主張?
著作権の運用が国ごとに違うのは仕方がないが、
GPL の考え方に法的根拠を与えるには他に方法がないのも事実だ。
クソみたいに著作権意識のない国では通用しないから GPL は無力だということが言いたいの? >>922
Goにホストされるって敗北感
そもそもホストはGC言語なのにわざわざそれを封じて縛りプレイしてるんだからアホくせえわ アホくせえが手段が目的化する奴が多いのよ。言語にこだわるやつってのは。 >>938
>その「自由」が辞書的な意味とは異なるかもしれんが、 (この場合の) 意味は明白で解釈の幅はない。
ええ??? >>933,937,939,943
これは恥ずかしいw こんだけ言われてなんでまだ「ライセンス=契約」で行きたいんだ?
そこが覆ると自分の主張も破綻するから?
まあ難しいところではあるだろうと思うが、「ライセンスと契約は等価じゃない」ってのはあらゆるレイヤで真でしょ
ことOSSにおいては「契約はしてないけどライセンスはされている」という状況が山程あるし、そこ混同するのはやっぱ問題かと ライセンスの定義についてはどこで合意が取れてんの?
それともそういうもんは存在しなくて
定義については毎回言い争ってるの? GPLについては、ソース公開しなければならないことについては大量に述べられて
いるが、非公開で良いケースは僅かしか語られず、その場合でも沢山の例外が
述べられていて結局、非公開にするのは茨の道になるようなライセンス。 GPLの例外条項は結構曖昧で解釈の幅がある
オレオレ解釈は散見されるが最悪争う覚悟は要りそう
あとライセンスとは全く関係無い次元で製品に使うのみで
プロジェクトの開発に貢献していないと晒されたり GPLと聞いて。
自由については「誰の」自由かを明確化しないと混乱するから省略するな。GPLの自由はユーザーの自由で、それを実現するためにプログラマの自由を制限している。
ライセンスは文字通り「許諾」で、相手の同意を必要としない。契約は相手と自分の同意を必須とするから、GPLみたいに相手の同意を前提としていない仕組みを「契約」とするのは弱い(と思う)。
だからGPLでは著作権を使って、違反者にプログラムを使わせないことを強制する枠組みを用意している。 ソースコードを公開してもかまわないプログラマの自由を最大化するために作られているんだよ。
逆に言えばソースを隠したがるプログラマのことは考えていない。 レス数が950を超えています。1000を超えると書き込みができなくなります。