Ruby

From eqqon

(Difference between revisions)
Jump to: navigation, search
(Different Implementations)
 
(22 intermediate revisions not shown)
Line 1: Line 1:
 +
__NOTOC__
<div style="float:right;">[[Image:Ruby_logo.gif]]</div>
<div style="float:right;">[[Image:Ruby_logo.gif]]</div>
-
= Extending Ruby in C =
 
-
We found that the README.ext from Ruby's source distribution is not comfortable to read so we decided to mirror it on our site with proper formatting and some helpful additions: [[Ruby C Extension|Ruby1.8 extension API]].
 
-
= More Ruby Resources =
+
= Articles =
 +
 
 +
{{ArticleTeaser
 +
|pagelink=[[The Future of Ruby]]
 +
|iconlink={{clickpic|The Future of Ruby|http://www.eqqon.com/images/thumb/1/1c/Ruby_logo1.png/32px-Ruby_logo1.png}}
 +
|headline=The Future of Ruby
 +
|author=[[User:Henon|Henon]]
 +
|intro=Yukihiro Matsumoto's C implementation of [[Ruby]] aka '''M'''ain '''R'''uby '''I'''mplementation  is considered the '''Quasi-Standard of the Ruby Language''' since there has never been an explicit language standard for Ruby. As the number of implementations grows, however, a formal standard seems to become necessary to prevent the horror scenario of various non-conform interpreters.
 +
}}
 +
 
 +
{{ArticleTeaser
 +
|pagelink=[[Ruby C Extension API Documentation (Ruby 1.8)]]
 +
|iconlink={{clickpic|Ruby C Extension API Documentation (Ruby 1.8)|http://www.eqqon.com/images/thumb/1/1c/Ruby_logo1.png/32px-Ruby_logo1.png}}
 +
|headline=Ruby V1.8 C extension
 +
|author=[[User:Zelenka|W. Zelenka]]
 +
|intro=Extending Ruby with C functions is quiet easy. After you have learned the principles and worked through the ambiguous usage of the API functions you get the power of the Ruby language to your C program. Then it is possible to solve the time critical tasks at the C program and the complex part by Ruby.  We created a simple tutorial to get quickly familiar with the Ruby C extension API. Since the original article is only in plain text it is not quite readable. We provide better formatting and readability through markup and incorporated some of our experiences while building Ruby extensions.
 +
}}
 +
 
 +
{{ArticleTeaser
 +
|pagelink=[[Ruby/Ruby V1.9 C Extension]]
 +
|iconlink={{clickpic|Ruby/Ruby V1.9 C Extension|http://www.eqqon.com/images/thumb/1/1c/Ruby_logo1.png/32px-Ruby_logo1.png}}
 +
|headline=Ruby V1.9 C extension
 +
|author=[[User:Zelenka|W. Zelenka]]
 +
|intro=Basicly the interface is similar to V1.8. So most parts of your implementation should run also with V1.9. I had some troubles initializing the interpreter, this differs in V1.9 and V1.8. Threading is now implemented native. But there is a major drawback with the Ruby interpreter implementation. Many global's are used. As a result the interpreter cannot be run more than once at a process. As an example, the LUA interpreter does this perfect. The interpreter can run at several instances, each instance using a pointer to the interpreter context.
 +
}}
 +
 
 +
 
 +
----
 +
===external links===
<div style="clear:left;"></div>
<div style="clear:left;"></div>
-
<div id="floating_section">
+
{| style="vertical-align:top;"
 +
|------------------------- style="vertical-align:top;"
 +
||
=== Community ===
=== Community ===
-
:[http://www.ruby-lang.org/en official Ruby home]
+
* [http://www.ruby-lang.org/en official Ruby home]
-
:[http://www.ruby-forum.com Ruby Forum] mirrors the ruby-talk mailing list.
+
* [http://www.ruby-forum.com Ruby Forum] mirrors the ruby-talk mailing list.
-
:[http://raa.ruby-lang.org Ruby Application Archive]
+
* [http://raa.ruby-lang.org Ruby Application Archive]
 +
* [http://en.wikipedia.org/wiki/Ruby_programming_language Wikipedia article on Ruby]
-
 
+
||
-
</div><div id="floating_section">
+
=== Different Implementations ===
=== Different Implementations ===
-
:[http://jruby.codehaus.org/ JRuby] A very complete implementation of the interpreter in Java.  
+
* [http://rubydotnet.googlegroups.com/web/Home.htm Ruby.NET] Version 0.9 has substantial improvements, the project is on the way to production quality. - .NET compiler for Ruby.  
-
:[http://www.atdot.net/yarv/ YARV] The site of the virtual machine which has been merged into 1.9.
+
* [http://www.ironruby.net/ Iron Ruby] The (yet far from complete) C# implementation by Microsoft designed for .NET interoperability.
-
:[http://plas2003.fit.qut.edu.au/Ruby.NET/ Ruby.NET] Still incomplete and unoptimized .NET compiler for Ruby.  
+
* [http://jruby.codehaus.org/ JRuby] A very complete implementation of the interpreter in Java.  
-
:<b>Iron Ruby</b> This implementation on the DLR by Microsoft has been presented but hass not yet be released.
+
* [http://rubini.us/ Rubinious] An implementation based loosely on the Smalltalk-80 VM architecture.
-
 
+
-
</div><div id="floating_section">
+
 +
|------------------------- style="vertical-align:top;"
 +
||
=== Documentation ===
=== Documentation ===
-
:[http://www.rubyist.net/~slagell/ruby/ Ruby Tutorial]
+
* [http://www.rubyist.net/~slagell/ruby/ Ruby Tutorial]
-
:[http://whytheluckystiff.net/ruby/pickaxe Programming Ruby] Free online version of the legendary "Pickaxe".
+
* [http://whytheluckystiff.net/ruby/pickaxe Programming Ruby] Free online version of the legendary "Pickaxe".
-
:[http://www.ruby-doc.org/core/ CORE]
+
* [http://www.ruby-doc.org/core/ CORE]
-
:[http://www.ruby-doc.org/stdlib/ STDLIB]
+
* [http://www.ruby-doc.org/stdlib/ STDLIB]
-
:[http://www.ruby-doc.org/core-1.9/index.html CORE-1.9]
+
* [http://www.ruby-doc.org/core-1.9/index.html CORE-1.9]
-
:[{{DOCUMENTS}}/software/ruby/rhg-2006-05-04/index.html The Ruby Hacking Guide] English translation of the japanese book by Minero Aoki. The translation is not yet finished.
+
* [{{DOCUMENTS}}/software/ruby/rhg-2006-05-04/index.html The Ruby Hacking Guide] English translation of the japanese book by Minero Aoki. The translation is not yet finished.
-
:[http://www.ruby-doc.org/doxygen/current/ C API doxygen docs]  
+
* [http://www.ruby-doc.org/doxygen/current/ C API doxygen docs]  
-
:[http://docs.huihoo.com/ruby/ruby-man-1.4/syntax.html Ruby Syntax]
+
* [http://docs.huihoo.com/ruby/ruby-man-1.4/syntax.html Ruby Syntax]
-
 
+
-
</div><div id="floating_section">
+
 +
||
=== GUI Toolkit Bindings ===
=== GUI Toolkit Bindings ===
-
:[http://fxruby.org FXRuby] Ruby bindings to the [http://fox-toolkit.org FOX Toolkit]. [http://fox-tool.rubyforge.org FoxGUIb] is a GUI designer for FXRuby.
+
* [http://fxruby.org FXRuby] Ruby bindings to the [http://fox-toolkit.org FOX Toolkit]. A GUI designer is available too: [http://fox-tool.rubyforge.org FoxGUIb].
 +
* WxRuby
 +
* GTK
 +
* Ruby-Qt
-
</div>
+
|------------------------- style="vertical-align:top;"
 +
||
 +
=== Libraries ===
 +
*[http://rake.rubyforge.org/ Rake]
 +
*[http://rspec.rubyforge.org/ RSpec (BDD Framework)]
 +
*[http://www.rubyonrails.org/ Rails]
 +
*[http://www.ruby-doc.org/stdlib/libdoc/uri/rdoc/index.html URI]
 +
*[http://www.ruby-doc.org/stdlib/libdoc/pathname/rdoc/index.html Pathname]
-
__NOTOC__
+
|}

Latest revision as of 16:16, 6 January 2009

Ruby logo.gif

Articles

32px-Ruby_logo1.png
 
Author: Henon
The Future of Ruby  -  The Future of Ruby
Yukihiro Matsumoto's C implementation of Ruby aka Main Ruby Implementation is considered the Quasi-Standard of the Ruby Language since there has never been an explicit language standard for Ruby. As the number of implementations grows, however, a formal standard seems to become necessary to prevent the horror scenario of various non-conform interpreters.   Read The Future of Ruby ...
32px-Ruby_logo1.png
 
Author: W. Zelenka
Ruby C Extension API Documentation (Ruby 1.8)  -  Ruby V1.8 C extension
Extending Ruby with C functions is quiet easy. After you have learned the principles and worked through the ambiguous usage of the API functions you get the power of the Ruby language to your C program. Then it is possible to solve the time critical tasks at the C program and the complex part by Ruby. We created a simple tutorial to get quickly familiar with the Ruby C extension API. Since the original article is only in plain text it is not quite readable. We provide better formatting and readability through markup and incorporated some of our experiences while building Ruby extensions.   Read Ruby C Extension API Documentation (Ruby 1.8) ...
32px-Ruby_logo1.png
 
Author: W. Zelenka
Ruby/Ruby V1.9 C Extension  -  Ruby V1.9 C extension
Basicly the interface is similar to V1.8. So most parts of your implementation should run also with V1.9. I had some troubles initializing the interpreter, this differs in V1.9 and V1.8. Threading is now implemented native. But there is a major drawback with the Ruby interpreter implementation. Many global's are used. As a result the interpreter cannot be run more than once at a process. As an example, the LUA interpreter does this perfect. The interpreter can run at several instances, each instance using a pointer to the interpreter context.   Read Ruby/Ruby V1.9 C Extension ...



external links

Community

Different Implementations

  • Ruby.NET Version 0.9 has substantial improvements, the project is on the way to production quality. - .NET compiler for Ruby.
  • Iron Ruby The (yet far from complete) C# implementation by Microsoft designed for .NET interoperability.
  • JRuby A very complete implementation of the interpreter in Java.
  • Rubinious An implementation based loosely on the Smalltalk-80 VM architecture.

Documentation

GUI Toolkit Bindings

Libraries