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
Fukuoka Ruby Award 10th
Search
take_cheeze
March 20, 2018
280
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
400
html5everをスクリプト言語から呼ぶ
takecheeze
0
270
mgemのCIを支える諸々
takecheeze
2
570
Go_2のドラフトを読む__エラー編_.pdf
takecheeze
0
1.8k
fukuoka.rb 祝 #100!
takecheeze
0
690
dep ensure浅掘り
takecheeze
0
470
LuaJIT as a Ruby backend
takecheeze
1
3.8k
コンパイル時計算への招待.pdf
takecheeze
1
1.4k
mrubyにとるRubyのシングルバイナリ運用
takecheeze
0
1.4k
Featured
See All Featured
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
The Curse of the Amulet
leimatthew05
2
13k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.6k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
590
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
From π to Pie charts
rasagy
0
230
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
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の時期メジャーリリースに期待 • うわさを聞いたので • より静的コンパイルを行えるように • 互換性を崩しても性能をより出せる変更を • よりメモリフットプリントの小さいランタイム •
型チェック • よりよいドキュメント
以上ありがとうございました