投稿

2月, 2026の投稿を表示しています

プログラミング言語Rustとは?

PythonやPhpよりRustでバッチ処理を作った方が圧倒的に早いので、ちゃんと学ぼうとしているときの覚書。 Gemini 3 Pro Previewと対話。 1. プログラミング言語Rustとは? 一言で言えば、 C/C++と同等のパフォーマンス を持ちながら、コンパイル時に メモリ安全性を保証 するシステムプログラミング言語。 「最も愛されるプログラミング言語」で長年1位を獲得し続けている。 参考:  Rust (プログラミング言語) - Wikipedia 2006年:Mozillaで開発がスタート。 2015年:安定版となるRust 1.0がリリース。 2022年:Linux Kernel 6.1 にて、C言語に次ぐ「第2の公式言語」としてRustがマージ。 2025年:Microsoftは2030年までに自社の主要コードベースからCおよびC++を全面的に排除し、Rustへ移行する長期方針。 2. Rustの技術的特徴 ① 所有権システム(Ownership & Borrowing) ルール : 値には必ず「所有者(変数)」が1つだけ存在する。 所有者がスコープを抜けると値は破棄(ドロップ)される。 借用(Borrowing) : 参照渡しのような機能。 「不変の参照は複数作れる」が、「可変の参照は同時に1つしか作れない」というルール(RWLockのような概念)をコンパイル時に強制する。 効果 : これにより、GCなしでのメモリ解放を実現し、さらにデータ競合(Data Race)をコンパイルエラーとして検出する。 例えると、メモリ上のデータは「1冊の貴重な本」。 プログラミング言語の世界(C++やJavaなど)では、この本をコピーしたり、みんなで同時に書き込んだりできるが、Rustの世界は物理法則に忠実。 所有権(Ownership)と ムーブ(Move) : 本を持てるのは、常に世界でたった一人だけ。 最後に本を持っていた人が責任を持って捨てる(メモリを解放)。 借用(Borrowing) : 見るだけなら、何人でも同時に貸していい。 貸している間、所有者も本を捨てたり書き換えたりできない(読んでいる人が困るから)。 可変の借用(Mutable Borrowing) : 書き込みたいなら、貸せるのは「たった一人」だけ。...

FreeBSD14でRustのビルド環境を整える

Rustのビルド環境を構築しているときの覚書。 Gemini 3 Pro Previewと対話。 環境: FreeBSD 14.3-RELEASE-p8 arm64 1. Rustをインストール ARM64の環境ではrustupは提供されていない。 pkg経由で検索。 # pkg search rust Rust開発支援ツール rust-analyzer: Rust言語用の「言語サーバー(LSP)」。 rust-mode: テキストエディタ Emacs 用のプラグイン。 rust-script: Rustのコードを、PythonやShellスクリプトのように「コンパイル手順なしで」実行できるようにするツール。 C言語連携ツール(高度な開発用) rust-bindgen-cli: C言語(および一部C++)のヘッダーファイル(.h)を読み込み、Rustから呼び出せるようにするためのバインディングコード(ラッパー)を自動生成するツール rust-cbindgen: 上記とは逆で、RustのコードからC言語用のヘッダーファイル(.h)を生成するツール ユーティリティ(Rust製コマンド) rust-coreutils: GNU coreutils(ls, cp, mv, cat など)をRust言語で書き直すプロジェクト(uutils)の成果物。通常はインストール不要。 rust-findutils: GNU findutils(find, xargs, locate)をRust言語で書き直したもの。通常はインストール不要。 ビルドするだけなので、rustだけインストール。 # pkg install rust 確認。 # rustc --version rustc 1.92.0 (ded5c06cf 2025-12-08) (built from a source tarball) # cargo --version cargo 1.92.0 (344c4567c 2025-10-21) (built from a source tarball) 2.Rustツールの解説 コンパイラ・基本ツール rustc: Rustコンパイラ本体。 通常は cargo build や c...

またSpamhausのCSSブロックリストに登録された(IPv6)

またSpamhausのCSSブロックリストに登録されてサーバーからメール送信できなくなったので調査したときの覚書。 Gemini 3 Pro Previewと対話。 環境: FreeBSD 14.3-RELEASE-p7 amd64, Postfix 3.10.6 Postfixのバージョン確認。 # postconf mail_version 1. 送信メールがブロックされた理由 maillogを確認。 # less /var/log/maillog jp.mail.protection.outlook.com[2a01:...::] said: 550 5.7.1 Service unavailable, Client host [2400:...:135] blocked using Spamhaus. To request removal from this list see https://www.spamhaus.org/query/ip/2400:...:135 AS(1440) [OS3PEPF0000003E.JPNP286.PROD.OUTLOOK.COM 2026-01-31T20:00:10.242Z 08DE60A93EBF9B50] (in reply to RCPT TO command)) maillogのURLにアクセスすると下記メッセージ。 CSS Blocklist - Why is this IP address listed? Your IP address is either exhibiting suspect behavior, is misconfigured, or has a poor sending reputation. As a result, this IP is listed in the CSS Blocklist (CSS) Click on More Info to see if you can request a delisting from this blocklist. This will also display any further information we have relating to this listing. Less Info Why is 2400:...