summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2016-01-29 13:35:00 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2016-01-29 13:35:00 (GMT)
commit8b001f80e4b8bf72262a8f8a410e7dcd577374fc (patch)
treeec4b6b7a6239e90990825b90c61cc811b29c0824
parent0fad32deac28e8be1c8bcd357e5011eed1b03a23 (diff)
parent8365a58070d618158d161323c2e5add4598ffd01 (diff)
downloadtcl-8b001f80e4b8bf72262a8f8a410e7dcd577374fc.zip
tcl-8b001f80e4b8bf72262a8f8a410e7dcd577374fc.tar.gz
tcl-8b001f80e4b8bf72262a8f8a410e7dcd577374fc.tar.bz2
Implement TIP #440: Add engine to tcl_platform Array
-rw-r--r--doc/tclvars.n5
-rw-r--r--generic/tclBasic.c7
-rw-r--r--tests/platform.test6
-rw-r--r--tests/safe.test2
4 files changed, 18 insertions, 2 deletions
diff --git a/doc/tclvars.n b/doc/tclvars.n
index a8fba47..a256c21 100644
--- a/doc/tclvars.n
+++ b/doc/tclvars.n
@@ -299,6 +299,11 @@ so extension writers can specify which package to load depending on the
C run-time library that is in use. This is not an indication that this core
contains symbols.
.TP
+\fBengine\fR
+.
+The name of the Tcl language implementation. When the interpreter is first
+created, this is always set to the string \fBTcl\fR.
+.TP
\fBmachine\fR
.
The instruction set executed by this machine, such as
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index 5c5bc64..e5d7406 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -916,6 +916,13 @@ Tcl_CreateInterp(void)
TclInitEmbeddedConfigurationInformation(interp);
/*
+ * TIP #440: Declare the name of the script engine to be "Tcl".
+ */
+
+ Tcl_SetVar2(interp, "tcl_platform", "engine", "Tcl",
+ TCL_GLOBAL_ONLY);
+
+ /*
* Compute the byte order of this machine.
*/
diff --git a/tests/platform.test b/tests/platform.test
index cc00d49..c826444 100644
--- a/tests/platform.test
+++ b/tests/platform.test
@@ -23,6 +23,10 @@ catch [list package require -exact Tcltest [info patchlevel]]
testConstraint testCPUID [llength [info commands testcpuid]]
+test platform-1.0 {tcl_platform(engine)} {
+ set tcl_platform(engine)
+} {Tcl}
+
test platform-1.1 {TclpSetVariables: tcl_platform} {
interp create i
i eval {catch {unset tcl_platform(debug)}}
@@ -30,7 +34,7 @@ test platform-1.1 {TclpSetVariables: tcl_platform} {
set result [i eval {lsort [array names tcl_platform]}]
interp delete i
set result
-} {byteOrder machine os osVersion pathSeparator platform pointerSize user wordSize}
+} {byteOrder engine machine os osVersion pathSeparator platform pointerSize user wordSize}
# Test assumes twos-complement arithmetic, which is true of virtually
# everything these days. Note that this does *not* use wide(), and
diff --git a/tests/safe.test b/tests/safe.test
index 859f352..94c1755 100644
--- a/tests/safe.test
+++ b/tests/safe.test
@@ -174,7 +174,7 @@ test safe-6.3 {test safe interpreters knowledge of the world} {
}
set r [lsearch -all -inline -not -exact $r "threaded"]
lsort $r
-} {byteOrder pathSeparator platform pointerSize wordSize}
+} {byteOrder engine pathSeparator platform pointerSize wordSize}
# More test should be added to check that hostname, nameofexecutable, aren't
# leaking infos, but they still do...