summaryrefslogtreecommitdiffstats
path: root/library/init.tcl
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2024-04-01 19:56:29 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2024-04-01 19:56:29 (GMT)
commit8912060cdcf0a95cb82a6e7e62fd43cb49cbee84 (patch)
tree07b7c505e21f347e493c9edab8e8ae7539ccbf51 /library/init.tcl
parenta478f93fdabf01d106b3b76ab2d83141d178ff4c (diff)
parent0670a7bc017e581d6fa5376ce4e23564cf7ceb54 (diff)
downloadtcl-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.tcl23
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.