by
Anonymous Coward
on 2017年10月25日 11時12分
(#3301092)
$ cat foo.rb
#!/usr/bin/env ruby last = ARGV[0].to_i + 1
print <<MAIN #include<stdio.h> int main () { MAIN
last.times do |x|
if x == 0 then
print ""
elsif x % 15 === 0 then
print <<-FIZZBUZZ
printf("fuzzbuzz\\n");
FIZZBUZZ
elsif x % 5 === 0 then
print <<-BUZZ
printf("buzz\\n");
BUZZ
elsif x % 3 === 0 then
print <<-FIZZ
printf("fizz\\n");
FIZZ
else
print <<-NORMAL
printf("#{x}\\n");
NORMAL
end end
print <<END
return 0; } END
$ ruby foo.rb 100000000 > x.c $ ls -alF x.c -rw-r--r-- 1 user user 2.7G 10月 25 10:26 x.c
OSのコンパイルをしてみるとか (スコア:1)
128GBあれば、快適にOSをコンパイルできそう。
Re: (スコア:3, おもしろおかしい)
数年前、ちょっとした思いつきで、
printf("fizz\n");
printf("buzz\n");
なんてのを一つの*.c に山ほど書いてコンパイルしたことがありますが、約1億行(ファイルサイズ2GB)あたりで限界が来ました(Core i7 、メモリ6GB)。
スワップが70GBにもなり、数時間で機器が操作不能になったように記憶します。
この機器ならできそうだけど、できてもあまり意味なさそう。
(処理系の隠れたバグをほじくれるかも?)
なんでこんな嘘コメがスコア:3なの? (スコア:0, おもしろおかしい)
いにしえのKDEが誇る、有名すぎるビルドスイッチ、『--enable-final』
全ての.cppファイルをまとめて、たったひとつの.all_cpp.cppというファイルにしてコンパイルするだけという凶悪なコンパイル時オプション
そんな--enable-finalを有効にして、テンプレートてんこもりの巨大なC++ファイルをビルドしたって、3~4GBもあれば楽勝なのにもかかわず
printfでfizzbuzzを1億行ほど繰り返してあるだけのものが70GBのスワップを使い切ったという意味不明さ
こんなしょうもない作り話を考えたバカは勿論
そんなことさえ見抜けない、スラドのモデレータのレベルの低さには、もはや絶望を感じざるをえない
うそはうそであると見抜ける人でないと(スラドを使うのは)難しい
Re:再確認してみたよ。 (スコア:0)
$ cat foo.rb
#!/usr/bin/env ruby
last = ARGV[0].to_i + 1
print <<MAIN
#include<stdio.h>
int main () {
MAIN
last.times do |x|
if x == 0 then
print ""
elsif x % 15 === 0 then
print <<-FIZZBUZZ
printf("fuzzbuzz\\n");
FIZZBUZZ
elsif x % 5 === 0 then
print <<-BUZZ
printf("buzz\\n");
BUZZ
elsif x % 3 === 0 then
print <<-FIZZ
printf("fizz\\n");
FIZZ
else
print <<-NORMAL
printf("#{x}\\n");
NORMAL
end
end
print <<END
return 0;
}
END
$ ruby foo.rb 100000000 > x.c
$ ls -alF x.c
-rw-r--r-- 1 user user 2.7G 10月 25 10:26 x.c
Cのサイズは若干違うかも。
当時の環境はもちろん残ってない。今回は10分ほどでコンパイルが中断してしまった。