Latest Stable in branch 1.8
1.8.7
Released 31 May 2008
(18 years ago)
Latest Pre-release in branch 1.8
1.8.7-p374
Released 27 Jun 2013
(13 years ago)
SoftwareRuby
Version1.8
Status
End of life
Initial release1.8.0
04 Aug 2003
(23 years ago)
Latest release1.8.7-p374
27 Jun 2013
(13 years ago)
End of bug fixesTBD
End of lifeTBD
Release notes https://ruby-lang.org/en/news/2013/06/27/ruby-1-8-7-p374-is-released/
Source codehttps://github.com/ruby/ruby/tree/v1_8_7-p374
Documentationhttps://ruby-doc.org
Downloadhttps://cache.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p374.tar.gz
Ruby 1.8 ReleasesView full list

What Is New in Ruby 1.8

Ruby 1.8.0 is a significant milestone that introduced major performance improvements and a host of new standard libraries. This release stabilized the language for production use and became the foundation for many years of Ruby development.

Category Key Changes
Performance Hash algorithm improvements, faster eval, reduced memory usage
New Libraries Added REXML, RSS, OpenSSL, StringScanner, IO-like String
Language & Syntax New block parameter syntax, Dir.glob changes, new % notation
Windows Support One-Click Installer, improved stability on Win32 platforms
Deprecations $defout and $deferr variables are now obsolete

How did Ruby 1.8 improve performance?

The core team focused heavily on optimizing the interpreter. The most impactful change was a new hash table algorithm that dramatically sped up lookups. This matters because hash operations are fundamental to almost every Ruby application.

Memory usage was also reduced across the board. The eval method and garbage collector saw significant speed improvements, making meta-programming and long-running processes more efficient.

What new libraries were added in 1.8?

Ruby 1.8 bundled several crucial libraries that are now considered essential. REXML provided a pure-Ruby XML processing solution, while the RSS library made handling feeds straightforward.

The addition of OpenSSL support was a game-changer for secure communications. We also got StringScanner for lexical scanning and an IO-like String class, which simplified many text processing tasks.

What syntax changes arrived with this version?

A new syntax for block parameters was introduced, allowing for more flexible argument handling. The Dir.glob method now returns sorted results by default, which was a breaking change for some existing code.

A new % notation was added for creating strings and regular expressions. In practice, the block parameter change was the most significant as it enabled new patterns for method chaining and iteration.

How was Windows support improved?

The introduction of the One-Click Installer made getting Ruby running on Windows trivial for the first time. This was huge for expanding Ruby's reach beyond Unix-based systems.

General stability on Win32 platforms was significantly enhanced. Many edge cases and bugs specific to Windows were ironed out, making it a viable development environment.

FAQ

Was Ruby 1.8 a breaking change from 1.6?
Yes, there were several backward-incompatible changes. The most notable was that Dir.glob now returns sorted results, which broke code relying on the unsorted order.

What happened to $defout and $deferr?
These global variables were deprecated. You should use $stdout and $stderr instead for controlling output streams in your programs.

Did Ruby 1.8 include native threading?
It continued to use green threads, not native OS threads. This meant threads were not truly parallel but were useful for I/O-bound operations.

Was Rails compatible with Ruby 1.8?
Yes, early versions of Ruby on Rails were developed on and for Ruby 1.8. This compatibility helped drive Rails' initial adoption and success.

What was the biggest performance win in 1.8?
The new hash algorithm was the most significant. Hash lookups became substantially faster, which improved performance across nearly all Ruby code since hashes are used everywhere.

Releases In Branch 1.8

VersionRelease date
1.8.7-p37427 Jun 2013
(13 years ago)
1.8.7-p37029 Jun 2012
(14 years ago)
1.8.7-p35202 Jul 2011
(15 years ago)
1.8.7-p33025 Dec 2010
(15 years ago)
1.8.7-p30216 Aug 2010
(15 years ago)
1.8.7-p29923 Jun 2010
(16 years ago)
1.8.7-p24825 Dec 2009
(16 years ago)
1.8.7-p16018 Apr 2009
(17 years ago)
1.8.6-p36818 Apr 2009
(17 years ago)
1.8.7-p7211 Aug 2008
(17 years ago)
1.8.6-p28711 Aug 2008
(17 years ago)
1.8.731 May 2008
(18 years ago)
1.8.612 Mar 2007
(19 years ago)
1.8.529 Aug 2006
(19 years ago)
1.8.424 Dec 2005
(20 years ago)
1.8.4-preview214 Dec 2005
(20 years ago)
1.8.321 Sep 2005
(20 years ago)
1.8.226 Dec 2004
(21 years ago)
1.8.2-preview422 Dec 2004
(21 years ago)
1.8.2-preview308 Nov 2004
(21 years ago)
1.8.2-preview230 Jul 2004
(22 years ago)
1.8.2-preview121 Jul 2004
(22 years ago)
1.8.004 Aug 2003
(23 years ago)