Ruby 1.8.6 pl398 has been released. This release includes fixes for
both win32 builds (thanks Luis!) and fixes a bug with extensions on
Snow Leopard (thanks James!), as well as several other important
backports and bug fixes, including a fix for IO#select that would
cause it to sometimes return incorrect results when there multiple
calls in progress on different threads.
It is available from ruby-lang.org in the following locations:
ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.6-p398.tar.bz2
ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.6-p398.tar.gz
ftp://ftp.ruby-lang.org/pub/ruby/ruby-1.8.6-p398.tar.zip
MD5(ruby-1.8.6-p398.tar.bz2)= fbd43dc44ee26be4d37e6bebbed6f8bd
SHA256(ruby-1.8.6-p398.tar.bz2)=
9890c5eb899f19d5bca7b9b04bba597d14ec6627e992ee376143147c19e3990d
SIZE(ruby-1.8.6-p398.tar.bz2)= 3972884
MD5(ruby-1.8.6-p398.tar.gz)= 736db5f56c2d9b0136e563d049249fa8
SHA256(ruby-1.8.6-p398.tar.gz)=
37181c88a8bb6903da9ff2e61c5cb5a3068f11bcd7037c4e0ddd8c5d59da0d22
SIZE(ruby-1.8.6-p398.tar.gz)= 4581011
MD5(ruby-1.8.6-p398.zip)= e57e9cded6225b1681609a40f1de4a67
SHA256(ruby-1.8.6-p398.zip)=
9c6edb867cbce101906a121228f1169ace72fbf12281b288c839e302d0451307
SIZE(ruby-1.8.6-p398.zip)= 5627151
Austin Z. reported last night that he was seeing an off-by-10
error with floating point numbers, but I believe that the problem he
reported is the same as was reported here:
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/26937
GCC 4.4.1 has some serious bugs, and that is what Ubuntu 9.04 ships
with. Use apt-get to upgrade, and the problem should go away.
If it does not, or anyone encounters any other unexpected issues,
please feel free to contact me.
Kirk H.
[email protected]
Great work Kirk, we all appreciate your efforts!
Thank you!
~Wayne
On Feb 4, 2010, at 10:33 AM, Kirk H. wrote:
fixes a bug with extensions on Snow Leopard (thanks James!)
Don’t thank me yet. Your preview worked for me, but this final version
does not. 
Here’s the error:
$ make
gcc -D_XOPEN_SOURCE=1 -fno-common -pipe -fno-common -DRUBY_EXPORT -I.
-I. -c array.c
gcc -D_XOPEN_SOURCE=1 -fno-common -pipe -fno-common -DRUBY_EXPORT -I.
-I. -c bignum.c
gcc -D_XOPEN_SOURCE=1 -fno-common -pipe -fno-common -DRUBY_EXPORT -I.
-I. -c class.c
gcc -D_XOPEN_SOURCE=1 -fno-common -pipe -fno-common -DRUBY_EXPORT -I.
-I. -c compar.c
gcc -D_XOPEN_SOURCE=1 -fno-common -pipe -fno-common -DRUBY_EXPORT -I.
-I. -c dir.c
gcc -D_XOPEN_SOURCE=1 -fno-common -pipe -fno-common -DRUBY_EXPORT -I.
-I. -c dln.c
gcc -D_XOPEN_SOURCE=1 -fno-common -pipe -fno-common -DRUBY_EXPORT -I.
-I. -c enum.c
gcc -D_XOPEN_SOURCE=1 -fno-common -pipe -fno-common -DRUBY_EXPORT -I.
-I. -c error.c
gcc -D_XOPEN_SOURCE=1 -fno-common -pipe -fno-common -DRUBY_EXPORT -I.
-I. -c eval.c
eval.c: In function ‘rb_eval_string_wrap’:
eval.c:1743: warning: assignment discards qualifiers from pointer target
type
eval.c: In function ‘rb_eval_cmd’:
eval.c:1884: warning: assignment discards qualifiers from pointer target
type
eval.c: In function ‘call_trace_func’:
eval.c:2735: warning: assignment discards qualifiers from pointer target
type
eval.c: In function ‘rb_raise_jump’:
eval.c:4760: warning: assignment discards qualifiers from pointer target
type
eval.c: In function ‘method_missing’:
eval.c:5684: warning: assignment discards qualifiers from pointer target
type
eval.c: In function ‘rb_call0’:
eval.c:5847: warning: assignment discards qualifiers from pointer target
type
eval.c: In function ‘rb_f_eval’:
eval.c:6634: warning: assignment discards qualifiers from pointer target
type
eval.c: In function ‘exec_under’:
eval.c:6658: warning: assignment discards qualifiers from pointer target
type
eval.c: In function ‘rb_load’:
eval.c:6894: warning: assignment discards qualifiers from pointer target
type
eval.c: In function ‘call_end_proc’:
eval.c:7924: warning: assignment discards qualifiers from pointer target
type
eval.c: In function ‘rb_f_END’:
eval.c:7937: warning: assignment discards qualifiers from pointer target
type
eval.c: In function ‘mproc’:
eval.c:9557: warning: assignment discards qualifiers from pointer target
type
eval.c: In function ‘thread_timer’:
eval.c:12010: error: expected expression before ‘{’ token
eval.c:12024: error: expected ‘;’ before ‘}’ token
eval.c: At top level:
eval.c:12026: error: expected identifier or ‘(’ before ‘return’
eval.c:12027: error: expected identifier or ‘(’ before ‘}’ token
eval.c: In function ‘rb_thread_start_timer’:
eval.c:12038: error: expected expression before ‘{’ token
eval.c:12044: error: expected ‘;’ before ‘}’ token
eval.c: At top level:
eval.c:12045: error: expected identifier or ‘(’ before ‘}’ token
eval.c: In function ‘rb_thread_stop_timer’:
eval.c:12051: error: expected expression before ‘{’ token
eval.c:12053: error: expected ‘;’ before ‘}’ token
eval.c: At top level:
eval.c:12054: error: expected ‘)’ before ‘.’ token
eval.c:12055: warning: data definition has no type or storage class
eval.c:12055: error: non-static declaration of ‘thread_init’ follows
static declaration
eval.c:11951: error: previous declaration of ‘thread_init’ was here
eval.c:12056: error: expected identifier or ‘(’ before ‘}’ token
eval.c: In function ‘rb_child_atfork’:
eval.c:12061: error: ‘time_thread_alive_p’ undeclared (first use in this
function)
eval.c:12061: error: (Each undeclared identifier is reported only once
eval.c:12061: error: for each function it appears in.)
eval.c: In function ‘rb_thread_cancel_timer’:
eval.c:12068: error: ‘time_thread_alive_p’ undeclared (first use in this
function)
eval.c:12070: error: incompatible type for argument 1 of
‘pthread_cancel’
eval.c:12071: error: incompatible type for argument 1 of ‘pthread_join’
{standard input}:unknown:Undefined local symbol LC185
{standard input}:unknown:Undefined local symbol LC311
{standard input}:unknown:Undefined local symbol LC317
{standard input}:unknown:Undefined local symbol LC319
{standard input}:unknown:Undefined local symbol LC333
make: *** [eval.o] Error 1
I configured it with:
./configure --enable-shared --enable-pthread CFLAGS=-D_XOPEN_SOURCE=1
–with-readline-dir=/usr/local
James Edward G. II
Kirk H. wrote:
GCC 4.4.1 has some serious bugs, and that is what Ubuntu 9.04 ships
with. Use apt-get to upgrade, and the problem should go away.
Clarification: apt-get upgrade won’t help, because 4.4.1 is still the
leading version in the ubuntu karmic (9.10) repositories, even if you
include backports. The alternative is:
apt-get install gcc-4.3
And then set CC=“gcc-4.3” (or use update-alternatives).
On Thu, Feb 4, 2010 at 10:07 AM, James Edward G. II
[email protected] wrote:
On Feb 4, 2010, at 10:33 AM, Kirk H. wrote:
fixes a bug with extensions on Snow Leopard (thanks James!)
Don’t thank me yet. Your preview worked for me, but this final version does not. 
Oh, now, that is curious. That’s on Snow Leopard? Those errors are
arising from a backport of a threading patch. Let’s figure this out
and get a pl399 out that fixes it. I’ll get in touch with you outside
of the ML shortly.
Kirk