RubyKaigi で配ったフロッピーから Ruby 0.49 をビルドする
#LT資料 TokyuRuby会議12
id: mizukmb mizukmb.icon
自己紹介
Yuto Mizushiri ( mizukmb ) mizukmb.icon
GitHub.icon GitHub
Mastodon.icon Mastodon ( mstdn.nere9.help/@mizukmb )
Twitter.icon Twitter
Misoca.icon 株式会社Misoca Web アプリケーションエンジニア
Rubyフロッピーをノベルティとして配りました
https://gyazo.com/513f1d69ee18235f9a56c1ff66e3b417
RubyKaigi2018 で現存する最古の Ruby をフロッピーディスクに入れて配布します - Misoca開発者ブログ
書きましたmizukmb.icon
見た目だけじゃなくて実際に Ruby.icon Ruby 0.49 のソースコードが入ってます
macOS High Sierra でもビルドできます
https://gyazo.com/78b1289277bee1a8c9adfeee8ff358af
https://gyazo.com/072b264d329c89b33a1714acc619bad9
が、ちょっとだけ工夫が要る
ちなみにUbuntu 16.04 でもビルドできた
Linux の方が難易度低い
手順
FDD を入手します
Rubyフロッピーを読み込みます
ローカルにコピーします
gcc をビルドします
llvm-gcc ではダメ
3時間くらいかかる
Ruby0.49 にパッチを当てます
https://github.com/charliesome/historical-rubies/blob/master/ruby-0.49.patch
gcc で Ruby0.49 をビルドする
完成
実演
RubyKaigi2018 で現存する最古の Ruby をフロッピーディスクに入れて配布します - Misoca開発者ブログ
こちらの内容に沿って進めます
Ruby0.49 について少し
Fizzbuzz です
code:ruby
class FizzBuzz
def self.call(num)
for n in 1..num
case 0
when n % 15
print('FizzBuzz')
when n % 5
print('Buzz')
when n % 3
print('Fizz')
else
print(n)
end
end
end
end
FizzBuzz.call(15)
true/false がまだオブジェクトとして存在してない (条件は1 or 0 or nil で判定してるっぽい)