$30 off During Our Annual Pro Sale. View Details »

Rust LT #3 dalance

dalance
March 25, 2019

Rust LT #3 dalance

dalance

March 25, 2019
Tweet

More Decks by dalance

Other Decks in Programming

Transcript

  1. RustとLSI開発
    dalance

    View Slide

  2. LSIの設計とは
    ● ソフトウェアの場合
    ○ ソースコードを書く
    ○ コンパイル
    ○ 実行

    LSI
    の場合
    ○ ソースコードを書く(例えば
    SystemVerilog
    などで)
    ○ コンパイル(的な何か)
    ○ 製造

    View Slide

  3. LSIの設計とは
    ● ソフトウェアの場合
    ○ ソースコードを書く
    ○ コンパイル
    ○ 実行

    LSI
    の場合
    ○ ソースコードを書く(例えば
    SystemVerilog
    などで)
    ○ コンパイル(的な何か)
    ○ 製造
    よく似ているので、同じような開発
    手法やツールが使える。
    CI
    とか
    git
    とか。

    View Slide

  4. ソフトと違うところ
    ● ソフトウェアの場合
    ○ ソースコードを書く
    ○ コンパイル
    ○ 実行

    LSI
    の場合
    ○ ソースコードを書く(例えば
    SystemVerilog
    などで)
    ○ コンパイル(的な何か)
    ○ 製造
    ここの規模感はだいぶ違う。
    コンパイル
    1
    回に数日~数週間
    中間ファイルが数
    GB
    ~数百
    GB

    View Slide

  5. ソフトと違うところ
    ● ソフトウェアの場合
    ○ ソースコードを書く
    ○ コンパイル
    ○ 実行

    LSI
    の場合
    ○ ソースコードを書く(例えば
    SystemVerilog
    などで)
    ○ コンパイル(的な何か)
    ○ 製造
    ここの規模感はだいぶ違う。
    コンパイル
    1
    回に数日~数週間
    中間ファイルが数
    GB
    ~数百
    GB
    大きなファイルを素早く扱うための
    サポートツールをRustで書いてます

    View Slide

  6. 作ったもの(1)

    amber
    ○ いわゆる
    grep alternative
    ○ 大きなファイルを分割してマルチスレッドで検索する
    ■ ここだけなら
    ripgrep
    にも勝っている(普通の検索は
    ripgrep
    ものすごく速いです)

    ptags

    ctags

    vim
    用の
    tag
    生成プログラム)のラッパー

    LSI
    開発時のリポジトリは
    1TB
    近くになるので、
    ctags
    を普通に実行すると終わらない

    .gitignore

    git-lfs
    を除外して、マルチスレッドで並列実行できる

    View Slide

  7. 作ったもの(2)

    pipecolor
    ○ 標準出力をパイプで受け取って色付けするツール
    ■ 正規表現でマッチさせて好きな色を付けられる

    LSI
    系のツールは
    cargo/rustc
    のように色がつかなくて分かりにくいので

    procs
    ○ プロセス情報表示ツール(
    ps alternative

    ■ 標準でカラー表示できて、簡単に絞り込める

    LSI
    系のツールは貴重な!ライセンスをつかんだまま死んでしまうことがある

    View Slide

  8. まとめ

    LSI
    開発で(無理やり?)
    Rust
    使ってます

    Rust
    の良いところ
    ○ 開発速度が速い:
    cargo/crates.io
    のおかげで
    ○ 実行速度が速い:データが大きくても困らない
    ○ エラーハンドリング:予想外の例外で落ちたりしない

    View Slide