Where is Ruby 1.9 'TK' library?

Just installed Ruby 1.9 and tried to run one of my TK applications that
works using Ruby 1.8. There doesn't appear to be a 'TK' library in Ruby
1.9. Where/how can I get and install the 'TK' library?

--Alex

···

--
Posted via http://www.ruby-forum.com/.

See the recent (within the past two days) threads about Tk here. It
sounds like you're using the Windows RubyInstaller, which (as I just
found out) doesn't include Tk or Tk bindings.

···

On Wed, Feb 17, 2010 at 12:36 PM, Alex DeCaria <alex.decaria@millersville.edu> wrote:

Just installed Ruby 1.9 and tried to run one of my TK applications that
works using Ruby 1.8. There doesn't appear to be a 'TK' library in Ruby
1.9. Where/how can I get and install the 'TK' library?

--Alex

The Tk bindings in RubyInstaller has not been included.

The reason for that is simple: finding the proper Tk package, manage
to automate the unpacking and verify that Ruby does the good job in
picking it up during compilation takes time.

All the above thing is what we call a build recipe. At this time,
nobody wrote it. But I'm open to add extensions if someone takes the
stab and create the recipe *using rake tasks) to build it.

The repository is here:

Once implemented and tested, just send a pull request and will get
those changes tested and then merged.

Is extremely important the Tk package Ruby will links against could be
unpacked, *not installed*. Installation sometimes requires certain
levels of right that some users don't have when working with the build
recipes.

Also, because the recipes should document the process, not hide a
dependency or specific of a version outside the repository.

Hope this shed some light on this.

Regards,

···

On Feb 17, 7:36 pm, Alex DeCaria <alex.deca...@millersville.edu> wrote:

Just installed Ruby 1.9 and tried to run one of my TK applications that
works using Ruby 1.8. There doesn't appear to be a 'TK' library in Ruby
1.9. Where/how can I get and install the 'TK' library?

--
Luis Lavena

Luis, is it possible at all to *add* Tk bindings to a copy of Ruby
that has already been installed via RubyInstaller?

···

On Wed, Feb 17, 2010 at 3:10 PM, Luis Lavena <luislavena@gmail.com> wrote:

On Feb 17, 7:36 pm, Alex DeCaria <alex.deca...@millersville.edu> > wrote:

Just installed Ruby 1.9 and tried to run one of my TK applications that
works using Ruby 1.8. There doesn't appear to be a 'TK' library in Ruby
1.9. Where/how can I get and install the 'TK' library?

The Tk bindings in RubyInstaller has not been included.

The reason for that is simple: finding the proper Tk package, manage
to automate the unpacking and verify that Ruby does the good job in
picking it up during compilation takes time.

All the above thing is what we call a build recipe. At this time,
nobody wrote it. But I'm open to add extensions if someone takes the
stab and create the recipe *using rake tasks) to build it.

The repository is here:

GitHub - oneclick/rubyinstaller: RubyInstaller for Windows - Build recipes

Once implemented and tested, just send a pull request and will get
those changes tested and then merged.

Is extremely important the Tk package Ruby will links against could be
unpacked, *not installed*. Installation sometimes requires certain
levels of right that some users don't have when working with the build
recipes.

Also, because the recipes should document the process, not hide a
dependency or specific of a version outside the repository.

Hope this shed some light on this.

Luis, is it possible at all to *add* Tk bindings to a copy of Ruby
that has already been installed via RubyInstaller?

Funny you ask.

http://wiki.github.com/rdp/ruby_tutorials_core/tk

has some info on it (I've had success installing tk_as_gem for 1.9.1
mingw).

-rp

···

--
Posted via http://www.ruby-forum.com/\.

Wow, nice! Only... how do I compile the extension to take its Tcl/Tk
files from a non-default directory? I tried:
gem install tk_as_gem -- --with-tcl-dir='C:/Documents and
Settings/echristopherson/My Documents/Development/Tcl'
--with-tk-dir='C:/Documents and Settings/echristopherson/My
Documents/Development/Tcl'

(I don't have permission to install in C:\.)

···

On Wed, Feb 17, 2010 at 5:40 PM, Roger Pack <rogerpack2005@gmail.com> wrote:

Luis, is it possible at all to *add* Tk bindings to a copy of Ruby
that has already been installed via RubyInstaller?

Funny you ask.

http://wiki.github.com/rdp/ruby_tutorials_core/tk

has some info on it (I've had success installing tk_as_gem for 1.9.1
mingw).

Roger Pack wrote:

Luis, is it possible at all to *add* Tk bindings to a copy of Ruby
that has already been installed via RubyInstaller?

Funny you ask.

http://wiki.github.com/rdp/ruby_tutorials_core/tk

has some info on it (I've had success installing tk_as_gem for 1.9.1
mingw).

-rp

I tried: 'gem install tk_as_gem' but get the error message

'ERROR: Error installing tk_as_gem:
         ERROR: Failed to build native extension.'

Any idea what may be wrong? I have both Tcl and Ruby 1.9 installed on
my C: drive.

--Alex

···

--
Posted via http://www.ruby-forum.com/\.

Wow, nice! Only... how do I compile the extension to take its Tcl/Tk
files from a non-default directory? I tried:
gem install tk_as_gem -- --with-tcl-dir='C:/Documents and
Settings/echristopherson/My Documents/Development/Tcl'
--with-tk-dir='C:/Documents and Settings/echristopherson/My
Documents/Development/Tcl'

Did you add the bin dir into your path?
-r

···

--
Posted via http://www.ruby-forum.com/\.

'ERROR: Error installing tk_as_gem:
         ERROR: Failed to build native extension.'

Any idea what may be wrong? I have both Tcl and Ruby 1.9 installed on
my C: drive.

My first guess is that you don't have the devkit installed (if gcc
--version works then you do, though). We'll probably need more info,
like put your mkmf.log output into a pastie and post the link back here
or what not.
GL!
-r

···

--
Posted via http://www.ruby-forum.com/\.

Yes. Still no luck. I also tried using both MSys and cmd.exe. This was
on my work computer.

At home, I tried installing the gem from MSys and it seemed to hang
for 30 minutes or more, so I ran gem install with --verbose the second
time. It seems to be sitting there doing nothing at a few different
spots, but the really long one (which never terminates that I can see)
is after it runs /bin/install on a whole bunch of files, with the last
one being ./lib/tkextlib/SUPPORT_STATUS.

At that point, I got the message "Updating class cache with 496
classes...". After waiting about 20 minutes for that the first time, I
decided to try running gem install with --no-ri and
--no-update-sources, but it still hangs.

Places where it hangs:
1. Right after the line
"c:/Ruby/lib/ruby/gems/1.9.1/gems/tk_as_gem-0.0.1/ext/lib/tkextlib/tkimg/window.rb".
This takes about 10 minutes here, before it actually prints out the
remaining 42 or so files unpacked, and configures and compiles the
extension.
2. Right after the line "/bin/install -c -m 644
./lib/tkextlib/SUPPORT_STATUS
c:/Ruby/lib/ruby/gems/1.9.1/gems/tk_as_gem-0.0.1/lib/tkextlib". This
is the one that seems to hang for 40 minutes, or however long I let it
go on.

After I kill the process, I am able to at least run a test Tk program.

While we're on the subject, gem install --verbose lists the files that
it's unpacking, and part of the output is the following:

(begin)
c:/Ruby/lib/ruby/gems/1.9.1/gems/tk_as_gem-0.0.1/ext/lib/tk/clipboard.rb

:/Ruby/lib/ruby/gems/1.9.1/gems/tk_as_gem-0.0.1/ext/lib/tk/clock.rb
(end)

-- notice that there is a blank line between clipboard.rb and
clock.rb, and the clock.rb line starts with :confused: instead of c:/. Does
anyone know why that would be? It seems to always happen right between
those two lines.

···

On Wed, Feb 17, 2010 at 6:14 PM, Roger Pack <rogerpack2005@gmail.com> wrote:

Wow, nice! Only... how do I compile the extension to take its Tcl/Tk
files from a non-default directory? I tried:
gem install tk_as_gem -- --with-tcl-dir='C:/Documents and
Settings/echristopherson/My Documents/Development/Tcl'
--with-tk-dir='C:/Documents and Settings/echristopherson/My
Documents/Development/Tcl'

Did you add the bin dir into your path?

Roger, could you give some more guidance on what gem/extconf switches
are required to get tk_as_gem built when Tk is installed somewhere
other than C:\Tcl?

Also, is there anything I can do to help diagnose the hanging problem
that happens on my other computer (which does have C:\Tcl)?

Roger Pack wrote:

'ERROR: Error installing tk_as_gem:
         ERROR: Failed to build native extension.'

Any idea what may be wrong? I have both Tcl and Ruby 1.9 installed on
my C: drive.

My first guess is that you don't have the devkit installed (if gcc
--version works then you do, though). We'll probably need more info,
like put your mkmf.log output into a pastie and post the link back here
or what not.
GL!
-r

Roger,

I'm still trying to get tk_to_gem to work on my 64-bit windows. I made
sure devkit was installed, and gcc --version works. I'm getting the
same error message. I can't seem to locate the mkmf.log file. It
doesn't even seem to be created (I did a search of my entire harddrive
and only found mkmf.log files for other installs I've done).

As mentioned before, it worked fine on my other (32-bit) system. Would
there be any 64-bit issues with tk_as_gem?

--Alex

···

--
Posted via http://www.ruby-forum.com/\.

2. Right after the line "/bin/install -c -m 644
./lib/tkextlib/SUPPORT_STATUS
c:/Ruby/lib/ruby/gems/1.9.1/gems/tk_as_gem-0.0.1/lib/tkextlib". This
is the one that seems to hang for 40 minutes, or however long I let it
go on.

Hangs with tk for me have typically historically meant that Tk wasn't
found (I think, anyway). that for was 1.8 I've never seen it for 1.9,
though.

Here's a zipped up copy of my binaries (with the gem compiled in there).
They might not even need the tcl binaries in the path...but probably do
(8.4 binaries).

http://rubydoc.ruby-forum.com/distro/ruby191p376.tgz

HTH.

-rp

···

--
Posted via http://www.ruby-forum.com/\.

Roger, could you give some more guidance on what gem/extconf switches
are required to get tk_as_gem built when Tk is installed somewhere
other than C:\Tcl?

Looks like I was hard coding it to /Tcl (my bad).

Give 'er a shot now.

ex:

gem install tk_as_gem -- --with-tcl-dir=/installs/Tcl
--with-tk-dir=/installs/Tcl

Also, is there anything I can do to help diagnose the hanging problem
that happens on my other computer (which does have C:\Tcl)?

Typically for me this has meant I don't have tk84.dll in my path.

You can make sure it is using the whichr gem, if desired.
c:\dev_old>gem install os whichr
c:\dev_old>whichr tk*.dll -a
higher in the list is executed first
e:\Tcl\bin\tk84.dll (is not executable)

(it should show one)
-r

···

--
Posted via http://www.ruby-forum.com/\.

I'm still trying to get tk_to_gem to work on my 64-bit windows. I made
sure devkit was installed, and gcc --version works. I'm getting the
same error message. I can't seem to locate the mkmf.log file. It
doesn't even seem to be created (I did a search of my entire harddrive
and only found mkmf.log files for other installs I've done).

What's the full output? Do you have 32 bit versions of tk and ruby
installed, I assume?
-rp

···

--
Posted via http://www.ruby-forum.com/\.

2. Right after the line "/bin/install -c -m 644
./lib/tkextlib/SUPPORT_STATUS
c:/Ruby/lib/ruby/gems/1.9.1/gems/tk_as_gem-0.0.1/lib/tkextlib". This
is the one that seems to hang for 40 minutes, or however long I let it
go on.

Hangs with tk for me have typically historically meant that Tk wasn't
found (I think, anyway). that for was 1.8 I've never seen it for 1.9,
though.

It did find Tk and used it to compile the extension; and things seem
to work afterwards. Maybe part of the reason is that I was using Tk
8.5 instead of 8.4?

Here's a zipped up copy of my binaries (with the gem compiled in there).
They might not even need the tcl binaries in the path...but probably do
(8.4 binaries).

http://rubydoc.ruby-forum.com/distro/ruby191p376.tgz

Thanks. I'll try to download 8.4 so I can try it out later.

···

On Thu, Feb 18, 2010 at 1:14 AM, Roger Pack <rogerpack2005@gmail.com> wrote:

I've finally had success installing tk_as_gem on my home Windows VM
and my work Windows machine. It also no longer hangs for long periods
of time. On my VM I didn't really have to do anything to make it work,
but on my work PC I have everything stored under My Documents since I
can't write to C:\. Here is what helped:

1. Upgrade to the newest RubyInstaller package (1.9.1-p378). P243 had
a bug where the compilation couldn't finish because it had run out of
memory (Errno::ENOMEM). Install the devkit from rubyinstaller.org, if
you haven't already.
2. Run gem in a Windows command prompt (cmd) window. I never got it
working under MSys.
3. Use "short filenames" (the ones with ~ in them) instead of any
file/directory name with spaces. You can find out short filenames in
cmd by running dir /x on their parent directories. I couldn't get
paths with spaces to work.
4. For convenience, I set a shell variable TCLDIR_. It was set to
C:/Docume~1/echris~1/MyDocu~1/Development/Tcl. Note that this has
forward slashes instead of backslashes! Gcc doesn't understand
backslashes. (The underscore is because I had another variable TCLDIR
with backslashes.)
5. Use the command line:
gem install --verbose tk_as_gem -- --with-tcl-dir=%TCLDIR%
--with-tk-dir=%TCLDIR%

I really hope this helps someone. Roger, I don't know if you'd be able
to fix things so it can build with pathnames with spaces, or under
MSys, but that'd be great. And thanks for the hard work of making this
a gem!

···

On Fri, Feb 19, 2010 at 3:29 PM, Roger Pack <rogerpack2005@gmail.com> wrote:

Roger, could you give some more guidance on what gem/extconf switches
are required to get tk_as_gem built when Tk is installed somewhere
other than C:\Tcl?

Looks like I was hard coding it to /Tcl (my bad).

Give 'er a shot now.

ex:

gem install tk_as_gem -- --with-tcl-dir=/installs/Tcl
--with-tk-dir=/installs/Tcl

Roger Pack wrote:

What's the full output? Do you have 32 bit versions of tk and ruby
installed, I assume?
-rp

I have ActiveState Active Tcl8.4.19.1 installed, along with Ruby
1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32]. Ruby is working
fine with my other apps, and the Active Tcl is working fine with my TK
apps if I run them under Ruby 1.8.6.

Ruby 1.9 is my default installation (confirmed by ruby -v).

When I type gem install tk_as_gem I get:
'Building native extensions. This could take a while...
ERROR: Error installing tk_as_gem:
        ERROR: Failed to build gem native extension.

C:/Ruby19/bin/ruby.exe extconf.rb

Gem files will remain installed in
C:/Ruby19/lib/ruby/gems/1.9.1/gems/tk_as_gem-0.1.0 for inspection.
Results logged to
C:/Ruby19/lib/ruby/gems/1.9.1/gems/tk_as_gem-0.1.0/gem_make.out'

The contents of the gem_make.out file are just 'C:/Ruby19/bin/ruby.exe
extconf.rb'

I do have devkit in the Ruby19 directory, along with the appropriate
/bin stuff from devkit.

Other gems install fine. I currently have fxruby and RMagick gems
installed and they are working fine. My gem environment is 1.3.6.

--Alex

···

--
Posted via http://www.ruby-forum.com/\.

I got an interesting result. I was able to install tk_from_gem and it
installed and worked. However, if I run my Tk application using Ruby
1.9 it loads noticably slow (the Gui builds frame-by-frame as I watch
it). If I run the exact same application using Ruby 1.8, it loads
instantaneously.

I've attached the application I'm running (a units converter program) in
case anyone wants to play with it. Please note it was my first attempt
at GUI programming, so I know it's not the best for style, etc.

--Alex

Attachments:
http://www.ruby-forum.com/attachment/4501/unit_converter.rbw

···

--
Posted via http://www.ruby-forum.com/.

The contents of the gem_make.out file are just 'C:/Ruby19/bin/ruby.exe
extconf.rb'

What happens if you try and run ruby extconf.rb?
-rp

···

--
Posted via http://www.ruby-forum.com/\.