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

Discussion in 'Ruby' started by H. Simpson, Aug 2, 2004.

  1. H. Simpson

    H. Simpson Guest


    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...

    H. Simpson, Aug 2, 2004
    1. Advertisements

  2. H. Simpson

    Mike Hall Guest

    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! :)
    Mike Hall, Aug 2, 2004
    1. Advertisements

  3. H. Simpson

    H. Simpson Guest

    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. Simpson, Aug 3, 2004
  4. Hi,

    From: "H. Simpson" <>
    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
    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.
    Hidetoshi NAGAI, Aug 3, 2004
  5. H. Simpson

    H. Simpson Guest

    I see! Thanks for explaining. The BWidgets look really nice so I'm
    glad you took that approach rather than something like ptk.
    H. Simpson, Aug 3, 2004
    1. Advertisements

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 (here). After that, you can post your question and our members will help you out.