Scripting Performance Test Bed Details

This page discusses some of the details in how we set up the test bed for the Scripting Performance Paper.
  • Gzipped tar file consisting of the various files used to run the tests
  • JavaScript tests
  • Java tests
  • Back to the Abstract
  • Setup

    To run the tests, we followed the steps below
    1. Downloaded the following:
    2. Tcl7.6 Tcl8.0
    3. A prerelease of TclBlend1.0 sources with minor modifications. TclBlend1.0up1
    4. JDK1.1.5
    5. A prerelase of Jacl1.0 sources. The only modification was that the Java classes were compiled with optimization.
    6. Tcl7.6 was configured with:

      configure -prefix=/vol/wang/wang2/pt/cxh/tcl7 --enable-gcc -enable-shared

      Tcl8.0 was configured with:

      configure -prefix=/vol/wang/wang2/pt/cxh/tcl --enable-gcc -enable-shared
      TclBlend was configured with
      ./configure --with-java=/vol/wang/wang2/pt/cxh/jdk1.1.5 --prefix=/vol/wang/wang2/pt/cxh/tclblend
      Jacl was configured with:
      ./configure --with-java=/vol/wang/wang2/pt/cxh/jdk1.1.5 --prefix=/vol/wang/wang2/pt/cxh/jacl
      I then modified the unix/Makefile so that the Java class files were optimized.
    7. Compiled the above software with gcc
    8. Installed the above software on a local partition of a Sun Ultrasparc 200 with 256Mb of memory running Solaris2.5.1.
    9. Downloaded Kernighan's source and datafiles from and
    10. Jacl has problems with gets. It appears that gets returns 0 when the end of file is reached instead of returning -1. The fix was to edit the tcl sources for the tail, wc and sum1 tests and change the >= to >:
      	while {[gets $fd line] >= 0} {
      	while {[gets $fd line] > 0} {
    11. Jacl does not have fconfigure, so the cat and tail Tcl tests need the fconfigure wrapped in a catch:
      catch {fconfigure stdout -buffering full}	;# not needed on unix
    12. Edited the makefile appropriately.
    13. Ran make jclass to compile the Java tests used by Java and Tcl Blend.
    14. Ran make p.plt to create p.plt. This took a very long time, some of the Jacl tests take 30 minutes to run.
    15. Ran the JavaScript tests. For each class of test (sumloop, ack, array1, string), we started a new Netscape 4.03 process and visited the appropriate web page from js/index.html. We then copied the output with the mouse and pasted it into a file.
      Since one netscape process runs all the individual tests in a class of tests, memory allocation could be skewing the timing of the later individual tests.

    Copyright © 1998, H John Reekie, Christopher Hylands, Edward A. Lee

    Trademarks are properties of their respective owners.

    Last updated: 1990

    cxh at eecs