Why does Ruby use both tcl83.dll and tk83.dll (instead of just tk83.dll)?

H

H. Simpson

Hi,

Why does Ruby (on windows) use both tcl83.dll and tk83.dll (instead of
just tk83.dll)?

Does tk require tcl? I thought tk was simply a c api...

Thanks.
 
M

Mike Hall

H. Simpson said:
Does tk require tcl?

Absolutely. Tk operations and events are scripted in Tcl.
Look for a 'Scripts' directory under your Tk installation.
Much of the behaviour of buttons, listboxes, menus, and dialogs
is done with Tcl.
I thought tk was simply a c api...

It very well may be... for Tcl! :)
 
H

H. Simpson

Mike said:
H. Simpson wrote:




Absolutely. Tk operations and events are scripted in Tcl.
Look for a 'Scripts' directory under your Tk installation.
Much of the behaviour of buttons, listboxes, menus, and dialogs
is done with Tcl.




It very well may be... for Tcl! :)

Seems that perl-tk somehow removed the Tcl part of Tk.

Hmmm. The compiled part of that project might be useful for other
languages (like c/c++ or Ruby) to directly use Tk without the
overhead+benefits of Tcl.
 
H

Hidetoshi NAGAI

Hi,

From: "H. Simpson" <[email protected]>
Subject: Re: Why does Ruby use both tcl83.dll and tk83.dll (instead of just tk83.dll)?
Date: Tue, 3 Aug 2004 12:21:34 +0900
Message-ID: said:
Seems that perl-tk somehow removed the Tcl part of Tk.

That is a 'ptk' library. It's similar but NOT same as a 'Tk'
library, I think. If linking 'ptk', it should be called 'Ruby/ptk'.

# I never oppose the creation of 'Ruby/ptk'.
Hmmm. The compiled part of that project might be useful for other
languages (like c/c++ or Ruby) to directly use Tk without the
overhead+benefits of Tcl.

I think the overhead is not serious, because almost all part of
Ruby/Tk don't depend on Tcl's command line parser.
Maybe, the cost for converting Ruby/Tk's arguments to Tcl/Tk's
arguments is heavier than the overhead.
If you cannot accept the cost, you can bypass the converting step
in the bottle neck part (Please check ext/tcltklib/demo/lines?.rb).

I hate losing the benefits rather than accepting the overhead.
I'm advocating that the merits of using pure Tcl/Tk libraries are

(1) you can use the newest features at the same time of the new
Tcl/Tk release, and

(2) you can use almost all of Tcl/Tk extensions under Ruby/Tk.

By this reason, I'll not replace Tcl/Tk libraries to ptk libraries.

To receive the second merit, Ruby 1.8.2 includes the wrapper libraries
for some Tcl/Tk extensions (e.g. Tcllib, IWidgets, BWidgets, TkTable,
vu, and so on; see ext/tk/lib/tkextlib/SUPPORT_STATUS). Of course,
to use those libraries, those extensions must work on your Tcl/Tk.

However, many of current target extensions of the wrappers are
included the ActiveTcl binary package (see http://www.tcl.tk/ and
http://www.activestate.com/Products/ActiveTcl/).
If your tcltklib.so is compiled with libraries of the ActiveTcl
package, you can use those extensions (charts, tables, calendar,
tree, tab-note, and so on) with those wrappers.
 
H

H. Simpson

Hidetoshi said:
Hi,

From: "H. Simpson" <[email protected]>
Subject: Re: Why does Ruby use both tcl83.dll and tk83.dll (instead of just tk83.dll)?
Date: Tue, 3 Aug 2004 12:21:34 +0900



That is a 'ptk' library. It's similar but NOT same as a 'Tk'
library, I think. If linking 'ptk', it should be called 'Ruby/ptk'.

# I never oppose the creation of 'Ruby/ptk'.




I think the overhead is not serious, because almost all part of
Ruby/Tk don't depend on Tcl's command line parser.
Maybe, the cost for converting Ruby/Tk's arguments to Tcl/Tk's
arguments is heavier than the overhead.
If you cannot accept the cost, you can bypass the converting step
in the bottle neck part (Please check ext/tcltklib/demo/lines?.rb).

I hate losing the benefits rather than accepting the overhead.
I'm advocating that the merits of using pure Tcl/Tk libraries are

(1) you can use the newest features at the same time of the new
Tcl/Tk release, and

(2) you can use almost all of Tcl/Tk extensions under Ruby/Tk.

By this reason, I'll not replace Tcl/Tk libraries to ptk libraries.

To receive the second merit, Ruby 1.8.2 includes the wrapper libraries
for some Tcl/Tk extensions (e.g. Tcllib, IWidgets, BWidgets, TkTable,
vu, and so on; see ext/tk/lib/tkextlib/SUPPORT_STATUS). Of course,
to use those libraries, those extensions must work on your Tcl/Tk.

However, many of current target extensions of the wrappers are
included the ActiveTcl binary package (see http://www.tcl.tk/ and
http://www.activestate.com/Products/ActiveTcl/).
If your tcltklib.so is compiled with libraries of the ActiveTcl
package, you can use those extensions (charts, tables, calendar,
tree, tab-note, and so on) with those wrappers.

I see! Thanks for explaining. The BWidgets look really nice so I'm
glad you took that approach rather than something like ptk.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,731
Messages
2,569,432
Members
44,832
Latest member
GlennSmall

Latest Threads

Top