diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-04-01 19:56:29 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-04-01 19:56:29 (GMT) |
commit | 8912060cdcf0a95cb82a6e7e62fd43cb49cbee84 (patch) | |
tree | 07b7c505e21f347e493c9edab8e8ae7539ccbf51 /library/init.tcl | |
parent | a478f93fdabf01d106b3b76ab2d83141d178ff4c (diff) | |
parent | 0670a7bc017e581d6fa5376ce4e23564cf7ceb54 (diff) | |
download | tcl-8912060cdcf0a95cb82a6e7e62fd43cb49cbee84.zip tcl-8912060cdcf0a95cb82a6e7e62fd43cb49cbee84.tar.gz tcl-8912060cdcf0a95cb82a6e7e62fd43cb49cbee84.tar.bz2 |
TIP 688: clock command revision and speedup
Diffstat (limited to 'library/init.tcl')
-rw-r--r-- | library/init.tcl | 23 |
1 files changed, 9 insertions, 14 deletions
diff --git a/library/init.tcl b/library/init.tcl index 6500d8e..1209619 100644 --- a/library/init.tcl +++ b/library/init.tcl @@ -109,22 +109,17 @@ if {[interp issafe]} { # Set up the 'clock' ensemble - namespace eval ::tcl::clock [list variable TclLibDir $::tcl_library] - - proc ::tcl::initClock {} { - # Auto-loading stubs for 'clock.tcl' - - foreach cmd {add format scan} { - proc ::tcl::clock::$cmd args { - variable TclLibDir - source [file join $TclLibDir clock.tcl] - return [uplevel 1 [info level 0]] - } + proc clock args { + set cmdmap [dict create] + foreach cmd {add clicks format microseconds milliseconds scan seconds} { + dict set cmdmap $cmd ::tcl::clock::$cmd } - - rename ::tcl::initClock {} + namespace inscope ::tcl::clock [list namespace ensemble create -command \ + [uplevel 1 [list ::namespace origin [::lindex [info level 0] 0]]] \ + -map $cmdmap] + ::tcl::unsupported::clock::configure -init-complete + uplevel 1 [info level 0] } - ::tcl::initClock } # Conditionalize for presence of exec. |