Kitten

Purpose: collect information about the starkit called Kitten.


Someone (dgp?) recently on the wiki chatroom observed that the idea of kitten is to turn a tclkit/starkit 2 file deployment into a 3 file deployment (unless of course you merge your application with either the kitten or tclkit starkit).


What: kitten
Where: http://equi4.com/pub/sk/
Description: Kitten is a tclkit collection of Tcl/Tk extensions aimed at reducing the work a developer has to do while developing a starkit. It contains script and compiled extensions like tcllib, BWidget, expat, Expect, incr Widgets, mclistbox, mpexpr, narray, a tcl parser, an sgml parser, tclSOAP, stooop, Supertext, tdom, Tix, Tktable, tclXML, tkHtml, ClassyTk and others. Binary extensions are compiled for Windows, Linux, and Solaris as possible. Last updated in 2004.
Updated: 02/2003
Contact: See web site.

To use kitten, download it from above (it's about 4 Mb). If all you want to do is use the included packages from your application running under tclkit (over 130 by now), then nothing could be simpler:

    source kitten.kit

By executing the command "tclkit kitten.kit", you get a GUI-based embedded help system (based on Wikit).


By running "tclkit kitten.kit -l", you get a list of packages present in kitten, as well as their version number(s). On Windows, use "tclkitsh.exe kitten.kit -l", since this is command-line based.

(Older output of "kitten -l" removed, the Kitten home page [1 ] has a better listing now, 142 packages on Linux at last count)


Jan 2003 - The "-u" update flag is no longer functional. It is being replaced by a far more generic and efficient mechanism. Work is in progress, no ETA yet. -jcw

Feb 2004 - actually, there has been a replacement mechanism for many months now: "sdx update kitten.kit" will update only modified files. FWIW, I've updated tcllib in it to the just-released 1.6. -jcw


Unsolicited response: this is stunning.


Steve Landers characterizes Kitten as "nothing more than an experiment ... this is how you might build a BI--if you wanted to." Even so, it's within 10% of 'producthood'.


Kitten is constructed as a regular starkit, with one change to make its use convenient for sourceing, in main.tcl, the line "starkit::startup" has been replaced by:

    if {[starkit::startup] == "sourced"} return

With this, "source kitten" simply sets things up and then makes all its packages available in the caller.


See Considerations when adding extensions to Kitten for discussions on cross-platform deployement in this wonderful package.

See also sdx, the Starkit Developer eXtension used to create starkits.


lexfiend 2007-12-30: Looks like there haven't been updates to Kitten in a while, and it's no longer in the new Equi4 wiki (I've changed all links above to point to their old wiki. Has it been abandoned?


MHo 2012-02-13: package requireing Expect from kitten.kit gives a core dump on modern solaris ...


JM 2019-07-24: my copy of kitten could be very old, it shows the following...

 C:\Tcl\code\tclkit>tclkitsh.exe kitten.kit -l
              ascenc  0.11
           autoproxy  1.0
          autoscroll  1.0
              base64  2.3
            blowfish  0.10
             BWidget  1.6
                 cgi  1.6.1
             cgi2dom  1.1
               cksum  1.0.1
               Class  1.0
            ClassyTk  1.0
             cmdline  1.2.2
                comm  4.2
             control  0.1.2
             counter  2.0.2
               crc16  1.1
               crc32  1.1
              critcl  0.0
                 csv  0.5
                 des  0.8.1
                 dns  1.1
            doctools  1.0.1
 doctools::changelog  0.1
       doctools::cvs  0.1
       doctools::idx  0.1
       doctools::toc  0.1
                 dom  2.1
              dom::c  2.0
        dom::generic  1.0
        dom::libxml2  1.0
            dom::tcl  2.1
     dom::tclgeneric  1.0
             domHTML  0.1
              dommap  1.0
             dyncall  0.11
                exif  1.1.1
               expat  1.1 + 2.0
              Expect  5.31.5
              Extral  2.0
            fileutil  1.6
                 ftp  2.4.1
         ftp::geturl  0.2
                ftpd  1.2
             gbutton  0.2
                  gk  5.1
             hexdump  0.10
                HTML  1.0
                html  1.2.2
          HTML_Parse  1.0
           htmlparse  1.0
               ihash  0.11
             inifile  0.1
                 irc  0.4
                 Itk  3.2
            Iwidgets  3.0.1
                 log  1.1
              logger  0.3
               lzrw1  0.10
                math  1.2.2
      math::calculus  0.5.1
         math::fuzzy  0.2
      math::geometry  1.0.1
      math::optimize  0.1
    math::statistics  0.1.1
               mathf  0.11
           mclistbox  1.02
                 md4  1.0.1
                 md5  1.4.3 + 2.0.0
                md5c  0.11
            md5crypt  1.0.0
              Mentry  2.4
              mentry  2.4
          Metawidget  1.3
                mime  1.3.4
           mkWidgets  1.3
              Modify  1.0
              Mpexpr  1.0
         multiplexer  0.2
                mvec  0.12
              narray  0.81
                ncgi  1.2.3
                nntp  0.2.1
                pop3  1.6.1
               pop3d  1.0.2
         pop3d::dbox  1.0.1
          pop3d::udb  1.1
            profiler  0.2.2
       puretclparser  2.0
              report  0.3.1
              resolv  1.0.3
           ripemd128  1.0.0
              rpcvar  1.1
             scratch  0.10
                sgml  1.8
          sgmlparser  1.0
                sha1  1.0.3
                smtp  1.3.5
               smtpd  1.2.1
                snit  0.93
                SOAP  1.6
          SOAP::beep  1.0
           SOAP::CGI  1.0
        SOAP::Domain  1.4
           SOAP::ftp  1.0
          SOAP::http  1.0
         SOAP::https  1.0
       SOAP::Service  0.4
          SOAP::smtp  1.0
         SOAP::Utils  1.0
         SOAP::xpath  0.2
      soapinterop::B  1.0
   soapinterop::base  1.0
      soapinterop::C  1.0
             soundex  1.0
              stooop  4.4.1
              struct  1.4 + 2.0
                 sum  1.1.0
           Supertext  1.0.1
            switched  2.2
           Tablelist  2.7
           tablelist  2.7
           tclparser  2.0
                Tclx  8.4
                tdom  0.7.5
            tdomplus  0.1
            textutil  0.6
  textutil::expander  1.2.1
                time  1.0.2
                 Tix  8.2
              Tkhtml  0.0
             Tktable  2.7
                 tls  1.4
                 uri  1.1.3
            uri::urn  1.0.1
            uuencode  1.1
                 Wcb  2.8
                 wcb  2.8
                 Web  1.0
              Widget  1.0
               Wikit  1.0
       Wikit::Format  1.0
          Wikit::Gui  1.0
        Wikit::Utils  1.0
              xerces  2.0
                 xml  2.0
              xml::c  2.0
          xml::expat  2.0
            xml::tcl  2.0
      xml::tclparser  2.0
             xmldefs  2.0
              xmldep  1.0
              XMLRPC  1.0
           xmlswitch  1.0
               xpath  1.0
             yencode  1.1
                yeti  0.3
                ylex  0.3

 C:\Tcl\code\tclkit>