Posted to tcl by mjanssen at Mon Oct 08 17:47:47 GMT 2007view pretty

# do the results of this benchmark indicate the BC execution engine can be optimized further?

lappend auto_path ../
package require tcc
set t [tcc::new]
puts $t
$t compile {
   #include "tcl.h"
    int tccappend( ClientData cdata, Tcl_Interp *interp, int objc, Tcl_Obj * CONST objv[]){
        Tcl_Obj * obj = Tcl_NewListObj(NULL,0);
        int i =0;
        for (i=0 ; i< 10000 ; i++) {
            Tcl_ListObjAppendElement(interp, obj, Tcl_NewIntObj(i));
        }
        Tcl_ObjSetVar2(interp, objv[1], NULL, obj,0);
       return TCL_OK;
   }
}

$t command tccappend tccappend

proc bcappend {var} {
    for {set i 0} {$i < 10000} {incr i} {
        lappend var $i
    }
    return
}

tccappend a
bcappend a
puts [time {tccappend a} 100]
puts [time {bcappend a} 100]