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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
700
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
The SEO Collaboration Effect
kristinabergwall1
1
510
A Soul's Torment
seathinner
6
3.3k
Product Roadmaps are Hard
iamctodd
55
12k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
56k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
330
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
410
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
400
The Cult of Friendly URLs
andyhume
79
7k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
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の時期メジャーリリースに期待 • うわさを聞いたので • より静的コンパイルを行えるように • 互換性を崩しても性能をより出せる変更を • よりメモリフットプリントの小さいランタイム •
型チェック • よりよいドキュメント
以上ありがとうございました