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

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
88d62f178c69de238bea50a999d3f0ca?d=identicon&s=25 Burkhard Boerner (Guest)
on 2006-01-19 12:34
(Received via mailing list)
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?

2. 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
F1d6cc2b735bfd82c8773172da2aeab9?d=identicon&s=25 unknown (Guest)
on 2006-01-19 16:20
(Received via mailing list)
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.

> 2. 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
428f96cc689eb7419bba3a8bbfcc222a?d=identicon&s=25 Stefan Mahlitz (Guest)
on 2006-01-19 19:28
(Received via mailing list)
nobu@ruby-lang.org 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
This topic is locked and can not be replied to.