Ruby

From eqqon

(Difference between revisions)
Jump to: navigation, search
 
(13 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: <big><big>[[Ruby C Extension|Ruby1.8 extension API]]</big></big>.
 
-
----
+
= Articles =
-
=== More Ruby Resources ===
+
{{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>
Line 20: Line 45:
||
||
=== Different Implementations ===
=== Different Implementations ===
 +
* [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.ironruby.net/ Iron Ruby] The (yet far from complete) C# implementation by Microsoft designed for .NET interoperability.
* [http://jruby.codehaus.org/ JRuby] A very complete implementation of the interpreter in Java.  
* [http://jruby.codehaus.org/ JRuby] A very complete implementation of the interpreter in Java.  
-
* [http://www.atdot.net/yarv/ YARV] The site of the virtual machine which has been merged into 1.9.
 
-
* [http://plas2003.fit.qut.edu.au/Ruby.NET/ Ruby.NET] Still incomplete and unoptimized .NET compiler for Ruby.
 
* [http://rubini.us/ Rubinious] An implementation based loosely on the Smalltalk-80 VM architecture.
* [http://rubini.us/ Rubinious] An implementation based loosely on the Smalltalk-80 VM architecture.
-
* <b>Iron Ruby</b> This implementation by Microsoft has been presented but not yet released.
 
|------------------------- style="vertical-align:top;"
|------------------------- style="vertical-align:top;"
Line 45: Line 69:
* Ruby-Qt
* Ruby-Qt
-
|}
+
|------------------------- 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]
-
== The Future of Ruby ==
+
|}
-
Yukihiro Matsumoto's C implementation of Ruby aka MRI (Version 1.8) is now considered the '''Quasi-Standard of the Ruby Language''' because there has never been an explicit language standard for Ruby. As the number of implementations grows a standard seems to become necessary to prevent the horror szenario of totally incompatible interpreters. [[The Future of Ruby|Read on ...]]
+
-
 
+
-
Currently there are many different implementations of Ruby1.8 which are more or less complete:
+
-
 
+
-
=== Ruby 1.9 ===
+
-
* [http://www.davidflanagan.com/blog/2007_08.html#000131 List of differences between 1.8 and 1.9 by David Flanagan]
+
-
 
+
-
 
+
-
__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