diff options
author | sebres <sebres@users.sourceforge.net> | 2017-06-02 22:43:57 (GMT) |
---|---|---|
committer | sebres <sebres@users.sourceforge.net> | 2017-06-02 22:43:57 (GMT) |
commit | 08432c4f786e6f6d64325f9e60f792122a149aa4 (patch) | |
tree | 35e7f4f0544b6ae806fcb447a124b7231149f684 | |
parent | 6cbab1b74a642fd7a99a0019d75827d77416a600 (diff) | |
download | tcl-08432c4f786e6f6d64325f9e60f792122a149aa4.zip tcl-08432c4f786e6f6d64325f9e60f792122a149aa4.tar.gz tcl-08432c4f786e6f6d64325f9e60f792122a149aa4.tar.bz2 |
removing "-compile" option on ensembles - allow to compile tcl-internal ensembles within namespace "::tcl::*" (apparently only having map for sub-commands).
-rw-r--r-- | generic/tclEnsemble.c | 18 | ||||
-rw-r--r-- | library/init.tcl | 2 |
2 files changed, 7 insertions, 13 deletions
diff --git a/generic/tclEnsemble.c b/generic/tclEnsemble.c index 5b8deb6..429cc3d 100644 --- a/generic/tclEnsemble.c +++ b/generic/tclEnsemble.c @@ -55,12 +55,11 @@ enum EnsSubcmds { }; static const char *const ensembleCreateOptions[] = { - "-command", "-compile", "-map", "-parameters", "-prefixes", - "-subcommands", "-unknown", NULL + "-command", "-map", "-parameters", "-prefixes", "-subcommands", + "-unknown", NULL }; enum EnsCreateOpts { - CRT_CMD, CRT_COMPILE, CRT_MAP, CRT_PARAM, CRT_PREFIX, - CRT_SUBCMDS, CRT_UNKNOWN + CRT_CMD, CRT_MAP, CRT_PARAM, CRT_PREFIX, CRT_SUBCMDS, CRT_UNKNOWN }; static const char *const ensembleConfigOptions[] = { @@ -184,7 +183,6 @@ TclNamespaceEnsembleCmd( int permitPrefix = 1; Tcl_Obj *unknownObj = NULL; Tcl_Obj *paramObj = NULL; - int ensCompFlag = -1; /* * Check that we've got option-value pairs... [Bug 1558654] @@ -327,12 +325,6 @@ TclNamespaceEnsembleCmd( return TCL_ERROR; } continue; - case CRT_COMPILE: - if (Tcl_GetBooleanFromObj(interp, objv[1], - &ensCompFlag) != TCL_OK) { - return TCL_ERROR; - }; - continue; case CRT_UNKNOWN: if (TclListObjLength(interp, objv[1], &len) != TCL_OK) { if (allocatedMapFlag) { @@ -360,8 +352,10 @@ TclNamespaceEnsembleCmd( Tcl_SetEnsembleParameterList(interp, token, paramObj); /* * Ensemble should be compiled if it has map (performance purposes) + * Currently only for internal using namespace (like ::tcl::clock). + * (An enhancement for completelly compile-feature is in work.) */ - if (ensCompFlag > 0 && mapObj != NULL) { + if (mapObj != NULL && strncmp("::tcl::", nsPtr->fullName, 7) == 0) { Tcl_SetEnsembleFlags(interp, token, ENSEMBLE_COMPILE); } diff --git a/library/init.tcl b/library/init.tcl index e500e3d..d2b0ae0 100644 --- a/library/init.tcl +++ b/library/init.tcl @@ -186,7 +186,7 @@ if {[interp issafe]} { } namespace inscope ::tcl::clock [list namespace ensemble create -command \ [uplevel 1 [list ::namespace origin [::lindex [info level 0] 0]]] \ - -map $cmdmap -compile 1] + -map $cmdmap] uplevel 1 [info level 0] } |