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
860
Rust LT #3 dalance
dalance
March 25, 2019
Tweet
Share
More Decks by dalance
See All by dalance
OSS Silicon EDA #1
dalance
0
130
Make CPU #3 dalance
dalance
1
530
RTL talk #17 dalance
dalance
0
580
ArkEdge LT #1 dalance
dalance
3
560
Shinjuku.rs #8 dalance
dalance
2
690
RTL talk #16 dalance
dalance
1
890
Other Decks in Programming
See All in Programming
(Deep|Web) Link support with expo-router
mrtry
0
110
実践Dash - 手を抜きながら本気で作るデータApplicationの基本と応用 / Dash for Python and Baseball
shinyorke
2
220
クラウドサービスの 利用コストを削減する技術 - 円安の真南風を感じて -
pyama86
3
240
Rails 8 Frontend: 10 commandments & 7 deadly sins in 2025
yshmarov
1
600
型付きで行うVSCode拡張機能開発 / VSCode Meetup #31
mazrean
0
230
フロントエンドの現在地とこれから
koba04
7
3.9k
VS Code extension: ドラッグ&ドロップでファイルを並び替える
ttrace
0
160
NANIMACHI
naokiito
0
930
5年分のツケを一気に払った話
soogie
3
1.1k
CSC509 Lecture 03
javiergs
PRO
0
130
2024-10-02 dev2next - Application Observability like you've never heard before
jonatan_ivanov
0
150
上手に付き合うコンポーネントテスト
quramy
3
1.2k
Featured
See All Featured
Design by the Numbers
sachag
278
19k
Fontdeck: Realign not Redesign
paulrobertlloyd
81
5.2k
Writing Fast Ruby
sferik
625
60k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Why Our Code Smells
bkeepers
PRO
334
57k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
How to Ace a Technical Interview
jacobian
275
23k
How STYLIGHT went responsive
nonsquared
94
5.1k
A Modern Web Designer's Workflow
chriscoyier
692
190k
Building a Scalable Design System with Sketch
lauravandoore
459
32k
Designing Experiences People Love
moore
138
23k
Speed Design
sergeychernyshev
22
460
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 のおかげで ◦ 実行速度が速い:データが大きくても困らない ◦ エラーハンドリング:予想外の例外で落ちたりしない