[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Ruby Tk on Tiger

Chris Gehlker

9/16/2006 5:44:00 PM

I'm running ruby 1.8.5 (2006-09-10) [powerpc-darwin8.7.0] and when I
try they little simple Tk application on the first page of the Ruby
Tk chapter of the Pickaxe Book I get:
~ $ ruby -w TK.rb
/tk.rb:7: uninitialized constant TkRoot (NameError)
from TK.rb:6:in `require'
from TK.rb:6

However if I run the pre-installed ruby that came with Tiger like:
~ $ /usr/bin/ruby -w TK.rb

I get a nice little window with "Hello World!" in it as well as ruby,
File and Edit menus. The archives seem to have quite a bit of
discussion of this issue but I couldn't find any resolution. Did
anyone figure out how Apple got Tk working?
--
And those who were seen dancing were thought to be insane by those
who could not hear the music.
-Friedrich Wilhelm Nietzsche, philosopher (1844-1900)


3 Answers

Morton Goldberg

9/17/2006 1:33:00 PM

0

On Sep 16, 2006, at 1:43 PM, Chris Gehlker wrote:

> I'm running ruby 1.8.5 (2006-09-10) [powerpc-darwin8.7.0] and when
> I try they little simple Tk application on the first page of the
> Ruby Tk chapter of the Pickaxe Book I get:
> ~ $ ruby -w TK.rb
> ./tk.rb:7: uninitialized constant TkRoot (NameError)
> from TK.rb:6:in `require'
> from TK.rb:6
>
> However if I run the pre-installed ruby that came with Tiger like:
> ~ $ /usr/bin/ruby -w TK.rb
>
> I get a nice little window with "Hello World!" in it as well as
> ruby, File and Edit menus. The archives seem to have quite a bit of
> discussion of this issue but I couldn't find any resolution. Did
> anyone figure out how Apple got Tk working?

I suggest you check $: for where your Ruby is looking for libraries
and then verify whether or not tk.rb is available in one of those
libraries. I think it's likely that it's not.

Ruby 1.8.2 finds tk.rb in /usr/lib/ruby/1.8. but I don't know if this
version will work with 1.8.5.

Regards, Morton



Chris Gehlker

9/17/2006 4:49:00 PM

0


On Sep 17, 2006, at 6:32 AM, Morton Goldberg wrote:

> On Sep 16, 2006, at 1:43 PM, Chris Gehlker wrote:
>
>> I'm running ruby 1.8.5 (2006-09-10) [powerpc-darwin8.7.0] and when
>> I try they little simple Tk application on the first page of the
>> Ruby Tk chapter of the Pickaxe Book I get:
>> ~ $ ruby -w TK.rb
>> ./tk.rb:7: uninitialized constant TkRoot (NameError)
>> from TK.rb:6:in `require'
>> from TK.rb:6
>>
>> However if I run the pre-installed ruby that came with Tiger like:
>> ~ $ /usr/bin/ruby -w TK.rb
>>
>> I get a nice little window with "Hello World!" in it as well as
>> ruby, File and Edit menus. The archives seem to have quite a bit
>> of discussion of this issue but I couldn't find any resolution.
>> Did anyone figure out how Apple got Tk working?
>
> I suggest you check $: for where your Ruby is looking for libraries
> and then verify whether or not tk.rb is available in one of those
> libraries. I think it's likely that it's not.
>
> Ruby 1.8.2 finds tk.rb in /usr/lib/ruby/1.8. but I don't know if
> this version will work with 1.8.5.
>
> Regards, Morton

Good catch, Morton. tk.rb is nowhere to be found in any of my
$LOAD_PATH files. I still don't understand why I get the
'uninitialized constant' message rather than 'no such file to load'
but the problem is that there really isn't any such file to load.

--
Seven Deadly Sins? I thought it was a to-do list!


Chris Gehlker

9/17/2006 5:33:00 PM

0


On Sep 17, 2006, at 9:49 AM, Chris Gehlker wrote:

>
> On Sep 17, 2006, at 6:32 AM, Morton Goldberg wrote:
>
>> On Sep 16, 2006, at 1:43 PM, Chris Gehlker wrote:
>>
>>> I'm running ruby 1.8.5 (2006-09-10) [powerpc-darwin8.7.0] and
>>> when I try they little simple Tk application on the first page of
>>> the Ruby Tk chapter of the Pickaxe Book I get:
>>> ~ $ ruby -w TK.rb
>>> ./tk.rb:7: uninitialized constant TkRoot (NameError)
>>> from TK.rb:6:in `require'
>>> from TK.rb:6
>>>
>>> However if I run the pre-installed ruby that came with Tiger like:
>>> ~ $ /usr/bin/ruby -w TK.rb
>>>
>>> I get a nice little window with "Hello World!" in it as well as
>>> ruby, File and Edit menus. The archives seem to have quite a bit
>>> of discussion of this issue but I couldn't find any resolution.
>>> Did anyone figure out how Apple got Tk working?
>>
>> I suggest you check $: for where your Ruby is looking for
>> libraries and then verify whether or not tk.rb is available in one
>> of those libraries. I think it's likely that it's not.
>>
>> Ruby 1.8.2 finds tk.rb in /usr/lib/ruby/1.8. but I don't know if
>> this version will work with 1.8.5.
>>
>> Regards, Morton
>
> Good catch, Morton. tk.rb is nowhere to be found in any of my
> $LOAD_PATH files. I still don't understand why I get the
> 'uninitialized constant' message rather than 'no such file to load'
> but the problem is that there really isn't any such file to load.

OK, I thought I might be able to fix the problem by modifying my test
program as follows:
$: << '/usr/lib/ruby/1.8/powerpc-darwin8.0'
require '/usr/lib/ruby/1.8/tk'
root = TkRoot.new {title "Ex1"}
TkLabel.new(root) do
text 'Hello World!'
pack {padx 15 ; pady 15; side 'left'}
end

But now I get:
~ $ ruby -w TK.rb
dyld: NSLinkModule() error
dyld: Symbol not found: _is_ruby_native_thread
Referenced from: /usr/lib/ruby/1.8/powerpc-darwin8.0/tcltklib.bundle
Expected in: flat namespace

Trace/BPT trap

All I can figure out from this is that the old version of tk.rb is
loading a dynamic library and the dynamic loader can't resolve a
symbol. I'd appreciate any pointer but I suspect that this is best
pursued on one of the Apple mailing lists.

--
For blocks are better cleft with wedges,
Than tools of sharp or subtle edges,
And dullest nonsense has been found
By some to be the most profound.
-Samuel Butler,