Rust の Index bounds check の性能影響を調べてみた

Rust の配列 (Vec<T> や [T] など) では、インデックスアクセス時に境界チェック (index bounds check) が常に行われます。 常に行われる、というのはビルドの種類 (リリースビルド・デバッグビルド) に依存しないという意味です。 とにかく安全性を重視する Ru</t>…

Xperia Z5の画面が割れてタッチに反応しなくなった時にやったこと

機種変更して1ヶ月くらいのXperia Z5の画面を割ってしまう事故を起こしてしまった時にやったことを記録がてらメモ。 同じような事故を起こしてしまった人の助けとなれば。。。 前提 機種: Xperia Z5 (au) 故障内容: 画面のガラスが割れ、タッチ操作が行えな…

EmscriptenでRustをJavaScriptへコンパイルする

以前のエントリではうまくいかなかった、RustのJavaScriptへのコンパイルですが、 gifnksm.hatenablog.jp 先日フォーラムに投稿されていたやり方をまねるだけで簡単にできるようになっていました。 internals.rust-lang.org Rust本体にEmscripten対応が取り…

EmscriptenでRustをJSへコンパイルする (コンパイルできてない)

2016/3/8追記 うまくいきました。エントリ書きました。 gifnksm.hatenablog.jp RustでEmscriptenを使う方法を調べたのでメモ。2015年12月28日時点でなんとか動作させるための手順です。今後オフィシャルにEmscriptenサポートが入るなどすると、もっと簡単な…

kcovを使ってRustプログラムのカバレッジを測定する

本記事は Rust Advent Calendar 2015 13日目の記事です。 前置き Rust 1.5リリースおめでとうございます!!! cargo install の登場により、Rust製ツール群のインストールが飛躍的に楽になりました。最近のアップデートに追従できていなかったという方も、…

Power Assert を Rust で作ってみた

素敵な表示をしてくれるassertionライブラリ、Power Assert を Rust でも実現してみました!!! gifnksm/power-assert-rs Assertion failure 時にこんな感じに分かりやすくメッセージ出力してくれます。使い方は GitHub参照ください。 $ cargo run --exampl…

rustで変なテトリスを書いた

Rust1.0リリースパーティーで、絶対にPistonを使ってみるぞ!!!と決心してから早3ヶ月、やっとPistonを触ってみました。 Piston触ってみようかな #rustlang— ぎふ (@gifnksm) 2015, 5月 16 チュートリアル編 RustリリースパーティーでLTをされていた、http…

rustでtelnetチャットを書いた

ソケットプログラミングの練習でよくあるアレをrustで書いてみた。 https://github.com/gifnksm/telnet-chat クライアントプログラム書くのがダルかったので、telnet を使う仕様にした。 \ から始まるコマンドを打つことで、参加者一覧を出したりできる。 練…

gunosyから元記事に自動的に飛ぶユーザースクリプト

gunosy_redirect.user.js (インストール) Gunosyから届くメールのリンクのうちいくつかが元記事ではなくGunosy内に転載された記事に飛ぶようになっていて(例)腹が立ったので書いたので広報する。 ページ内から「元記事を探す」のリンクを探してきて、locatio…

multirust で今日から始める快適 rust 生活

Rust 1.0 リリースおめでとうございます!!!! Rust 1.0 がリリースされました!!!!めでたい!!!!!! このリリースは非常に大きな一歩です。これまではコンパイラのバージョンが上がる度にコードを頑張って修正する必要がありましたが、今後はstabl…

Rust nightly の x86_64, i686 両対応版の PKGBUILD

タイトルの通りのブツです。これを参考にして rust-bin-nightly を改造した感じです。 パッケージのビルド時間が短くなって大変ハッピー。 # Maintainer: NAKASHIMA, Makoto <makoto.nksm@gmail.com> pkgname=rust-nightly-bin pkgver=2015.01.25 pkgrel=1 arch=('i686' 'x86_64') p</makoto.nksm@gmail.com>…

Rustでコンパイル時処理に挑戦する

この記事は Rust Language Advent Calendar 2014 の21日目の記事です。 20日目はRyuseiさんの「Go, Rust, Haxeによる正規表現エンジン実装の読み比べ - M59のブログ」、22日目はwoxtuさん担当です。 Rustのコンパイル時処理 システムプログラム界隈でコンパ…

nicovideo Thumbinfo popup 更新 (現カテゴリタグに追従)

nicovide Thumbinfo popup を更新しました。 nicovideo Thumbinfo popup (Greasy Fork) カテゴリタグデータを最新化しました。 (316さん、ご指摘ありがとうございます)

nicovideo Thumbinfo popup の配付サイトを移動 & @grant 対応

超久々 Greasemonkey 更新情報です。 nicovideo Thumbinfo popup の配付サイトとして利用していた userscripts.org が死亡したらしいので、 新しい配付サイトとして Greasy Fork へと移動しました。 nicovideo Thumbinfo popup (Greasy Fork) スクリプトの自…

swift-lang 処理系のインストールからFizzBuzzプログラムの実行まで

今話題の Swift 言語を触ってみました。Linuxで。 処理系のインストール バイナリからのインストールは、Quickstart guideというテキストに非常に簡潔にまとまっています。 $ wget http://swift-lang.org/packages/swift-0.94.1.tar.gz $ tar xvf swift-0.94…

無料ダウンロードできる言語処理系まとめ

言語は適当にチョイス。順番も適当。文言はパッと見で目立つものをピックアップ。 言語処理系にはランタイムとかコンパイルも含むゆるふわな分類です。 言語 ベンダ・処理系名 文言 Cなど GNU, GCC GCC, the GNU Compiler Collection Rust Mozilla, rustc Ru…

特定の major-mode "以外" の場合に hook を設定にする emacs lisp

やり始めたら 30 分くらいハマってたのでメモ。 以下コードは、 rust-mode "以外" の場合に after-save-hook に executable-make-buffer-file-executable-if-script-p を設定するものです。 (defun after-change-major-mode-hook-fn () (unless (eq major-mo…

rustpkg test でプロダクトコード中に書かれたユニットテストを実行する

以下のようなパッケージ foo が存在したとします。 // src/foo/lib.rs #[crate_id = "foo"]; pub fn super_complex_function() -> uint { 42 } #[cfg(test)] mod test { #[test] fn test_super_complex_function() { assert_eq!(42, super::super_complex_fu…

はてなブログおみくじ2014

はてなブログおみくじ2014 久方ぶりの更新がコレってのもかなりアレ感ありますね。そのうち、なんかちゃんとしたもの書きます。

Rust 基礎文法最速マスター (rust 0.7 編)

警告 (2014/1/25 追記) 以下の記事ですが、今となっては通用しない記述が多く含まれています。 0.7 から現在までに行われた大きな変更としては、思いつくだけでも 言語組み込み機能としての managed box が非推奨になった (将来削除され、ライブラリによる実…

デザインのテスト

見出しのデザインを考えるためのテスト記事です。 最高レベルの見出し 本文 2 番目のレベルの見出し 本文 3 番目のレベルの見出し 本文 4 番目のレベルの見出し 本文 5 番目のレベルの見出し 本文

はてなブログに移転しました

はてなブログに記事をインポート&はてなダイアリーからのリダイレクト設定をしました。 さんざん放置してたダイアリーの移転なので、特にこれといって変化はないでしょうが、 今後はちょくちょく記事書いて日常のあれやこれやを記録に残せたらなあ、と思い…

rust-incoming-git の PKGBUILD

rust の最新の変更の commit 先が master ブランチから incoming ブランチに変更されたため、 master ブランチの動きが少なくなってしまい寂しかったので、 incoming ブランチ用の PKGBUILD を作成しました。ついでに、AUR にアップしておきました。 AUR (en…

rust-git の PKGBUILD

AUR にある rust-git が、makepkg しようとすると毎回 llvm やら libuv のサブモジュールを clone しようとして時間がかかって仕方が無いので、初回だけ clone するように修正してみた。ついでに、コンパイラとして clang を使う設定もいれてみた。 既にある…

Rust で ProjectEuler #8 ~ #12

Problem 8 入力された数列に含まれる5つの連続した数の積のうち、最大のものを求める問題。 最新版ソース use std; fn main() { const prod_len: uint = 5u; let input = " 73167176531330624919225119674426574742355349194934 969835203127745063262395783…

Rust で ProjectEuler #4 ~ #7

Problem 4 3桁の2つの数の積で表せる最大の palindrome な数。 最新版ソース use std; fn to_palindromic(n: u64, dup_flag: bool) -> u64 { let cs = str::chars(u64::to_str(n, 10u)); let s = str::from_chars( if dup_flag { cs + vec::tail(vec::revers…

Rust で ProjectEuler のレポジトリを github で公開しました

レポジトリ作った。ソースは適宜修正していく予定ですので、最新版はこちらを参照してください。 gifnksm/ProjectEulerRust · GitHub

Rust で ProjectEuler #1 ~ #3

放置状態になっていたProject Eulerを再開してみることにしました。以前はHaskellでProb. 133まで解いてHaskellに慣れることができたので、今回はRustで書いてみようと思います。Haskellは最後まで使いこなせてる感は出なかったのですが、遅延評価ではないRu…

Rust で Generic な数値型を作る

ちまたで話題(?) の Rust 言語。昨年末くらいから「日本語情報が全然無い、先駆者になるチャンス!」とか思いながらのろのろしてたら、先日の0.1版発表で一気に知名度が上がってしまい(´・ω・`)としているgifnksmです。 0.1リリースでいろいろ変わりました…

Titech Portal Auto Loginの更新とメンテナー募集のお知らせ

Titech Portal Auto Loginを更新しました。更新内容は,ソースコードの整理です。 作者修了につき,多分これが最後の更新になります。東工大ポータルの仕様が変わらない限り現在のスクリプトは動き続けると思いますが,将来的に正しく動き続けるかどうかは分…