Tcl Source Code

Check-in [b392834e2c]
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Merge 8.7. Complete implementation for MSVC and for UNIX.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | digit-bit-60
Files: files | file ages | folders
SHA3-256:b392834e2ca295f32c960e5248e8d2bb34c205f4cb3cb4831edeab14c63567a1
User & Date: jan.nijtmans 2019-04-09 19:21:38
Context
2019-04-10
19:53
Complete implementation vor MSVC (even building minigzip) Leaf check-in: 3b09ba4861 user: jan.nijtmans tags: digit-bit-60
2019-04-09
19:21
Merge 8.7. Complete implementation for MSVC and for UNIX. check-in: b392834e2c user: jan.nijtmans tags: digit-bit-60
08:46
Merge 8.6 check-in: 72e08a8f88 user: jan.nijtmans tags: core-8-branch
2019-04-08
19:06
Merge 8.7. Intended operation completed for mingw-w64 (but not yet for other compilers/platforms) check-in: 1c2054cc64 user: jan.nijtmans tags: digit-bit-60
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to .fossil-settings/binary-glob.

1
2
3
4
5
6





7
8
9
compat/zlib/win32/zdll.lib
compat/zlib/win32/zlib1.dll
compat/zlib/win64/zdll.lib
compat/zlib/win64/zlib1.dll
compat/zlib/win64/libz.dll.a
compat/zlib/zlib.3.pdf





*.bmp
*.gif
*.png





>
>
>
>
>



1
2
3
4
5
6
7
8
9
10
11
12
13
14
compat/zlib/win32/zdll.lib
compat/zlib/win32/zlib1.dll
compat/zlib/win64/zdll.lib
compat/zlib/win64/zlib1.dll
compat/zlib/win64/libz.dll.a
compat/zlib/zlib.3.pdf
libtommath/win32/tommath.lib
libtommath/win32/libtommath.dll
libtommath/win64/tommath.lib
libtommath/win64/libtommath.dll
libtommath/win64/libtommath.dll.a
*.bmp
*.gif
*.png

Changes to doc/interp.n.

197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
\fBinterp\fR \fBdebug \fIpath\fR ?\fB\-frame\fR ?\fIbool\fR??
.
Controls whether frame-level stack information is captured in the
slave interpreter identified by \fIpath\fR.  If no arguments are
given, option and current setting are returned.  If \fB\-frame\fR
is given, the debug setting is set to the given boolean if provided
and the current setting is returned.
This only effects the output of \fBinfo frame\fR, in that exact
frame-level information for command invocation at the bytecode level
is only captured with this setting on.
.RS
.PP
For example, with code like
.PP
.CS






|







197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
\fBinterp\fR \fBdebug \fIpath\fR ?\fB\-frame\fR ?\fIbool\fR??
.
Controls whether frame-level stack information is captured in the
slave interpreter identified by \fIpath\fR.  If no arguments are
given, option and current setting are returned.  If \fB\-frame\fR
is given, the debug setting is set to the given boolean if provided
and the current setting is returned.
This only affects the output of \fBinfo frame\fR, in that exact
frame-level information for command invocation at the bytecode level
is only captured with this setting on.
.RS
.PP
For example, with code like
.PP
.CS

Changes to generic/tclBasic.c.

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tclOOInt.h"
#include "tclCompile.h"
#include "tommath.h"
#include <math.h>
#include <assert.h>

#define INTERP_STACK_INITIAL_SIZE 2000
#define CORO_STACK_INITIAL_SIZE    200

/*






|







16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tclOOInt.h"
#include "tclCompile.h"
#include "tclTomMath.h"
#include <math.h>
#include <assert.h>

#define INTERP_STACK_INITIAL_SIZE 2000
#define CORO_STACK_INITIAL_SIZE    200

/*

Changes to generic/tclBinary.c.

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 * Copyright (c) 1998-1999 by Scriptics Corporation.
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tommath.h"

#include <math.h>
#include <assert.h>

/*
 * The following constants are used by GetFormatSpec to indicate various
 * special conditions in the parsing of a format specifier.






|







8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 * Copyright (c) 1998-1999 by Scriptics Corporation.
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tclTomMath.h"

#include <math.h>
#include <assert.h>

/*
 * The following constants are used by GetFormatSpec to indicate various
 * special conditions in the parsing of a format specifier.

Changes to generic/tclDictObj.c.

7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 * Copyright (c) 2002-2010 by Donal K. Fellows.
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tommath.h"
#include <assert.h>

/*
 * Forward declaration.
 */
struct Dict;







|







7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 * Copyright (c) 2002-2010 by Donal K. Fellows.
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tclTomMath.h"
#include <assert.h>

/*
 * Forward declaration.
 */
struct Dict;

Changes to generic/tclExecute.c.

14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tclCompile.h"
#include "tclOOInt.h"
#include "tommath.h"
#include <math.h>
#include <assert.h>

/*
 * Hack to determine whether we may expect IEEE floating point. The hack is
 * formally incorrect in that non-IEEE platforms might have the same precision
 * and range, but VAX, IBM, and Cray do not; are there any other floating






|







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tclCompile.h"
#include "tclOOInt.h"
#include "tclTomMath.h"
#include <math.h>
#include <assert.h>

/*
 * Hack to determine whether we may expect IEEE floating point. The hack is
 * formally incorrect in that non-IEEE platforms might have the same precision
 * and range, but VAX, IBM, and Cray do not; are there any other floating

Changes to generic/tclObj.c.

11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 * Copyright (c) 2007 Daniel A. Steffen <[email protected]>
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tommath.h"
#include <math.h>
#include <assert.h>

/*
 * Table of all object types.
 */







|







11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 * Copyright (c) 2007 Daniel A. Steffen <[email protected]>
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tclTomMath.h"
#include <math.h>
#include <assert.h>

/*
 * Table of all object types.
 */

Changes to generic/tclScan.c.

6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 * Copyright (c) 1998 by Scriptics Corporation.
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tommath.h"

/*
 * Flag values used by Tcl_ScanObjCmd.
 */

#define SCAN_NOSKIP	0x1		/* Don't skip blanks. */
#define SCAN_SUPPRESS	0x2		/* Suppress assignment. */






|







6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 * Copyright (c) 1998 by Scriptics Corporation.
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tclTomMath.h"

/*
 * Flag values used by Tcl_ScanObjCmd.
 */

#define SCAN_NOSKIP	0x1		/* Don't skip blanks. */
#define SCAN_SUPPRESS	0x2		/* Suppress assignment. */

Changes to generic/tclStrToD.c.

10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 * Copyright (c) 2005 by Kevin B. Kenny. All rights reserved.
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tommath.h"
#include <math.h>

/*
 * This code supports (at least hypothetically), IBM, Cray, VAX and IEEE-754
 * floating point; of these, only IEEE-754 can represent NaN. IEEE-754 can be
 * uniquely determined by radix and by the widths of significand and exponent.
 */






|







10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 * Copyright (c) 2005 by Kevin B. Kenny. All rights reserved.
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tclTomMath.h"
#include <math.h>

/*
 * This code supports (at least hypothetically), IBM, Cray, VAX and IEEE-754
 * floating point; of these, only IEEE-754 can represent NaN. IEEE-754 can be
 * uniquely determined by radix and by the widths of significand and exponent.
 */

Changes to generic/tclStringObj.c.

31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 * Copyright (c) 1999 by Scriptics Corporation.
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tommath.h"
#include "tclStringRep.h"

#include "assert.h"
/*
 * Prototypes for functions defined later in this file:
 */







|







31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 * Copyright (c) 1999 by Scriptics Corporation.
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tclTomMath.h"
#include "tclStringRep.h"

#include "assert.h"
/*
 * Prototypes for functions defined later in this file:
 */

Changes to generic/tclStubInit.c.

88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
...
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
...
148
149
150
151
152
153
154


























155
156
157
158
159
160
161
...
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
#define TclBN_mp_grow mp_grow
#define TclBN_mp_init mp_init
#define TclBN_mp_init_copy mp_init_copy
#define TclBN_mp_init_multi mp_init_multi
#define TclBN_mp_init_set mp_init_set
#define TclBN_mp_init_set_int mp_init_set_int
#define TclBN_mp_init_size mp_init_size
#define TclBN_mp_karatsuba_mul mp_karatsuba_mul
#define TclBN_mp_karatsuba_sqr mp_karatsuba_sqr
#define TclBN_mp_lshd mp_lshd
#define TclBN_mp_mod mp_mod
#define TclBN_mp_mod_2d mp_mod_2d
#define TclBN_mp_mul mp_mul
#define TclBN_mp_mul_2 mp_mul_2
#define TclBN_mp_mul_2d mp_mul_2d
#define TclBN_mp_mul_d mp_mul_d
................................................................................
#define TclBN_mp_sub_d mp_sub_d
#define TclBN_mp_tc_and mp_tc_and
#define TclBN_mp_tc_div_2d mp_tc_div_2d
#define TclBN_mp_tc_or mp_tc_or
#define TclBN_mp_tc_xor mp_tc_xor
#define TclBN_mp_to_unsigned_bin mp_to_unsigned_bin
#define TclBN_mp_to_unsigned_bin_n mp_to_unsigned_bin_n
#define TclBN_mp_toom_mul mp_toom_mul
#define TclBN_mp_toom_sqr mp_toom_sqr
#define TclBN_mp_toradix_n mp_toradix_n
#define TclBN_mp_unsigned_bin_size mp_unsigned_bin_size
#define TclBN_mp_xor mp_xor
#define TclBN_mp_zero mp_zero
#define TclBN_reverse bn_reverse
#define TclBN_fast_s_mp_mul_digs fast_s_mp_mul_digs
#define TclBN_fast_s_mp_sqr fast_s_mp_sqr
#define TclBN_mp_karatsuba_mul mp_karatsuba_mul
#define TclBN_mp_karatsuba_sqr mp_karatsuba_sqr
#define TclBN_mp_toom_mul mp_toom_mul
#define TclBN_mp_toom_sqr mp_toom_sqr
#define TclBN_s_mp_add s_mp_add
#define TclBN_s_mp_mul_digs s_mp_mul_digs
#define TclBN_s_mp_sqr s_mp_sqr
#define TclBN_s_mp_sub s_mp_sub
#define TclBN_mp_init_set_int mp_init_set_int
#define TclBN_mp_set_int mp_set_int
#define TclBN_mp_cnt_lsb mp_cnt_lsb
#define TclBN_mp_expt_d_ex mp_expt_d_ex
#define TclBN_mp_set_long_long mp_set_long_long
#define TclBN_mp_get_long_long mp_get_long_long
#define TclBN_mp_set_long mp_set_long
................................................................................
#define TclBN_mp_get_long mp_get_long
#define TclBN_mp_get_int mp_get_int
#define TclBN_mp_tc_and mp_tc_and
#define TclBN_mp_tc_or mp_tc_or
#define TclBN_mp_tc_xor mp_tc_xor
#define TclBN_mp_tc_div_2d mp_tc_div_2d
#define TclBN_mp_get_bit mp_get_bit



























/* See bug 510001: TclSockMinimumBuffers needs plat imp */
#if defined(_WIN64) || defined(TCL_NO_DEPRECATED) || TCL_MAJOR_VERSION > 8
#   define TclSockMinimumBuffersOld 0
#else
#define TclSockMinimumBuffersOld sockMinimumBuffersOld
static int TclSockMinimumBuffersOld(int sock, int size)
................................................................................
#   define Tcl_SetExitProc 0
#   define Tcl_SetPanicProc 0
#   define Tcl_FindExecutable 0
#   define Tcl_GetUnicode 0
#   define TclOldFreeObj 0
#   undef Tcl_StringMatch
#   define Tcl_StringMatch 0
#   define TclBN_reverse 0
#   define TclBN_fast_s_mp_mul_digs 0
#   define TclBN_fast_s_mp_sqr 0
#   define TclBN_mp_karatsuba_mul 0
#   define TclBN_mp_karatsuba_sqr 0
#   define TclBN_mp_toom_mul 0
#   define TclBN_mp_toom_sqr 0
#   define TclBN_s_mp_add 0
#   define TclBN_s_mp_mul_digs 0
#   define TclBN_s_mp_sqr 0
#   define TclBN_s_mp_sub 0
#else /* TCL_NO_DEPRECATED */
#   define Tcl_SeekOld seekOld
#   define Tcl_TellOld tellOld
#   define TclBackgroundException Tcl_BackgroundException
#   define TclSetStartupScript Tcl_SetStartupScript
#   define TclGetStartupScript Tcl_GetStartupScript
#   define TclCreateNamespace Tcl_CreateNamespace






<
<







 







<
<




<
<
<
<
<
<
<
<
<
<
<







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







<
<
<
<
<
<
<
<
<
<
<







88
89
90
91
92
93
94


95
96
97
98
99
100
101
...
115
116
117
118
119
120
121


122
123
124
125











126
127
128
129
130
131
132
...
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
...
517
518
519
520
521
522
523











524
525
526
527
528
529
530
#define TclBN_mp_grow mp_grow
#define TclBN_mp_init mp_init
#define TclBN_mp_init_copy mp_init_copy
#define TclBN_mp_init_multi mp_init_multi
#define TclBN_mp_init_set mp_init_set
#define TclBN_mp_init_set_int mp_init_set_int
#define TclBN_mp_init_size mp_init_size


#define TclBN_mp_lshd mp_lshd
#define TclBN_mp_mod mp_mod
#define TclBN_mp_mod_2d mp_mod_2d
#define TclBN_mp_mul mp_mul
#define TclBN_mp_mul_2 mp_mul_2
#define TclBN_mp_mul_2d mp_mul_2d
#define TclBN_mp_mul_d mp_mul_d
................................................................................
#define TclBN_mp_sub_d mp_sub_d
#define TclBN_mp_tc_and mp_tc_and
#define TclBN_mp_tc_div_2d mp_tc_div_2d
#define TclBN_mp_tc_or mp_tc_or
#define TclBN_mp_tc_xor mp_tc_xor
#define TclBN_mp_to_unsigned_bin mp_to_unsigned_bin
#define TclBN_mp_to_unsigned_bin_n mp_to_unsigned_bin_n


#define TclBN_mp_toradix_n mp_toradix_n
#define TclBN_mp_unsigned_bin_size mp_unsigned_bin_size
#define TclBN_mp_xor mp_xor
#define TclBN_mp_zero mp_zero











#define TclBN_mp_init_set_int mp_init_set_int
#define TclBN_mp_set_int mp_set_int
#define TclBN_mp_cnt_lsb mp_cnt_lsb
#define TclBN_mp_expt_d_ex mp_expt_d_ex
#define TclBN_mp_set_long_long mp_set_long_long
#define TclBN_mp_get_long_long mp_get_long_long
#define TclBN_mp_set_long mp_set_long
................................................................................
#define TclBN_mp_get_long mp_get_long
#define TclBN_mp_get_int mp_get_int
#define TclBN_mp_tc_and mp_tc_and
#define TclBN_mp_tc_or mp_tc_or
#define TclBN_mp_tc_xor mp_tc_xor
#define TclBN_mp_tc_div_2d mp_tc_div_2d
#define TclBN_mp_get_bit mp_get_bit

#if !defined(TCL_NO_DEPRECATED) && (!defined(_WIN32) || defined(STATIC_BUILD))
#define TclBN_reverse bn_reverse
#define TclBN_fast_s_mp_mul_digs fast_s_mp_mul_digs
#define TclBN_fast_s_mp_sqr fast_s_mp_sqr
#define TclBN_mp_karatsuba_mul mp_karatsuba_mul
#define TclBN_mp_karatsuba_sqr mp_karatsuba_sqr
#define TclBN_mp_toom_mul mp_toom_mul
#define TclBN_mp_toom_sqr mp_toom_sqr
#define TclBN_s_mp_add s_mp_add
#define TclBN_s_mp_mul_digs s_mp_mul_digs
#define TclBN_s_mp_sqr s_mp_sqr
#define TclBN_s_mp_sub s_mp_sub
#else
#define TclBN_reverse 0
#define TclBN_fast_s_mp_mul_digs 0
#define TclBN_fast_s_mp_sqr 0
#define TclBN_mp_karatsuba_mul 0
#define TclBN_mp_karatsuba_sqr 0
#define TclBN_mp_toom_mul 0
#define TclBN_mp_toom_sqr 0
#define TclBN_s_mp_add 0
#define TclBN_s_mp_mul_digs 0
#define TclBN_s_mp_sqr 0
#define TclBN_s_mp_sub 0
#endif

/* See bug 510001: TclSockMinimumBuffers needs plat imp */
#if defined(_WIN64) || defined(TCL_NO_DEPRECATED) || TCL_MAJOR_VERSION > 8
#   define TclSockMinimumBuffersOld 0
#else
#define TclSockMinimumBuffersOld sockMinimumBuffersOld
static int TclSockMinimumBuffersOld(int sock, int size)
................................................................................
#   define Tcl_SetExitProc 0
#   define Tcl_SetPanicProc 0
#   define Tcl_FindExecutable 0
#   define Tcl_GetUnicode 0
#   define TclOldFreeObj 0
#   undef Tcl_StringMatch
#   define Tcl_StringMatch 0











#else /* TCL_NO_DEPRECATED */
#   define Tcl_SeekOld seekOld
#   define Tcl_TellOld tellOld
#   define TclBackgroundException Tcl_BackgroundException
#   define TclSetStartupScript Tcl_SetStartupScript
#   define TclGetStartupScript Tcl_GetStartupScript
#   define TclCreateNamespace Tcl_CreateNamespace

Changes to generic/tclTestObj.c.

14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#ifndef USE_TCL_STUBS
#   define USE_TCL_STUBS
#endif
#include "tclInt.h"
#include "tommath.h"
#include "tclStringRep.h"


/*
 * Forward declarations for functions defined later in this file:
 */







|







14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#ifndef USE_TCL_STUBS
#   define USE_TCL_STUBS
#endif
#include "tclInt.h"
#include "tclTomMath.h"
#include "tclStringRep.h"


/*
 * Forward declarations for functions defined later in this file:
 */

Changes to generic/tclTomMathDecls.h.

626
627
628
629
630
631
632
633






















































































































































634
635
636
637
	(tclTomMathStubsPtr->tclBN_mp_tc_div_2d) /* 76 */
#define TclBN_mp_get_bit \
	(tclTomMathStubsPtr->tclBN_mp_get_bit) /* 77 */

#endif /* defined(USE_TCL_STUBS) */

/* !END!: Do not edit above this line. */























































































































































#undef TCL_STORAGE_CLASS
#define TCL_STORAGE_CLASS DLLIMPORT

#endif /* _TCLINTDECLS */







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>




626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
	(tclTomMathStubsPtr->tclBN_mp_tc_div_2d) /* 76 */
#define TclBN_mp_get_bit \
	(tclTomMathStubsPtr->tclBN_mp_get_bit) /* 77 */

#endif /* defined(USE_TCL_STUBS) */

/* !END!: Do not edit above this line. */

#if defined(USE_TCL_STUBS)
#define mp_add \
	(tclTomMathStubsPtr->tclBN_mp_add) /* 2 */
#define mp_add_d \
	(tclTomMathStubsPtr->tclBN_mp_add_d) /* 3 */
#define mp_and \
	(tclTomMathStubsPtr->tclBN_mp_and) /* 4 */
#define mp_clamp \
	(tclTomMathStubsPtr->tclBN_mp_clamp) /* 5 */
#define mp_clear \
	(tclTomMathStubsPtr->tclBN_mp_clear) /* 6 */
#define mp_clear_multi \
	(tclTomMathStubsPtr->tclBN_mp_clear_multi) /* 7 */
#define mp_cmp \
	(tclTomMathStubsPtr->tclBN_mp_cmp) /* 8 */
#define mp_cmp_d \
	(tclTomMathStubsPtr->tclBN_mp_cmp_d) /* 9 */
#define mp_cmp_mag \
	(tclTomMathStubsPtr->tclBN_mp_cmp_mag) /* 10 */
#define mp_copy \
	(tclTomMathStubsPtr->tclBN_mp_copy) /* 11 */
#define mp_count_bits \
	(tclTomMathStubsPtr->tclBN_mp_count_bits) /* 12 */
#define mp_div \
	(tclTomMathStubsPtr->tclBN_mp_div) /* 13 */
#define mp_div_d \
	(tclTomMathStubsPtr->tclBN_mp_div_d) /* 14 */
#define mp_div_2 \
	(tclTomMathStubsPtr->tclBN_mp_div_2) /* 15 */
#define mp_div_2d \
	(tclTomMathStubsPtr->tclBN_mp_div_2d) /* 16 */
#define mp_div_3 \
	(tclTomMathStubsPtr->tclBN_mp_div_3) /* 17 */
#define mp_exch \
	(tclTomMathStubsPtr->tclBN_mp_exch) /* 18 */
#define mp_expt_d \
	(tclTomMathStubsPtr->tclBN_mp_expt_d) /* 19 */
#define mp_grow \
	(tclTomMathStubsPtr->tclBN_mp_grow) /* 20 */
#define mp_init \
	(tclTomMathStubsPtr->tclBN_mp_init) /* 21 */
#define mp_init_copy \
	(tclTomMathStubsPtr->tclBN_mp_init_copy) /* 22 */
#define mp_init_multi \
	(tclTomMathStubsPtr->tclBN_mp_init_multi) /* 23 */
#define mp_init_set \
	(tclTomMathStubsPtr->tclBN_mp_init_set) /* 24 */
#define mp_init_size \
	(tclTomMathStubsPtr->tclBN_mp_init_size) /* 25 */
#define mp_lshd \
	(tclTomMathStubsPtr->tclBN_mp_lshd) /* 26 */
#define mp_mod \
	(tclTomMathStubsPtr->tclBN_mp_mod) /* 27 */
#define mp_mod_2d \
	(tclTomMathStubsPtr->tclBN_mp_mod_2d) /* 28 */
#define mp_mul \
	(tclTomMathStubsPtr->tclBN_mp_mul) /* 29 */
#define mp_mul_d \
	(tclTomMathStubsPtr->tclBN_mp_mul_d) /* 30 */
#define mp_mul_2 \
	(tclTomMathStubsPtr->tclBN_mp_mul_2) /* 31 */
#define mp_mul_2d \
	(tclTomMathStubsPtr->tclBN_mp_mul_2d) /* 32 */
#define mp_neg \
	(tclTomMathStubsPtr->tclBN_mp_neg) /* 33 */
#define mp_or \
	(tclTomMathStubsPtr->tclBN_mp_or) /* 34 */
#define mp_radix_size \
	(tclTomMathStubsPtr->tclBN_mp_radix_size) /* 35 */
#define mp_read_radix \
	(tclTomMathStubsPtr->tclBN_mp_read_radix) /* 36 */
#define mp_rshd \
	(tclTomMathStubsPtr->tclBN_mp_rshd) /* 37 */
#define mp_shrink \
	(tclTomMathStubsPtr->tclBN_mp_shrink) /* 38 */
#define mp_set \
	(tclTomMathStubsPtr->tclBN_mp_set) /* 39 */
#define mp_sqr \
	(tclTomMathStubsPtr->tclBN_mp_sqr) /* 40 */
#define mp_sqrt \
	(tclTomMathStubsPtr->tclBN_mp_sqrt) /* 41 */
#define mp_sub \
	(tclTomMathStubsPtr->tclBN_mp_sub) /* 42 */
#define mp_sub_d \
	(tclTomMathStubsPtr->tclBN_mp_sub_d) /* 43 */
#define mp_to_unsigned_bin \
	(tclTomMathStubsPtr->tclBN_mp_to_unsigned_bin) /* 44 */
#define mp_to_unsigned_bin_n \
	(tclTomMathStubsPtr->tclBN_mp_to_unsigned_bin_n) /* 45 */
#define mp_toradix_n \
	(tclTomMathStubsPtr->tclBN_mp_toradix_n) /* 46 */
#define mp_unsigned_bin_size \
	(tclTomMathStubsPtr->tclBN_mp_unsigned_bin_size) /* 47 */
#define mp_xor \
	(tclTomMathStubsPtr->tclBN_mp_xor) /* 48 */
#define mp_zero \
	(tclTomMathStubsPtr->tclBN_mp_zero) /* 49 */
#define TclBN_reverse \
	(tclTomMathStubsPtr->tclBN_reverse) /* 50 */
#define TclBN_fast_s_mp_mul_digs \
	(tclTomMathStubsPtr->tclBN_fast_s_mp_mul_digs) /* 51 */
#define TclBN_fast_s_mp_sqr \
	(tclTomMathStubsPtr->tclBN_fast_s_mp_sqr) /* 52 */
#define mp_karatsuba_mul \
	(tclTomMathStubsPtr->tclBN_mp_karatsuba_mul) /* 53 */
#define mp_karatsuba_sqr \
	(tclTomMathStubsPtr->tclBN_mp_karatsuba_sqr) /* 54 */
#define mp_toom_mul \
	(tclTomMathStubsPtr->tclBN_mp_toom_mul) /* 55 */
#define mp_toom_sqr \
	(tclTomMathStubsPtr->tclBN_mp_toom_sqr) /* 56 */
#define TclBN_s_mp_add \
	(tclTomMathStubsPtr->tclBN_s_mp_add) /* 57 */
#define TclBN_s_mp_mul_digs \
	(tclTomMathStubsPtr->tclBN_s_mp_mul_digs) /* 58 */
#define TclBN_s_mp_sqr \
	(tclTomMathStubsPtr->tclBN_s_mp_sqr) /* 59 */
#define TclBN_s_mp_sub \
	(tclTomMathStubsPtr->tclBN_s_mp_sub) /* 60 */
#define mp_init_set_int \
	(tclTomMathStubsPtr->tclBN_mp_init_set_int) /* 61 */
#define mp_set_int \
	(tclTomMathStubsPtr->tclBN_mp_set_int) /* 62 */
#define mp_cnt_lsb \
	(tclTomMathStubsPtr->tclBN_mp_cnt_lsb) /* 63 */
#define mp_expt_d_ex \
	(tclTomMathStubsPtr->tclBN_mp_expt_d_ex) /* 67 */
#define mp_set_long_long \
	(tclTomMathStubsPtr->tclBN_mp_set_long_long) /* 68 */
#define mp_get_long_long \
	(tclTomMathStubsPtr->tclBN_mp_get_long_long) /* 69 */
#define mp_set_long \
	(tclTomMathStubsPtr->tclBN_mp_set_long) /* 70 */
#define mp_get_long \
	(tclTomMathStubsPtr->tclBN_mp_get_long) /* 71 */
#define mp_get_int \
	(tclTomMathStubsPtr->tclBN_mp_get_int) /* 72 */
#define mp_tc_and \
	(tclTomMathStubsPtr->tclBN_mp_tc_and) /* 73 */
#define mp_tc_or \
	(tclTomMathStubsPtr->tclBN_mp_tc_or) /* 74 */
#define mp_tc_xor \
	(tclTomMathStubsPtr->tclBN_mp_tc_xor) /* 75 */
#define mp_tc_div_2d \
	(tclTomMathStubsPtr->tclBN_mp_tc_div_2d) /* 76 */
#define mp_get_bit \
	(tclTomMathStubsPtr->tclBN_mp_get_bit) /* 77 */
#endif /* defined(USE_TCL_STUBS) */


#undef TCL_STORAGE_CLASS
#define TCL_STORAGE_CLASS DLLIMPORT

#endif /* _TCLINTDECLS */

Changes to generic/tclTomMathInterface.c.

9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 * Copyright (c) 2005 by Kevin B. Kenny.  All rights reserved.
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tommath.h"

MODULE_SCOPE const TclTomMathStubs tclTomMathStubs;
 
/*
 *----------------------------------------------------------------------
 *
 * TclTommath_Init --






|







9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 * Copyright (c) 2005 by Kevin B. Kenny.  All rights reserved.
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tclTomMath.h"

MODULE_SCOPE const TclTomMathStubs tclTomMathStubs;
 
/*
 *----------------------------------------------------------------------
 *
 * TclTommath_Init --

Changes to generic/tclUtil.c.

11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tclParse.h"
#include "tclStringTrim.h"
#include "tommath.h"
#include <math.h>

/*
 * The absolute pathname of the executable in which this Tcl library is
 * running.
 */







|







11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tclInt.h"
#include "tclParse.h"
#include "tclStringTrim.h"
#include "tclTomMath.h"
#include <math.h>

/*
 * The absolute pathname of the executable in which this Tcl library is
 * running.
 */

Changes to generic/tclVar.c.

732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
	     * would be a reference cycle which leads to a memory leak.
	     *
	     * The solution here is to wipe away all intrep(s) in
	     * cachedNamePtr and leave it as string only.  This is
	     * radical and destructive, so a better idea would be welcome.
	     */

	    /* 
	     * Firstly set cached local var reference (avoid free before set,
	     * see [45b9faf103f2])
	     */
	    LocalSetIntRep(part1Ptr, index, cachedNamePtr);

	    /* Then wipe it */
	    TclFreeIntRep(cachedNamePtr);






|







732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
	     * would be a reference cycle which leads to a memory leak.
	     *
	     * The solution here is to wipe away all intrep(s) in
	     * cachedNamePtr and leave it as string only.  This is
	     * radical and destructive, so a better idea would be welcome.
	     */

	    /*
	     * Firstly set cached local var reference (avoid free before set,
	     * see [45b9faf103f2])
	     */
	    LocalSetIntRep(part1Ptr, index, cachedNamePtr);

	    /* Then wipe it */
	    TclFreeIntRep(cachedNamePtr);

Changes to generic/tclZlib.c.

418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
				 * parsed. */
    GzipHeader *headerPtr,	/* Where to store the parsed-out values. */
    int *extraSizePtr)		/* Variable to add the length of header
				 * strings (filename, comment) to. */
{
    Tcl_Obj *value;
    int len, result = TCL_ERROR;
    Tcl_WideInt wideValue;
    const char *valueStr;
    Tcl_Encoding latin1enc;
    static const char *const types[] = {
	"binary", "text"
    };

    /*






|







418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
				 * parsed. */
    GzipHeader *headerPtr,	/* Where to store the parsed-out values. */
    int *extraSizePtr)		/* Variable to add the length of header
				 * strings (filename, comment) to. */
{
    Tcl_Obj *value;
    int len, result = TCL_ERROR;
    Tcl_WideInt wideValue = 0;
    const char *valueStr;
    Tcl_Encoding latin1enc;
    static const char *const types[] = {
	"binary", "text"
    };

    /*

Changes to libtommath/win32/tommath.lib.

cannot compute difference between binary files

Added libtommath/win64/tommath.lib.

cannot compute difference between binary files

Changes to tests/cmdMZ.test.

416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
    [try] interaction with local variable names produces segmentation violation

} -body {
    ::apply {{} {
	set cmd try
	$cmd {
	    lindex 5
	} on ok res {} 
	set res
    }} 
} -result 5


# The tests for Tcl_WhileObjCmd are in while.test
 
# cleanup
cleanupTests






|

|







416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
    [try] interaction with local variable names produces segmentation violation

} -body {
    ::apply {{} {
	set cmd try
	$cmd {
	    lindex 5
	} on ok res {}
	set res
    }}
} -result 5


# The tests for Tcl_WhileObjCmd are in while.test
 
# cleanup
cleanupTests

Changes to unix/Makefile.in.

223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242


243
244
245
246
247
248
249
...
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
...
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
AR			= @[email protected]
RANLIB			= @[email protected]
DTRACE			= @[email protected]
SRC_DIR			= @[email protected]
TOP_DIR			= @[email protected]
BUILD_DIR		= @[email protected]
GENERIC_DIR		= $(TOP_DIR)/generic
TOMMATH_DIR		= $(TOP_DIR)/libtommath
COMPAT_DIR		= $(TOP_DIR)/compat
TOOL_DIR		= $(TOP_DIR)/tools
UNIX_DIR		= $(TOP_DIR)/unix
MAC_OSX_DIR		= $(TOP_DIR)/macosx
PKGS_DIR		= $(TOP_DIR)/pkgs
# Must be absolute because of the cd dltest $(DLTEST_DIR)/configure below.
DLTEST_DIR		= @[email protected]/unix/dltest
# Must be absolute to so the corresponding tcltest's tcl_library is absolute.
TCL_BUILDTIME_LIBRARY	= @[email protected]/library

ZLIB_DIR		= ${COMPAT_DIR}/zlib
ZLIB_INCLUDE		= @[email protected]



CC			= @[email protected]
OBJEXT			= @[email protected]

#CC			= purify -best-effort @[email protected] -DPURIFY

# Flags to be passed to installManPage to control how the manpages should be
................................................................................

ZLIB_OBJS = Zadler32.o Zcompress.o Zcrc32.o Zdeflate.o Zinfback.o \
	Zinffast.o Zinflate.o Zinftrees.o Ztrees.o Zuncompr.o Zzutil.o

TCL_OBJS = ${GENERIC_OBJS} ${UNIX_OBJS} ${NOTIFY_OBJS} ${COMPAT_OBJS} \
	${OO_OBJS} @[email protected] @[email protected]

OBJS = ${TCL_OBJS} ${TOMMATH_OBJS} @[email protected] @[email protected]

TCL_DECLS = \
	$(GENERIC_DIR)/tcl.decls \
	$(GENERIC_DIR)/tclInt.decls \
	$(GENERIC_DIR)/tclOO.decls \
	$(GENERIC_DIR)/tclTomMath.decls

................................................................................
	$(ZLIB_DIR)/uncompr.c \
	$(ZLIB_DIR)/zutil.c

# Note: don't include DL_SRCS or MAC_OSX_SRCS in SRCS: most of those files
# won't compile on the current machine, and they will cause problems for
# things like "make depend".

SRCS = $(GENERIC_SRCS) $(TOMMATH_SRCS) $(UNIX_SRCS) $(NOTIFY_SRCS) \
	$(OO_SRCS) $(STUB_SRCS) @[email protected] @[email protected]

###
# Tip 430 - ZipFS Modifications
###

TCL_ZIP_FILE		= @[email protected]
TCL_VFS_ROOT		= libtcl.vfs






<












>
>







 







|







 







|
|







223
224
225
226
227
228
229

230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
...
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
...
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
AR			= @[email protected]
RANLIB			= @[email protected]
DTRACE			= @[email protected]
SRC_DIR			= @[email protected]
TOP_DIR			= @[email protected]
BUILD_DIR		= @[email protected]
GENERIC_DIR		= $(TOP_DIR)/generic

COMPAT_DIR		= $(TOP_DIR)/compat
TOOL_DIR		= $(TOP_DIR)/tools
UNIX_DIR		= $(TOP_DIR)/unix
MAC_OSX_DIR		= $(TOP_DIR)/macosx
PKGS_DIR		= $(TOP_DIR)/pkgs
# Must be absolute because of the cd dltest $(DLTEST_DIR)/configure below.
DLTEST_DIR		= @[email protected]/unix/dltest
# Must be absolute to so the corresponding tcltest's tcl_library is absolute.
TCL_BUILDTIME_LIBRARY	= @[email protected]/library

ZLIB_DIR		= ${COMPAT_DIR}/zlib
ZLIB_INCLUDE		= @[email protected]
TOMMATH_DIR		= $(TOP_DIR)/libtommath
TOMMATH_INCLUDE		= @[email protected]

CC			= @[email protected]
OBJEXT			= @[email protected]

#CC			= purify -best-effort @[email protected] -DPURIFY

# Flags to be passed to installManPage to control how the manpages should be
................................................................................

ZLIB_OBJS = Zadler32.o Zcompress.o Zcrc32.o Zdeflate.o Zinfback.o \
	Zinffast.o Zinflate.o Zinftrees.o Ztrees.o Zuncompr.o Zzutil.o

TCL_OBJS = ${GENERIC_OBJS} ${UNIX_OBJS} ${NOTIFY_OBJS} ${COMPAT_OBJS} \
	${OO_OBJS} @[email protected] @[email protected]

OBJS = ${TCL_OBJS} @[email protected] @ZLIB[email protected] @TOMMATH[email protected]

TCL_DECLS = \
	$(GENERIC_DIR)/tcl.decls \
	$(GENERIC_DIR)/tclInt.decls \
	$(GENERIC_DIR)/tclOO.decls \
	$(GENERIC_DIR)/tclTomMath.decls

................................................................................
	$(ZLIB_DIR)/uncompr.c \
	$(ZLIB_DIR)/zutil.c

# Note: don't include DL_SRCS or MAC_OSX_SRCS in SRCS: most of those files
# won't compile on the current machine, and they will cause problems for
# things like "make depend".

SRCS = $(GENERIC_SRCS) $(UNIX_SRCS) $(NOTIFY_SRCS) \
	$(OO_SRCS) $(STUB_SRCS) @[email protected] @[email protected] @[email protected]

###
# Tip 430 - ZipFS Modifications
###

TCL_ZIP_FILE		= @[email protected]
TCL_VFS_ROOT		= libtcl.vfs

Changes to unix/configure.

701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
....
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
PLAT_OBJS
DL_OBJS
DL_LIBS
TCL_LIBS
LIBOBJS
AR
RANLIB
LIBTOMMATH_INCLUDE
LIBTOMMATH_SRCS
LIBTOMMATH_OBJS
ZLIB_INCLUDE
ZLIB_SRCS
ZLIB_OBJS
TCLSH_PROG
SHARED_BUILD
EGREP
GREP
................................................................................

  libtommath_ok=no
fi


if test $libtommath_ok = yes; then :

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mp_add" >&5
$as_echo_n "checking for library containing mp_add... " >&6; }
if ${ac_cv_search_mp_add+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char mp_add ();
int
main ()
{
return mp_add ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' tommath; do
  if test -z "$ac_lib"; then
    ac_res="none required"
  else
    ac_res=-l$ac_lib
    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
  fi
  if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_search_mp_add=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_mp_add+:} false; then :
  break
fi
done
if ${ac_cv_search_mp_add+:} false; then :

else
  ac_cv_search_mp_add=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mp_add" >&5
$as_echo "$ac_cv_search_mp_add" >&6; }
ac_res=$ac_cv_search_mp_add
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

else

    libtommath_ok=no

fi

fi
if test $libtommath_ok = no; then :

  LIBTOMMATH_OBJS=\${LIBTOMMATH_OBJS}

  LIBTOMMATH_SRCS=\${LIBTOMMATH_SRCS}

  LIBTOMMATH_INCLUDE=-I\${LIBTOMMATH_DIR}


fi

#--------------------------------------------------------------------
# The statements below define a collection of compile flags.  This
# macro depends on the value of SHARED_BUILD, and should be called






|
|
|







 







|
|
|












|



|












|



|



|


|




|
|
|












|

|

|







701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
....
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
PLAT_OBJS
DL_OBJS
DL_LIBS
TCL_LIBS
LIBOBJS
AR
RANLIB
TOMMATH_INCLUDE
TOMMATH_SRCS
TOMMATH_OBJS
ZLIB_INCLUDE
ZLIB_SRCS
ZLIB_OBJS
TCLSH_PROG
SHARED_BUILD
EGREP
GREP
................................................................................

  libtommath_ok=no
fi


if test $libtommath_ok = yes; then :

  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing mp_get_bit" >&5
$as_echo_n "checking for library containing mp_get_bit... " >&6; }
if ${ac_cv_search_mp_get_bit+:} false; then :
  $as_echo_n "(cached) " >&6
else
  ac_func_search_save_LIBS=$LIBS
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h.  */

/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char mp_get_bit ();
int
main ()
{
return mp_get_bit ();
  ;
  return 0;
}
_ACEOF
for ac_lib in '' tommath; do
  if test -z "$ac_lib"; then
    ac_res="none required"
  else
    ac_res=-l$ac_lib
    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
  fi
  if ac_fn_c_try_link "$LINENO"; then :
  ac_cv_search_mp_get_bit=$ac_res
fi
rm -f core conftest.err conftest.$ac_objext \
    conftest$ac_exeext
  if ${ac_cv_search_mp_get_bit+:} false; then :
  break
fi
done
if ${ac_cv_search_mp_get_bit+:} false; then :

else
  ac_cv_search_mp_get_bit=no
fi
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_mp_get_bit" >&5
$as_echo "$ac_cv_search_mp_get_bit" >&6; }
ac_res=$ac_cv_search_mp_get_bit
if test "$ac_res" != no; then :
  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"

else

    libtommath_ok=no

fi

fi
if test $libtommath_ok = no; then :

  TOMMATH_OBJS=\${TOMMATH_OBJS}

  TOMMATH_SRCS=\${TOMMATH_SRCS}

  TOMMATH_INCLUDE=-I\${TOMMATH_DIR}


fi

#--------------------------------------------------------------------
# The statements below define a collection of compile flags.  This
# macro depends on the value of SHARED_BUILD, and should be called

Changes to unix/configure.ac.

171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
#	Add stuff for libtommath

libtommath_ok=yes
AC_CHECK_HEADER([tommath.h],[
  AC_CHECK_TYPE([mp_int],[],[libtommath_ok=no],[#include <tommath.h>])],[
  libtommath_ok=no])
AS_IF([test $libtommath_ok = yes], [
  AC_SEARCH_LIBS([mp_add],[tommath],[],[
    libtommath_ok=no
  ])])
AS_IF([test $libtommath_ok = no], [
  AC_SUBST(LIBTOMMATH_OBJS,[\${LIBTOMMATH_OBJS}])
  AC_SUBST(LIBTOMMATH_SRCS,[\${LIBTOMMATH_SRCS}])
  AC_SUBST(LIBTOMMATH_INCLUDE,[-I\${LIBTOMMATH_DIR}])
])

#--------------------------------------------------------------------
# The statements below define a collection of compile flags.  This
# macro depends on the value of SHARED_BUILD, and should be called
# after SC_ENABLE_SHARED checks the configure switches.
#--------------------------------------------------------------------






|



|
|
|







171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
#	Add stuff for libtommath

libtommath_ok=yes
AC_CHECK_HEADER([tommath.h],[
  AC_CHECK_TYPE([mp_int],[],[libtommath_ok=no],[#include <tommath.h>])],[
  libtommath_ok=no])
AS_IF([test $libtommath_ok = yes], [
  AC_SEARCH_LIBS([mp_get_bit],[tommath],[],[
    libtommath_ok=no
  ])])
AS_IF([test $libtommath_ok = no], [
  AC_SUBST(TOMMATH_OBJS,[\${TOMMATH_OBJS}])
  AC_SUBST(TOMMATH_SRCS,[\${TOMMATH_SRCS}])
  AC_SUBST(TOMMATH_INCLUDE,[-I\${TOMMATH_DIR}])
])

#--------------------------------------------------------------------
# The statements below define a collection of compile flags.  This
# macro depends on the value of SHARED_BUILD, and should be called
# after SC_ENABLE_SHARED checks the configure switches.
#--------------------------------------------------------------------

Changes to win/Makefile.in.

98
99
100
101
102
103
104

105
106
107
108
109
110
111
...
113
114
115
116
117
118
119

120
121
122
123
124
125
126
...
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
...
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
ROOT_DIR		= @[email protected]/..
TOP_DIR			= $(shell cd @[email protected]/..; pwd -P)
GENERIC_DIR		= $(TOP_DIR)/generic
WIN_DIR			= $(TOP_DIR)/win
COMPAT_DIR		= $(TOP_DIR)/compat
PKGS_DIR		= $(TOP_DIR)/pkgs
ZLIB_DIR		= $(COMPAT_DIR)/zlib

TOMMATH_DIR		= $(TOP_DIR)/libtommath

# Converts a POSIX path to a Windows native path.
CYGPATH			= @[email protected]

libdir_native	= $(shell $(CYGPATH) '$(libdir)')
bindir_native	= $(shell $(CYGPATH) '$(bindir)')
................................................................................
mandir_native = $(shell $(CYGPATH) '$(mandir)')
TCL_LIBRARY_NATIVE	= $(shell $(CYGPATH) '$(TCL_LIBRARY)')
GENERIC_DIR_NATIVE	= $(shell $(CYGPATH) '$(GENERIC_DIR)')
WIN_DIR_NATIVE		= $(shell $(CYGPATH) '$(WIN_DIR)')
ROOT_DIR_NATIVE		= $(shell $(CYGPATH) '$(ROOT_DIR)')
ROOT_DIR_WIN_NATIVE	= $(shell cd '$(ROOT_DIR)' ; pwd -W || pwd -P)
ZLIB_DIR_NATIVE		= $(shell $(CYGPATH) '$(ZLIB_DIR)')

TOMMATH_DIR_NATIVE	= $(shell $(CYGPATH) '$(TOMMATH_DIR)')

# Fully qualify library path so that `make test`
# does not depend on the current directory.
LIBRARY_DIR1		= $(shell cd '$(ROOT_DIR_NATIVE)/library' ; pwd -P)
LIBRARY_DIR             = $(shell $(CYGPATH) '$(LIBRARY_DIR1)')
DLLSUFFIX		= @[email protected]
................................................................................
tclZipfs.${OBJEXT}: $(GENERIC_DIR)/tclZipfs.c
	$(CC) -c $(CC_SWITCHES) -DBUILD_tcl \
	-DCFG_RUNTIME_PATH=\"$(bindir_native)\" \
	-DCFG_RUNTIME_DLLFILE="\"$(TCL_DLL_FILE)\"" \
	-DCFG_RUNTIME_ZIPFILE="\"$(TCL_ZIP_FILE)\"" \
	-DCFG_RUNTIME_LIBDIR="\"$(bindir_native)\"" \
	-DCFG_RUNTIME_SCRDIR="\"$(TCL_LIBRARY_NATIVE)\"" \
	$(ZLIB_INCLUDE) -I$(ZLIB_DIR)/contrib/minizip  @[email protected] $(CC_OBJNAME)


# TIP #59, embedding of configuration information into the binary library.
#
# Part of Tcl's configuration information are the paths where it was installed
# and where it will look for its libraries (which can be different). We derive
# this information from the variables which can be overridden by the user. As
................................................................................



#--------------------------------------------------------------------------
# Minizip implementation
#--------------------------------------------------------------------------
adler32.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR) -c $(ZLIB_DIR)/adler32.c

compress.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR) -c $(ZLIB_DIR)/compress.c

crc32.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR) -c $(ZLIB_DIR)/crc32.c

deflate.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR) -c $(ZLIB_DIR)/deflate.c

ioapi.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -DIOAPI_NO_64 -I$(ZLIB_DIR) -I$(ZLIB_DIR)/contrib/minizip -c $(ZLIB_DIR)/contrib/minizip/ioapi.c

iowin32.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR) -I$(ZLIB_DIR)/contrib/minizip -c $(ZLIB_DIR)/contrib/minizip/iowin32.c

infback.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR) -c $(ZLIB_DIR)/infback.c

inffast.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR) -c $(ZLIB_DIR)/inffast.c

inflate.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR) -c $(ZLIB_DIR)/inflate.c

inftrees.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR) -c $(ZLIB_DIR)/inftrees.c

trees.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR) -c $(ZLIB_DIR)/trees.c

uncompr.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR) -c $(ZLIB_DIR)/uncompr.c

zip.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR) -I$(ZLIB_DIR)/contrib/minizip -c $(ZLIB_DIR)/contrib/minizip/zip.c

zutil.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR) -c $(ZLIB_DIR)/zutil.c

minizip.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR) -DIOAPI_NO_64 -I$(ZLIB_DIR)/contrib/minizip -c $(ZLIB_DIR)/contrib/minizip/minizip.c

minizip${HOST_EXEEXT}: $(MINIZIP_OBJS)
	$(HOST_CC) -o [email protected] $(MINIZIP_OBJS)

# The following target generates the file generic/tclDate.c from the yacc
# grammar found in generic/tclGetDate.y. This is only run by hand as yacc is
# not available in all environments. The name of the .c file is different than






>







 







>







 







|







 







|


|


|


|


|


|


|


|


|


|


|


|


|


|


|







98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
...
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
...
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
...
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
ROOT_DIR		= @[email protected]/..
TOP_DIR			= $(shell cd @[email protected]/..; pwd -P)
GENERIC_DIR		= $(TOP_DIR)/generic
WIN_DIR			= $(TOP_DIR)/win
COMPAT_DIR		= $(TOP_DIR)/compat
PKGS_DIR		= $(TOP_DIR)/pkgs
ZLIB_DIR		= $(COMPAT_DIR)/zlib
MINIZIP_DIR		= $(ZLIB_DIR)/contrib/minizip
TOMMATH_DIR		= $(TOP_DIR)/libtommath

# Converts a POSIX path to a Windows native path.
CYGPATH			= @[email protected]

libdir_native	= $(shell $(CYGPATH) '$(libdir)')
bindir_native	= $(shell $(CYGPATH) '$(bindir)')
................................................................................
mandir_native = $(shell $(CYGPATH) '$(mandir)')
TCL_LIBRARY_NATIVE	= $(shell $(CYGPATH) '$(TCL_LIBRARY)')
GENERIC_DIR_NATIVE	= $(shell $(CYGPATH) '$(GENERIC_DIR)')
WIN_DIR_NATIVE		= $(shell $(CYGPATH) '$(WIN_DIR)')
ROOT_DIR_NATIVE		= $(shell $(CYGPATH) '$(ROOT_DIR)')
ROOT_DIR_WIN_NATIVE	= $(shell cd '$(ROOT_DIR)' ; pwd -W || pwd -P)
ZLIB_DIR_NATIVE		= $(shell $(CYGPATH) '$(ZLIB_DIR)')
MINIZIP_DIR_NATIVE	= $(shell $(CYGPATH) '$(MINIZIP_DIR)')
TOMMATH_DIR_NATIVE	= $(shell $(CYGPATH) '$(TOMMATH_DIR)')

# Fully qualify library path so that `make test`
# does not depend on the current directory.
LIBRARY_DIR1		= $(shell cd '$(ROOT_DIR_NATIVE)/library' ; pwd -P)
LIBRARY_DIR             = $(shell $(CYGPATH) '$(LIBRARY_DIR1)')
DLLSUFFIX		= @[email protected]
................................................................................
tclZipfs.${OBJEXT}: $(GENERIC_DIR)/tclZipfs.c
	$(CC) -c $(CC_SWITCHES) -DBUILD_tcl \
	-DCFG_RUNTIME_PATH=\"$(bindir_native)\" \
	-DCFG_RUNTIME_DLLFILE="\"$(TCL_DLL_FILE)\"" \
	-DCFG_RUNTIME_ZIPFILE="\"$(TCL_ZIP_FILE)\"" \
	-DCFG_RUNTIME_LIBDIR="\"$(bindir_native)\"" \
	-DCFG_RUNTIME_SCRDIR="\"$(TCL_LIBRARY_NATIVE)\"" \
	$(ZLIB_INCLUDE) -I$(MINIZIP_DIR_NATIVE)  @[email protected] $(CC_OBJNAME)


# TIP #59, embedding of configuration information into the binary library.
#
# Part of Tcl's configuration information are the paths where it was installed
# and where it will look for its libraries (which can be different). We derive
# this information from the variables which can be overridden by the user. As
................................................................................



#--------------------------------------------------------------------------
# Minizip implementation
#--------------------------------------------------------------------------
adler32.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR_NATIVE) -c $(ZLIB_DIR_NATIVE)/adler32.c

compress.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR_NATIVE) -c $(ZLIB_DIR_NATIVE)/compress.c

crc32.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR_NATIVE) -c $(ZLIB_DIR_NATIVE)/crc32.c

deflate.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR_NATIVE) -c $(ZLIB_DIR_NATIVE)/deflate.c

ioapi.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -DIOAPI_NO_64 -DUSE_FILE32API -I$(ZLIB_DIR_NATIVE) -I$(MINIZIP_DIR_NATIVE) -c $(MINIZIP_DIR_NATIVE)/ioapi.c

iowin32.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR_NATIVE) -I$(MINIZIP_DIR_NATIVE) -c $(MINIZIP_DIR_NATIVE)/iowin32.c

infback.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR_NATIVE) -c $(ZLIB_DIR_NATIVE)/infback.c

inffast.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR_NATIVE) -c $(ZLIB_DIR_NATIVE)/inffast.c

inflate.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR_NATIVE) -c $(ZLIB_DIR_NATIVE)/inflate.c

inftrees.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR_NATIVE) -c $(ZLIB_DIR_NATIVE)/inftrees.c

trees.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR_NATIVE) -c $(ZLIB_DIR_NATIVE)/trees.c

uncompr.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR_NATIVE) -c $(ZLIB_DIR_NATIVE)/uncompr.c

zip.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR_NATIVE) -I$(MINIZIP_DIR_NATIVE) -c $(MINIZIP_DIR_NATIVE)/zip.c

zutil.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR_NATIVE) -c $(ZLIB_DIR_NATIVE)/zutil.c

minizip.$(HOST_OBJEXT):
	$(HOST_CC) -o [email protected] -I$(ZLIB_DIR_NATIVE) -DIOAPI_NO_64 -DUSE_FILE32API -I$(MINIZIP_DIR_NATIVE) -c $(MINIZIP_DIR_NATIVE)/minizip.c

minizip${HOST_EXEEXT}: $(MINIZIP_OBJS)
	$(HOST_CC) -o [email protected] $(MINIZIP_OBJS)

# The following target generates the file generic/tclDate.c from the yacc
# grammar found in generic/tclGetDate.y. This is only run by hand as yacc is
# not available in all environments. The name of the .c file is different than

Changes to win/configure.

4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
else
  CC="\"${PATH64}/cl.exe\" -I\"${MSSDK}/Include\" \
			 -I\"${MSSDK}/Include/crt\" \
			 -I\"${MSSDK}/Include/crt/sys\""
fi

	    RC="\"${MSSDK}/bin/rc.exe\""
	    CFLAGS_DEBUG="-nologo -Zi -Od ${runtime}d"
	    # Do not use -O2 for Win64 - this has proved buggy in code gen.
	    CFLAGS_OPTIMIZE="-nologo -O1 ${runtime}"
	    lflags="${lflags} -nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\""
	    LINKBIN="\"${PATH64}/link.exe\""
	    # Avoid 'unresolved external symbol __security_cookie' errors.
	    # c.f. http://support.microsoft.com/?id=894573
	    LIBS="$LIBS bufferoverflowU.lib"
	else
	    RC="rc"
	    # -Od - no optimization
	    # -WX - warnings as errors






|




|







4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
else
  CC="\"${PATH64}/cl.exe\" -I\"${MSSDK}/Include\" \
			 -I\"${MSSDK}/Include/crt\" \
			 -I\"${MSSDK}/Include/crt/sys\""
fi

	    RC="rc"
	    CFLAGS_DEBUG="-nologo -Zi -Od ${runtime}d"
	    # Do not use -O2 for Win64 - this has proved buggy in code gen.
	    CFLAGS_OPTIMIZE="-nologo -O1 ${runtime}"
	    lflags="${lflags} -nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\""
	    LINKBIN="link"
	    # Avoid 'unresolved external symbol __security_cookie' errors.
	    # c.f. http://support.microsoft.com/?id=894573
	    LIBS="$LIBS bufferoverflowU.lib"
	else
	    RC="rc"
	    # -Od - no optimization
	    # -WX - warnings as errors

Changes to win/tcl.m4.

805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
	    # TEA_PATH_NOSPACE to avoid this issue.
	    # Check if _WIN64 is already recognized, and if so we don't
	    # need to modify CC.
	    AC_CHECK_DECL([_WIN64], [],
			  [CC="\"${PATH64}/cl.exe\" -I\"${MSSDK}/Include\" \
			 -I\"${MSSDK}/Include/crt\" \
			 -I\"${MSSDK}/Include/crt/sys\""])
	    RC="\"${MSSDK}/bin/rc.exe\""
	    CFLAGS_DEBUG="-nologo -Zi -Od ${runtime}d"
	    # Do not use -O2 for Win64 - this has proved buggy in code gen.
	    CFLAGS_OPTIMIZE="-nologo -O1 ${runtime}"
	    lflags="${lflags} -nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\""
	    LINKBIN="\"${PATH64}/link.exe\""
	    # Avoid 'unresolved external symbol __security_cookie' errors.
	    # c.f. http://support.microsoft.com/?id=894573
	    LIBS="$LIBS bufferoverflowU.lib"
	else
	    RC="rc"
	    # -Od - no optimization
	    # -WX - warnings as errors






|




|







805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
	    # TEA_PATH_NOSPACE to avoid this issue.
	    # Check if _WIN64 is already recognized, and if so we don't
	    # need to modify CC.
	    AC_CHECK_DECL([_WIN64], [],
			  [CC="\"${PATH64}/cl.exe\" -I\"${MSSDK}/Include\" \
			 -I\"${MSSDK}/Include/crt\" \
			 -I\"${MSSDK}/Include/crt/sys\""])
	    RC="rc"
	    CFLAGS_DEBUG="-nologo -Zi -Od ${runtime}d"
	    # Do not use -O2 for Win64 - this has proved buggy in code gen.
	    CFLAGS_OPTIMIZE="-nologo -O1 ${runtime}"
	    lflags="${lflags} -nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\""
	    LINKBIN="link"
	    # Avoid 'unresolved external symbol __security_cookie' errors.
	    # c.f. http://support.microsoft.com/?id=894573
	    LIBS="$LIBS bufferoverflowU.lib"
	else
	    RC="rc"
	    # -Od - no optimization
	    # -WX - warnings as errors

Changes to win/tclWinTest.c.

9
10
11
12
13
14
15

16
17
18
19
20
21
22
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#ifndef USE_TCL_STUBS
#   define USE_TCL_STUBS
#endif
#include "tclInt.h"


/*
 * For TestplatformChmod on Windows
 */
#ifdef _WIN32
#include <aclapi.h>
#endif






>







9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#ifndef USE_TCL_STUBS
#   define USE_TCL_STUBS
#endif
#include "tclInt.h"
#include "tclTomMath.h"

/*
 * For TestplatformChmod on Windows
 */
#ifdef _WIN32
#include <aclapi.h>
#endif