summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsebres <sebres@users.sourceforge.net>2017-06-02 22:43:57 (GMT)
committersebres <sebres@users.sourceforge.net>2017-06-02 22:43:57 (GMT)
commit08432c4f786e6f6d64325f9e60f792122a149aa4 (patch)
tree35e7f4f0544b6ae806fcb447a124b7231149f684
parent6cbab1b74a642fd7a99a0019d75827d77416a600 (diff)
downloadtcl-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.c18
-rw-r--r--library/init.tcl2
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]
}