Help for upgrading my sources from ruby 1.6.8 to 1.8.x

Hello,

  1. question:
    in 1.6.8 the line

rb_protect(rb_thread_stop, self, &iRes);

is working well, in 1.8.2 it produces an compile error.

Looking into “intern.h” shows a difference between both versions
1.6.8:
VALUE rb_protect _((VALUE ()(), VALUE, int));
VALUE rb_thread_stop _((void));

1.8.2:
VALUE rb_protect _((VALUE ()(VALUE), VALUE, int));
VALUE rb_thread_stop _((void));

Is this a bug or is it not longer allowed to give rb_thread_stop as
first parameter?

  1. question:
    Because we are developing for railway organizations, we have a
    track-element called “Signal”. Therefore we have also created a
    corresponding class Signal (using it a long time and in many
    applications). This is in conflict with ruby 1.8.
    Do we have any chance to omit the change of the class name to be
    compliant with 1.8?

With kind regards

Burkhard Boerner

Hi,

At Thu, 19 Jan 2006 19:55:49 +0900,
Burkhard Boerner wrote in [ruby-talk:176150]:

  1. question:
    in 1.6.8 the line

rb_protect(rb_thread_stop, self, &iRes);

is working well, in 1.8.2 it produces an compile error.

It should be a warning in C.

first parameter?
You just need a cast.

  1. question:
    Because we are developing for railway organizations, we have a
    track-element called “Signal”. Therefore we have also created a
    corresponding class Signal (using it a long time and in many
    applications). This is in conflict with ruby 1.8.
    Do we have any chance to omit the change of the class name to be
    compliant with 1.8?

module Railway
class Signal
end
end

[email protected] wrote:

end
end

But code using

Signal::SomeConstant

will have to be changed to

Railway::Signal::SomeConstant

module Railway
class Signal
SomeConstant = “FOO”
end
end

p Railway::Signal::SomeConstant # prints “FOO”

include Railway

p Signal::SomeConstant

raises a name error NameError: uninitialized constant

Signal::SomeConstant

One can do

module Signal
SomeConstant = Railway::Signal::SomeConstant
end