# -*- tcl -*- # Maintenance Instruction: leave the 999999.xxx.x as is and use 'pmix make' or src/make.tcl to update from -buildversion.txt # # Please consider using a BSD or MIT style license for greatest compatibility with the Tcl ecosystem. # Code using preferred Tcl licenses can be eligible for inclusion in Tcllib, Tklib and the punk package repository. # ++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ # (C) 2023 # # @@ Meta Begin # Application canaryspace 999999.0a1.0 # Meta platform tcl # Meta license BSD # Meta summary Diagnostic tool for namespace navigation/introspection to help avoid command conflicts. # Meta description canaryspace loads the ::canaryspace namespace with wrappers for the set of commands # Meta description that exist in the global namespace :: at the time the canaryspace package is loaded. # Meta description These commands just emit info to stderr to assist in determining whether calls are # Meta description unintentionally being run in the namespace. # Meta description This is often the case with commands which use uplevel 1 or similar constructs to call # Meta description code in the callers namespace. If such commands need to run in arbitrary namespaces # Meta description which may have arbitrary commands then uplevelled commands may need to be prefixed with # Meta description :: or the appropriate namespace path. # Meta description Constructs such as punk pipelines deliberately run script segments in the calling context # Meta description and so may need to be comprised mainly of fully qualified commands. # @@ Meta End # ++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ ## Requirements ##e.g package require frobz namespace eval canaryspace::setup { variable gcommands proc build_commands {} { variable gcommands gcommands.= nscommands ::* -raw |> .=>1 linelist foreach cmd $gcommands { proc ::canaryspace::$cmd args [string map [list $cmd] { ::puts stderr "CANARYSPACE " ::puts stderr " [::info level 0]" ::tailcall :: {*}$args } ] } } build_commands } # ++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ namespace eval canaryspace { } # ++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ ## Ready package provide canaryspace [namespace eval canaryspace { ::variable version ::set version 999999.0a1.0 }] return