Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2abebd8

Browse files
committed
Post: Rubinius 1.3+
1 parent 77e2b05 commit 2abebd8

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
layout: post
3+
title: Rubinius 1.3+
4+
author: Sophia Shao
5+
---
6+
7+
# Rubinius 1.3+
8+
9+
Now that Brian has talked about Rubinius 3.0, let's roll back several versions and talk about Rubinius 1.3+, the MRI 1.8.7-compatible Rubinius.
10+
11+
While MRI 1.8.7 was [EOL'd in 2013](https://www.ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7/) with [extended maintenance ending this past summer](https://www.ruby-lang.org/en/news/2014/07/01/eol-for-1-8-7-and-1-9-2/), there are still enterprise apps on 1.8.7 that we would like to support. In order to do so, we are maintaining Rubinius 1.3+ in parallel with Rubinius 2.
12+
13+
However, as we've continued work on Rubinius 1.3+, we've had to make a decision on how to handle those bugs still remaining in MRI 1.8.7.
14+
15+
# Bug-free
16+
17+
Many bugs reported for MRI 1.8.7+ were never fixed or back-ported, which means that buggy behavior still exists. This leads to an unfortunate side-effect: code that depends upon those bugs.
18+
19+
For Rubinius 1.3+, that meant we could either:
20+
21+
* duplicate MRI's buggy behavior, which perpetuates the application bugs that depend on MRI bugs, or
22+
* fix the application bugs so the code works with correct Ruby behavior.
23+
24+
We have chosen the latter: to implement correct Ruby behavior in Rubinius 1.3+ and fix application bugs.
25+
26+
Apps that depend upon buggy behavior should fix those dependencies. Leaving them in is harmful to future development, as it locks the codebase down to whatever architecture preserves those bugs, encouraging stagnation and complicating app maintenance.
27+
28+
Our hope is that by patching those bugs in Rubinius 1.3+ and providing useful tooling, developers will be able to identify bug dependencies in their codebase and remove them.
29+
30+
# RubySpec
31+
32+
Beyond patching such bugs in Rubinius 1.3+, we will also be updating the specs in the Rubinius and RubySpec 1.8.7 branches to reflect our decision: `ruby_bug` guards will be removed, or commented out (to provide historical documentation).
33+
34+
This means that this set of specs will fail when run against MRI 1.8.7 -- as they test for behavior that was never patched in MRI 1.8.7.
35+
36+
# Looking Forwards
37+
38+
While we certainly aren't encouraging the continued existence of 1.8.7 apps, we understand that they still exist, and that moving away from them can have significant costs. With Rubinius 1.3+, we hope to provide the support those apps need to better their codebase, improve their maintainability, and eventually migrate to current Ruby versions.

0 commit comments

Comments
 (0)