# Ruby 1.8.7-preview2 has been released

**URL:** <https://rubytalk.org/t/ruby-1-8-7-preview2-has-been-released/45987>\
**Category:** ruby-talk\
**Created:** [20 April 2008 12:33 UTC](https://rubytalk.org/t/ruby-1-8-7-preview2-has-been-released/45987 "2008-04-20T12:33:02Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Akinori\_MUSHA](https://avatars.discourse-cdn.com/v4/letter/a/b782af/32.png) [@Akinori\_MUSHA](https://rubytalk.org/u/Akinori_MUSHA)\
**Post date:** [20 April 2008 12:33 UTC](https://rubytalk.org/t/ruby-1-8-7-preview2-has-been-released/45987/1 "2008-04-20T12:33:02Z")

</div>

Folks,

Here is an announcement that the second preview of Ruby 1.8.7 has just  
been released. Changes from the previous preview release include  
several fixes for some incompatibility issues and bugs that have been  
addressed by now.

Addition of Symbol#to\_proc has been backed out, because it didn't work  
as expected as intended in the test cases.

The new version of Ruby includes many bug fixes, lots of feature  
enhancements and some performance improvements since 1.8.6 while  
maintaining stability and backward compatibility with the previous  
release to a high degree.

The source code package is available in three formats at the following  
locations:

&nbsp;&nbsp;ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-preview2.tar.bz2  
&nbsp;&nbsp;ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-preview2.tar.gz  
&nbsp;&nbsp;ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-preview2.tar.zip

Checksums:

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MD5 (ruby-1.8.7-preview2.tar.bz2) = aea3c408133a4a292198afa4b6b73af4  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHA256 (ruby-1.8.7-preview2.tar.bz2) = d02c1d22bff5c8365aa4adb25387950c0b58206a18cb18afcc4f2bd9401997e5  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SIZE (ruby-1.8.7-preview2.tar.bz2) = 4013909

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MD5 (ruby-1.8.7-preview2.tar.gz) = 776ca41fbc0b5c8d83c184cc79c3b622  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHA256 (ruby-1.8.7-preview2.tar.gz) = e969a88f91b26033e32f103e2db352d34a604c826789a1eb748fcb971fc9f602  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SIZE (ruby-1.8.7-preview2.tar.gz) = 4714063

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MD5 (ruby-1.8.7-preview2.zip) = b70c39942184101f6f3a9cd1eb245a12  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SHA256 (ruby-1.8.7-preview2.zip) = 719ab45df2ca80bebf6e5e722778126f648e41a114d0d055a07837bb6fe55ee5  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SIZE (ruby-1.8.7-preview2.zip) = 5797584

For a brief list of user visible changes and a full list of all  
changes, see the bundled files named NEWS and ChangeLog, which are  
also available at the following locations:

&nbsp;&nbsp;[http://svn.ruby-lang.org/repos/ruby/tags/v1\_8\_7\_preview2/NEWS](http://svn.ruby-lang.org/repos/ruby/tags/v1_8_7_preview2/NEWS)  
&nbsp;&nbsp;[http://svn.ruby-lang.org/repos/ruby/tags/v1\_8\_7\_preview2/ChangeLog](http://svn.ruby-lang.org/repos/ruby/tags/v1_8_7_preview2/ChangeLog)

Please test it out and drop us a report in the following tracker if  
you find any problem:

&nbsp;&nbsp;[http://rubyforge.org/tracker/?atid=22040&group\_id=426&func=browse](http://rubyforge.org/tracker/?atid=22040&group_id=426&func=browse)

Some known problems are on the list and when you find one it may be  
fixed already, so please look through all items querying with "State"  
set to "Any" before submitting a new one.

The next preview is planned on next Friday and that will hopefully be  
the last preview release.

Regards,

> **···**
>
> --  
> Akinori MUSHA / [http://akinori.org/](http://akinori.org/)

---

<div class="post-metadata">

**Author:** ![Alex\_Fenton2](https://avatars.discourse-cdn.com/v4/letter/a/7ab992/32.png) [@Alex\_Fenton2](https://rubytalk.org/u/Alex_Fenton2)\
**Post date:** [20 April 2008 20:05 UTC](https://rubytalk.org/t/ruby-1-8-7-preview2-has-been-released/45987/2 "2008-04-20T20:05:07Z")

</div>

Akinori MUSHA wrote:

> Here is an announcement that the second preview of Ruby 1.8.7 has just  
> been released.

...

> The new version of Ruby includes many bug fixes, lots of feature  
> enhancements

...

> &nbsp;&nbsp;[http://svn.ruby-lang.org/repos/ruby/tags/v1\_8\_7\_preview2/NEWS](http://svn.ruby-lang.org/repos/ruby/tags/v1_8_7_preview2/NEWS)  
> &nbsp;&nbsp;[http://svn.ruby-lang.org/repos/ruby/tags/v1\_8\_7\_preview2/ChangeLog](http://svn.ruby-lang.org/repos/ruby/tags/v1_8_7_preview2/ChangeLog)

Firstly, Akinori, thank you very much for your generous work on ruby. The criticisms that follow are not at all directed at your work, but rather at what seems a casual and ill-advised approach to branch management in Ruby.

Even though this may well be a good release, it isn't a stable development of the 1.8 series, but a hybrid of 1.8 with a random selection of 1.9 features added in (many or most of which I like, in their own right). But if I can't use 1.8.7 without unwittingly writing code that's incompatible with every other released version of ruby, then it's not a stable release.

This isn't just a hypothetical problem. The lax approach to stable branch management has bitten me twice in the last 24 hours. I was using Digest for the first time in a while; I couldn't remember exactly how the module works, but using 1.8.6, I soon come up with:

require 'digest'  
foo = Digest::SHA1(some\_string)

Which works fine. Except, I realise today looking at the NEWS file, that I've just written code which will break on every previous ruby version. Did I want that? No - but how could I tell, except if I'd memorised Ruby's CHANGELOG?

More seriously, I just tried out 1.8.7-preview2 with a large compiled extension (wxRuby). What was a stable library in 1.8.6 now segfaults regularly. Debugging GC/memory problems in a ruby extension is a miserable job, but doubly so if you're chasing a moving target in a supposedly stable series. Right now, I can't see any point in trying to support 1.8.7.

Many or most open-source projects are strict about maintaining compatibility within stable release series, and I don't understand why ruby can't be. I think the desire to extend and improve the language is great, but in the shorter term ruby provides many ways to test, use and refine enhancements (facets, ActiveSupport) while maintaining some sense of dependability in the core interpreter. I like Array#index { ... } but I can live without it a few months longer.

Anyway, some of this reiterates what's been said elsewhere by others [1]. It's been suggested in reply that only mission-critical application developers and rigid corporate types care about stability within branches.

In fact, this sort of casual branch management imposes a cost borne by ordinary users (who find libraries randomly don't work with the version of ruby they happen to have installed) and average library developers (who can't be sure that they are targetting more than a single point-version, and end up fielding more support requests).

But, I guess that since there's a world shortage of new Integers between 8 and 9, there's no hope that this release could be given a more appropriate version tag?

alex

[1] [http://www.ruby-forum.com/topic/149772#new](http://www.ruby-forum.com/topic/149772#new)

---

<div class="post-metadata">

**Author:** ![Phil](https://avatars.discourse-cdn.com/v4/letter/p/e95f7d/32.png) [@Phil](https://rubytalk.org/u/Phil)\
**Post date:** [20 April 2008 20:33 UTC](https://rubytalk.org/t/ruby-1-8-7-preview2-has-been-released/45987/3 "2008-04-20T20:33:13Z")

</div>

Alex Fenton wrote:

> Firstly, Akinori, thank you very much for your generous work on ruby.

I second that motion.

> Anyway, some of this reiterates what's been said elsewhere by others  
> [1]. It's been suggested in reply that only mission-critical application  
> developers and rigid corporate types care about stability within branches.
> 
> In fact, this sort of casual branch management imposes a cost borne by  
> ordinary users (who find libraries randomly don't work with the version  
> of ruby they happen to have installed) and average library developers  
> (who can't be sure that they are targetting more than a single  
> point-version, and end up fielding more support requests).

For me, this means that I a) have to advise prospective and current  
clients to use Ruby 1.8.6, and b) need to cover my backside in regard to  
security somehow. Fortunately, I can handle quite a bit of that myself,  
and Ruby's patchlevel is reliable in my experience.

Maybe it'd be a good idea to advertise branch management on ruby-lang.org?

Together with some guidelines, that'd be a boon to people like me, I'm sure.

In the end, though, I have a bit of a harder time selling my Ruby  
services, and using Ruby in my spare time to hack on projects for the  
fun of it. Until now, I was lucky, and could pretty much dictate the  
Ruby version that is in use. But I expect that to change, sooner or  
later. Can't be lucky all the time. 😛

As it is, I'll have to take a backseat, and only use other people's  
libraries or frameworks when working with Ruby.

I can't spend my time testing against n versions, and working on fixes  
to code (if I were developing on Ruby, and testing against 1.8 that'd be  
a hassle already, adding tests and fixes against 1.8.x, too, increases  
my workload considerably. Workload that I'm not productive).

One decision for me was, using JRuby 1.1 / JRuby 1.0.x. Which,  
incidentally, provides the sort of release management I needs as a user. 😑

(I know the differences between releases that I can expect, and can plan  
accordingly. I don't need to rely on test breaking in interesting ways.  
Hasn't happened yet, but still..)

- --  
Phillip Gawlowski  
Twitter: twitter.com/cynicalryan

Yuppie Wannabes:  
~ An X Generation subgroup that believes the myth of a yuppie  
life-style being both satisfying and viable. Tend to be highly in  
debt, involved in some form of substance abuse, and show a willingness  
to talk about Armageddon after three drinks.  
~ -- Douglas Coupland, Generation X

---

<div class="post-metadata">

**Author:** ![Charles\_Oliver\_Nutte](https://avatars.discourse-cdn.com/v4/letter/c/71e660/32.png) [@Charles\_Oliver\_Nutte](https://rubytalk.org/u/Charles_Oliver_Nutte)\
**Post date:** [21 April 2008 17:47 UTC](https://rubytalk.org/t/ruby-1-8-7-preview2-has-been-released/45987/4 "2008-04-21T17:47:17Z")

</div>

Phillip Gawlowski wrote:

> One decision for me was, using JRuby 1.1 / JRuby 1.0.x. Which,  
> incidentally, provides the sort of release management I needs as a user. 😑
> 
> (I know the differences between releases that I can expect, and can plan  
> accordingly. I don't need to rely on test breaking in interesting ways.  
> Hasn't happened yet, but still..)

Interestingly, several of the failures in Ruby 1.8.7 were found by JRuby developers. We tried to make several of the changes in JRuby and they broke tests and Rails itself. JRuby developers should not be finding and reporting bugs in Ruby releases.

The Ruby core team should consider instituting more stringent regression-testing policies.

- Charlie
