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 製ソフトウェアのバージョン管理について
Search
puripuri2100
June 08, 2023
Programming
0
500
研究の場においてのRust 製ソフトウェアのバージョン管理について
puripuri2100
June 08, 2023
Tweet
Share
More Decks by puripuri2100
See All by puripuri2100
気胸の胸部CTデータの可視化
puripuri2100
0
210
SATySFiで作成する構文解析器
puripuri2100
0
160
SATySFiの開発についての要望
puripuri2100
0
350
法律文書の自動解析
puripuri2100
1
560
汎用的なコードフォーマットライブラリの作成
puripuri2100
0
280
ユーザーがカスタマイズできるクラスファイル ―v0.0.x と v0.1.x それぞれでの実装 ―
puripuri2100
0
270
mdbook-satysfiを作成しました
puripuri2100
0
480
mdbookのプラグインを作る話
puripuri2100
0
730
SATySFiを使用したMarkdownからLaTeXへのファイル変換について
puripuri2100
0
1.3k
Other Decks in Programming
See All in Programming
Introduction of Happy Eyeballs Version 2 (RFC8305) to the Socket library
coe401_
1
220
リハビリmruby
kishima
1
160
Folding Cheat Sheet #7
philipschwarz
PRO
0
150
CSC307 Lecture 10
javiergs
PRO
0
310
生成AIをkintoneに連携してみた
hideg
0
230
大規模マルチテナントを解決するYugabyteDBという選択肢
nnaka2992
1
250
ぼっちを避けて楽しむためのアノテコノテ / Various Tips and Tricks to Avoid Loneliness and Have Fun
nrslib
3
1.7k
企業向け生成AIアプリの 開発から得られた知見
takaakikakei
0
310
AHC035解説
terryu16
0
710
Exploring the Gradually Lost Technical Skills in the Cloud Native Era
hwchiu
2
3.9k
CSC307 Lecture 12
javiergs
PRO
0
220
CSC307 Lecture 13
javiergs
PRO
0
150
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
332
56k
Gamification - CAS2011
davidbonilla
78
4.9k
A Tale of Four Properties
chriscoyier
155
22k
Building Applications with DynamoDB
mza
89
5.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
121
18k
Robots, Beer and Maslow
schacon
PRO
157
8.1k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
16
1.6k
KATA
mclloyd
20
13k
How to Ace a Technical Interview
jacobian
274
23k
Producing Creativity
orderedlist
PRO
340
39k
Build your cross-platform service in a week with App Engine
jlugia
227
17k
In The Pink: A Labor of Love
frogandcode
139
22k
Transcript
研究の場においての Rust 製ソフトウェアの バージョン管理について 筑波大学情報科学類 2 年 puripuri2100 アークエッジ・スペース Rust
勉強会 2023 年 6 月 7 日
1/6 自己紹介 インターネットネーム: puripuri2100
1/6 自己紹介 インターネットネーム: puripuri2100 筑波大学情報科学類 2 年
1/6 自己紹介 インターネットネーム: puripuri2100 筑波大学情報科学類 2 年 SATySFi/Rust/OCaml が好き
1/6 自己紹介 インターネットネーム: puripuri2100 筑波大学情報科学類 2 年 SATySFi/Rust/OCaml が好き ドキュメントの整備・処理
構文解析
1/6 自己紹介 インターネットネーム: puripuri2100 筑波大学情報科学類 2 年 SATySFi/Rust/OCaml が好き ドキュメントの整備・処理
構文解析 筑波大学情報科学類産学間連携推進室という研究室で研究している
1/6 自己紹介 インターネットネーム: puripuri2100 筑波大学情報科学類 2 年 SATySFi/Rust/OCaml が好き ドキュメントの整備・処理
構文解析 筑波大学情報科学類産学間連携推進室という研究室で研究している 「法律文書の自動解析」というテーマ
1/6 自己紹介 インターネットネーム: puripuri2100 筑波大学情報科学類 2 年 SATySFi/Rust/OCaml が好き ドキュメントの整備・処理
構文解析 筑波大学情報科学類産学間連携推進室という研究室で研究している 「法律文書の自動解析」というテーマ 成果を情報処理学会で発表したところ大会奨励賞と学生奨励賞を受賞
2/6 研究の話 法律文書を解析していろいろなデータを抽出する 読替規定分 参照表現 略称の定義
2/6 研究の話 法律文書を解析していろいろなデータを抽出する 読替規定分 参照表現 略称の定義 解析ソフトウェアを多数作っていく上で出てきた要求
2/6 研究の話 法律文書を解析していろいろなデータを抽出する 読替規定分 参照表現 略称の定義 解析ソフトウェアを多数作っていく上で出てきた要求 よく使う機能をライブラリ化(例:数百万の条文を探索)
2/6 研究の話 法律文書を解析していろいろなデータを抽出する 読替規定分 参照表現 略称の定義 解析ソフトウェアを多数作っていく上で出てきた要求 よく使う機能をライブラリ化(例:数百万の条文を探索) 他の解析ソフトウェアでの解析結果を利用したい
2/6 研究の話 法律文書を解析していろいろなデータを抽出する 読替規定分 参照表現 略称の定義 解析ソフトウェアを多数作っていく上で出てきた要求 よく使う機能をライブラリ化(例:数百万の条文を探索) 他の解析ソフトウェアでの解析結果を利用したい 論文化して再現実験できるようにするには解析ソフトウェアごとに独立して
管理する必要がある
2/6 研究の話 法律文書を解析していろいろなデータを抽出する 読替規定分 参照表現 略称の定義 解析ソフトウェアを多数作っていく上で出てきた要求 よく使う機能をライブラリ化(例:数百万の条文を探索) 他の解析ソフトウェアでの解析結果を利用したい 論文化して再現実験できるようにするには解析ソフトウェアごとに独立して
管理する必要がある なぜ Rust
2/6 研究の話 法律文書を解析していろいろなデータを抽出する 読替規定分 参照表現 略称の定義 解析ソフトウェアを多数作っていく上で出てきた要求 よく使う機能をライブラリ化(例:数百万の条文を探索) 他の解析ソフトウェアでの解析結果を利用したい 論文化して再現実験できるようにするには解析ソフトウェアごとに独立して
管理する必要がある なぜ Rust cargo・ tokio・ serde・ anyhow があるから
3/6 依存関係のグラフ 法令データ 法令解析用ライブラリ lib.rs 判例データ 解析ソフトウェアA main.rs 解析ソフトウェアB lib.rs
main.rs 解析ソフトウェアC main.rs 解析ソフトウェアD lib.rs main.rs 解析ソフトウェアE main.rs JSON JSON
4/6 ところで 頻繁に各ライブラリが更新される 解析手法のアップデート 新しい解析手法のための新しい関数追加 実験のサイクルを高速に回すにはリリース作業は邪魔 どうする? 法令データ 法令解析用ライブラリ lib.rs
判例データ 解析ソフトウェアA main.rs 解析ソフトウェアB lib.rs main.rs 解析ソフトウェアC main.rs 解析ソフトウェアD lib.rs main.rs 解析ソフトウェアE main.rs JSON JSON
5/6 現在の依存関係の管理 リポジトリと commit タグを指定 jplaw_text = { git="https://github.com/japanese-law-analysis/ jplaw_text.git",
rev="f98b48e" }
5/6 現在の依存関係の管理 リポジトリと commit タグを指定 jplaw_text = { git="https://github.com/japanese-law-analysis/ jplaw_text.git",
rev="f98b48e" } メリット
5/6 現在の依存関係の管理 リポジトリと commit タグを指定 jplaw_text = { git="https://github.com/japanese-law-analysis/ jplaw_text.git",
rev="f98b48e" } メリット 実験を気軽に回せる
5/6 現在の依存関係の管理 リポジトリと commit タグを指定 jplaw_text = { git="https://github.com/japanese-law-analysis/ jplaw_text.git",
rev="f98b48e" } メリット 実験を気軽に回せる 「適切な設計」で時間を浪費しないで済む
5/6 現在の依存関係の管理 リポジトリと commit タグを指定 jplaw_text = { git="https://github.com/japanese-law-analysis/ jplaw_text.git",
rev="f98b48e" } メリット 実験を気軽に回せる 「適切な設計」で時間を浪費しないで済む うまくいったらたまにリリースすれば良い
5/6 現在の依存関係の管理 リポジトリと commit タグを指定 jplaw_text = { git="https://github.com/japanese-law-analysis/ jplaw_text.git",
rev="f98b48e" } メリット 実験を気軽に回せる 「適切な設計」で時間を浪費しないで済む うまくいったらたまにリリースすれば良い デメリット
5/6 現在の依存関係の管理 リポジトリと commit タグを指定 jplaw_text = { git="https://github.com/japanese-law-analysis/ jplaw_text.git",
rev="f98b48e" } メリット 実験を気軽に回せる 「適切な設計」で時間を浪費しないで済む うまくいったらたまにリリースすれば良い デメリット たまに破壊される 同じ構造体を使っているつもりでも互換性が無いことがある
5/6 現在の依存関係の管理 リポジトリと commit タグを指定 jplaw_text = { git="https://github.com/japanese-law-analysis/ jplaw_text.git",
rev="f98b48e" } メリット 実験を気軽に回せる 「適切な設計」で時間を浪費しないで済む うまくいったらたまにリリースすれば良い デメリット たまに破壊される 同じ構造体を使っているつもりでも互換性が無いことがある パッケージマネージャの恩恵が半減(submodule 時代へ逆戻り)
6/6 まとめ 研究で作るソフトウェア群の管理が難しい 実験のしやすさ 他の人にとっての再現のしやすさ 互換性の維持
6/6 まとめ 研究で作るソフトウェア群の管理が難しい 実験のしやすさ 他の人にとっての再現のしやすさ 互換性の維持 モノは https://github.com/japanese-law-analysis に全てあります
6/6 まとめ 研究で作るソフトウェア群の管理が難しい 実験のしやすさ 他の人にとっての再現のしやすさ 互換性の維持 モノは https://github.com/japanese-law-analysis に全てあります 俺ってどうしたらいいですか状態