Archived
This forum has been archived. Please start a new discussion on GitHub.
Possible IceRuby bug?
Hello,
I am working with IceRuby-3.1.1 (slice2rb reports version 3.1.0) and Ruby "ruby 1.8.4 (2005-12-24) [i586-linux]" (SuSE). When I define in a Slice specification an uppercase identifier, I get errors from Ruby.
Here's an example Slice file:
It appears that Ruby identifiers starting with uppercase letters become constants, but I wouldn't have expected that output from Slice without the "const" keyword.
Is this a known issue? I have checked the documentation, and did not see anything about this. If I've missed something, please accept my apologies in advance. :}
Thanks for letting me know, and also for developing such an excellent product.
_Jesse Williamson ;-};
I am working with IceRuby-3.1.1 (slice2rb reports version 3.1.0) and Ruby "ruby 1.8.4 (2005-12-24) [i586-linux]" (SuSE). When I define in a Slice specification an uppercase identifier, I get errors from Ruby.
Here's an example Slice file:
module foo
{
struct bar
{
int UPPERCASE;
};
};
...and a Ruby program:
require 'Ice'
Ice::loadSlice('./possible_bug.ice')
status = 0
communicator = nil
begin
communicator = Ice::initialize(ARGV)
f = Foo::checkedCast(communicator.stringToProxy("foo:tcp -h localhost -p 10000"))
print f.UPPERCASE;
end
...and the error message when I run the program:
(eval):33:in `loadSlice': (eval):33:in `loadSlice': compile error (SyntaxError)
(eval):8: formal argument cannot be a constant
def initialize(UPPERCASE=0)
^
(eval):8: parse error, unexpected '=', expecting ')'
def initialize(UPPERCASE=0)
^
(eval):31: dynamic constant assignment
T_Bar = ::Ice::__defineStruct('::foo::bar', Bar, [["UPPERCASE", ::Ice::T_int]])
^
(eval):33: parse error, unexpected kEND, expecting $ from possible_bug.rb:3
It appears that Ruby identifiers starting with uppercase letters become constants, but I wouldn't have expected that output from Slice without the "const" keyword.
Is this a known issue? I have checked the documentation, and did not see anything about this. If I've missed something, please accept my apologies in advance. :}
Thanks for letting me know, and also for developing such an excellent product.
_Jesse Williamson ;-};
0
Comments
-
Hi,
That looks like a bug in Ice. We need to modify Slice symbols like UPPERCASE so that they start with a lower-case letter.
Thanks for reporting this problem.
Take care,
- Mark0 -
Thanks!
Thanks for the very swift reply!
Keep up the great work. -J.0