TclPro v1.1

Daniel Lazenby

Issue #62, June 1999

This tool suite includes four related tools: debugger, checker, wrapper and compiler.

  • Manufacturer: Scriptics Corporation

  • E-mail: info@scriptics.com

  • URL: http://www.scriptics.com/

  • Price: $1000 US per named user

  • Reviewer: Daniel Lazenby

TclPro is a collection of tools that should make your Tcl/Tk programming life a little easier. This tool suite includes four related tools: debugger, checker, wrapper and compiler. Some tools are graphical, and others are command line. Two TclPro-specific interpreters, prowish and protclsh, are also included. These four tools provide several valuable services.

The first tool is a Tcl compiler. The current release of Tcl compiles source code before execution. With TclPro, one can compile source code independent of execution. This gives you the ability to distribute your programs in a compiled format. Not all of the Tcl source can be compiled with TclPro v1.1; items which cannot be compiled independent of execution will be compiled when executed. A procedure that takes a script as an argument is an example of something that cannot be compiled before execution.

Distributing a Tcl/Tk program to non-Tcl platforms requires the distribution of several Tcl/Tk files and libraries besides the application's Tcl script. With the TclPro Wrapper, you can bundle all of the various files into one statically or dynamically wrapped file. Wrapping a Tcl application statically creates a stand-alone bundle of tclsh and all related Tcl libraries and application files. I wrapped a simple 1820-byte file and in return received a file almost 1.67MB in size. Programs prepared in this manner can be loaded and run on platforms without regard to the installed Tcl version.

Wrapping an application dynamically will reduce the application's size. The same dynamically wrapped 1820-byte file produced an output file of about 107.5KB. There is a cost for this smaller footprint. Dynamically wrapped applications require the target platform's Tcl installation to be compatible with the Tcl release of your application. Both non-compiled and compiled Tcl files may be fed to the TclPro Wrapper.

Each new version of software presents some new functions or features. Sometimes a little backward compatibility is lost among those new features and functions. I am notorious for dropping a semicolon or curly brace in my code. TclPro Checker addresses these and several other programming issues. It can detect parsing and syntax errors. Four types of warnings are provided by TclPro Checker. There are warnings about platform portability of the code, performance-optimization opportunities for code segments, potentially incorrect command usage, and warnings about changes in syntax conventions between older and newer Tcl versions. The output of TclPro Checker streams across the screen. You may want to page the output or redirect it to a file.

Figure 1. TclPro Debugger Screen

The fourth tool is a graphical debugger with a trick up its sleeve. Figure 1 shows how information is presented in the three panels. The upper-left panel presents the stack. Variables and their values are presented in the upper-right panel. Code being debugged is displayed in the lower panel. A toolbar provides the means of stepping in, through, around and over procedures and related code.

TclPro Debugger's other useful feature is remote debugging. With this tool, you can actually debug a Tcl/Tk program residing on another platform. Don't get too excited just yet. You cannot randomly select any remote file to debug. Some prep work is required before files can be debugged remotely. Three commands with arguments must be entered into the remote file. Only after doing this can you debug them remotely.

Install Experience

The message here is not that I had an installation problem. It is about the timeliness and accuracy of Scriptics e-mail support staff. They knew me only as another person who was having a problem installing their fully-functioning download product for evaluation on a Caldera OpenLinux (COL) v1.3 Linux platform.

Installation materials and the Scriptics web site said TclPro was known to install and function properly on Solaris, HP and Irix UNIX flavors. SuSE 5.3+ and Red Hat 5.0+ were the only two Intel Linux distributions listed as known to support TclPro. The instructions said TclPro should work on other Linux distributions, providing they used glibc2. Having just upgraded my platform to COL v1.3 with glibc, I could not see any reason why TclPro should not run on my platform.

After verifying libc's installation and reading all of the available README and INSTALL.TXT files, I tried my first TclPro install. It failed. I repeated the install and verified my steps and the displayed error messages. I contacted Scriptics Support with the symptoms and error messages. The next business day, I received a response requesting some additional information, a basic explanation of the install process and a couple of things to try. Later in the day, I sent Scriptics Support the requested information. I received a response the next business day. The folks at Scriptics quickly spotted that COL v1.3 appended a dot (.) to the end of TclPro's CD-ROM file names. This dot was appended only to file names that did not already contain an extension. I did not have a solution, yet I knew what the problem was and knew an answer was being sought. Another business day passed and I received a workaround for my COL v1.3 installation. Using the workaround, the TclPro1.1 installation went flawlessly.

I was set up to use KDE. My screen resolution is such that the entire install dialog boxes did not appear on the screen. Resizing the dialog boxes under KDE prevented access to the dialog box buttons. I suggest using the X Window System for product installation. With X Windows, you can move portions of the dialog box off the screen to see the various buttons.

Documentation and Other Resources

TclPro1.1 comes with a 107-page User's Guide in both hard- and soft-copy formats. The soft copy is in PDF format and requires the Acrobat 3.0+ viewer. Local on-line documentation also includes browser-based help and man pages. Additional information, resources and links are available at http://www.scriptics.com/resources/.

I compared a couple of the User's Guide chapters with the browser's help content. The User's Guide and the local browser-based help content are similar in some respects and also contain some differences. One primary difference is the availability of message IDs within the on-line help.

I did notice a couple of minor things about the browser-based on-line help. The on-line “Using TclPro Checker” topic referred to a nonexistent example. I did find the same topic and example in the User's Guide. On the other hand, I attempted to use an example command from the book and it failed. The command usage error messages and the on-line help quickly pointed out the book's error.

Licensing

At the time of this writing, Scriptics' web site and other literature indicated TclPro is licensed to a named individual and not the platform. No clear indication was given as to how licenses could be reallocated within an organization if a personnel turnover were to occur. Licensing relief may be on the horizon. The next release of TclPro will offer a UNIX-based network license package. A five-user license will be the smallest available network license.

Support

A 30-day e-mail installation and evaluation support service is included. As mentioned above, my experience with this support was quite positive. Scriptics also offers three levels of fee-based support. The lowest level is an annual product update service. This level of support provides only product updates. The two other levels of support, Gold and Platinum, go beyond product updates and are sold on a per-user basis. At the time of this review, the product update service is a prerequisite for either the Gold or Platinum support levels—not an unreasonable condition. I feel some of the other conditions on support need to be rethought. For example, the Gold-level support required purchasing support for a minimum of five users. This is rather expensive if you own only one or two licenses.

Minimum Platform

I was unable to find recommended minimum system requirements in the documentation or on the web site. This product's command-line tools run on a 486/66 platform with 24MB of RAM. I do not recommend running the debugger on this class machine unless you do not mind waiting several minutes. TclPro1.1 runs quite nicely on a 300MHz Pentium II with 64MB of RAM.

Conclusion

I found TclPro Version 1.1 easy to learn and found value in each of the four TclPro tools. I feel the product is definitely worth the download and evaluation. The User's Guide very adeptly describes TclPro: “TclPro is an evolving piece of software. We will continually improve TclPro according to the user feedback and the needs of the Tcl community.” Let Scriptics know if it does not meet your needs.

Note that a beta release of TclPro Version 1.2 was made available shortly before this article was submitted for publication.

Daniel Lazenby (dlazenby@ix.netcom.com) holds a BS in Decision Sciences. He first encountered UNIX in 1983 and discovered Linux in 1994. Today he provides support for a range of platforms running Linux, AIX and HP-UX.