Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Fukuoka Ruby Award 10th
Search
take_cheeze
March 20, 2018
290
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Fukuoka Ruby Award 10th
take_cheeze
March 20, 2018
More Decks by take_cheeze
See All by take_cheeze
goluaをさわってみる
takecheeze
0
420
html5everをスクリプト言語から呼ぶ
takecheeze
0
290
mgemのCIを支える諸々
takecheeze
2
580
Go_2のドラフトを読む__エラー編_.pdf
takecheeze
0
1.8k
fukuoka.rb 祝 #100!
takecheeze
0
710
dep ensure浅掘り
takecheeze
0
480
LuaJIT as a Ruby backend
takecheeze
1
3.9k
コンパイル時計算への招待.pdf
takecheeze
1
1.5k
mrubyにとるRubyのシングルバイナリ運用
takecheeze
0
1.4k
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
Marketing to machines
jonoalderson
1
5.9k
Ruling the World: When Life Gets Gamed
codingconduct
0
420
Test your architecture with Archunit
thirion
2
2.5k
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
The Art of Programming - Codeland 2020
erikaheidi
57
14k
New Earth Scene 8
popppiees
4
2.7k
KATA
mclloyd
PRO
35
16k
Mobile First: as difficult as doing things right
swwweet
225
10k
WCS-LA-2024
lcolladotor
0
910
Everyday Curiosity
cassininazir
0
360
The Mindset for Success: Future Career Progression
greggifford
PRO
0
540
Transcript
mrbgem CI 2018/03/13 福岡Ruby大賞 本審査 株式会社 Fusic 渡辺 丈
自己紹介 • GitHub ID: @take-cheeze • mruby contributers 4位くらいの人 •
去年7月から福岡に越してきた
やったこと • mgem-listにあるmrbgemが正しくビルドできてテストが通る かチェックするだけのサーバーをIIJ GIO上に作った • https://103.128.221.202.static.iijgio.jp/jenkins/ • 詳しくは: https://qiita.com/take_cheeze/items/912b62637afab1b6c06
d
動機 • mgem-listにあっても基本メンテがそれほど期待できない • sanitizerでチェックしただけでバグがいっぱい見つかる • 軽微なのはメモリリーク系のバグ • メモリアクセス違反 •
APIを正しく利用していないケース • 仕事の息抜きに簡単な修正をしたかったので • GitHubの芝に
mruby/Rubyを使った部分 • Jenkinsのジョブ生成にRubyスクリプトを利用 • JenkinsでRubyスクリプトの実行がサポートされていたので • https://github.com/mrbgems/jenkins • そもそもテスト対象がmruby •
Docker+Jenkinsの比重が高いので実際にRubyを利用した部分 は少ない • Rubyはやはり書き捨てるようなスクリプトに最適
修正したmrbgem一覧 • mruby-thread • mruby-uv • mruby-r3 • matsumotory/mruby-geoip 5
commits • bggd/mruby-channel 5 commits • matsumotory/mruby-fast-remote-check 2 commits • Asmod4n/mruby-getpass 2 commits • baldowl/mruby-bcrypt 2 commits • takumakume/mruby-file-access 2 commits • take-cheeze/mruby-leveldb2 commits • haconiwa/mruby-exec 1 commit • jbreeden/mruby-zlib1 commit • udzura/mruby-posix_ipc 1 commit • iij/mruby-simple-random1 commit • dearblue/mruby-aux 1 commit • UniTN-Mechatronics/mruby-fsm 1 commit • matsumotory/mruby-eventfd 1 commit • h2so5/mruby-sha2 1 commit • mattn/mruby-sha11 commit • dearblue/mruby-lz41 commit • dearblue/mruby-zstd1 commit
今後 • 3月中にIIJ GIOの期限が切れるそうなのでひとまずそれまで運 用予定 • どこかに移せないこともないが、趣味でやる枠を外れつつある • ビルドサーバー自体にそれなりのスペックを要求 •
自宅に置くと管理が難しい • mingw+wineとかdarlingでWindowsとmacOSのテスト • できればスポンサーがいれば… • mruby本体へのフィードバック
mrubyのビルドシステムの課題 • mrbgemなどのバージョン固定をできるロックファイル • mruby/cの同梱 • システム自体のメンテナンス性向上 • CRubyなしでの利用 •
並列ビルド • CRuby gemを変更無しでmrubyに取り込めるように • Rustのサポート(C言語で書くことの限界) • Cのコードの静的チェックをlibclangで行えるように
LLVM/clangの活用 • 最高クラスの品質を持つC系言語処理系 • パーサーの利用しやすさによるツールの充実 • clang-format • clang-tidy •
clangd • 他の言語ではlibclangを用いたグルーコードの自動生成 • rust-bindgen • Cray言語のbindgen • clangのLibToolingによるCのソースコード書き換え
mrubyの時期メジャーリリースに期待 • うわさを聞いたので • より静的コンパイルを行えるように • 互換性を崩しても性能をより出せる変更を • よりメモリフットプリントの小さいランタイム •
型チェック • よりよいドキュメント
以上ありがとうございました