Rust part15
レス数が1000を超えています。これ以上書き込みはできません。
>>894
GC導入は各言語であまりにも異なるため失敗した
各言語が様々な形でしている効率的な方法は取れない
WebAssemblyはRust一強が続くだろう >>896
Rustはなんだかゾクゾクしますぞ!!これは服なぞ着てる場合ではありませんぞ!! まあクソネタにはクソって言っとかないと本当にウケてると思っちゃうやついるからね そうそう、クソネタにはそうやってダサいと言っておかないと スルースキルが皆無なのですわ
荒らし様にお引き取りいただけない訳も推して知るべしですわね >スルースキルが皆無
誰も自己紹介なんて頼んでないのに… wasmって流行ってるけどコード量膨大に増えすぎないか? フロントエンドの奴らが rust を使ってるの見てらんない。
TS で無難に書いておけばいいよ。 ところでものすごい今さらなんだが wasm は何て読むんだ?
ワスムか ネイティブはだいたいワズムとかウォズムみたいに発音しているような気がする >>918
これはワズムっていってないか?リスニングはからっきしのゴミ耳だからよくわからんけど asm.js(アズム ジェイエス)が進化してwasm(ワズム)に 英語できねーおっさんが蘊蓄垂れてクソワロタwww
お前らマジでプライドだけは一流の無能おじで草 >>925
もちろん Wasm は WebAssembly の省略形だよ。
公式にもそう書いてある。 それはみんな知っての上でレスしてるのに
>>925みたいな周回遅れのレスを堂々と付けれるやつって
脳みその構造どうなっとんやろな >>926
じゃあ、ウェブのアセンブラって意味で良いんじゃないの? WebAssemblyは仮想命令セットアーキテクチャあるいはプログラミング言語の一種である。略称はWasm。C・Rustなど様々なプログラミング言語のコンパイルターゲットとしてWasmバイナリは生成され、ウェブブラウザを含む様々な環境内のスタックベース仮想マシンにより実行される。
ネイティブコード相当の高速性・隔離環境でのメモリ安全な実行による安全性・仮想マシンによるハードウェア/プラットフォーム可搬性・ソースプログラミング言語中立性などを特徴とする[4]。この命令セットはバイナリ形式で定義されており、またアセンブリ言語ライクなテキスト形式も定義されている(その意味で低水準プログラミング言語といえる)。
Wasm自体は命令セットアーキテクチャであり、Linuxカーネルが提供するようなシステムコール(例: ファイルI/O)、Webブラウザが提供するようなDOMアクセスなどを提供していない。上記の安全性や可搬性はこの特徴に由来している。それと同時に、WasmエコシステムとしてはシステムコールやDOMアクセスがAPIとして個別に定義されており、Wasmランタイムが実装することでそれらの機能を提供している(例: システムコールを提供するWASI)。シンプルでオープンなISAとランタイムごとのAPIを組み合わせることでWasmエコシステムは高い拡張性を有している。例えばWasmをHTTPプロキシでのフィルタスクリプトとして利用するプロジェクトが存在する。
https://ja.m.wikipedia.org/wiki/WebAssemblyより >>930
>>931 にあるように、ウェブのアセンブラという解釈は間違ってる。
ウェブアセンブリっていう名前なだけ。
わかった? 現実問題としてWasmはRustで書くのがベストソリューション 仮想マシン上で動くという点でWASMはJavaと一緒だな >>930
そもそもアセンブラとかいってる時点でなにもわかってないから相手にするだけ無駄、無視推奨 Rustで書くとバイナリ肥大化するから、WATが基本になりそうでは? >>935
javaの問題をある程度解決したのがwasmっていう認識でおけ? それな。Javaっぽくwebvmとかwebバイナリとかいった名前の方が分かりやすかったんじゃなかろうか >>930
仮にウェブのアセンブラだとして、ウェブのアセンブラってなんやねん…… >>941
俺の予想では、それが質問内容だと思います。 DOM・シャドーDOM操作が遅いからwasmはあまり流行らない、これを何とかしない限り、シコシコts書いてるオジサンが量産される 俺は白人の読み方なんか認めんよ。
中国ならまだしも。 命名の伝統としてちょっとしたネガティブワードを使うことがあるんだよ。
いわゆるギークセンスというやつだが、日本語でいう中二病に近い。
GIMP の名前を変えるためにフォークするだのなんだのでもめたことがあるの知らんか?
Wasm もそれと同じようなノリなんじゃねーの?
https://eow.alc.co.jp/search?q=wasm >>952
きみはそう呼んでればいいと思うよ
きみにそう呼ぶ機会はないと思うけどw 菅総理が、我が国はワッセンブラに注力すると宣言したら、どうするんだよ? なるほど、、?(わからん)
WebAssembly Reference Typesで、WasmでDOMを操作する壁がここまで下がった
https://zenn.dev/igrep/articles/2021-11-wasm-reference-types DOM操作なんか、どうやっても遅いんだからワズムからいじる必要ないだろ そんなことはない、JSやTSのようなダメ言語を排して、全部ほかのコンパイル型言語で統一して書けるように考えたのに
遅いなら話にならない。うんこ wasmはjsを置き換えるものではないっていう方針がよくわからんな。置き換えていいのに。 タイプスクリプトでドム操作書いてみたら分かると思うけど、キャストだらけになる WebAssemblyはJavaScriptを置き換えようとしていますか?
いいえ!WebAssemblyは、JavaScriptを補完するものであり、JavaScriptを置き換えるものではないように設計されています。WebAssemblyは、時間の経過とともに多くの言語をWebにコンパイルできるようになりますが、JavaScriptには信じられないほどの勢いがあり、Webの単一の特権( 上記のとおり)動的言語のままです。さらに、JavaScriptとWebAssemblyは、さまざまな構成で一緒に使用されることが期待されています。
・JavaScriptを活用して物事をつなぎ合わせるコンパイル済みのC++アプリ全体。
・WebAssemblyで制御されるメインのセンターキャンバスの周りのHTML/CSS / JavaScript UIにより、開発者はWebフレームワークの力を活用して、アクセス可能なWebネイティブな感覚のエクスペリエンスを構築できます。
・ほとんどの場合、いくつかの高性能WebAssemblyモジュールを備えたHTML / CSS / JavaScriptアプリ(たとえば、グラフ化、シミュレーション、画像/音声/ビデオ処理、視覚化、アニメーション、圧縮など、今日asm.jsですでに見られる例)開発者が今日のJavaScriptライブラリと同じように人気のあるWebAssemblyライブラリを再利用できるようにします。
・WebAssembly がガベージコレクションされたオブジェクトにアクセスできる:ユニコーン:ようになると、それらのオブジェクトはJavaScriptと共有され、独自の壁に囲まれた世界には存在しなくなります。
https://webassembly.org/docs/faq/#is-webassembly-trying-to-replace-javascript より tenplate要素使ってDOMツリー作ってそこに値や要素追加して表示しろって言われた時は訳わかんなかった >>972
スペル間違うぐらいなら無理せずカタカナで書けよ フロントに全く興味ない奴らが無理してrust使おうとしてるってのがもうクソだわ Stringの中身が変化してほしい時のtrim()はどうすればよいですか? s.retain(|c| !c.is_whitespace()); >>979
そりゃそうだろw
後側の削除だけならtruncateすればいいんじゃね?
let mut s = String::from("てすと ");
let end = s.rfind(|c: char| !c.is_whitespace()).unwrap();
s.truncate(end + 1);
thread 'main' panicked at 'assertion failed: self.is_char_boundary(new_len)'
ダメだった… s.truncate(s.trim_end().len()) Linus「メモリ確保でpanicするって?認めんわ断じて認めん、ワシの目の黒い内は許さんぞ」 Linuxの話題は、あわしろを召喚しちまうから、やめとけ fn trim_in_place(s: &mut String) {
if let Some(offset) = s.find(|c: char| !c.is_whitespace()) {
s.replace_range(..offset, "");
}
s.truncate(s.trim_end().len());
}
前後で非対称なのが気になるけど文字境界をうまく扱えるStringのメソッドが他に見つからなかった > s.find(|c: char| !c.is_whitespace())
rustってこれうまいこと関数名だけ渡せないんだっけ?
しかも関数合成できれば
s.find(char::is_whitespace . not)
みたいに書けたり? 5chでまともな回答期待する方が頭おかしいことになぜ気付かないんだ
redditでDeepL使って英語で海外ニキに質問した方が1億倍まともな回答くれるぞ >>988
関数を自分で定義しとけばわたせるけど
合成しながらだとマクロ使わないと無理なんじゃないかな >>461
メソッドを増やす時にOrphanルールで出来ないとしたら
それは標準ライブラリ含めて他人が書いたトレイトを他人が書いた型に適用する場合
スライスへfindメソッドを増やすことはそれに該当しないため出来る
適当なトレイト名SliceFindMethodを用意してスライス[T]にメソッドを実装すればよい
trait SliceFindMethod<T> {
fn find(&self, pattern: impl SliceFindPattern<T>) -> Option<usize>;
}
impl<T: PartialEq> SliceFindMethod<T> for [T] {
fn find(&self, pattern: impl SliceFindPattern<T>) -> Option<usize> {
pattern.slice_find(self)
}
}
文字列へのfindと同様に様々なパターンに対応できるよう
適当なトレイト名SliceFindPatternとそのメソッドslice_find()を用意し様々な実装をすればよい
長くなるので全体のコード
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=9110b8c76b17fb479bfef80e1f10182d
これでスライスの一種であるバイト列に対してもfindが適用できる
let buffer: &[u8] = b"ABCDEFGHIHJKL";
assert_eq!(Some(5), buffer.find(b'F'));
assert_eq!(Some(3), buffer.find(b"DEF")); >>989
プログラミング情熱のある2-30代の集う板じゃなく
プログラミングはもう碌にしないおっさん・爺が多数の板だからな
質問してもおいおいな回答になるのは仕方ない >>989
翻訳の話題はあわしろを召喚しちまうからやめとけ。 rust cliコマンドがなぜrustupなのか誰も疑問に思わんの?
俺はこのupがなんなのか気になって調べても分からなくてイライラする
rustup updateとかものすごく気に入らないしそもそもrustupとcargoがあるのもややこしい >>995
今はrustcやrustfmtなど含めて全て実体は同じでハードリンク
cargoが各ワーキングディレクトリに対して適用されるのに対して
rustupは全体に適用されるため
同じ名前のサブコマンドでも全く異なる
Slot
💣🎴💣
🎰🎰🌸
🌸😜👻
(LA: 2.02, 1.95, 1.85)
Status ♥5 ♣8 ♠7 HP: 1000 pts. たぶん(0)
2.02, 1.95, 1.85(904.632812) Proc. [0.187892 sec.]
レス数が1000を超えています。これ以上書き込みはできません。