From: Ferenc Engard Date: 2004-08-28T22:28:23+09:00 Subject: tk.rb: incompatible change between 1.8.1 and 1.8.2 Hi all, The "can't dup Fixnum" error what I have mentioned in my previous post is caused by a change in tk.rb. The tk.rb in 1.8.1 has the following portion from line 657: module TkCore include TkComm extend TkComm unless self.const_defined? :INTERP if self.const_defined? :IP_NAME name = IP_NAME.to_s else name = nil #### ^^^^^^^^^^ ##################### end if self.const_defined? :IP_OPTS if IP_OPTS.kind_of?(Hash) opts = hash_kv(IP_OPTS).join(' ') else opts = IP_OPTS.to_s end else opts = '' end INTERP = TclTkIp.new(name, opts) [...] The 1.8.2 version has this (from line 940): module TkCore include TkComm extend TkComm unless self.const_defined? :INTERP if self.const_defined? :IP_NAME name = IP_NAME.to_s else #name = nil name = $0 #### ^^^^^^^^^^ ##################### end if self.const_defined? :IP_OPTS if IP_OPTS.kind_of?(Hash) opts = hash_kv(IP_OPTS).join(' ') else opts = IP_OPTS.to_s end else opts = '' end INTERP = TclTkIp.new(name, opts) (The version numbers are from the debian packages.) This change causes the fixnum problem in class TclTkExtIp's constructor. I have a 1.8.0 source where TclTkIp's initialize fn (in tcltklib.c) do not get params, so I do not know why is it for. What to do? Thanks, Ferenc