[MacRuby] #1035: ruby subclasses of Obj-C classes have incompatible initialization semantics
#1035: ruby subclasses of Obj-C classes have incompatible initialization semantics -------------------------------------------------+-------------------------- Reporter: russm-trac-macports-org@… | Owner: lsansonetti@… Type: defect | Status: new Priority: major | Milestone: Component: MacRuby | Keywords: #reduction -------------------------------------------------+-------------------------- Ruby classes that inherit from Obj-C classes (including core ruby classes like String) have incompatible initialization semantics compared to mri. Since this affects some core ruby classes, it breaks compatibility between the mri and MacRuby environments. eg: in this subclass of String, S2#initialize is never called with 0 arguments {{{ ru...@alcazar:~$ macruby --version MacRuby 0.7 (ruby 1.9.2) [universal-darwin10.0, x86_64] ru...@alcazar:~$ macirb irb(main):001:0> class S2 < String irb(main):002:1> attr_accessor :foo irb(main):003:1> def initialize foo = "default2" irb(main):004:2> @foo = foo irb(main):005:2> STDERR.puts "setting #{foo}" irb(main):006:2> end irb(main):007:1> end => nil irb(main):008:0> s2 = S2.new => "" irb(main):009:0> }}} while under mri 1.9.2, S2#initialize is called as expected (nb. executable is called irb1.9.1 but is actually 1.9.2 - thanks, Debian package naming!) {{{ ru...@worcestershire/~ 0 $ ruby1.9.1 --version ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux] ru...@worcestershire/~ 0 $ irb1.9.1 irb(main):001:0> class S2 < String irb(main):002:1> attr_accessor :foo irb(main):003:1> def initialize foo = "default2" irb(main):004:2> @foo = foo irb(main):005:2> STDERR.puts "setting #{foo}" irb(main):006:2> end irb(main):007:1> end => nil irb(main):008:0> s2 = S2.new setting default2 => "" irb(main):009:0> }}} -- Ticket URL: <http://www.macruby.org/trac/ticket/1035> MacRuby <http://macruby.org/>
#1035: ruby subclasses of Obj-C classes have incompatible initialization semantics -------------------------------------------------+-------------------------- Reporter: russm-trac-macports-org@… | Owner: lsansonetti@… Type: defect | Status: closed Priority: major | Milestone: Component: MacRuby | Resolution: fixed Keywords: #reduction | -------------------------------------------------+-------------------------- Changes (by watson1978@…): * status: new => closed * resolution: => fixed Comment: Fixed with https://github.com/MacRuby/MacRuby/commit/6b879ae2bb8e9e29a34ad06309ff32f1de... -- Ticket URL: <http://www.macruby.org/trac/ticket/1035#comment:1> MacRuby <http://macruby.org/>
participants (1)
-
MacRuby