Ruby

提供: langdev
移動: 案内検索

Category:プログラミング言語: Ruby[編集]

言語名 
Ruby
作者 
まつもとゆきひろ
開発年 
ウェブサイト 
http://www.ruby-lang.org/

テンプレート:プログラミング言語


Ruby (MRI)[編集]

最初の実装。まつもとゆきひろ作という意味でMatz' Ruby Implementation(MRI)とも呼ばれる。

MRIは1.8以前のバージョンを差すのだけど、この節ではその後継であるバージョン1.9としてリリースされたYarvベースのものも含めている。

Category:プログラミング言語処理系: ruby(MRI)[編集]

言語 
Ruby
処理系名 
ruby(MRI)
開発年 
ウェブサイト 
http://www.ruby-lang.org/
パーサー 
処理系開発言語 
出力形式 

テンプレート:プログラミング言語処理系


Vagrantfile (使い方)[編集]

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "precise64"
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"
  config.vm.provision :shell, :inline => <<-EOS

aptitude update -y
aptitude install -y build-essential
wget 'ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.bz2'
tar xvf ruby-2.0.0-p247.tar.bz2
cd ruby-2.0.0-p247
./configure
make
make install

  EOS
end

テンプレート:サンプル環境


Hello, world![編集]

vagrant@precise64:~$ cat > hello.rb
puts "Hello,world!"
vagrant@precise64:~$ ruby hello.rb 
Hello,world!
vagrant@precise64:~$ 

Binary size[編集]

vagrant@precise64:~$ lddr() { echo $1;for i in `ldd $1 | cut -d ' ' -f 3`; do echo $i; lddr $i ; done; };du -chL `lddr \`which ruby\` | sort  | uniq`
44K	/lib/x86_64-linux-gnu/libcrypt.so.1
1.8M	/lib/x86_64-linux-gnu/libc.so.6
16K	/lib/x86_64-linux-gnu/libdl.so.2
1000K	/lib/x86_64-linux-gnu/libm.so.6
136K	/lib/x86_64-linux-gnu/libpthread.so.0
32K	/lib/x86_64-linux-gnu/librt.so.1
17M	/usr/local/bin/ruby
20M	total
vagrant@precise64:~$ 


mruby[編集]

また別なまつもとゆきひろ氏のRuby実装。 組込み向けにサイズを小さく保つのを目標にしているようだ。

今の所リリースされていないので、githubからスナップショットをダウンロードして実行だ。

Category:プログラミング言語処理系: mruby[編集]

言語 
Ruby
処理系名 
mruby
開発年 
ウェブサイト 
https://github.com/mruby/mruby
パーサー 
処理系開発言語 
出力形式 

テンプレート:プログラミング言語処理系


Vagrantfile (使い方)[編集]

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "precise64"
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"
  config.vm.provision :shell, :inline => <<-EOS

aptitude update -y
aptitude install -y build-essential git bison
git clone https://github.com/mruby/mruby.git
cd mruby
make
install -D bin/mruby /usr/local/bin/mruby
install -D bin/mirb /usr/local/bin/mirb
install -D bin/mrbc /usr/local/bin/mrbc

  EOS
end

テンプレート:サンプル環境


Hello, world![編集]

vagrant@precise64:~$ cat > hello.rb
puts "Hello,world!"
vagrant@precise64:~$ mruby hello.rb 
Hello,world!
vagrant@precise64:~$

Binary size[編集]

-rwxrwxr-x  1 vagrant vagrant 2.2M Aug 25 20:23 mirb
-rwxrwxr-x  1 vagrant vagrant 3.9M Aug 25 20:20 mirb.static
-rwxrwxr-x  1 vagrant vagrant 1.8M Aug 25 20:23 mrbc
-rwxrwxr-x  1 vagrant vagrant 2.9M Aug 25 20:20 mrbc.static
-rwxrwxr-x  1 vagrant vagrant 2.2M Aug 25 20:23 mruby
-rwxrwxr-x  1 vagrant vagrant 3.9M Aug 25 20:20 mruby.static

次の内容の mrbgems/tiny.gembox というファイルを作り、build_config.rbから、これを使うように書き換え、さらに、出力バイナリをstripした場合。

MRuby::GemBox.new do |conf|
  conf.gem :core => "mruby-print"
  conf.gem :core => "mruby-bin-mruby"
end
-rwxrwxr-x  1 vagrant vagrant 1.5M Aug 25 20:35 mrbc
-rwxrwxr-x  1 vagrant vagrant 1.5M Aug 25 20:35 mruby