Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9e2fd68a30 | ||
|
|
40c9626a8f | ||
|
|
c39434c73d | ||
|
|
456b294bd5 | ||
|
|
57ee6b6591 |
@@ -493,6 +493,12 @@ the slot:
|
||||
.
|
||||
This appends the given \fImember\fR elements to the slot definition.
|
||||
.TP
|
||||
\fIslot\fR \fB\-appendifnew\fR ?\fImember ...\fR?
|
||||
.VS TIP567
|
||||
This appends the given \fImember\fR elements to the slot definition if they
|
||||
do not already exist in the slot.
|
||||
.VE TIP567
|
||||
.TP
|
||||
\fIslot\fR \fB\-clear\fR
|
||||
.
|
||||
This sets the slot definition to the empty list.
|
||||
|
||||
@@ -2438,9 +2438,14 @@ ClassMixinSet(
|
||||
Tcl_Obj *const *objv)
|
||||
{
|
||||
Object *oPtr = (Object *) TclOOGetDefineCmdContext(interp);
|
||||
int mixinc, i;
|
||||
int mixinc, i, isNew;
|
||||
Tcl_Obj **mixinv;
|
||||
Class **mixins;
|
||||
Class **mixins; /* The references to the classes to
|
||||
* actually install. */
|
||||
Tcl_HashTable uniqueCheck; /* Note that this hash table is just
|
||||
* used as a set of class references;
|
||||
* it has no payload values and keys
|
||||
* are always pointers. */
|
||||
|
||||
if (Tcl_ObjectContextSkippedArgs(context) + 1 != objc) {
|
||||
Tcl_WrongNumArgs(interp, Tcl_ObjectContextSkippedArgs(context), objv,
|
||||
@@ -2462,6 +2467,7 @@ ClassMixinSet(
|
||||
}
|
||||
|
||||
mixins = (Class **)TclStackAlloc(interp, sizeof(Class *) * mixinc);
|
||||
Tcl_InitHashTable(&uniqueCheck, TCL_ONE_WORD_KEYS);
|
||||
|
||||
for (i = 0; i < mixinc; i++) {
|
||||
mixins[i] = GetClassInOuterContext(interp, mixinv[i],
|
||||
@@ -2470,6 +2476,13 @@ ClassMixinSet(
|
||||
i--;
|
||||
goto freeAndError;
|
||||
}
|
||||
(void) Tcl_CreateHashEntry(&uniqueCheck, (void *) mixins[i], &isNew);
|
||||
if (!isNew) {
|
||||
Tcl_SetObjResult(interp, Tcl_NewStringObj(
|
||||
"class should only be a direct mixin once", -1));
|
||||
Tcl_SetErrorCode(interp, "TCL", "OO", "REPETITIOUS",NULL);
|
||||
goto freeAndError;
|
||||
}
|
||||
if (TclOOIsReachable(oPtr->classPtr, mixins[i])) {
|
||||
Tcl_SetObjResult(interp, Tcl_NewStringObj(
|
||||
"may not mix a class into itself", -1));
|
||||
@@ -2479,11 +2492,13 @@ ClassMixinSet(
|
||||
}
|
||||
|
||||
TclOOClassSetMixins(interp, oPtr->classPtr, mixinc, mixins);
|
||||
Tcl_DeleteHashTable(&uniqueCheck);
|
||||
TclStackFree(interp, mixins);
|
||||
return TCL_OK;
|
||||
|
||||
freeAndError:
|
||||
TclStackFree(interp, mixins);
|
||||
Tcl_DeleteHashTable(&uniqueCheck);
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
@@ -2840,7 +2855,7 @@ ObjFilterSet(
|
||||
/*
|
||||
* ----------------------------------------------------------------------
|
||||
*
|
||||
* ObjectMixinGet, ObjectMixinSet --
|
||||
* ObjMixinGet, ObjMixinSet --
|
||||
*
|
||||
* Implementation of the "mixin" slot accessors of the "oo::objdefine"
|
||||
* command.
|
||||
@@ -2889,10 +2904,14 @@ ObjMixinSet(
|
||||
Tcl_Obj *const *objv)
|
||||
{
|
||||
Object *oPtr = (Object *) TclOOGetDefineCmdContext(interp);
|
||||
int mixinc;
|
||||
int mixinc, i, isNew;
|
||||
Tcl_Obj **mixinv;
|
||||
Class **mixins;
|
||||
int i;
|
||||
Class **mixins; /* The references to the classes to
|
||||
* actually install. */
|
||||
Tcl_HashTable uniqueCheck; /* Note that this hash table is just
|
||||
* used as a set of class references;
|
||||
* it has no payload values and keys
|
||||
* are always pointers. */
|
||||
|
||||
if (Tcl_ObjectContextSkippedArgs(context) + 1 != objc) {
|
||||
Tcl_WrongNumArgs(interp, Tcl_ObjectContextSkippedArgs(context), objv,
|
||||
@@ -2908,19 +2927,32 @@ ObjMixinSet(
|
||||
}
|
||||
|
||||
mixins = (Class **)TclStackAlloc(interp, sizeof(Class *) * mixinc);
|
||||
Tcl_InitHashTable(&uniqueCheck, TCL_ONE_WORD_KEYS);
|
||||
|
||||
for (i = 0; i < mixinc; i++) {
|
||||
mixins[i] = GetClassInOuterContext(interp, mixinv[i],
|
||||
"may only mix in classes");
|
||||
if (mixins[i] == NULL) {
|
||||
TclStackFree(interp, mixins);
|
||||
return TCL_ERROR;
|
||||
goto freeAndError;
|
||||
}
|
||||
(void) Tcl_CreateHashEntry(&uniqueCheck, (void *) mixins[i], &isNew);
|
||||
if (!isNew) {
|
||||
Tcl_SetObjResult(interp, Tcl_NewStringObj(
|
||||
"class should only be a direct mixin once", -1));
|
||||
Tcl_SetErrorCode(interp, "TCL", "OO", "REPETITIOUS",NULL);
|
||||
goto freeAndError;
|
||||
}
|
||||
}
|
||||
|
||||
TclOOObjectSetMixins(oPtr, mixinc, mixins);
|
||||
TclStackFree(interp, mixins);
|
||||
Tcl_DeleteHashTable(&uniqueCheck);
|
||||
return TCL_OK;
|
||||
|
||||
freeAndError:
|
||||
TclStackFree(interp, mixins);
|
||||
Tcl_DeleteHashTable(&uniqueCheck);
|
||||
return TCL_ERROR;
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
+20
-10
@@ -98,9 +98,9 @@ static const char *tclOOSetupScript =
|
||||
"\t\t\tif {![info object isa class $d]} {\n"
|
||||
"\t\t\t\tcontinue\n"
|
||||
"\t\t\t}\n"
|
||||
"\t\t\tdefine $delegate ::oo::define::superclass -append $d\n"
|
||||
"\t\t\tdefine $delegate ::oo::define::superclass -appendifnew $d\n"
|
||||
"\t\t}\n"
|
||||
"\t\tobjdefine $class ::oo::objdefine::mixin -append $delegate\n"
|
||||
"\t\tobjdefine $class ::oo::objdefine::mixin -appendifnew $delegate\n"
|
||||
"\t}\n"
|
||||
"\tproc UpdateClassDelegatesAfterClone {originObject targetObject} {\n"
|
||||
"\t\tset originDelegate [DelegateName $originObject]\n"
|
||||
@@ -150,25 +150,36 @@ static const char *tclOOSetupScript =
|
||||
"\t\tmethod Resolve list {\n"
|
||||
"\t\t\treturn $list\n"
|
||||
"\t\t}\n"
|
||||
"\t\tmethod -set args {\n"
|
||||
"\t\tmethod -set -export args {\n"
|
||||
"\t\t\tset my [namespace which my]\n"
|
||||
"\t\t\tset args [lmap a $args {uplevel 1 [list $my Resolve $a]}]\n"
|
||||
"\t\t\ttailcall my Set $args\n"
|
||||
"\t\t}\n"
|
||||
"\t\tmethod -append args {\n"
|
||||
"\t\tmethod -append -export args {\n"
|
||||
"\t\t\tset my [namespace which my]\n"
|
||||
"\t\t\tset args [lmap a $args {uplevel 1 [list $my Resolve $a]}]\n"
|
||||
"\t\t\tset current [uplevel 1 [list $my Get]]\n"
|
||||
"\t\t\ttailcall my Set [list {*}$current {*}$args]\n"
|
||||
"\t\t}\n"
|
||||
"\t\tmethod -clear {} {tailcall my Set {}}\n"
|
||||
"\t\tmethod -prepend args {\n"
|
||||
"\t\tmethod -appendifnew -export args {\n"
|
||||
"\t\t\tset my [namespace which my]\n"
|
||||
"\t\t\tset current [uplevel 1 [list $my Get]]\n"
|
||||
"\t\t\tforeach a $args {\n"
|
||||
"\t\t\t\tset a [uplevel 1 [list $my Resolve $a]]\n"
|
||||
"\t\t\t\tif {$a ni $current} {\n"
|
||||
"\t\t\t\t\tlappend current $a\n"
|
||||
"\t\t\t\t}\n"
|
||||
"\t\t\t}\n"
|
||||
"\t\t\ttailcall my Set $current\n"
|
||||
"\t\t}\n"
|
||||
"\t\tmethod -clear -export {} {tailcall my Set {}}\n"
|
||||
"\t\tmethod -prepend -export args {\n"
|
||||
"\t\t\tset my [namespace which my]\n"
|
||||
"\t\t\tset args [lmap a $args {uplevel 1 [list $my Resolve $a]}]\n"
|
||||
"\t\t\tset current [uplevel 1 [list $my Get]]\n"
|
||||
"\t\t\ttailcall my Set [list {*}$args {*}$current]\n"
|
||||
"\t\t}\n"
|
||||
"\t\tmethod -remove args {\n"
|
||||
"\t\tmethod -remove -export args {\n"
|
||||
"\t\t\tset my [namespace which my]\n"
|
||||
"\t\t\tset args [lmap a $args {uplevel 1 [list $my Resolve $a]}]\n"
|
||||
"\t\t\tset current [uplevel 1 [list $my Get]]\n"
|
||||
@@ -177,7 +188,7 @@ static const char *tclOOSetupScript =
|
||||
"\t\t\t}]\n"
|
||||
"\t\t}\n"
|
||||
"\t\tforward --default-operation my -append\n"
|
||||
"\t\tmethod unknown {args} {\n"
|
||||
"\t\tmethod unknown -unexport {args} {\n"
|
||||
"\t\t\tset def --default-operation\n"
|
||||
"\t\t\tif {[llength $args] == 0} {\n"
|
||||
"\t\t\t\ttailcall my $def\n"
|
||||
@@ -186,8 +197,7 @@ static const char *tclOOSetupScript =
|
||||
"\t\t\t}\n"
|
||||
"\t\t\tnext {*}$args\n"
|
||||
"\t\t}\n"
|
||||
"\t\texport -set -append -clear -prepend -remove\n"
|
||||
"\t\tunexport unknown destroy\n"
|
||||
"\t\tunexport destroy\n"
|
||||
"\t}\n"
|
||||
"\tobjdefine define::superclass forward --default-operation my -set\n"
|
||||
"\tobjdefine define::mixin forward --default-operation my -set\n"
|
||||
|
||||
+53
-33
@@ -1684,10 +1684,7 @@ test oo-11.5 {OO: cleanup} {
|
||||
# No segmentation fault
|
||||
return done
|
||||
} done
|
||||
|
||||
test oo-11.6.1 {
|
||||
OO: cleanup of when an class is mixed into itself
|
||||
} -constraints memory -body {
|
||||
test oo-11.6 {OO: cleanup of when an class is mixed into itself} memory {
|
||||
leaktest {
|
||||
interp create interp1
|
||||
oo::class create obj1
|
||||
@@ -1695,13 +1692,8 @@ test oo-11.6.1 {
|
||||
rename obj1 {}
|
||||
interp delete interp1
|
||||
}
|
||||
} -result 0 -cleanup {
|
||||
}
|
||||
|
||||
test oo-11.6.2 {
|
||||
OO: cleanup ReleaseClassContents() where class is mixed into one of its
|
||||
instances
|
||||
} -constraints memory -body {
|
||||
} 0
|
||||
test oo-11.7 {OO: cleanup ReleaseClassContents() where class is mixed into one of its instances} memory {
|
||||
leaktest {
|
||||
interp create interp1
|
||||
interp1 eval {
|
||||
@@ -1712,13 +1704,8 @@ test oo-11.6.2 {
|
||||
}
|
||||
interp delete interp1
|
||||
}
|
||||
} -result 0 -cleanup {
|
||||
}
|
||||
|
||||
test oo-11.6.3 {
|
||||
OO: cleanup ReleaseClassContents() where class is mixed into one of its
|
||||
instances
|
||||
} -constraints memory -body {
|
||||
} 0
|
||||
test oo-11.8 {OO: cleanup ReleaseClassContents() where class is mixed into one of its instances} memory {
|
||||
leaktest {
|
||||
interp create interp1
|
||||
interp1 eval {
|
||||
@@ -1731,13 +1718,8 @@ test oo-11.6.3 {
|
||||
}
|
||||
interp delete interp1
|
||||
}
|
||||
} -result 0 -cleanup {
|
||||
}
|
||||
|
||||
test oo-11.6.4 {
|
||||
OO: cleanup ReleaseClassContents() where class is mixed into one of its
|
||||
instances
|
||||
} -body {
|
||||
} 0
|
||||
test oo-11.9 {OO: cleanup ReleaseClassContents() where class is mixed into one of its instances} -body {
|
||||
oo::class create obj1
|
||||
::oo::define obj1 {self mixin [self]}
|
||||
|
||||
@@ -2218,6 +2200,31 @@ test oo-14.8 {OO: class mixin order - Bug 1998221} -setup {
|
||||
}
|
||||
[cls new] test
|
||||
} -result {mix cls}
|
||||
test oo-14.9 {OO: class mixins must be unique in list} -setup {
|
||||
oo::class create parent
|
||||
} -body {
|
||||
oo::class create A {superclass parent}
|
||||
oo::class create B {
|
||||
superclass parent
|
||||
mixin A
|
||||
}
|
||||
oo::define B mixin -append A
|
||||
} -returnCodes error -cleanup {
|
||||
parent destroy
|
||||
} -result {class should only be a direct mixin once}
|
||||
test oo-14.10 {OO: instance mixins must be unique in list} -setup {
|
||||
oo::class create parent
|
||||
} -body {
|
||||
oo::class create A {superclass parent}
|
||||
oo::class create B {
|
||||
superclass parent
|
||||
constructor {} {oo::objdefine [self] mixin A}
|
||||
}
|
||||
B create obj
|
||||
oo::objdefine obj {mixin -append A}
|
||||
} -returnCodes error -cleanup {
|
||||
parent destroy
|
||||
} -result {class should only be a direct mixin once}
|
||||
|
||||
test oo-15.1 {OO: object cloning} {
|
||||
oo::class create Aclass
|
||||
@@ -4197,7 +4204,20 @@ test oo-33.4 {TIP 380: slots - errors} -setup [SampleSlotSetup {
|
||||
} -returnCodes error -cleanup [SampleSlotCleanup {
|
||||
rename $s {}
|
||||
}] -result \
|
||||
{unknown method "-grill": must be -append, -clear, -prepend, -remove, -set, contents or ops}
|
||||
{unknown method "-grill": must be -append, -appendifnew, -clear, -prepend, -remove, -set, contents or ops}
|
||||
test oo-33.5 {TIP 567: slots -appendifnew} -setup [SampleSlotSetup {
|
||||
set s [SampleSlot new]
|
||||
}] -body {
|
||||
list \
|
||||
[$s -clear
|
||||
$s contents] \
|
||||
[$s -append p q r
|
||||
$s contents] \
|
||||
[$s -appendifnew q s r t p
|
||||
$s contents]
|
||||
} -cleanup [SampleSlotCleanup {
|
||||
rename $s {}
|
||||
}] -result {{} {p q r} {p q r s t}}
|
||||
|
||||
test oo-34.1 {TIP 380: slots - presence} -setup {
|
||||
set obj [oo::object new]
|
||||
@@ -4227,25 +4247,25 @@ proc getMethods obj {
|
||||
}
|
||||
test oo-34.3 {TIP 380: slots - presence} {
|
||||
getMethods oo::define::filter
|
||||
} {{-append -clear -prepend -remove -set} {Get Set}}
|
||||
} {{-append -appendifnew -clear -prepend -remove -set} {Get Set}}
|
||||
test oo-34.4 {TIP 380: slots - presence} {
|
||||
getMethods oo::define::mixin
|
||||
} {{-append -clear -prepend -remove -set} {--default-operation Get Resolve Set}}
|
||||
} {{-append -appendifnew -clear -prepend -remove -set} {--default-operation Get Resolve Set}}
|
||||
test oo-34.5 {TIP 380: slots - presence} {
|
||||
getMethods oo::define::superclass
|
||||
} {{-append -clear -prepend -remove -set} {--default-operation Get Resolve Set}}
|
||||
} {{-append -appendifnew -clear -prepend -remove -set} {--default-operation Get Resolve Set}}
|
||||
test oo-34.6 {TIP 380: slots - presence} {
|
||||
getMethods oo::define::variable
|
||||
} {{-append -clear -prepend -remove -set} {Get Set}}
|
||||
} {{-append -appendifnew -clear -prepend -remove -set} {Get Set}}
|
||||
test oo-34.7 {TIP 380: slots - presence} {
|
||||
getMethods oo::objdefine::filter
|
||||
} {{-append -clear -prepend -remove -set} {Get Set}}
|
||||
} {{-append -appendifnew -clear -prepend -remove -set} {Get Set}}
|
||||
test oo-34.8 {TIP 380: slots - presence} {
|
||||
getMethods oo::objdefine::mixin
|
||||
} {{-append -clear -prepend -remove -set} {--default-operation Get Resolve Set}}
|
||||
} {{-append -appendifnew -clear -prepend -remove -set} {--default-operation Get Resolve Set}}
|
||||
test oo-34.9 {TIP 380: slots - presence} {
|
||||
getMethods oo::objdefine::variable
|
||||
} {{-append -clear -prepend -remove -set} {Get Set}}
|
||||
} {{-append -appendifnew -clear -prepend -remove -set} {Get Set}}
|
||||
test oo-34.10 {TIP 516: slots - resolution} -setup {
|
||||
oo::class create parent
|
||||
set result {}
|
||||
|
||||
@@ -527,6 +527,29 @@ test ooUtil-7.2 {TIP 478: link removed when [my] disappears} -setup {
|
||||
parent destroy
|
||||
} -result {{in foo of ::o} {in foo of ::o} {} 1 {invalid command name "pqr"}}
|
||||
|
||||
# Tests a very weird combination of things (with a key problem locus in
|
||||
# MixinClassDelegates) that TIP 567 fixes
|
||||
test ooUtil-8.1 {TIP 567: call oo::define twice from metaclass constructor} -setup {
|
||||
oo::class create parent
|
||||
} -body {
|
||||
::oo::class create A {
|
||||
superclass parent
|
||||
}
|
||||
::oo::class create B {
|
||||
superclass ::oo::class parent
|
||||
constructor {{definitionScript ""}} {
|
||||
next $definitionScript
|
||||
next {superclass ::A}
|
||||
}
|
||||
}
|
||||
B create C {
|
||||
superclass A
|
||||
}
|
||||
C create instance
|
||||
} -cleanup {
|
||||
parent destroy
|
||||
} -result ::instance
|
||||
|
||||
# Tests that verify issues detected with the tcllib version of the code
|
||||
test ooUtil-tcllib-ticket-b3577ed586 {test scoping of delegation in oo::class.Delegate } -setup {
|
||||
oo::class create animal {}
|
||||
|
||||
+21
-11
@@ -153,9 +153,9 @@
|
||||
if {![info object isa class $d]} {
|
||||
continue
|
||||
}
|
||||
define $delegate ::oo::define::superclass -append $d
|
||||
define $delegate ::oo::define::superclass -appendifnew $d
|
||||
}
|
||||
objdefine $class ::oo::objdefine::mixin -append $delegate
|
||||
objdefine $class ::oo::objdefine::mixin -appendifnew $delegate
|
||||
}
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
@@ -297,25 +297,36 @@
|
||||
#
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
method -set args {
|
||||
method -set -export args {
|
||||
set my [namespace which my]
|
||||
set args [lmap a $args {uplevel 1 [list $my Resolve $a]}]
|
||||
tailcall my Set $args
|
||||
}
|
||||
method -append args {
|
||||
method -append -export args {
|
||||
set my [namespace which my]
|
||||
set args [lmap a $args {uplevel 1 [list $my Resolve $a]}]
|
||||
set current [uplevel 1 [list $my Get]]
|
||||
tailcall my Set [list {*}$current {*}$args]
|
||||
}
|
||||
method -clear {} {tailcall my Set {}}
|
||||
method -prepend args {
|
||||
method -appendifnew -export args {
|
||||
set my [namespace which my]
|
||||
set current [uplevel 1 [list $my Get]]
|
||||
foreach a $args {
|
||||
set a [uplevel 1 [list $my Resolve $a]]
|
||||
if {$a ni $current} {
|
||||
lappend current $a
|
||||
}
|
||||
}
|
||||
tailcall my Set $current
|
||||
}
|
||||
method -clear -export {} {tailcall my Set {}}
|
||||
method -prepend -export args {
|
||||
set my [namespace which my]
|
||||
set args [lmap a $args {uplevel 1 [list $my Resolve $a]}]
|
||||
set current [uplevel 1 [list $my Get]]
|
||||
tailcall my Set [list {*}$args {*}$current]
|
||||
}
|
||||
method -remove args {
|
||||
method -remove -export args {
|
||||
set my [namespace which my]
|
||||
set args [lmap a $args {uplevel 1 [list $my Resolve $a]}]
|
||||
set current [uplevel 1 [list $my Get]]
|
||||
@@ -326,7 +337,7 @@
|
||||
|
||||
# Default handling
|
||||
forward --default-operation my -append
|
||||
method unknown {args} {
|
||||
method unknown -unexport {args} {
|
||||
set def --default-operation
|
||||
if {[llength $args] == 0} {
|
||||
tailcall my $def
|
||||
@@ -336,9 +347,8 @@
|
||||
next {*}$args
|
||||
}
|
||||
|
||||
# Set up what is exported and what isn't
|
||||
export -set -append -clear -prepend -remove
|
||||
unexport unknown destroy
|
||||
# Conceal destroy; want slots to persist, please
|
||||
unexport destroy
|
||||
}
|
||||
|
||||
# Set the default operation differently for these slots
|
||||
|
||||
@@ -472,7 +472,7 @@ s,@mandir@,${prefix}/man,;t t
|
||||
s,@build_alias@,,;t t
|
||||
s,@host_alias@,,;t t
|
||||
s,@target_alias@,,;t t
|
||||
s,@DEFS@,-DPACKAGE_NAME=\"tcl\" -DPACKAGE_TARNAME=\"tcl\" -DPACKAGE_VERSION=\"8.6\" -DPACKAGE_STRING=\"tcl\ 8.6\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DHAVE_PTHREAD_ATFORK=1 -DTCL_THREADS=1 -DTCL_CFGVAL_ENCODING=\"iso8859-1\" -DHAVE_ZLIB=1 -DMODULE_SCOPE=extern\ __attribute__\(\(__visibility__\(\"hidden\"\)\)\) -DHAVE_HIDDEN=1 -DHAVE_CAST_TO_UNION=1 -DTCL_SHLIB_EXT=\".so\" -DNDEBUG=1 -DTCL_CFG_OPTIMIZED=1 -DTCL_TOMMATH=1 -DMP_PREC=4 -D_LARGEFILE64_SOURCE=1 -DTCL_WIDE_INT_IS_LONG=1 -DHAVE_GETCWD=1 -DHAVE_MKSTEMP=1 -DHAVE_OPENDIR=1 -DHAVE_STRTOL=1 -DHAVE_WAITPID=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GETADDRINFO=1 -DHAVE_FREEADDRINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_STRUCT_ADDRINFO=1 -DHAVE_STRUCT_IN6_ADDR=1 -DHAVE_STRUCT_SOCKADDR_IN6=1 -DHAVE_STRUCT_SOCKADDR_STORAGE=1 -DHAVE_GETPWUID_R_5=1 -DHAVE_GETPWUID_R=1 -DHAVE_GETPWNAM_R_5=1 -DHAVE_GETPWNAM_R=1 -DHAVE_GETGRGID_R_5=1 -DHAVE_GETGRGID_R=1 -DHAVE_GETGRNAM_R_5=1 -DHAVE_GETGRNAM_R=1 -DHAVE_DECL_GETHOSTBYNAME_R=1 -DHAVE_GETHOSTBYNAME_R_6=1 -DHAVE_GETHOSTBYNAME_R=1 -DHAVE_DECL_GETHOSTBYADDR_R=1 -DHAVE_GETHOSTBYADDR_R_8=1 -DHAVE_GETHOSTBYADDR_R=1 -DHAVE_TERMIOS_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_MKTIME=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_STRUCT_STAT_ST_BLOCKS=1 -DHAVE_STRUCT_STAT_ST_BLKSIZE=1 -DHAVE_BLKCNT_T=1 -DHAVE_INTPTR_T=1 -DHAVE_UINTPTR_T=1 -DNO_UNION_WAIT=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_LANGINFO=1 -DHAVE_MKSTEMPS=1 -DHAVE_FTS=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_UNLOAD_DLLS=1 -DHAVE_CPUID=1 ,;t t
|
||||
s,@DEFS@,-DPACKAGE_NAME=\"tcl\" -DPACKAGE_TARNAME=\"tcl\" -DPACKAGE_VERSION=\"8.6\" -DPACKAGE_STRING=\"tcl\ 8.6\" -DPACKAGE_BUGREPORT=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DHAVE_PTHREAD_ATFORK=1 -DTCL_THREADS=1 -DTCL_CFGVAL_ENCODING=\"iso8859-1\" -DHAVE_ZLIB=1 -DMODULE_SCOPE=extern\ __attribute__\(\(__visibility__\(\"hidden\"\)\)\) -DHAVE_HIDDEN=1 -DHAVE_CAST_TO_UNION=1 -DTCL_SHLIB_EXT=\".so\" -DNDEBUG=1 -DTCL_CFG_OPTIMIZED=1 -DTCL_TOMMATH=1 -DMP_PREC=4 -D_LARGEFILE64_SOURCE=1 -DTCL_WIDE_INT_IS_LONG=1 -DHAVE_GETCWD=1 -DHAVE_MKSTEMP=1 -DHAVE_OPENDIR=1 -DHAVE_STRTOL=1 -DHAVE_WAITPID=1 -DHAVE_GETNAMEINFO=1 -DHAVE_GETADDRINFO=1 -DHAVE_FREEADDRINFO=1 -DHAVE_GAI_STRERROR=1 -DHAVE_STRUCT_ADDRINFO=1 -DHAVE_STRUCT_IN6_ADDR=1 -DHAVE_STRUCT_SOCKADDR_IN6=1 -DHAVE_STRUCT_SOCKADDR_STORAGE=1 -DHAVE_GETPWUID_R_5=1 -DHAVE_GETPWUID_R=1 -DHAVE_GETPWNAM_R_5=1 -DHAVE_GETPWNAM_R=1 -DHAVE_GETGRGID_R_5=1 -DHAVE_GETGRGID_R=1 -DHAVE_GETGRNAM_R_5=1 -DHAVE_GETGRNAM_R=1 -DHAVE_GETHOSTBYNAME_R_6=1 -DHAVE_GETHOSTBYNAME_R=1 -DHAVE_GETHOSTBYADDR_R_8=1 -DHAVE_GETHOSTBYADDR_R=1 -DHAVE_TERMIOS_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_GMTIME_R=1 -DHAVE_LOCALTIME_R=1 -DHAVE_MKTIME=1 -DHAVE_TM_GMTOFF=1 -DHAVE_TIMEZONE_VAR=1 -DHAVE_STRUCT_STAT_ST_BLOCKS=1 -DHAVE_STRUCT_STAT_ST_BLKSIZE=1 -DHAVE_BLKCNT_T=1 -DHAVE_INTPTR_T=1 -DHAVE_UINTPTR_T=1 -DNO_UNION_WAIT=1 -DHAVE_SIGNED_CHAR=1 -DHAVE_LANGINFO=1 -DHAVE_MKSTEMPS=1 -DHAVE_FTS=1 -DHAVE_SYS_IOCTL_H=1 -DTCL_UNLOAD_DLLS=1 -DHAVE_CPUID=1 ,;t t
|
||||
s,@ECHO_C@,,;t t
|
||||
s,@ECHO_N@,-n,;t t
|
||||
s,@ECHO_T@,,;t t
|
||||
@@ -488,7 +488,7 @@ s,@OBJEXT@,o,;t t
|
||||
s,@CPP@,gcc -E,;t t
|
||||
s,@EGREP@,grep -E,;t t
|
||||
s,@TCL_THREADS@,1,;t t
|
||||
s,@TCLSH_PROG@,/usr/bin/tclsh8.6,;t t
|
||||
s,@TCLSH_PROG@,/home/jima/space/ins/lin64/dynamic/main/bin/tclsh8.6,;t t
|
||||
s,@ZLIB_OBJS@,,;t t
|
||||
s,@ZLIB_SRCS@,,;t t
|
||||
s,@ZLIB_INCLUDE@,,;t t
|
||||
@@ -497,7 +497,7 @@ s,@ac_ct_RANLIB@,ranlib,;t t
|
||||
s,@AR@,ar,;t t
|
||||
s,@ac_ct_AR@,ar,;t t
|
||||
s,@LIBOBJS@,,;t t
|
||||
s,@TCL_LIBS@,-ldl -lz -lpthread -lm,;t t
|
||||
s,@TCL_LIBS@,-ldl -lz -lpthread -lieee -lm,;t t
|
||||
s,@DL_LIBS@,-ldl,;t t
|
||||
s,@DL_OBJS@,tclLoadDl.o,;t t
|
||||
s,@PLAT_OBJS@,,;t t
|
||||
@@ -528,7 +528,7 @@ s,@DTRACE@,,;t t
|
||||
s,@TCL_VERSION@,8.6,;t t
|
||||
s,@TCL_MAJOR_VERSION@,8,;t t
|
||||
s,@TCL_MINOR_VERSION@,6,;t t
|
||||
s,@TCL_PATCH_LEVEL@,.10,;t t
|
||||
s,@TCL_PATCH_LEVEL@,.8,;t t
|
||||
s,@TCL_YEAR@,,;t t
|
||||
s,@PKG_CFG_ARGS@,'--prefix=/home/jima/space/ins/lin64/dynamic/main' ,;t t
|
||||
s,@TCL_LIB_FILE@,libtcl8.6.so,;t t
|
||||
|
||||
Reference in New Issue
Block a user