rust
https://github.com/rust-lang/rust/blob/e9271846294c4ee5bd7706df68180320c0b5ff20/library/std/src/sys/wasi/thread.rs#L137 *1 pub fn sleep(dur: Duration) { let nanos = dur.as_nanos(); assert!(nanos <= u64::MAX as u128); const USERDATA: wasi::…
Ruby 3.2.0がリリースされました。 rbenv + ruby-buildをつかってインストールできます。 Ruby 3.2.0のYJITを有効にするにはrustcがある環境でコンパイルする必要があります。 WSLにrustをインストールしていませんでした。 インストールします。 www.rust-l…
RomeプロジェクトのJavaScriptフォーマッターがリリースされました。 rome.tools ちょうどPrettier を使っているプロジェクトがあったので比較してみました。 本当にめちゃくちゃ速い。prettierで8秒掛かるのが0.5秒とかで終わる。— ぎゃばん@手洗い (@ledsu…
行番号を出力する機能が増えました。 fn main() { let search_term = "picture"; let quote = "\ Every face, every shop, bedroom window, public-house, and dark square is a picture feverishly turned--in search of what? It is the same with books. …
詳解Rustプログラミング作者:Tim McNamara翔泳社Amazon 「2.9 grep-liteを作る」です。 fn main() { let search_term = "picture"; let quote = "\ Every face, every shop, bedroom window, public-house, and dark square is a picture feverishly turned-…
rust 1.58がでたので、rustの環境を更新します。 PS C:\Users\led_l\rust_land\grep-lite> cargo --version cargo 1.57.0 (b2e52d7ca 2021-10-21) PS C:\Users\led_l\rust_land\grep-lite> rustc --version rustc 1.57.0 (f1edd0429 2021-11-29) PS C:\Users…
詳解Rustプログラミング作者:Tim McNamara翔泳社Amazon 「2.7 プロジェクト:マンデルブロ集合のレンダリング」です。 use num::complex::Complex; fn calculate_mandelbrot( max_iters: usize, x_min: f64, x_max: f64, y_min: f64, y_max: f64, width: usi…
詳解Rustプログラミング作者:Tim McNamara翔泳社Amazon 2.7 プロジェクト:マンデルブロー集合のレンダリングのサンプルプログラムを動かしたいです。 numというクレートを使うようです。 rustにはクレートと呼ばれるJavaScriptでのnpmパッケージのようなも…
詳解Rustプログラミング作者:Tim McNamara翔泳社Amazon の、2.4 フロー制御を読みました。 Rangeみたいな記法があったり、関数の最後の式のreturnが省略できたりRubyみたいです。 switch-case はなくパターンマッチングだけがあるそうです。 獲得した知識を…
今回はスレッドのレースコンディションを検出する例です。 use std::thread; fn main() { let mut data = 100; thread::spawn(|| { data = 100; }); thread::spawn(|| { data = 100; }); println!("{}", data); } これをcargo runすると次のようにどどっとコ…
1.6.1 Rustの目標:安全性 詳解Rustプログラミング作者:Tim McNamara翔泳社Amazon の15ページのサンプルプログラムです。 #[derive(Debug)] enum Cereal { Barely, Millet, Rice, Rye, Spalt, Wheat } fn main() { let mut grains: Vec<Cereal> = vec![]; grains.pus</cereal>…
ディレクトリがすでにある状態でcargo newするとエラーになります。 cargo newのエラー エラーメッセージに従い、cargo initを使います。 すでにあるディレクトリの中にrustのパッケージ開発環境を作れます。 cargo initを実行したところ 次のようにパッケー…
CSVを操作するプログラムを改造してみます。 細かい操作はよくわからないので、数値を2倍にして出力してみます。 fn main() { let penguin_data = "\ common name, length (cm) Little Penguin, 36 Yellow-eyed Penguin, 65 Fiordland Penguin, 76 Invalid, …
rustのリファレンスをどうやって見れば良いのでしょうか? VSCodeでlinesメソッドの戻り値の型を表示したところ Vector型ではなくLine型という専用の型のようです。 ぐぐるとLines in std::io - Rustが見つかります。 このサイトに標準ライブラリのリファレ…
引き続きサンプルプログラムを写経して実行します。 fn main() { let penguin_data = "\ common name, length (cm) Little Penguin, 36 Yellow-eyed Penguin, 65 Fiordland Penguin, 76 Invalid, data "; let records = penguin_data.lines(); for (i, recor…
CSVを処理するサンプルプログラムを動かしてみます。 cargo new peguins cd penguins code . こんな感じでパッケージをつくってVSCodeで編集します。 VSCodeでパッケージを編集する 地道に写経します。 fn main() { let penguin_data = "\ common name, leng…
詳解Rustプログラミング作者:Tim McNamara翔泳社Amazonの1章を眺めながらrustを味見します。 お正月なのでこんな感じで fn happy_new_year_world() { println!("Happy new year!"); let japanense = "謹賀新年"; let italian = "Buon anno!"; let chainese_t…