IronRuby

From Infogalactic: the planetary knowledge core
Jump to: navigation, search
IronRuby
Developer(s) Microsoft Dynamic Language Runtime Team
Stable release IronRuby 1.0 / April 12, 2010; 14 years ago (2010-04-12)
Preview release IronRuby 1.1.3 / March 13, 2011; 13 years ago (2011-03-13)
Development status Abandonware
Written in C#
Operating system Windows Linux Mac OS X
Platform .NET Framework, Mono
Type Ruby programming language compiler[1][2]
License Apache License, v2.0
Website www.ironruby.net

IronRuby is an implementation of the Ruby programming language targeting Microsoft .NET framework. It is implemented on top of the Dynamic Language Runtime (DLR), a library running on top of the Common Language Infrastructure that provides dynamic typing and dynamic method dispatch, among other things, for dynamic languages.

The project is currently inactive, with the last release of IronRuby (version 1.1.3) being in March 2011.

History

On April 30, 2007, at MIX 2007, Microsoft announced IronRuby, which uses the same name as Wilco Bauwer's IronRuby project with permission.[3] It was planned to be released to the public at OSCON 2007.[4]

On July 23, 2007, as promised, John Lam and the DLR Design Team presented the pre-Alpha version of the IronRuby compiler at OSCON. He also announced a quick timeline for further integration of IronRuby into the open source community.[5]

On August 31, 2007, John Lam and the DLR Design Team released the code in its pre-alpha stage on RubyForge.[6] The source code has continued to be updated regularly by the core Microsoft team (but not for every check-in). The team also does not accept community contributions for the core Dynamic Language Runtime library, at least for now.[7]

On July 24, 2008, the IronRuby team released the first binary alpha version, in line with OSCON 2008.[8] On November 19, 2008, they released a second Alpha version.

The team actively worked to support Rails on IronRuby.[9][10] Some Rails functional tests started to run, but a lot of work still needed to be done to be able to run Rails in a production environment.[11]

On May 21, 2009, they released 0.5 version in conjunction with RailsConf 2009. With this version, IronRuby could run some Rails applications, but still not on a production environment.[12]

Version 0.9 was announced as OSCON 2009.[13] This version improved performance.[14] Version 1.0 RC1 became available on 20 November 2009.[15]

Version 1.0 became available on 12 April 2010, in two different versions:

  • The preferred one, which runs on top of .NET 4.0.
  • A version with more limited features, which ran on top of .NET 2.0. This version was the only one compatible with Mono[16]

The IronRuby team planned to support Ruby 1.8.6 only for 1.0 point releases, and 1.9 version only for upcoming 1.x releases, skipping support for Ruby 1.8.7.[17][18]

In July 2010, Microsoft let go Jimmy Schementi, one of two remaining members of the IronRuby core team and stopped funding the project.[19][20] In October 2010 Microsoft announced the Iron projects (IronRuby and IronPython) were being changed to "external" projects and enabling "community members to make contributions without Microsoft's involvement or sponsorship by a Microsoft employee".[21]

The last published release of IronRuby was on 13 March 2011 as version 1.1.3.[22]

Architecture

Mono support

IronRuby may run as well on Mono as it does on Microsoft Common Language Runtime (CLR),[23] but as the IronRuby team only tests it with the CLR on Windows.,[24] it may not build on Mono depending on the build.[25][26][27]

.NET interoperability

The interoperability between IronRuby classes and regular .NET Framework classes is very limited because many Ruby classes are not .NET classes.[28] However, better support for dynamic languages in .NET 4.0 may increase interoperability in the future.[29]

Silverlight support

IronRuby is supported on Silverlight. It can be used as a scripting engine in the browser just like the JavaScript engine.[30] IronRuby scripts are passed like simple client-side JavaScript-scripts in <script>-tags. It is then also possible to modify embedded XAML markup.

The technology behind this is called Gestalt.

//DLR initiation script.
<script src="http://gestalt.ironruby.net/dlr-latest.js" type="text/javascript">

//Client-side script passed to IronRuby and Silverlight.
<script type="text/ruby">
    window.Alert("Hello from Ruby")
</script>

The same works for IronPython.

Testing infrastructure

IronRuby is integrating RubySpec, which is a project to write a complete, executable specification for the Ruby programming language. The IronRuby Git repo includes a copy of the RubySpec tests, including the MSpec test framework.[31]

License

IronRuby was previously released under the Microsoft Public License, which is OSI-certified BSD-style license.

On 16 July 2010, Microsoft re-licensed IronRuby along with the DLR under the Apache License, v2.0[32]

Further reading

See also

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.
  17. Lua error in package.lua at line 80: module 'strict' not found.
  18. Lua error in package.lua at line 80: module 'strict' not found.
  19. Lua error in package.lua at line 80: module 'strict' not found.
  20. Lua error in package.lua at line 80: module 'strict' not found.
  21. Lua error in package.lua at line 80: module 'strict' not found.
  22. Lua error in package.lua at line 80: module 'strict' not found.
  23. Lua error in package.lua at line 80: module 'strict' not found.
  24. Lua error in package.lua at line 80: module 'strict' not found.
  25. Lua error in package.lua at line 80: module 'strict' not found.
  26. Lua error in package.lua at line 80: module 'strict' not found.
  27. Lua error in package.lua at line 80: module 'strict' not found.
  28. Lua error in package.lua at line 80: module 'strict' not found.
  29. Lua error in package.lua at line 80: module 'strict' not found.
  30. IronRuby in the browser - IronRuby.net
  31. Lua error in package.lua at line 80: module 'strict' not found.
  32. Lua error in package.lua at line 80: module 'strict' not found.

External links