On Feb 26, 2006, at 7:45 AM, Yukihiro Matsumoto wrote:

> Since all symbol values have their second LSB set, they should not
> conflict with ordinary object values on an aligned memory allocator.
> At least on Linux system, the problem was caused by signedness issue
> of the symbol conversion.  I'd like to know if the following patch,
> that worked on Linux system, also work on MacOS X.
>
> --- ruby.h	5 Feb 2006 15:43:10 -0000	1.97.2.11
> +++ ruby.h	26 Feb 2006 15:43:22 -0000
> @@ -169,3 +169,3 @@ VALUE rb_ull2inum _((unsigned LONG_LONG)
>  #define ID2SYM(x) ((VALUE)(((long)(x))<<8|SYMBOL_FLAG))
> -#define SYM2ID(x) RSHIFT((long)x,8)
> +#define SYM2ID(x) RSHIFT((unsigned long)x,8)

Doesn't fix on OSX. I think Akira's email summarizes what we are  
seeing perfectly.

---
_why: zenspider's most intense moments of solice are immediately  
following the slaughter [...]
bricolage: he pasted it into #ruby-lang and said "What's wrong with  
this regex?" it makes my eyes bleed
_why: that topknot's the only thing keeping a lid on the righteous anger
bricolage: yeah, that and his flagrant obsession with dvorak