Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rust LT #3 dalance
Search
dalance
March 25, 2019
Programming
1
790
Rust LT #3 dalance
dalance
March 25, 2019
Tweet
Share
More Decks by dalance
See All by dalance
RTL talk #17 dalance
dalance
0
510
ArkEdge LT #1 dalance
dalance
3
480
Shinjuku.rs #8 dalance
dalance
2
630
RTL talk #16 dalance
dalance
1
800
Other Decks in Programming
See All in Programming
CQRS/ES avec Symfony, c’est (trop) bien !
jeremyfreeagent
1
630
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
100
Folding Cheat Sheet #2
philipschwarz
PRO
0
110
Git Rebase
bkuhlmann
11
1.6k
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
26
7.9k
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
480
try! Swift Tokyo 初参加報告LT
hinakko2
0
190
1BRC--Nerd Sniping the Java Community
gunnarmorling
0
300
TYPO3 v13 – The road to LTS: What's new and new APIs
luisasofie_xoxo
0
180
try!Swift Tokyo 2024 参加報告 LT
akidon0000
1
190
AWS Application Composerで始める、 サーバーレスなデータ基盤構築 / 20240406-jawsug-hokuriku-shinkansen
kasacchiful
1
250
エンターテイメント業界で利用されるAWS
demuyan
0
200
Featured
See All Featured
KATA
mclloyd
14
12k
Web Components: a chance to create the future
zenorocha
305
41k
Mobile First: as difficult as doing things right
swwweet
216
8.6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
115
18k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
The Art of Programming - Codeland 2020
erikaheidi
41
12k
RailsConf 2023
tenderlove
2
530
Done Done
chrislema
178
15k
BBQ
matthewcrist
80
8.7k
Raft: Consensus for Rubyists
vanstee
132
6.2k
Designing Experiences People Love
moore
136
23k
Atom: Resistance is Futile
akmur
258
25k
Transcript
RustとLSI開発 dalance
LSIの設計とは • ソフトウェアの場合 ◦ ソースコードを書く ◦ コンパイル ◦ 実行 •
LSI の場合 ◦ ソースコードを書く(例えば SystemVerilog などで) ◦ コンパイル(的な何か) ◦ 製造
LSIの設計とは • ソフトウェアの場合 ◦ ソースコードを書く ◦ コンパイル ◦ 実行 •
LSI の場合 ◦ ソースコードを書く(例えば SystemVerilog などで) ◦ コンパイル(的な何か) ◦ 製造 よく似ているので、同じような開発 手法やツールが使える。 CI とか git とか。
ソフトと違うところ • ソフトウェアの場合 ◦ ソースコードを書く ◦ コンパイル ◦ 実行 •
LSI の場合 ◦ ソースコードを書く(例えば SystemVerilog などで) ◦ コンパイル(的な何か) ◦ 製造 ここの規模感はだいぶ違う。 コンパイル 1 回に数日~数週間 中間ファイルが数 GB ~数百 GB
ソフトと違うところ • ソフトウェアの場合 ◦ ソースコードを書く ◦ コンパイル ◦ 実行 •
LSI の場合 ◦ ソースコードを書く(例えば SystemVerilog などで) ◦ コンパイル(的な何か) ◦ 製造 ここの規模感はだいぶ違う。 コンパイル 1 回に数日~数週間 中間ファイルが数 GB ~数百 GB 大きなファイルを素早く扱うための サポートツールをRustで書いてます
作ったもの(1) • amber ◦ いわゆる grep alternative ◦ 大きなファイルを分割してマルチスレッドで検索する ▪
ここだけなら ripgrep にも勝っている(普通の検索は ripgrep ものすごく速いです) • ptags ◦ ctags ( vim 用の tag 生成プログラム)のラッパー ▪ LSI 開発時のリポジトリは 1TB 近くになるので、 ctags を普通に実行すると終わらない ◦ .gitignore と git-lfs を除外して、マルチスレッドで並列実行できる
作ったもの(2) • pipecolor ◦ 標準出力をパイプで受け取って色付けするツール ▪ 正規表現でマッチさせて好きな色を付けられる ◦ LSI 系のツールは
cargo/rustc のように色がつかなくて分かりにくいので • procs ◦ プロセス情報表示ツール( ps alternative ) ▪ 標準でカラー表示できて、簡単に絞り込める ◦ LSI 系のツールは貴重な!ライセンスをつかんだまま死んでしまうことがある
まとめ • LSI 開発で(無理やり?) Rust 使ってます • Rust の良いところ ◦
開発速度が速い: cargo/crates.io のおかげで ◦ 実行速度が速い:データが大きくても困らない ◦ エラーハンドリング:予想外の例外で落ちたりしない