Index: TODO =================================================================== diff -u -r033c63d771af5253b0e94c2a9c1c6a94df40242e -r304c346008d3c471fa9350eb0b18813eec2a4be6 --- TODO (.../TODO) (revision 033c63d771af5253b0e94c2a9c1c6a94df40242e) +++ TODO (.../TODO) (revision 304c346008d3c471fa9350eb0b18813eec2a4be6) @@ -1019,6 +1019,7 @@ - removed definition of slots from nx, changed regression tests examples to to ::attribute instead of -slots +- replaced several occurrences of "eval" in nx.tcl and xotcl2.tcl TODO: Index: library/nx/nx.tcl =================================================================== diff -u -r033c63d771af5253b0e94c2a9c1c6a94df40242e -r304c346008d3c471fa9350eb0b18813eec2a4be6 --- library/nx/nx.tcl (.../nx.tcl) (revision 033c63d771af5253b0e94c2a9c1c6a94df40242e) +++ library/nx/nx.tcl (.../nx.tcl) (revision 304c346008d3c471fa9350eb0b18813eec2a4be6) @@ -1175,7 +1175,7 @@ if {![::nsf::objectproperty $object object]} { $withclass create $object } - eval ::nsf::next -childof $object $args + ::nsf::next -childof $object {*}$args } } } @@ -1297,11 +1297,12 @@ } :copyNSVarsAndCmds $origin $dest foreach i [::nsf::cmd::ObjectInfo::forward $origin] { - eval [concat ::nsf::forward $dest -per-object $i [::nsf::cmd::ObjectInfo::forward $origin -definition $i]] + ::nsf::forward $dest -per-object $i {*}[::nsf::cmd::ObjectInfo::forward $origin -definition $i] + } if {[::nsf::objectproperty $origin class]} { foreach i [::nsf::cmd::ClassInfo::forward $origin] { - eval [concat ::nsf::forward $dest $i [::nsf::cmd::ClassInfo::forward $origin -definition $i]] + ::nsf::forward $dest $i {*}[::nsf::cmd::ClassInfo::forward $origin -definition $i] } } set traces [list] @@ -1386,13 +1387,11 @@ interp alias {} ::nx::self {} ::nsf::current object } - - ####################################################################### # define, what should be exported namespace eval ::nx { - # export the contents for all xotcl versions + # export the main commands of ::nx namespace export Object Class next self current # TODO should not be necessary in the future Index: library/xotcl/library/xotcl2.tcl =================================================================== diff -u -r033c63d771af5253b0e94c2a9c1c6a94df40242e -r304c346008d3c471fa9350eb0b18813eec2a4be6 --- library/xotcl/library/xotcl2.tcl (.../xotcl2.tcl) (revision 033c63d771af5253b0e94c2a9c1c6a94df40242e) +++ library/xotcl/library/xotcl2.tcl (.../xotcl2.tcl) (revision 304c346008d3c471fa9350eb0b18813eec2a4be6) @@ -610,7 +610,7 @@ ::lappend mp $st$wd${sp}($methodkind)$sp$wd } foreach cl [concat ::xotcl::Class [::xotcl::Class info heritage]] { - eval ::lappend meths [$cl info instcommands] + ::lappend meths {*}[$cl info instcommands] } set old [pwd] cd $dir @@ -619,7 +619,7 @@ ::append idx "\"::xotcl::config::mkindex [list $meta] [list $dir] $args\"\n" set oc 0 set mc 0 - foreach file [eval glob -nocomplain -- $args] { + foreach file [glob -nocomplain -- {*}$args] { if {[catch {set f [open $file]} msg]} then { catch {close $f} cd $old @@ -721,7 +721,7 @@ :public object method extend {name args} { :require $name - eval $name configure $args + $name configure {*}$args } :public object method contains script { @@ -747,7 +747,7 @@ :public object method unknown args { #puts stderr "unknown: package $args" - eval [set :packagecmd] $args + [set :packagecmd] {*}$args } :public object method verbose value { @@ -766,7 +766,7 @@ error "not found" } } else { - eval [set :packagecmd] present $args + [set :packagecmd] present {*}$args } } @@ -788,7 +788,7 @@ :public object method require args { #puts "XOTCL package require $args, current=[namespace current]" set prevComponent ${:component} - if {[catch {set v [eval package present $args]} msg]} { + if {[catch {set v [package present {*}$args]} msg]} { #puts stderr "we have to load $msg" switch -exact -- [lindex $args 0] { -exact {set pkg [lindex $args 1]}