Compare commits

...
Author SHA1 Message Date
jan.nijtmans efe33a9fd9 Vary dltest package names for test purposes 2020-11-04 08:55:50 +00:00
jan.nijtmans ce3437bf88 Undo experimental unrelated changes 2020-11-03 16:40:32 +00:00
jan.nijtmans e69d8e8e92 Correct casing in some error-messages 2020-11-03 16:24:01 +00:00
jan.nijtmans 8607752aa6 Case-sensitive package names 2020-11-03 15:32:46 +00:00
jan.nijtmans 3b0ee42270 Merge 8.6 2020-10-30 14:05:26 +00:00
jan.nijtmans f163c24b4c Simplify testcases using "incr" 2020-10-30 13:56:15 +00:00
jan.nijtmans 8f3e8012b1 Merge 8.6 2020-10-30 13:37:42 +00:00
jan.nijtmans 076a7e2839 Add "{}" around many "expr" commands in testcases. Also in doc/expr.n 2020-10-30 13:27:52 +00:00
jan.nijtmans cfe53b8870 Merge 8.6 2020-10-29 11:18:19 +00:00
jan.nijtmans 9efaa4d7f1 Fix implib filenames (adapted from Mingw2's 006-proper-implib-name.mingw.patch)
3 new testcases
2020-10-29 10:04:24 +00:00
jan.nijtmans dc84eca339 3 new testcases 2020-10-29 09:42:42 +00:00
jan.nijtmans f15717bcda Update TZ info to tzdata2020d. 2020-10-29 09:25:55 +00:00
jan.nijtmans ff316586bc Fix implib filenames (adapted from Mingw2's 006-proper-implib-name.mingw.patch) 2020-10-29 08:56:17 +00:00
jan.nijtmans 109828f090 Slight tweak to previous commit: Move definition of __USE_MINGW_ANSI_STDIO to the Makefile 2020-10-29 07:47:08 +00:00
dgp 0df05b3515 [11229bad5f] Fix the bytecode compiler for [string insert]. 2020-10-27 20:27:19 +00:00
dgp 84623a09f2 Use TCL_ERROR to signal inability to compile. 2020-10-27 20:24:13 +00:00
dgp 1c0ca80fe5 [11229bad5f] New test to demonstrate the bug. 2020-10-27 20:09:37 +00:00
jan.nijtmans 17211d39a0 Merge 8.6 2020-10-26 23:00:59 +00:00
jan.nijtmans 37d6f90099 Revert changes in previous commit to clock.n and lassign.n 2020-10-26 22:58:22 +00:00
José Ignacio Marín 32d6283561 Update TZ info to tzdata2020d (via merge). 2020-10-26 20:32:46 +00:00
José Ignacio Marín b0654427ca Update TZ info to tzdata2020d. 2020-10-26 20:32:16 +00:00
jan.nijtmans 6e6d624ec3 Merge 8.6 2020-10-26 16:15:30 +00:00
jan.nijtmans 34d3750e3c Fix [48898ab5f6a0d957]: Too few is better than not enough? (Inconsistent error messages) 2020-10-26 15:07:03 +00:00
jan.nijtmans 48d0827130 Merge 8.6 2020-10-23 15:46:20 +00:00
jan.nijtmans 1c788e178d Fix warning: /home/jboss/workspace/tcl8.7/generic/tclIO.c:9997:27: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
9997 |   RemovePoint(nextPtr)[0] = '\r';
      |                           ^
2020-10-23 15:36:16 +00:00
jan.nijtmans be83197ee5 TIP #587: One place more where TCL_CFGVAL_ENCODING should fall back to utf-8 2020-10-22 10:52:11 +00:00
jan.nijtmans 33918a2b0b TIP #587: Default utf-8 for source command 2020-10-22 10:30:05 +00:00
jan.nijtmans 6459a50433 Merge 8.6 2020-10-22 10:23:31 +00:00
jan.nijtmans cac264cd19 Merge 8.5 (rename internal TCL_I_MODIFIER -> TCL_Z_MODIFIER) 2020-10-22 09:56:19 +00:00
jan.nijtmans c41f605368 (cherry-pick): Fix [c975939973]: Usage of gnu_printf in latest mingw-w64.
Change (internal, windows-only) TCL_I_MODIFIER to TCL_Z_MODIFIER, since that's how it's called in Tcl 8.7 and up
2020-10-22 09:23:49 +00:00
culler fb10e693b2 When building a subframework for macOS use a build directory in the staging directory. 2020-10-21 18:02:31 +00:00
jan.nijtmans 8514e60248 Merge 8.6 2020-10-21 08:51:44 +00:00
jan.nijtmans fd9662ee1c Fix [c975939973]: Usage of gnu_printf in latest mingw-w64 2020-10-21 07:48:31 +00:00
José Ignacio Marín 28e7632fe6 Update TZ info to tzdata2020c. 2020-10-20 20:39:49 +00:00
José Ignacio Marín 7f986a59bf Update TZ info to tzdata2020c. 2020-10-20 20:35:59 +00:00
culler ad823f4eb1 Add a make variable to GNUmakefile for building the Tcl.framework for use as a subframework 2020-10-19 19:22:39 +00:00
jan.nijtmans 4cecb91655 Merge 8.6.
Restore "install-strip" target to what it was in Tcl 8.6. Just don't use it any more on MacOS, since that's the only platform it doesn't work well.
2020-10-19 13:06:15 +00:00
jan.nijtmans 40c3ec35ee Improve comment in install-sh, regarding Tcl-specific change 2020-10-19 07:25:23 +00:00
jan.nijtmans 0b669eacf8 Fix [cb458261c3]: Strip comme il faut (without really doing 'il faut' ....). Update 'install-sh' to latest upstream version, but re-add this commit: [b269db5d3e97b67c] 2020-10-19 07:21:45 +00:00
jan.nijtmans 8ce6115cf5 3 times -1 -> TCL_INDEX_NONE 2020-10-18 16:24:41 +00:00
jan.nijtmans 81060c0741 Merge 8.6 2020-10-16 16:24:20 +00:00
jan.nijtmans 71b64b8e1c Still troubles with GIT on Travis 2020-10-16 16:21:29 +00:00
jan.nijtmans dd306f5b8f Merge 8.6 2020-10-16 16:02:35 +00:00
jan.nijtmans 69875ee99d Fix env.test when running under wine on Linux.
Mark other tests with "notWine", which fail currently under wine
2020-10-16 15:03:08 +00:00
jan.nijtmans 546165585c Remove use of CFG_ENCODING from rules.vc/makefile.vc: It will become obsolete with TIP #587. In stead, move the default handling to tclPkgConfig.c for now 2020-10-15 13:05:20 +00:00
jan.nijtmans fd320780c7 Merge 8.6 2020-10-15 11:06:01 +00:00
jan.nijtmans 59a788a6c4 Fix [53d5155335]: Typo in interp.n 2020-10-15 11:02:21 +00:00
jan.nijtmans e51ff962f0 Merge 8.6 2020-10-15 09:24:27 +00:00
jan.nijtmans f3ae2684eb Something strange going on on Travis with (long-gone) safe-stock86.test 2020-10-15 09:19:29 +00:00
jan.nijtmans e3f7f1bad8 Fix MSVC++ 6.0 build 2020-10-14 06:55:03 +00:00
jan.nijtmans f70e1f98b3 Merge 8.6 2020-10-13 15:45:26 +00:00
jan.nijtmans 3fc1392c92 More usage of TclNewObj() in stead of Tcl_NewObj() and TclNewIntObj() in stead of Tcl_NewIntObj() 2020-10-13 14:59:43 +00:00
jan.nijtmans fe00b6dcf6 Merge 8.6 Eliminate some (correct but actually harmless) warnings only happening on win64 2020-10-13 09:07:58 +00:00
jan.nijtmans 81e7623b78 Fix warning, doing a static build on Windows 2020-10-13 08:48:22 +00:00
José Ignacio Marín ceb9567874 Update TZ info to tzdata2020b. 2020-10-10 20:36:33 +00:00
José Ignacio Marín 579cd0b138 Update TZ info to tzdata2020b. 2020-10-10 20:34:58 +00:00
jan.nijtmans cd1fc2183e Merge 8.6. Don't inline functions which are too big to be inlined (according to the -Winline compiler flag) 2020-10-09 12:53:47 +00:00
jan.nijtmans 208927f009 Merge 8.5 2020-10-09 07:42:21 +00:00
jan.nijtmans e250b6f551 (cherry-pick): Fix [014ade1d44]: Misleading error message when using "-path" multiple times with "glob".
Also fix a few (harmless) -Wundef warnings
2020-10-09 07:10:22 +00:00
jan.nijtmans 7bf5af5c22 Make everything compile warning-free with -Wundef. Put enum ASSEM_DICT_GET_DEF last in TalInstType, so it's binary compatible with Tcl 8.6 2020-10-08 13:33:11 +00:00
jan.nijtmans 4a3369807b Eliminate warnings when compiling with -Wundef 2020-10-08 12:11:11 +00:00
jan.nijtmans 92bd8b3a3f Merge 8.6 2020-10-08 09:33:28 +00:00
jan.nijtmans 5039e7ce17 Fix [014ade1d44]: Misleading error message when using "-path" multiple times with "glob" 2020-10-08 09:13:57 +00:00
jan.nijtmans 5c9a145403 Merge 8.5 2020-10-08 09:07:54 +00:00
jan.nijtmans e53cbf77bf xcode12 -> xcode12.2. Prevent build warning about generic/tclStubInit.c 2020-10-07 16:34:57 +00:00
jan.nijtmans ec01eef200 merge-mark 2020-10-06 13:29:54 +00:00
jan.nijtmans a9405cc253 (cherry-pick): HAVE_TM_GMTOFF detection doesn't work if CFLAGS contains -Werror. Here's the fix. 2020-10-06 13:28:24 +00:00
jan.nijtmans 17b3cb8739 Fix (possible) gcc warnings in unix/dltest/*.c 2020-10-06 13:26:07 +00:00
jan.nijtmans 4dfeb77d2e HAVE_TM_GMTOFF detection doesn't work if CFLAGS contains -Werror. Here's the fix. 2020-10-06 13:20:42 +00:00
jan.nijtmans f7bdf7cfb1 Adapt function signatures in compat/string.h to what's normal nowadays 2020-10-06 08:44:15 +00:00
jan.nijtmans b7c4b811ec Fix -Wshadow warnings, when compiling with a C++ compiler 2020-10-02 16:28:09 +00:00
jan.nijtmans 09fd21b65b Merge 8.7 2020-10-01 12:38:14 +00:00
jan.nijtmans cb6ae54424 Merge 8.6 2020-09-30 14:54:30 +00:00
jan.nijtmans 1f4f47ccf5 (slightly) better error-message for invalid http -headers option. This works for plain 8.6 too 2020-09-30 14:49:15 +00:00
jan.nijtmans 195ea285da TIP #581 tweak: Don't report "slaves" as valid option for "interp" 2020-09-30 14:29:16 +00:00
oehhar 20d206c4c2 Ticket [0063cbcada]: From tcl 8.7 on, use "string is dict" instead "string is list" & length %2 == 0 to check for a valid dict 2020-09-30 12:19:53 +00:00
oehhar 98a93d4ca7 Ticket [0063cbcada]: check http::geturl -headers parameter to be a dict 2020-09-29 16:21:53 +00:00
oehhar accd2800ec Ticket [0063cbcada]: check http::geturl -headers parameter to be a dict 2020-09-29 16:16:27 +00:00
oehhar 2b01204e41 Remove wrong copy of test case http-3.2 2020-09-29 16:12:12 +00:00
oehhar 43e27f10a5 Ticket [0063cbcada]: check http::geturl -headers parameter to be a dict. 2020-09-29 08:15:32 +00:00
jan.nijtmans 2342babe99 Add -Wshadow flag to the compiler, so we will be notified when (accidently) shadowing variable names 2020-09-29 07:14:00 +00:00
jan.nijtmans 6ac6380f7a Merge-mark 2020-09-28 15:02:33 +00:00
jan.nijtmans 38b30033c8 Update internal zlib channel type from TCL_CHANNEL_VERSION_3 to TCL_CHANNEL_VERSION_5. Not actually a change, since supported procs are the same. So all internal channels have the same type 2020-09-28 15:00:02 +00:00
dgp 2a48060425 Restore change with correction. 2020-09-28 13:34:57 +00:00
dgp 8e25003fbd Revert change that made test expr-20.2 fail. 2020-09-28 13:02:46 +00:00
jan.nijtmans 947369a720 Merge 8.6 2020-09-28 10:39:50 +00:00
jan.nijtmans f6bf85fb67 Make Tcl compile warning-free using -Wshadow 2020-09-28 10:13:51 +00:00
jan.nijtmans 94a0658bc2 Merge 8.6 2020-09-26 18:38:01 +00:00
jan.nijtmans 866a79313b Merge 8.5 2020-09-26 18:32:06 +00:00
jan.nijtmans 636e4d4826 Tweak xcode labels for Travis build 2020-09-26 18:25:56 +00:00
jan.nijtmans e6b8f92493 Build Travis with Xcode 12 and 12u (Universal Apps) 2020-09-25 15:17:06 +00:00
jan.nijtmans 194cfb5382 Merge 8.7 2020-09-25 14:26:42 +00:00
jan.nijtmans 9a01f0fa35 Merge 8.6 2020-09-25 14:25:05 +00:00
jan.nijtmans 67f864dc65 It's "utf-8", not "utf8" or "UTF8" 2020-09-25 14:24:24 +00:00
jan.nijtmans 29577449a1 Use utf-8 as default encoding for configuration information 2020-09-25 14:17:14 +00:00
jan.nijtmans 21b10cef38 Merge 8.7 2020-09-25 12:16:48 +00:00
jan.nijtmans 26bb60bef7 merge-mark 2020-09-25 12:12:47 +00:00
jan.nijtmans 167555e6ab Merge 8.6 2020-09-25 11:21:05 +00:00
jan.nijtmans 00a4f18c38 When sourcing script files (even when simulating that through open|read), always set -eofchar \032 just like the source command does.
Possible security issue: this could make it possible to evaluate hidden content at the end of pkgIndex files.
2020-09-25 11:15:48 +00:00
jan.nijtmans 8f0b94f037 Merge 8.5 2020-09-25 11:13:11 +00:00
jan.nijtmans 9d34b872ce When sourcing script files (even when simulating that through open|read), always set -eofchar \032 just like the source command does.
Possible security issue: this could make it possible to evaluate hidden content at the end of pkgIndex files.
2020-09-25 11:09:08 +00:00
jan.nijtmans b8b008ad84 TIP #587 for Tcl 8.7 2020-09-25 10:57:35 +00:00
jan.nijtmans abc23e6723 TCL_CFGVAL_ENCODING now defaults to "utf-8" as well.
No explicit "-encoding utf-8" for "source" any more, since that's the default
2020-09-24 12:54:15 +00:00
jan.nijtmans e4fcd7152b Add gcc-10 build to Travis 2020-09-24 06:41:04 +00:00
jan.nijtmans 3ee0402bd5 Let's see if we can recover from an occasional hickup like happened here: [https://travis-ci.org/github/tcltk/tcl/jobs/729226819] 2020-09-23 05:57:35 +00:00
jan.nijtmans 3fcb054f91 Merge trunk. Use utf-8 explicitly when reading/writing script files 2020-09-22 12:25:15 +00:00
jan.nijtmans 5189ce8eae Merge 8.7 2020-09-22 12:20:14 +00:00
jan.nijtmans a9ba2a08b5 When writing script files (like pkgIndex.tcl), always use -translation lf, so they don't cause problems on non-windows.
When reading script files, always use  -eofchar \032, as this might be left by Windows editors.
2020-09-22 12:18:17 +00:00
jan.nijtmans 768db27d4c Merge 8.7 2020-09-20 21:44:53 +00:00
jan.nijtmans ebb520a849 Merge 8.6 2020-09-20 21:39:02 +00:00
jan.nijtmans 9e43cbb973 Improve TclInvalidateStringRep() macro such that (objPtr) is only evaluated once. Addation brackets in TclHasStringRep() macro 2020-09-20 21:32:35 +00:00
dgp a9fc439a35 merge 8.7 2020-09-20 16:06:03 +00:00
dgp 7f917c56f7 Merge 8.6 2020-09-20 15:58:58 +00:00
dgp 7a56ff406f Silence compiler warning -- fix safety of macro. 2020-09-20 15:53:37 +00:00
jan.nijtmans fb77f1148f Default utf-8 for source command 2020-09-20 11:17:56 +00:00
pooryorick 107d130ce3 Make the check to avoid generating a string representation in [uplevel] a little less intrusive. 2020-09-20 10:38:41 +00:00
jan.nijtmans 0266195479 Merge 8.7 2020-09-20 10:27:01 +00:00
jan.nijtmans bddd146942 Merge 8.6 2020-09-20 10:24:06 +00:00
jan.nijtmans e42885732a Merge 8.5 2020-09-20 10:21:07 +00:00
jan.nijtmans 1a94f57ab6 Backport many (formatting) changes in tools/*. Nothing functional.
testest.tcl: Use more uppercase hex.
2020-09-20 10:14:44 +00:00
jan.nijtmans 516be1cd2e Fix [9ffffcbeee]: compiler warnings in regcomp.c 2020-09-20 09:05:38 +00:00
jan.nijtmans 7b7d6e2116 Fix [bf58b04202]: compiler warning in tclEnv.c 2020-09-20 08:59:39 +00:00
dgp bfbfb2e5d3 merge 8.7 2020-09-19 17:21:08 +00:00
dgp 249c689f2d merge mark (safety) 2020-09-19 16:48:29 +00:00
pooryorick ac45c8d851 Fix for [b9ecf3ce98], [uplevel] unnecessarily generates string representation. 2020-09-19 14:33:24 +00:00
pooryorick 8da77a52ef Fix for [b9ecf3ce98], [uplevel] unnecessarily generates string representation. 2020-09-19 14:10:44 +00:00
jan.nijtmans 57849b86a1 Fix gcc warnings, compiling on 32-bit Linux 2020-09-18 23:05:34 +00:00
jan.nijtmans f0ab6a724c New macro TclNewIndexObj() which does the same as TclNewWideIntObjFromSize() but optimized the same way as TclNewIntObj(). 2020-09-18 08:33:51 +00:00
jan.nijtmans be275081a1 Merge 8.7 2020-09-17 14:12:55 +00:00
jan.nijtmans 733b7a43a4 Eliminate many usages of Tcl_NewObj (-> TclNewObj) and Tcl_NewIntObj (-> TclNewIntObj or Tcl_NewWideIntObj) 2020-09-17 13:48:12 +00:00
jan.nijtmans 0a36b1187d Merge 8.7 2020-09-17 09:31:16 +00:00
jan.nijtmans bc10bf6d03 Change version number of http package from 2.9.5 -> 2.10.0a1, since it's different from the 2.9.5 version in Tcl 8.6.x.
Use "$idx >= 0" check in stead of "$idx > -1" everywhere.
2020-09-17 09:27:44 +00:00
jan.nijtmans e14285c3a1 Tcl 8.6 should not be tested with "package prefer latest" any more: All included packages are supposed to be stable. Not to be merged to 8.7 (which still contains unstable packages) 2020-09-17 08:37:09 +00:00
jan.nijtmans 32975bd346 Merge 8.6 2020-09-17 08:12:40 +00:00
jan.nijtmans 76e4a71917 Fix [835c93c000]: TIP #525 only implemented for non-singleproc case 2020-09-17 07:58:14 +00:00
jan.nijtmans 23520a7648 Fix [835c93c000]: TIP #525 only implemented for non-singleproc case 2020-09-17 07:47:24 +00:00
jan.nijtmans 1dc3124160 Proposed solution for [835c93c000]: TIP #525 only implemented for non-singleproc case 2020-09-16 12:17:54 +00:00
jan.nijtmans c11add7a17 Merge 8.7 2020-09-16 07:03:27 +00:00
jan.nijtmans 929fdafe13 Little tweak to makeHeader.tcl, not depending on lsearch returning -1 any more 2020-09-16 06:51:36 +00:00
dgp 93124d77a6 one more test 2020-09-15 15:52:44 +00:00
dgp 2238887c08 Add test for [string replace] troubles. 2020-09-15 15:51:00 +00:00
jan.nijtmans 5758c119f8 Merge 8.7 2020-09-15 15:07:44 +00:00
jan.nijtmans 245a63f491 Fix [b5777d3d32]: Crash corner-case in TIP #502 implementation 2020-09-15 14:48:49 +00:00
jan.nijtmans 39aec08fb0 Merge 8.7 2020-09-14 13:25:16 +00:00
jan.nijtmans 66798b2c01 Merge 8.6 2020-09-14 13:04:55 +00:00
jan.nijtmans 52f93c85fd Unbreak winFCmd-1.38 testcase on Windows 2020-09-14 12:58:26 +00:00
jan.nijtmans fa3cf75311 Add .bmp to .gitattributes. Simplify .fossil-settings/binary-glob 2020-09-14 12:48:10 +00:00
jan.nijtmans 262b6297ea Eliminate many "register" keywords (which do nothing with modern compilers)
Eliminate many unnecessary type-casts to (unsigned)
2020-09-14 12:31:56 +00:00
jan.nijtmans d0cfe30a0d Merge 8.6 2020-09-14 09:39:09 +00:00
jan.nijtmans f0ec68f072 Prevent the usage of the term safe/unsafe child. Suggested by Keith Nash. Thanks!
More usage of $index<0 in stead of $index==-1 consistantly
2020-09-14 09:22:18 +00:00
jan.nijtmans 5bef31d2da Prevent the usage of the term safe/unsafe child. Suggested by Keith Nash. Thanks! 2020-09-14 08:52:27 +00:00
fvogel f073bc7484 Merge implementation of TIP #585 (Promote the INDEX_TEMP_TABLE flag of Tcl_GetIndexFromObj*() to the public interface) after positive vote from the TCT. Fix conflict due to Tcl_GetIndexFromObj() having been replaced by a macro in [4d8ee0f939]. 2020-09-13 20:46:12 +00:00
fvogel e89503a925 Merge implementation of TIP #585 (Promote the INDEX_TEMP_TABLE flag of Tcl_GetIndexFromObj*() to the public interface) after positive vote from the TCT. 2020-09-13 20:28:02 +00:00
jan.nijtmans 278837f261 More usage for TclNewWideIntObjFromSize(), TCL_IO_FAILURE -> TCL_INDEX_NONE where appropriate 2020-09-11 14:23:14 +00:00
jan.nijtmans d16f803f15 Merge 8.7 2020-09-11 14:11:49 +00:00
jan.nijtmans 779b664e54 Merge 8.6 2020-09-11 13:59:11 +00:00
jan.nijtmans 6e44927248 Folow-up to previous commit: ExecStack is a FLEXARRAY too 2020-09-11 13:43:49 +00:00
jan.nijtmans aa4c91c838 Merge 8.7 2020-09-11 13:20:59 +00:00
jan.nijtmans 524b1d9fb2 Merge 8.6. Remove tests/safe-stock86.test for win builds too (GIT, what are you doing ...!) 2020-09-11 12:56:29 +00:00
jan.nijtmans 7f62b76887 Fix [https://core.tcl-lang.org/tk/tktview?name=3bc0f44ef3|3bc0f44ef3]: UBSan complains about body.chars[] usage.
(Yes, I know, this one is for Tk, but Tcl was using the same construct too ....)
2020-09-11 12:31:48 +00:00
jan.nijtmans 0715d88019 Use $index<0 in stead of $index==-1 consistantly 2020-09-11 08:09:20 +00:00
jan.nijtmans f796d62367 Use $index<0 in stead of $index==-1 consistantly 2020-09-11 07:28:14 +00:00
jan.nijtmans 2061afedcc Merge 8.7 2020-09-10 16:58:26 +00:00
jan.nijtmans f5ac592def Somehow GIT cannot remove tests/safe-stock86.test from (earlier) core-8-6-branch, so we do it. 2020-09-10 16:47:30 +00:00
jan.nijtmans 06d15abf35 Merge 8.6 2020-09-10 11:33:25 +00:00
jan.nijtmans 2592b1e93b Don't use sizeof() for structs containing a flexible array as last element. Lesson from [https://core.tcl-lang.org/tk/info/3bc0f44ef3|3bc0f44ef3]. Use TclOffset in stead. 2020-09-10 10:28:46 +00:00
jan.nijtmans 1699143ae3 Merge 8.7 2020-09-09 06:57:05 +00:00
jan.nijtmans 0e0be8492f Merge 8.6 2020-09-09 06:45:57 +00:00
jan.nijtmans f4d0f6366c Rename safe-stock86.test to safe-stock.test 2020-09-09 06:37:45 +00:00
jan.nijtmans 049f2bdf3e Merge-mark 2020-09-07 15:18:05 +00:00
jan.nijtmans 60fde1d90f Fix "make install" on MacOSX: interp: make-manpage-section: ignoring .VS "TIP 581" after .TP 2020-09-07 15:11:19 +00:00
jan.nijtmans 5cf272491e Merge 8.7 2020-09-07 13:40:43 +00:00
jan.nijtmans 45e00e9df8 Merge-mark 2020-09-07 11:58:34 +00:00
jan.nijtmans a7f1b76ad2 Backport genStubs.tcl from 8.7. This adds support for MP_WUR, not actually used by Tcl. But could be used in (libtommath-related) extensions 2020-09-07 11:56:51 +00:00
jan.nijtmans 76b326ce86 Re-apply fix for [c1a376375e0e6488], as the build-problems originated elsewhere 2020-09-06 14:36:52 +00:00
jan.nijtmans 264c574c23 ckfree -> Tcl_Free 2020-09-05 22:10:31 +00:00
jan.nijtmans 230f0601cc Merge core-8-branch 2020-09-05 21:59:34 +00:00
jan.nijtmans 0d66de6c27 New bug-c1a376375e0e6488 branch with (up to now) failing solutions. Please make sure Travis builds OK before merging to core-8-branch 2020-09-05 21:37:18 +00:00
jan.nijtmans 618c49af4d Backout [c1a376375e0e6488]: imported namespace ensemble command name distorted during deletion trace on the import.
According to Travis, there's a memory leak which needs to be fixed first.
2020-09-05 21:33:49 +00:00
jan.nijtmans 87b0db4d91 Merge-mark 2020-09-05 20:58:31 +00:00
jan.nijtmans 66dd14a480 TIP #581: Last possible master/slave -> parent/child changes, without affecting anything serious 2020-09-05 20:45:04 +00:00
jan.nijtmans ff741e8b29 Merge 8.7 2020-09-04 16:45:51 +00:00
jan.nijtmans 0aaf6122a5 Merge 8.6 2020-09-04 16:44:00 +00:00
jan.nijtmans f2963d15d0 Let all test-cases load the "tcltest" package the same way. Depend on tcltest 2.5, since we never test with earlier tcltest versions 2020-09-04 15:48:08 +00:00
jan.nijtmans 1674055d7a Merge 8.7 2020-09-04 07:59:10 +00:00
jan.nijtmans fd253d8677 Merge 8.6 2020-09-04 07:50:41 +00:00
jan.nijtmans a4abf50c23 TIP #581: Mainly documentation and some testcases 2020-09-04 07:28:20 +00:00
jan.nijtmans db325590a7 Protect INST_STR_REPLACE too 2020-09-04 06:04:47 +00:00
fvogel 2b83b2c999 Implementation of TIP #585 - Promote the INDEX_TEMP_TABLE flag of Tcl_GetIndexFromObj*() to the public interface 2020-09-02 21:04:25 +00:00
dgp 9f309d56cc Tests string-12.2[45].* and fixes to INST_STRING_RANGE. 2020-09-02 20:50:43 +00:00
dgp 712f88bef7 Fix for test lindex-18.0 2020-09-02 20:22:15 +00:00
dgp ee7073e468 Test lindex-18.0 demonstrates same issue with INST_LIST_INDEX 2020-09-02 19:50:32 +00:00
dgp de2793025f Different fix where existing protection tools for nesting bytecode execution
calls are used.  This solution suggests there may be many more places needing
protection. Any routine that gets passed "interp" is a possibility.
2020-09-02 16:20:20 +00:00
jan.nijtmans ebff38e965 Merge 8.6 2020-09-02 13:05:12 +00:00
jan.nijtmans 4cdb0426f4 Fix windows debug build, broken by previous commit 2020-09-02 13:01:50 +00:00
jan.nijtmans d85664964a Merge 8.5
Mark io-46.1 and io-50.5 as "notOSX", since they sometimes fail in Travis
2020-09-02 12:51:01 +00:00
jan.nijtmans 264c84606b Upgrade Travis build from xcode 11.5 to 11.7 2020-09-02 11:46:35 +00:00
pooryorick 0ca087be13 Merge bug-c1a376375e0e6488 2020-09-02 09:30:15 +00:00
pooryorick 008cd7d2a9 Fix for [c1a376375e0e6488], imported namespace ensemble command name distorted
during deletion trace on the import
2020-09-01 22:36:41 +00:00
jan.nijtmans a9843e57c2 Merge 8.7 2020-09-01 10:51:52 +00:00
jan.nijtmans d995661712 Merge 8.6 2020-09-01 10:33:33 +00:00
jan.nijtmans 724de352e3 Many more internal master/slave -> parent/child renamings 2020-09-01 09:15:11 +00:00
jan.nijtmans 6b0b7154f1 Eliminate eol-spacing 2020-09-01 09:11:28 +00:00
jan.nijtmans d52b3eef80 Merge 8.6. More tests/tools updates. 2020-08-31 13:41:02 +00:00
jan.nijtmans 6c69cf8504 opt package: Change comment. 0.4.7 -> 0.4.8.
More Master -> Parent and Slave -> Child changes in (internal) library and test-cases
2020-08-31 13:12:01 +00:00
jan.nijtmans 9cb408090e Merge 8.6. More documentation updates 2020-08-31 12:42:36 +00:00
jan.nijtmans 0468c659f5 Merge 8.7 2020-08-31 09:37:17 +00:00
jan.nijtmans 30fd8c842c Implement TIP #581: Master/Slave 2020-08-31 09:23:59 +00:00
kjnash 4047fa1ba8 Merge safe-extra-tests-8-7. This removes tests/safe-stock86.test, replaces with tests appropriate for 8.7, including zipfs. 2020-08-30 22:38:13 +00:00
kjnash 517172cbc1 Merge 8.7 2020-08-30 22:25:04 +00:00
jan.nijtmans 0cb06ba3ca Merge 8.7 2020-08-30 21:31:49 +00:00
jan.nijtmans 3b621e98a7 Disable textcase safe-stock86-7.4, because http 1 is no longer present in the Tcl 8.7 distribution 2020-08-30 14:12:18 +00:00
jan.nijtmans 6ecf15e4f1 Merge 8.6 2020-08-29 22:03:41 +00:00
kjnash 213447740b Merge safe-bugfixes-8-6 2020-08-28 19:24:14 +00:00
kjnash 5bb0947953 Merge 8.6 2020-08-28 19:13:13 +00:00
kjnash 01b6b4918f Merge bug-c2dc1da315-for-8-6 2020-08-28 19:10:08 +00:00
kjnash db4a945f2e Merge http-bug-cb0373bb33-again-for-8-6 2020-08-28 18:54:34 +00:00
kjnash e3707dae62 Merge 8.6 2020-08-28 18:34:48 +00:00
kjnash 643301e722 Merge 8.6 2020-08-28 18:19:11 +00:00
sebres 30c146de54 merge 8.5 2020-08-28 15:02:25 +00:00
sebres be42098b82 tests/regexp.test: more tests for -indices by multi-byte utf-8 (considering -start position now) 2020-08-28 15:01:23 +00:00
sebres 6149b214e8 merge 8.5 2020-08-28 14:05:53 +00:00
sebres 4af0efa4cb tests/regexp.test: added missing test that cover indices if running on string containing multi-byte utf-8 chars (de/ru, byte offsets != char offsets) 2020-08-28 14:02:50 +00:00
jan.nijtmans 18dfd2c466 Missing testConstraint in socket.test 2020-08-28 10:03:46 +00:00
kjnash de01488d55 Merge 8.7 2020-08-28 01:47:35 +00:00
kjnash ab94b4c534 Merge safe-bugfixes-8-6 2020-08-28 01:31:43 +00:00
kjnash 953e3ea899 Update safe.test for new error message. 2020-08-28 01:03:23 +00:00
kjnash 3b1ca15e07 Provide error message if failed load does not. 2020-08-27 15:50:24 +00:00
kjnash c1d3ca8bae Merge 8.6 2020-08-27 15:15:55 +00:00
kjnash ffe530a1b2 Merge 8.6 2020-08-27 15:12:35 +00:00
kjnash df56e0e1df Merge 8.6 2020-08-26 19:43:56 +00:00
jan.nijtmans 532db685f4 Merge 8.7 2020-08-26 14:56:50 +00:00
jan.nijtmans 1f7a1beab2 Merge 8.6 2020-08-26 14:54:47 +00:00
jan.nijtmans 43d2fdc86c Testcase chan-io-50.1 still fails sometimes on MacOSX. So put same measures in place as in io-50.1. See: [f586089a2b] 2020-08-26 14:52:42 +00:00
kjnash 1d040a5bae Merge 8.6 2020-08-25 20:10:11 +00:00
jan.nijtmans 7cb8eb7218 Add test-case util-9.59, which demonstrates bug [b5777d3d32] 2020-08-25 16:09:04 +00:00
jan.nijtmans fcab027ea1 Merge 8.7 2020-08-25 10:50:49 +00:00
jan.nijtmans 7aa8eec897 Merge 8.6 2020-08-25 10:18:17 +00:00
jan.nijtmans 82df9bf8f8 Merge 8.5 2020-08-25 10:15:07 +00:00
jan.nijtmans 0d23451993 Keep gcc-5 and gcc-6 builds on "bionic", because "focal" doesn't have these 2020-08-25 09:42:37 +00:00
kjnash 171bea3624 Try another Travis build 2020-08-24 14:35:37 +00:00
kjnash 06a30a3a2a Fix for http bug c2dc1da315. Add tests. Add detail about -handler to http(n). Bump version to 2.9.5. 2020-08-24 14:28:22 +00:00
kjnash 120f367646 Create new branch named "bug-c2dc1da315-for-8-6" 2020-08-24 12:01:12 +00:00
jan.nijtmans 5f4ef0229d Backport improvemenets in .gitignore .fossil-settings/ignore-glob and win/nmakehlp.c 2020-08-24 10:19:49 +00:00
jan.nijtmans b2d5b24a70 Upgrade Travis build from bionic to focal 2020-08-24 07:57:04 +00:00
kjnash dc1ca56b6a Merge 8.6 2020-08-22 04:09:14 +00:00
kjnash d753cbc088 Merge 8.6 2020-08-22 04:04:05 +00:00
jan.nijtmans 749efa7f84 Merge-mark (for triggering another Travis build) 2020-08-21 14:22:37 +00:00
dgp 1971f6ab14 merge mark 2020-08-21 14:00:53 +00:00
dgp 591c90cd3e Suppress tests that fail starting with OSX Mojave. 2020-08-21 13:59:13 +00:00
jan.nijtmans f78ef1eea2 Fix [43b434812a]: Tcl 9.0 uses stat64() but not struct stat64 on Linux i686 2020-08-21 12:28:26 +00:00
jan.nijtmans 40b259956c Merge 8.6 2020-08-19 15:37:08 +00:00
jan.nijtmans 430924da25 Merge 8.7 2020-08-19 12:56:29 +00:00
jan.nijtmans 5dfe6151b2 Merge 8.6 2020-08-18 13:33:04 +00:00
culler 6560454489 And remove the other $ and do the test slightly differently. Inability to test locally is a challenge. 2020-08-17 16:28:28 +00:00
culler 270c9b99d6 Add the missing $. 2020-08-17 16:21:05 +00:00
culler e1968256d8 Try to make io-50.6 more robust on the Travis macOS VM 2020-08-17 15:53:04 +00:00
pooryorick a5455c136a Fix for [688fcc7082fa], memory error during deletion of imported routine. 2020-08-16 10:04:44 +00:00
jan.nijtmans 7aa1b00468 Merge 8.7 2020-08-13 14:24:31 +00:00
jan.nijtmans acfbbfa019 More usage of TclNewIntObj() macro 2020-08-13 14:20:54 +00:00
jan.nijtmans 3c1b7f78dc Backout uncomplete fix for [3422267ed6b79922]: segmentation fault from deleting the the target of an imported alias during a trace on the target of the alias.
Since it causes build failures.
2020-08-13 12:42:38 +00:00
jan.nijtmans c903f10ac6 Merge 8.6 2020-08-13 10:17:32 +00:00
jan.nijtmans 840355939d Testcase event-1.1 (still) fails occasionally on macOS 2020-08-13 07:21:34 +00:00
pooryorick 478d024dc3 merge bug-3422267ed6b79922 2020-08-12 13:35:00 +00:00
pooryorick 80c4d66b21 body of test case for [3422267ed6b79922]. 2020-08-12 13:31:16 +00:00
pooryorick 1d4f551278 Fix for [3422267ed6b7], segmentation fault with imported alias. 2020-08-12 13:28:08 +00:00
jan.nijtmans 91c115082e Merge 8.7 2020-08-12 10:37:05 +00:00
jan.nijtmans 167c883c08 Merge 8.6. Better solution for [e87000d842] 2020-08-12 10:30:14 +00:00
jan.nijtmans 52549ae747 Fix [e87000d8425ab86a]: crash for "fconfigure stdout" in Win32.
Even though the crash cannot happen in Tcl 8.6, the function Tcl_BadChannelOption() was to blame, so better fix that in 8.6 too.
2020-08-12 10:25:49 +00:00
kjnash cc21b0be2a Bugfixes to the earlier fix of bug cb0373bb33, which broke HTTP/1.0 transactions in which the server indicates neither a Content-Length nor that it will close the socket on completion ("Connection: close"). The HTTP/1.1 rule is that the response header "Connection", if absent, must default to "keep-alive"; but this rule does not apply to HTTP/1.0. Add test http11-3.4 and bump version to 2.9.4. 2020-08-12 09:20:56 +00:00
jan.nijtmans 330e4967ab Fix value of CMD_DEAD flag 2020-08-12 07:10:57 +00:00
jan.nijtmans e299458ad5 Merge 8.7 2020-08-12 07:04:44 +00:00
jan.nijtmans a6f978e38d Merge 8.6 2020-08-12 06:47:37 +00:00
jan.nijtmans 39db46fbe1 Merge 8.5 2020-08-12 06:38:22 +00:00
jan.nijtmans 998409ea9b Update .travis.yml: remove deprecated "sudo" and rename "matrix" to "jobs"
Fix travis build for Windows/Debug
2020-08-12 06:36:31 +00:00
kjnash dddf36c195 Create new branch named "http-bug-cb0373bb33-again-for-8-6" 2020-08-12 03:46:38 +00:00
kjnash 4b9763f5f7 Merge 8.6 2020-08-11 18:30:03 +00:00
kjnash b5e50e499a Merge 8.7 2020-08-11 18:26:26 +00:00
jan.nijtmans dfcc8ce6e5 Merge 8.7 2020-08-11 13:47:04 +00:00
jan.nijtmans b3f8c269fa Fix [e87000d842]: crash for "fconfigure stdout" in Win32 2020-08-11 13:31:52 +00:00
jan.nijtmans c07c2bb91c Revert unintended ckalloc -> Tcl_Alloc change from previous commit 2020-08-11 13:15:37 +00:00
jan.nijtmans ec626d9a15 Merge 8.6 2020-08-11 13:07:24 +00:00
jan.nijtmans 30710a3cbd Code cleanup: less of use "register" keyword, and better use of typecasts 2020-08-11 12:44:21 +00:00
jan.nijtmans 1ba4ad76b3 Merge 8.7 2020-08-11 06:40:52 +00:00
jan.nijtmans 1c5831fa43 Use TCL_UNUSED in new test function 2020-08-11 06:32:58 +00:00
jan.nijtmans 09fa076d29 Merge 8.6 2020-08-11 06:08:05 +00:00
jan.nijtmans d73c6dbd81 Eliminate many unnecessary type-casts, mostly (size_t) when value is already size_t or int 2020-08-11 05:39:08 +00:00
pooryorick 3e14eccec5 merge 8.6 2020-08-10 19:36:24 +00:00
pooryorick 36d06e1e0b Fix mistake in [7eed2baf73] 2020-08-10 19:33:18 +00:00
pooryorick e29e808f57 Fix for [29e8848eb976], imported alias in a deletion trace. 2020-08-10 18:05:10 +00:00
sebres 6c0be70d2b amend to [8054e19451]: clean up timeout timer event (avoid timing issues on further tests) 2020-08-10 16:54:46 +00:00
sebres 9d14ed87d0 merge point (no functional changes, 8.6 already has proper implementation of TclCreateSocketAddress) 2020-08-10 16:25:14 +00:00
sebres f397a9ac9d create server socket with AI_PASSIVE flag (used for bind) 2020-08-10 16:16:46 +00:00
sebres 3cd49200d7 windows: replace gethostbyname with getaddrinfo (gethostbyname can hang sporadically, closes [7cf7cce423]);
corresponding to MS (https://docs.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-gethostbyname):
Developers creating Windows Sockets 2 applications are urged to use the getaddrinfo function instead of gethostbyname
2020-08-10 16:16:36 +00:00
jan.nijtmans 9eb49d9393 Merge 8.6 2020-08-10 15:02:39 +00:00
jan.nijtmans fd3f2b486c Remove use of (always enabled) "openpipe" constraint.
Add "testservicemode" constraint.
Change a single "chan close" into a "close" in a test-case
2020-08-10 14:57:19 +00:00
culler 4f513496d8 Fix [f586089a2b]: removing the call to Tcl_ServiceAll from Tcl_WaitForEvent on macOS exposed race conditions in some io, chanio and event tests. 2020-08-10 12:49:19 +00:00
culler 823d13656d More places where vwait needs to be used instead of update. 2020-08-10 01:27:37 +00:00
culler 5ed72038da use vwait in chanio tests too. 2020-08-09 14:33:43 +00:00
culler 1cadacd498 One more vwait. 2020-08-08 21:37:18 +00:00
culler 4b765a3aff Add and use testservicemode command; replace update by vwait 2020-08-08 21:27:06 +00:00
culler bb9b5e7606 Fix the expected result for chanio-50.6 2020-08-07 13:15:31 +00:00
culler f460900f9f Experiment with io-50.1 on Travis 2020-08-07 13:12:21 +00:00
culler 9557127009 Experiment with chan-io-50.6 on Travis 2020-08-06 13:09:22 +00:00
jan.nijtmans 5c17e4a3f3 Rename (internal) cmdtype 'slave' to 'interp'. New in 8.7 (TIP #426) 2020-08-04 21:15:01 +00:00
jan.nijtmans 13e1ca04f2 Merge 8.6 2020-08-04 20:51:06 +00:00
jan.nijtmans a2db4b22d0 Merge 8.6 2020-08-03 22:45:03 +00:00
jan.nijtmans 35d0992797 doc fix 2020-08-03 22:42:50 +00:00
jan.nijtmans 0f06b1b667 Merge 8.6 2020-08-03 15:46:27 +00:00
jan.nijtmans d40f0fe1b3 Merge 8.6 2020-08-03 15:43:45 +00:00
jan.nijtmans b85dcaa1f8 Merge 8.6 2020-08-03 15:34:30 +00:00
jan.nijtmans ca51d20173 Testcase cleanup: transform *io-50.* testcases to new test syntax 2020-08-03 15:23:42 +00:00
kjnash b7a2d6b3d5 Merge 8.7 2020-07-30 11:42:40 +00:00
jan.nijtmans c1c4367262 Merge 8.6 2020-07-26 17:00:51 +00:00
jan.nijtmans 33c3374723 Merge 8.7 2020-07-26 16:52:06 +00:00
jan.nijtmans 6cc6771848 http 2.9.3 works for Tcl 8.6 too 2020-07-26 16:44:35 +00:00
jan.nijtmans 8b6ceae325 Merge 8.6 2020-07-26 16:42:15 +00:00
jan.nijtmans 493182df76 Fix [cb0373bb33]: The http::geturl -keepalive option does not work as described in the man page. 2020-07-26 16:21:36 +00:00
jan.nijtmans 34aa927a14 Merge 8.6 2020-07-25 16:13:03 +00:00
jan.nijtmans ea4722d786 Merge 8.6 2020-07-25 15:59:46 +00:00
jan.nijtmans e14cd07627 Fix [20dccf1200]: htons-related test fails on Mac OSX Catalina (10.15)
Also, let http-related tests check if really http 2.9 is present
2020-07-25 15:56:10 +00:00
kjnash 17c6c5b754 Merge safe-bugfixes-8-6 2020-07-25 02:41:35 +00:00
kjnash 7c4cabaaae Fix for bug cb0373bb33. In HTTP/1.1 the response header "Connection", if absent, must default to "keep-alive". Add test http11-1.13 and bump version to 2.9.3. 2020-07-24 20:32:20 +00:00
kjnash c92e694158 Create new branch named "bug-cb0373bb33-for-8-6" 2020-07-24 18:46:38 +00:00
kjnash baf9ec7e2d Fix for bug cb0373bb33. In HTTP/1.1 the response header "Connection", if absent, must default to "keep-alive". Add test http11-1.13 and bump http version to 2.9.3. 2020-07-24 18:43:28 +00:00
kjnash a352df54ff Create new branch named "bug-cb0373bb33" 2020-07-24 11:32:47 +00:00
culler 0d231a3919 Check if reverting from os_unfair_lock to OSSpinLock has any effect. 2020-07-23 13:32:03 +00:00
kjnash 0e59966ac5 Improvements to removal of stale package data - bugfix for 1f63efa537 and 319e438f7f 2020-07-23 13:26:02 +00:00
kjnash d98891b0a7 Merge 8.7 2020-07-23 10:36:09 +00:00
kjnash bb22d2e869 Merge safe-bugfixes-8-6 2020-07-23 00:58:31 +00:00
kjnash 9684712f82 Whitespace and comment changes only. 2020-07-22 19:26:32 +00:00
kjnash 7f6ef9991b Whitespace changes only. 2020-07-22 19:07:30 +00:00
jan.nijtmans 7fba80338f Convert test-cases to do proper setup/cleanup 2020-07-22 15:28:39 +00:00
kjnash 00ec998267 Merge safe-bugfixes-8-6 2020-07-21 22:33:27 +00:00
kjnash 720183a9af In ::safe::interpFindInAccessPath, ::safe::interpAddToAccessPath, add a check that the interpreter belongs to the Safe Base. Add comments on why this is not done for ::safe::interpDelete. 2020-07-21 17:34:03 +00:00
kjnash 14cfbc651c Adapt Safe Base for interpreter names with namespace separators. Add a test and revise safe(n). Fixes bug [693851]. 2020-07-21 17:25:03 +00:00
jan.nijtmans 55bf49d15f Re-enable event-1.1, io-50.? and chan-io-50.? test-cases, trying to get a hand at the problem [f586089a2b] 2020-07-21 13:22:08 +00:00
jan.nijtmans 5016da417f Merge 8.6 2020-07-21 13:00:27 +00:00
jan.nijtmans 05f25dff9f Merge 8.7 2020-07-21 12:30:32 +00:00
jan.nijtmans d9db5801cc Merge 8.6 2020-07-21 12:28:29 +00:00
jan.nijtmans f472165a3d Mark chan-io-50.? and event-1.1 as nonPortable (for now): Those sometimes fail in the Travis environment, but in practice this doesn't seem to be a real problem. 2020-07-21 12:26:05 +00:00
jan.nijtmans cab7f268d6 Merge 8.6 2020-07-21 08:19:59 +00:00
jan.nijtmans f9c196e0e6 Merge 8.7 2020-07-21 07:54:20 +00:00
kjnash 204434e4d4 Use suitable -errorcode in safe::AliasSource if file does not exist or is unreadable. Fixes bug f3ba57600d. 2020-07-21 03:59:35 +00:00
kjnash 42d0a72e21 Merge safe-bugfixes-8-6 2020-07-20 23:16:10 +00:00
kjnash 51449d078f File tests/safe.test - rearrange tests - move tests of command/package loading that use Tcl files to new file tests/safe-stock87.test; move tests of zipfs compatibility to new file tests/safe-zipfs.test; renumber tests 9.8+ and add test 9.8 to replace old 5.1; move tests 7.0* to 5.*; reverse merge error (duplicate code). 2020-07-20 22:57:42 +00:00
kjnash e6a9f22409 File tests/safe.test - rearrange tests - move tests of command/package loading that use Tcl files to new file tests/safe-stock86.test; renumber tests 9.8+ and add test 9.8 to replace old 5.1; move tests 7.0* to 5.*. 2020-07-20 22:32:28 +00:00
jan.nijtmans d08036b2e4 Merge 8.6 2020-07-20 14:58:02 +00:00
jan.nijtmans 99d517e3cb Use "Global" in stead of "Master" internally, where "Master" is not used in the Master-Slave paradigm and where this makes sense. 2020-07-20 14:25:11 +00:00
jan.nijtmans a03c2cb1c2 Merge 8.6 2020-07-20 09:02:03 +00:00
jan.nijtmans a2e8561972 Merge 8.6 2020-07-20 08:35:54 +00:00
jan.nijtmans bbe2ea1d0e Merge 8.5.
Mark testcases io-50.* nonPortable: they fail too often in travis builds.
2020-07-20 08:24:16 +00:00
jan.nijtmans a15ea81906 Backport changes in tcltest package from higher Tcl versions.
Rename (internal, undocumented) tcltest::loadIntoSlaveInterpreter into tcltest::loadIntoChildInterpreter
tcltest 2.5.1 -> 2.5.3
2020-07-20 07:33:42 +00:00
kjnash d91e1e6efb Merge 8.7 2020-07-18 21:12:17 +00:00
kjnash 2705cb22d6 Merge safe-bugfixes-8-6 2020-07-18 20:17:59 +00:00
kjnash f48f2735de Merge 8.6 2020-07-18 19:08:19 +00:00
kjnash a541a7be4c Remove an old fix for ~ expansion in safe::AliasGlob that is now fixed by other means 2020-07-18 18:51:53 +00:00
kjnash d12eb85c8f Simplify case analysis in safe::AliasGlob 2020-07-18 18:06:30 +00:00
kjnash 201d01f9da Add explanatory comments to safe::AliasGlob 2020-07-18 17:51:27 +00:00
culler fb48c78e68 Merge 8.6 2020-07-18 16:26:14 +00:00
culler 4bca76be3b macOS: Remove Tcl_ServiceAll from Tcl_WaitForEvent and use os_unfair_lock if it is available. 2020-07-18 16:02:55 +00:00
kjnash 6310c709d3 Update comments about safe interpreters in library/tm.tcl and library/package.tcl so they agree with code 2020-07-18 13:22:31 +00:00
kjnash 690f2c2839 Bugfix argument combination -- and -directory in ::safe::AliasGlob. 2020-07-18 13:18:48 +00:00
kjnash a300508fee Remove unused code for *.tm from ::safe::AliasGlob. 2020-07-18 13:09:25 +00:00
kjnash 2a52ff28dd Remove code block in ::safe::AliasGlob that no longer serves a useful purpose. 2020-07-18 12:53:53 +00:00
kjnash 651f71edfd Tidying tests/safe.test 2020-07-18 04:12:08 +00:00
jan.nijtmans 8ca73e50ab Merge 8.6 2020-07-17 11:13:33 +00:00
jan.nijtmans 56e784cb1b Doc/internal variable tweaks 2020-07-17 11:11:47 +00:00
jan.nijtmans 9598926f42 New TIP #581 implementation 2020-07-17 10:42:29 +00:00
jan.nijtmans b4012447b0 Rename (internal) TclSetSlaveCancelFlags() to TclSetChildCancelFlags(). Follow-up for [e5ea53f27a391285]. 2020-07-17 07:37:30 +00:00
kjnash 85bdb7cb8e Fix error in merging safe.test with safe-bugfixes-8-6 commit d065e8c73d 2020-07-16 17:29:04 +00:00
kjnash a352c6e663 Merge 8.7 2020-07-16 16:45:06 +00:00
kjnash 711c236648 Merge 8.6 2020-07-16 16:32:06 +00:00
kjnash 7d6a2292b5 Amend tests safe-7.[124]z so they look for packages in the mounted zipfile 2020-07-16 15:55:19 +00:00
kjnash 18560d970e Bugfix tests/safe.test (as in safe-bugfixes-8-6). Harden tests safe-9.20z to safe-9.24z against indeterminate order of glob matches. Audit use of glob and tcl::tm in modified tests for cases with multiple matches. Simplify test comparison patterns. 2020-07-16 15:47:39 +00:00
sebres 3cb9dde39e merge 8.5 2020-07-16 15:36:08 +00:00
sebres 565b9dca95 cherry pick [df5f1e8652]: Fix [5bbd044812]: Fix index underflow. 2020-07-16 15:34:57 +00:00
jan.nijtmans a2560488bf Merge 8.6 2020-07-16 13:44:42 +00:00
jan.nijtmans 8bd505ac83 Fix [5bbd044812]: Fix index underflow. 2020-07-16 13:42:57 +00:00
kjnash d44da35f2c Remove diagnostic spaces 2020-07-16 12:17:59 +00:00
kjnash 4c85e21797 Merge safe-bugfixes-8-6 2020-07-16 12:16:01 +00:00
kjnash a757f1e30d Merge 8.7 2020-07-16 11:02:38 +00:00
jan.nijtmans dc175e403d More of the same (see previous commit) 2020-07-16 10:48:36 +00:00
jan.nijtmans 15c92b9300 simplify check for ::tcltest namespace in testcases 2020-07-16 10:42:26 +00:00
jan.nijtmans 03daf47cf0 Purge end-of-line spacing in tools/encoding directory 2020-07-16 10:41:23 +00:00
kjnash 634e9464b5 Merge 8.6 2020-07-16 10:26:31 +00:00
jan.nijtmans 409c164695 Merge 8.6 2020-07-16 08:35:24 +00:00
kjnash 79214905a2 Bugfix tests/safe.test. Harden tests safe-9.20 to safe-9.24 against indeterminate order of glob matches. Audit use of glob and tcl::tm in modified tests for cases with multiple matches. Simplify test comparison patterns. 2020-07-15 23:11:46 +00:00
sebres 439f72dad5 closes [3c6e47363e]: missing de-duplication mechanism for nested TEBC starting from scratch (e. g. nested compiled blocks enclosed in parent cycle), so reset interp's result to avoid possible duplications of large objects by first commands like lappend, append, etc 2020-07-15 20:06:07 +00:00
jan.nijtmans a13bb8b0ca Merge 8.7 2020-07-15 18:59:14 +00:00
jan.nijtmans 5a82fc544e Change (internal) function ::auto_mkindex_parser::slavehook to ::auto_mkindex_parser::childhook. Some people care .... 2020-07-15 18:56:46 +00:00
kjnash 69fdd85b74 Bugfix in library/safe.tcl - AliasGlob passes -join to glob inappropriately; pass new test safe-13.7a 2020-07-15 17:03:47 +00:00
kjnash c14dbae8ad Bugfix in library/safe.tcl - when deleting a safe interpreter, delete its sub-interpreters cleanly; pass revised test safe-7.3 2020-07-15 13:22:54 +00:00
jan.nijtmans a812785399 Merge 8.7 2020-07-15 09:10:37 +00:00
jan.nijtmans 2ad2cfc658 Merge 8.6 2020-07-15 09:08:42 +00:00
jan.nijtmans 1e3b6b37d1 Rename doc/CrtSlave.3 to doc/CrtAlias.3. Some more doc tweaks. 2020-07-15 09:07:00 +00:00
kjnash e152f1757c Merge safe-extra-tests-8-7 2020-07-14 15:56:18 +00:00
kjnash 5e45a1d39a Remove diagnostic puts 2020-07-14 15:45:31 +00:00
kjnash be285dcca7 Merge 8.7 2020-07-14 15:27:44 +00:00
kjnash 4e07591402 Merge safe-bugfixes-8-6 2020-07-14 15:13:28 +00:00
kjnash ea2a934216 Merge 8.6 2020-07-14 14:57:07 +00:00
jan.nijtmans 02b1b013df Merge 8.6 2020-07-14 10:25:52 +00:00
jan.nijtmans 326725ae5d Merge 8.7 2020-07-14 10:21:21 +00:00
jan.nijtmans dfb89e6d09 Merge 8.6 2020-07-14 10:19:08 +00:00
jan.nijtmans 2ef9dcb65f (cherry-pick): Bugfix in library/tm.tcl - in a safe interp ::tcl::tm::UnknownHandler should always use the freshest "package ifneeded" 2020-07-14 10:16:05 +00:00
kjnash fc071d71a5 Merge safe-extra-tests-8-7 2020-07-13 18:23:55 +00:00
kjnash 7e2905fd74 safe.test - add zipfile and tests of loading files from zipfs 2020-07-13 18:14:33 +00:00
kjnash 7141714e0b safe.test - use opt instead of http for tests with stock packages; tests work whether and how opt is installed; add tests 9.10opt, 9.12opt 2020-07-13 17:36:16 +00:00
kjnash 4c9b6b2c4b Create new branch named "safe-extra-tests-8-7" 2020-07-13 15:15:56 +00:00
kjnash e7adb3dadd Merge 8.6 2020-07-13 15:14:01 +00:00
kjnash a26b107bd3 Merge safe-bugfixes-8-6 2020-07-13 15:04:34 +00:00
kjnash 26cf086c2c Comments only. 2020-07-13 14:57:44 +00:00
kjnash 7169e0abe0 Add tests to tests/safe.test 2020-07-13 14:55:28 +00:00
kjnash 250532912f Merge 8.6 2020-07-13 13:49:43 +00:00
kjnash 6d32ec4c20 Merge safe-bugfixes-8-6 2020-07-13 13:30:11 +00:00
kjnash 4c326aa381 Bugfix in library/safe.tcl - when auto_reset, also reload module data; pass test safe-9.24 2020-07-13 12:52:53 +00:00
kjnash 12ba446acb Bugfix in library/tm.tcl - in a safe interp ::tcl::tm::UnknownHandler should always use the freshest "package ifneeded"; pass test safe-9.23 2020-07-13 12:37:16 +00:00
kjnash f0a97b5c71 Bugfix in library/safe.tcl - interpConfigure use revised value of tcl::tm::list; pass tests safe-9.21, safe-9.22 2020-07-13 12:32:08 +00:00
kjnash cca23e5286 Bugfix in library/safe.tcl - only add tm roots to tcl::tm::list; pass test safe-9.20 2020-07-13 12:25:10 +00:00
kjnash af4b36c13d Bugfix in library/safe.tcl - remove impossible error message in safe::interpFindInAccessPath; pass test safe-9.12 2020-07-13 12:13:07 +00:00
kjnash 9c9af976ae Bugfix in library/safe.tcl - when auto_reset, also reload pkgIndex.tcl data; pass tests safe-9.10, safe-9.11 2020-07-13 12:09:47 +00:00
kjnash c256107a5c Bugfix in library/safe.tcl for doreset (auto_reset); pass test safe-9.9 2020-07-13 11:49:46 +00:00
kjnash 2c1750c78f Add new tests to tests/safe.test. 2020-07-13 11:43:52 +00:00
kjnash 0d59960edf Add example files for use in tests/safe.test; add tests of the files themselves. 2020-07-13 11:22:37 +00:00
kjnash 7f5a85dcea Create new branch named "safe-bugfixes-8-6" 2020-07-13 10:39:22 +00:00
jan.nijtmans 57dc3221c2 Merge 8.6 2020-07-11 19:56:07 +00:00
jan.nijtmans 507043f8d2 Fix [8ef3897561]: Typo in [dict append] man page 2020-07-11 19:40:08 +00:00
jan.nijtmans b8bffd00e3 Merge 8.6 2020-07-11 16:06:44 +00:00
jan.nijtmans 2ead563282 Fix 4 test-cases, which fail when running from the western hemisphere 2020-07-11 16:01:28 +00:00
jan.nijtmans f5fb87d341 Merge 8.6 2020-07-10 10:39:06 +00:00
jan.nijtmans ae39d915c8 Fix test-cases clock-34.65 and clock-34.66, they seem to be affected by summertime 2020-07-10 10:32:00 +00:00
jan.nijtmans f556243f24 Fix [5019748c73]: FreeScan resp. Oldscan does not recognize positive time zone offset 2020-07-10 10:03:53 +00:00
jan.nijtmans a25f4ac082 Fix utf-1.13 testcase for TCL_UTF_MAX>3 2020-07-10 08:52:13 +00:00
jan.nijtmans 9fca62d042 Merge 8.6. Fix documentation for \Uhhhhhhhh escape sequences > U+FFFF, which are no longer "reserved for the future": It's already working in 8.7. 2020-07-10 08:32:16 +00:00
jan.nijtmans 0fab7463a3 Addendum to [60fab362ce]: "Also don't allow surrogates in \U??????". This change was only meant for builds with TCL_UTF_MAX > 3. 2020-07-10 07:26:55 +00:00
jan.nijtmans 1994f539c3 Merge 8.7 2020-07-09 08:11:03 +00:00
jan.nijtmans 5079cec18e Merge 8.6 2020-07-09 08:10:18 +00:00
jan.nijtmans f77d355196 Proposed fix for [5019748c73]: FreeScan resp. Oldscan does not recognize positive time zone offset like "31 Jan 14 23:59:59 +0100" 2020-07-09 07:57:32 +00:00
jan.nijtmans 1dfea026b8 Fix [a1bd37b719]: clock (free)scan of ISO 8601 timestamp with literal T behaves strange 2020-07-09 07:21:10 +00:00
jan.nijtmans fd9cd061d5 Merge 8.6 2020-07-08 14:42:25 +00:00
jan.nijtmans 80b6a1a464 Merge 8.7 2020-07-07 14:38:46 +00:00
jan.nijtmans 4424192e29 Merge 8.6 2020-07-07 14:37:10 +00:00
jan.nijtmans 131eb6c30b Make sure that in tclConfig.sh for Windows ${DBGX} is expanded before exporting TCL_(SHARED|UNSHARED|EXPORT)_LIB_SUFFIX there. Otherwise extensions removing ${DBGX} from their implementation (see TIP #578) will break on Windows.
tclConfig.sh should never contain the macro ${DBGX} any more. (On UNIX this was already correct, on Windows it was forgotten)
2020-07-07 12:52:24 +00:00
andy 326bd29be7 Clarify index order 2020-07-06 00:22:26 +00:00
jan.nijtmans 418d81804c Merge 8.7 2020-07-03 10:21:14 +00:00
jan.nijtmans 20c87d8e23 TIP #578 implementation: Death to TCL_DBGX 2020-07-03 10:08:52 +00:00
jan.nijtmans d4e9b75789 Merge 8.6 2020-07-03 08:50:36 +00:00
jan.nijtmans 870670e4d4 In tcl_startOfPreviousWord, don't bother doing a regexp when $start <= 0. 2020-07-03 08:39:53 +00:00
sebres 932835c1eb doc/clock.n: clearer form explaininng format groups on output 2020-06-30 11:59:48 +00:00
jan.nijtmans cd166c904c Merge 8.7 2020-06-29 13:18:56 +00:00
jan.nijtmans 7311081584 Merge 8.6 2020-06-29 13:16:13 +00:00
jan.nijtmans 22d9a275de A few missing entries in .fossil-settings/ignore-glob and .gitignore 2020-06-29 12:41:08 +00:00
jan.nijtmans 9c113f21c0 Merge 8.7 2020-06-29 10:38:54 +00:00
jan.nijtmans f5a587a8d6 Merge 8.6: Re-generate unix/tclConfig.h.in 2020-06-29 10:26:04 +00:00
jan.nijtmans 1aeadf38fa Re-generate unix/tclConfig.h.in 2020-06-29 10:21:58 +00:00
jan.nijtmans 498a9bf1f9 Merge 8.7 2020-06-28 15:20:14 +00:00
jan.nijtmans 928ceff7c4 Merge 8.6 2020-06-28 15:15:28 +00:00
jan.nijtmans 2c7d6403e8 MacOSX: add some type-casts, improving C++ compatibility. Make sure that strstr and strtoul() are not configured as invalid: Mac is more strict in exact function signatures. Backported from 8.7 2020-06-28 15:13:31 +00:00
jan.nijtmans 06f1954e8d Merge make-dist branch: Now travis checks regressions in "make dist" too 2020-06-28 14:44:57 +00:00
jan.nijtmans e758e34934 Add "make dist" target to Travis build, as regression test. This should continue to work. 2020-06-26 13:29:41 +00:00
jan.nijtmans 2232bed6d6 Merge 8.7 2020-06-25 13:02:52 +00:00
jan.nijtmans 65ac602b3d Merge 8.6 2020-06-25 13:01:59 +00:00
jan.nijtmans 538b919b18 Merge 8.5 2020-06-25 12:58:00 +00:00
jan.nijtmans 97d82cb4b1 Clean-up compat functions, not using "register" any more, and fix some signatures (constify) matching nowadays standards. All backported from core-8-branch with modifications. 2020-06-25 12:11:56 +00:00
jan.nijtmans 2cede8bf26 Merge 8.7 2020-06-25 11:31:05 +00:00
jan.nijtmans 33781b4f56 Merge 8.6 2020-06-25 11:26:40 +00:00
jan.nijtmans 53a1c724ce Merge 8.5 2020-06-25 07:38:27 +00:00
sebres a4d1a762c2 merge 8.7 2020-06-24 16:23:53 +00:00
jan.nijtmans 56d2c7e23c One include too much 2020-06-24 14:56:12 +00:00
sebres dbab2685a1 amend to 8.6th zlib-fix resolving warnings in 8.7 (int vs size_t, void * vs char *, etc) 2020-06-24 14:53:08 +00:00
sebres 04f23379c6 merge 8.6 2020-06-24 14:48:22 +00:00
jan.nijtmans efc338be24 re-generate unix/configure 2020-06-24 14:40:17 +00:00
jan.nijtmans 034bd13a3c Fix [9080d6a871]: Build fix for tcl on macOS on Apple Silicon 2020-06-24 13:05:47 +00:00
jan.nijtmans ea3e48843d Add "manifest.uuid" to the distribution, so we can see exactly where "make dist" came from. In case of "git", we can see that too 2020-06-24 12:24:28 +00:00
sebres 3f90f816f8 merge zlib-chan-f70ce1fead, [f70ce1fead] - rewritten and optimized inflate:
default read ahead limit set to 4K (instead of 1); better SF/BO prevention;
code simplification, no interim copy/move buffers, no decompression d-string, the inflate occurring in single step (ResultDecompress combines ResultGenerate and ResultCopy); 
better handling in non-blocking mode (also recognizes or distinguish no data/EAGAIN cases).
2020-06-24 09:02:01 +00:00
sebres 094567e57a zlib.test: replaces tests/assets/zlib.bin with inlined version (creating test file on demand), use temp files (instead of current directory) for interim files 2020-06-23 20:40:49 +00:00
kjnash 97499f5ed8 Fix for ticket 41c9857bdd 2020-06-23 18:10:33 +00:00
jan.nijtmans e3bd336bae Merge 8.6 2020-06-23 09:43:18 +00:00
jan.nijtmans ca6983f6f2 Merge 8.7 2020-06-23 09:38:50 +00:00
jan.nijtmans 9deb7bb1f7 Merge 8.6 2020-06-23 09:33:19 +00:00
jan.nijtmans dd90522511 avoid %pure-parser deprecation warning from Bison 3.4 2020-06-23 09:28:59 +00:00
jan.nijtmans 75376fc361 re-generate with bison 3.1 2020-06-23 07:13:15 +00:00
jan.nijtmans 6ed8324a38 Merge 8.6. re-generate tclParse.c 2020-06-23 06:48:22 +00:00
aku dbc3e640a2 Added two tests demonstrating that the tickets [8af92dfb66] (bad stream expansion) and [f70ce1fead] (multi-stream decoding without readahead limit shenanigans) are fixed.
Verified that the tests fail with commit [4eb66645d6], just before the zlib fixes.

Tweaked the zlib manpage paragraphs about -limit.
Tweaked some code comments.
Fixed typos in description of two unrelated zlib tests.
2020-06-23 06:37:59 +00:00
jan.nijtmans 9f7678907a Merge-mark 2020-06-23 06:36:50 +00:00
jan.nijtmans a69b65b5a5 Backport some changes in tclGetDate.y from 8.7. 2020-06-23 06:35:09 +00:00
jan.nijtmans 1acb4994ab Merge 8.7 2020-06-23 06:19:08 +00:00
jan.nijtmans 468aa8f8f0 Backport some recent changes in tclDate.c back to tclGetDate.y, so they are not lost when re-generating 2020-06-23 06:16:13 +00:00
culler a0457efe80 Use the os_unfair_lock in place of OSSpinLock when the minimum build target is newer than OSX 10.12 2020-06-22 16:12:00 +00:00
jan.nijtmans b63a473177 Merge 8.7 2020-06-22 12:49:30 +00:00
jan.nijtmans 12c42f98ca Merge 8.6 2020-06-22 12:48:44 +00:00
jan.nijtmans fbeaf61e53 Merge 8.5 2020-06-22 12:47:42 +00:00
jan.nijtmans 710aa41716 Remove .fossil-settings/crnl-glob, as it is not used in fossil any more.
Don't declare .sln files both as binary and as CRLF in git.
2020-06-22 12:46:31 +00:00
jan.nijtmans 0076acc80a Merge 8.7 2020-06-22 12:27:11 +00:00
jan.nijtmans e99f910b0e Merge 8.6 2020-06-22 12:26:00 +00:00
jan.nijtmans c38c4c07b2 Change all *.sln to CRLF format, so they are directly usable in Visual Studio projects 2020-06-22 12:24:22 +00:00
jan.nijtmans e599140047 Merge 8.7 2020-06-22 12:00:01 +00:00
jan.nijtmans dd000ce1a3 Merge 8.6 2020-06-22 11:58:45 +00:00
jan.nijtmans cb1ff2a4d7 library/reg/pkgIndex.tcl should not be executable 2020-06-22 11:57:32 +00:00
jan.nijtmans 55e051771c Merge 8.5 2020-06-22 11:56:47 +00:00
jan.nijtmans 0568c4a531 Make sure that files like _FOSSIL_ or .flsckout are never committed to a GIT repository 2020-06-22 11:54:26 +00:00
jan.nijtmans 730530baba Merge 8.7 2020-06-22 10:24:09 +00:00
jan.nijtmans 0bf471f204 Code simplification in msgcat::mcutil::getpreferences 2020-06-22 08:25:14 +00:00
jan.nijtmans 6cabd70c0d Rewrite msgcat::mcutil::getpreferences, not depending on 'string last' returning -1 any more 2020-06-21 17:03:54 +00:00
jan.nijtmans 7231e548e3 Merge 8.7 2020-06-21 15:57:01 +00:00
jan.nijtmans 5bbb147862 Fix for [b179286248]: tclZipfs.c Build Error on CentOS 6 2020-06-21 15:53:25 +00:00
jan.nijtmans e27302a170 Merge 8.6 2020-06-21 15:51:13 +00:00
jan.nijtmans 5f27d2b0e9 Clearify documentation regarding [a7c1c2c7e5] 2020-06-21 15:42:18 +00:00
kjnash 02dc502566 Merge bug-f81beca7af 2020-06-21 14:50:31 +00:00
kjnash 972914223a Merge bug-f81beca7af 2020-06-19 17:44:07 +00:00
kjnash 448bf94c32 Bump http version to 2.9.2 2020-06-19 14:40:58 +00:00
kjnash 4b7534f6ab Merge 8.6 2020-06-19 12:37:17 +00:00
jan.nijtmans 7ee73a90ca merge-mark 2020-06-19 10:29:07 +00:00
jan.nijtmans 0a8c9a817e sync zlib's crypt.h with version in Tcl 8.7 2020-06-19 10:27:45 +00:00
jan.nijtmans f15ef338b9 Suggested fix for [b179286248]: tclZipfs.c Build Error on CentOS 6 2020-06-19 09:48:44 +00:00
jan.nijtmans 1c6ca85d98 Make tclStringClassTable a little bit smaller, and save a pointer access when accessing the name of an entry. 2020-06-19 09:34:46 +00:00
andy 97399b2494 Correct man page per [ad8df845fef2c76d95b9f1aaa4815f3b23d4c472] 2020-06-19 06:06:07 +00:00
culler 476d33d6b6 Sometimes the waitTime needs to be positive to avoid missing channel io events. 2020-06-18 20:02:01 +00:00
jan.nijtmans 4dc8aea827 Merge 8.7 2020-06-16 12:43:01 +00:00
jan.nijtmans 298726d3b8 Make Tcl_GetIntForIndex() do reasonable things when endValue < -1 and when indexPtr == NULL. 2020-06-16 12:24:25 +00:00
jan.nijtmans c1d51931d9 Added DEPRECATED comment in tclConfig.sh.in (both UNIX and win32) 2020-06-15 14:14:08 +00:00
jan.nijtmans c024f79ece Merge 8.7 2020-06-15 12:43:17 +00:00
jan.nijtmans 5b449103dc Merge 8.7 2020-06-12 14:56:17 +00:00
jan.nijtmans 1de8df2918 Merge 8.6 2020-06-12 14:49:03 +00:00
jan.nijtmans 9e628cd450 rules.vc: No need to redefine values which are already the default. tclWinPort.h: Fix comment 2020-06-12 14:44:05 +00:00
jan.nijtmans b3e1525f8a Merge 8.7 2020-06-12 14:15:55 +00:00
jan.nijtmans 9e196fa34a Merge 8.6 2020-06-12 14:11:32 +00:00
jan.nijtmans 71e331a3d7 rules.vc: No need to redefine values which are already the default.
tclWinPort.h: Fix comment
2020-06-12 12:56:34 +00:00
jan.nijtmans 258e0ce323 Not really a problem, since SHLIB_CFLAGS is empty on win32 .... still this is wrong... 2020-06-11 14:34:21 +00:00
jan.nijtmans 84e4abc973 Merge 8.7 2020-06-10 09:40:32 +00:00
jan.nijtmans f2b9098a94 Still ... need to disable C4305 on Win32 (32-bit only) 2020-06-08 20:02:28 +00:00
jan.nijtmans a5bc6e1045 Add "-fno-common" to SHARED_CFLAGS on various platforms (e.g. Linux, CYGWIN). This is the default with gcc-10, so better make sure it doesn't cause problems 2020-06-08 09:30:03 +00:00
jan.nijtmans 4a54b3c89a Merge-mark 8.5 (TZ update already done here)
Don't try to compile with MINGW32_ in /unix directory. 
Minor comment fix.
2020-06-08 07:47:39 +00:00
culler b345d9a593 Code simplification and cleanup 2020-06-07 22:15:28 +00:00
jan.nijtmans 630bd308da Merge 8.7. This makes disabling Microsoft warning C4307 no longer necessary: It appears this warning was good for something after all. 2020-06-07 19:35:25 +00:00
jan.nijtmans 495791db7a If "endValue" doesn't matter in TclGetIntForIndexM() call, use INT_MAX - 1, not 0 or -1. This results in skipping the Tcl_GetIntFromObj() call for all non-negative integerss 2020-06-07 19:11:27 +00:00
culler ad53d45452 Address macOS hangs in Tcl_WaitForEvent. 2020-06-06 21:23:50 +00:00
jan.nijtmans 9ee975c8c8 (cherry-pick): Update TZ info to tzdata2020a. 2020-06-06 21:22:18 +00:00
jan.nijtmans fb50a7f7b5 Fix Travis build for Windows in debug mode. 2020-06-06 21:19:17 +00:00
José Ignacio Marín 4c7dc5ff2d Update TZ info to tzdata2020a. 2020-06-06 08:02:04 +00:00
José Ignacio Marín c41c767bff Update TZ info to tzdata2020a. 2020-06-06 08:01:20 +00:00
José Ignacio Marín 6b9a02967b Update TZ info to tzdata2020a. 2020-06-06 07:52:49 +00:00
jan.nijtmans 5680e6571d Merge 8.7. Change TclListObjRange() signature, using size_t for index arguments (even though lists itself cannot be larger than INT_MAX elements, but indices still might be larger than that. We don't want modulo behavior here). 2020-06-05 11:34:49 +00:00
jan.nijtmans 63d413a031 Improve "end-offset" type such that it can not only handle "end+/-int" format, but "int+/-int" as well. Both of those 2 forms can now be cached in the Tcl_Obj's intrep. 2020-06-05 11:27:18 +00:00
jan.nijtmans efa3f20107 Merge 8.7. Use more TCL_INDEX_NONE in documentation/headers/code. 2020-06-04 15:15:17 +00:00
jan.nijtmans ee793dfa1e Merge 8.6 2020-06-04 14:38:54 +00:00
sebres 1d722dd564 merge 8.5 2020-06-02 17:05:50 +00:00
sebres f507368556 avoid segfault if Tcl_FreeParse, if parse structure remains uninitialized (parse.tokenPtr may be used uninitialized, for instance it returns from Tcl_ParseCommand etc with error before TclParseInit gets called) 2020-06-02 17:01:52 +00:00
jan.nijtmans 654d14d706 Merge 8.7 2020-05-31 20:29:48 +00:00
jan.nijtmans e1737976f9 Make tclTomMath.h usable without tommath.h by defining TCL_NO_TOMMATH_H 2020-05-31 20:24:18 +00:00
jan.nijtmans 083fb81946 Merge 8.7 2020-05-31 16:38:25 +00:00
griffin f857db0e8e tip-551 implementation. 2020-05-31 00:37:01 +00:00
griffin ea25a2d32d tip-551 implementation. 2020-05-30 23:47:10 +00:00
sebres 6e8b20f551 no functional changes (closed bracket in comment, lint concerns only) 2020-05-29 19:02:24 +00:00
jan.nijtmans 0b3e25d9ac Merge 8.7 2020-05-29 14:54:17 +00:00
jan.nijtmans 0f48821995 Merge 8.7 2020-05-28 09:49:10 +00:00
jan.nijtmans b44555477c In cookiejar, don't depend on "lrange $pieces 0 -1" doing anything useful. 2020-05-28 09:38:51 +00:00
jan.nijtmans 2956fdc0e0 clock-iso-2.patch 2020-05-27 21:11:36 +00:00
jan.nijtmans c1b87fe734 Merge 8.7 2020-05-27 15:25:19 +00:00
jan.nijtmans dc1e5ec547 Proposed soution for [a1bd37b719]: clock (free)scan of ISO 8601 timestamp with literal T behaves strange
(I like it!)
2020-05-27 13:58:09 +00:00
jan.nijtmans 4dd5bcda82 Escape the backslash in documentation 2020-05-27 13:21:07 +00:00
jan.nijtmans b8e14e3802 Merge 8.7 2020-05-27 06:35:35 +00:00
jan.nijtmans 41a031557e Fix documentation for tcl_wordchars/tcl_nonwordchars matching the implementation. See: [f1253530cdd8]. 2020-05-27 06:31:00 +00:00
jan.nijtmans ec76fbd070 Merge 8.7 2020-05-26 22:42:19 +00:00
jan.nijtmans f7024e99c9 Merge 8.6. Add MacOS build using Clang++ 2020-05-26 22:21:18 +00:00
jan.nijtmans df11804946 Merge 8.5 2020-05-26 21:49:33 +00:00
jan.nijtmans c856a8931e Merge 8.7 2020-05-25 09:46:54 +00:00
jan.nijtmans 53e89dcb06 Fix compiled "string is <class>" for characters > U+FFFF. Add testcase exposing this bug. 2020-05-25 09:32:13 +00:00
jan.nijtmans d3eb8cf5e3 Fix compiled "string is <class>" for TCL_UTF_MAX=4 build, for characters > U+FFFF. 2020-05-25 09:02:15 +00:00
jan.nijtmans f41dac7480 Merge 8.7 2020-05-24 22:34:15 +00:00
griffin 6d2fb7b84d Update for TIP-551:
Add documentation for this feature to the expr man page.  The keyword
"integer value" has been added to the string and expr man page.

Added TCL_PARSE_NO_UNDERSCORE flag so that the digit separator can be
disabled when need when calling TclParseNumber.

Disabled digit separator in the "scan" command when scanning integers
and floating-point numbers.  This is the one place where existing code
may rely on number parsing to stop at an underscore.

Disallow underscore between the leading 0 and the radix specifiers
'x', 'o', 'b', and 'd'.

Added tests for disallowed underscore use and scan with underscores
between digits in the source string.
2020-05-23 03:32:30 +00:00
jan.nijtmans 434dbf154d Update from Xcode 11.4 to 11.5: Latest one should continue to work always. 2020-05-20 19:17:41 +00:00
jan.nijtmans c54b77dd74 Merge 8.7 2020-05-20 19:12:25 +00:00
jan.nijtmans 6de32c896a Adapt some comments, which are not correct for Tcl 8.7 any more 2020-05-20 19:09:25 +00:00
jan.nijtmans 4f097ce365 Possible simple solution for [4663e0636]: If TCL_NO_TOMMATH_H is defined, tclTomMath.h provides its own usable mp_int type (and some more) without the need for <tommath.h> 2020-05-19 15:42:53 +00:00
jan.nijtmans a45eed2a6c Merge-mark 2020-05-18 20:25:37 +00:00
jan.nijtmans e54cad6de1 Tiny fix for TCL_UTF_MAX=4 build only: Since Tcl_UtfNext() verifies 4 bytes for lead bytes F0-F5, Tcl_UtfCharComplete() should guarantee that those 4 bytes are available, not 3. 2020-05-18 20:23:30 +00:00
jan.nijtmans 3715125afc Merge 8.7 2020-05-18 12:48:11 +00:00
jan.nijtmans 61d8bcc4f6 If Tcl is built with external libtommath (TCL_WITH_EXTERNAL_TOMMATH is defined), do the tests with the external libtommath too.
Also, don't try to include <tommath.h> if BN_H_ is already defined.
2020-05-18 12:47:18 +00:00
jan.nijtmans 549548bacf Merge 8.7 2020-05-14 10:27:26 +00:00
jan.nijtmans 4f9fc86e5d Merge 8.6 2020-05-14 10:16:48 +00:00
jan.nijtmans 04cc75b6f5 In some places, Tcl_UtfPrev()/Tcl_UtfNext() is used traversing the individual bytes of a string searching for '(', ')', '::' or other single bytes. It is overkill to use Tcl_UtfPrev/Tcl_UtfNext for that, since those characters can only appear as their ASCII byte, not as any other sequence.
This effectively removes the last Tcl_UtfNext() call from the core, the only ones left are in tclTest.c for test commands. So the TclUtfNext() macro doesn't make sense any more.
Remove "register" keyword from many files.
2020-05-14 09:46:54 +00:00
jan.nijtmans 7d5a69fb31 Merge 8.7 2020-05-13 20:12:17 +00:00
jan.nijtmans 5efc8e4cfb Sync testcases with 8.6 2020-05-13 19:57:51 +00:00
jan.nijtmans 320e9f1a3c Merge-mark 2020-05-13 17:24:52 +00:00
jan.nijtmans dc5feac77a Testcase cleanup: Sync with testcases in core-8-6-branch 2020-05-13 17:23:33 +00:00
jan.nijtmans bfc534cb26 Merge 8.6 2020-05-13 16:56:17 +00:00
jan.nijtmans 20098349b6 Fix [ed29806baf]: Tcl_UtfToUniChar reads more than TCL_UTF_MAX bytes 2020-05-13 16:51:16 +00:00
jan.nijtmans 683756c1bd In some places, Tcl_UtfPrev()/Tcl_UtfNext() is used traversing the individual bytes of a string searching for '(', ')', '::' or other single bytes. It is overkill to use Tcl_UtfPrev/Tcl_UtfNext for that, since those characters can only appear as their ASCII byte, not as any other sequence. 2020-05-13 15:23:08 +00:00
sebres 137310bc48 merge 8.5 2020-05-13 11:13:18 +00:00
sebres be515de988 clock.test: more tests for negative month offsets over threshold of a year (important for C-implementation like clock-speedup branch, see https://github.com/sebres/tclclockmod/issues/20#issuecomment-627704993) 2020-05-13 11:10:36 +00:00
jan.nijtmans 1997c5874f One Tcl_UtfPrev() -> TclUtfPrev() change. Just a little bit cheaper. 2020-05-13 10:19:27 +00:00
jan.nijtmans bc8811c498 Merge 8.7 2020-05-13 09:17:24 +00:00
jan.nijtmans ad28973d3c Merge 8.6 2020-05-13 09:13:11 +00:00
jan.nijtmans edef939668 Fix documentation of Tcl_UtfAtIndex(), in accordance with implementation. See: [81242a48c8] 2020-05-13 09:07:48 +00:00
jan.nijtmans c1638f8216 Fix documentation of Tcl_UtfAtIndex(), in accordance with implementation. See: [81242a48c8] 2020-05-13 09:06:07 +00:00
jan.nijtmans 2c687a4d1d Merge 8.7 2020-05-12 21:22:22 +00:00
jan.nijtmans 99c0854650 Little tweak to Tcl_UniCharAtIndex(): Protect against negative index, return -1 in that case. 2020-05-12 21:17:05 +00:00
jan.nijtmans e47d494335 Merge 8.7 2020-05-12 19:47:06 +00:00
jan.nijtmans dd3240d860 Merge 8.6 2020-05-12 19:41:53 +00:00
jan.nijtmans 24e4669c51 Revert implementation of Tcl_UniCharAtIndex() change done in this commit: [6596c4af31e29b5d]. Just look at the Tcl_UtfAtIndex() implementation for TCL_UTF_MAX=4: It's not the same.
There are no test-cases for Tcl_UniCharAtIndex(), see [f45d0dc1a7], not really worth to write one, since the implementation of this function didn't change in 20 years.
2020-05-12 19:20:20 +00:00
jan.nijtmans 820821d220 Change back implementation of Tcl_UtfAtIndex() to how it was. Update documentation. 2020-05-12 13:53:49 +00:00
jan.nijtmans 9cc2036c64 Merge testcase cleanup. Make Tcl_UtfPrev() behave the same for any TCL_UTF_MAX value, since we didn't figure out yet how it should behave for TCL_UTF_MAX>3. 2020-05-12 11:08:43 +00:00
jan.nijtmans 6256643a39 Merge 8.5 2020-05-12 10:34:46 +00:00
jan.nijtmans f5439dbff5 Unsplit some test-cases and renumber, for testcase which give the same results for different TCL_UTF_MAX values. 2020-05-12 10:08:13 +00:00
jan.nijtmans c1d202b112 Fix "knownBug" utf-4.11. Turns out a few other testcases where still not correct, now they are. Make next/prev behavior the same for all TCL_UTF_MAX values, since the exact behavior for TCL_UTF_MAX>3 should be worked out further for Tcl 8.7 first, then everything agreed upon can be backported. 2020-05-12 07:26:16 +00:00
jan.nijtmans c05a2fd565 Merge 8.6. Mark testcase utf-4.11 as "knownBug": this one still doesn't give the right answer. Add testcase 4.14 with similar corner-case, this one is OK. 2020-05-11 12:25:03 +00:00
jan.nijtmans d2d5ffc3b6 Merge 8.7 2020-05-11 11:26:27 +00:00
jan.nijtmans 09f4817353 Merge 8.6 2020-05-11 11:13:04 +00:00
jan.nijtmans 22648e5ebc Fix [d402ffe76]: Win32 potential crash when using main(). Thanks to Christian Werner for the Bug report and the Fix. 2020-05-11 10:41:30 +00:00
jan.nijtmans 89b734f448 Merge 8.6 2020-05-11 10:18:31 +00:00
jan.nijtmans 783b10ecec Tweak the Tcl_UtfPrev() implementation for TCL_UTF_MAX=4. This fixes 10 testcases in 4 groups (utf-7.10, utf-7.15, utf-7.40 and utf-7.48) , where Tcl_UtfPrev() didn't jump to the beginning of the UTF-8 character, even though there was no limitation which prevented that. So, this is actually a bug-fix for the TIP #389 implementation. 2020-05-11 10:03:46 +00:00
jan.nijtmans 5320364a0d Merge 8.7 2020-05-11 07:42:32 +00:00
jan.nijtmans 9751723176 Merge 8.6 2020-05-11 07:41:02 +00:00
jan.nijtmans 429a4171cb occurance -> occurrence. 2020-05-11 07:39:02 +00:00
jan.nijtmans 594b85ce18 Demonstration for documentation bug, and suggestion for improved wording. More explanation will follow in the ticket. 2020-05-10 20:58:10 +00:00
jan.nijtmans 27b62f923f Merge 8.7 2020-05-10 20:15:13 +00:00
jan.nijtmans 4e395367ed Merge 8.6 2020-05-10 20:11:31 +00:00
jan.nijtmans 0733f23274 Tweak Invalid() function: No need for "return 0" twice in the function.
For start bytes F0-F4, case TCL_UTF_MAX=4, Tcl_UtfToUniChar() reads 3 bytes but only advances 1 byte. So Tcl_UtfCharComplete() must make sure 3 bytes are available, not 1. Adapt Tcl_UtfCharComplete() accordingly. No change for TCL_UTF_MAX=[3|6]
2020-05-10 19:28:08 +00:00
jan.nijtmans 684a61e81e Merge-mark 2020-05-10 13:24:07 +00:00
jan.nijtmans 1102f22c5a Merge bug-31aa44375d branch. Mark encoding-15.5 testcase as "knownBug". Discussion is not over yet, but we need a base for comparision in order to come up with alternatives. 2020-05-10 13:10:38 +00:00
jan.nijtmans dc4018e40d Rebase to latest core-8-6-branch. 2020-05-08 15:19:43 +00:00
jan.nijtmans 0b4d13b85c Merge 8.7 2020-05-08 14:38:48 +00:00
jan.nijtmans 914c6a316c Merge 8.6 2020-05-08 14:30:24 +00:00
jan.nijtmans 07e0e0d06a Merge 8.5 2020-05-08 14:18:33 +00:00
jan.nijtmans 80317c0d6d More test-case cleanup. Enhance "testutfnext", so it can detect whether bytes after the string-end are read. The command will return -1 in that case. No need for additional arguments any more. 2020-05-08 13:47:57 +00:00
jan.nijtmans aca8877841 Merge 8.7 2020-05-08 08:15:13 +00:00
jan.nijtmans 747477a0ab Merge 8.6 2020-05-08 08:14:10 +00:00
jan.nijtmans 2f5e983d7a More testcases that can run without "testbytestring" constraints. 2020-05-08 08:09:42 +00:00
dgp fd87c6a4bb merge 8.7 2020-05-07 22:06:00 +00:00
dgp 5a4d7eb5b7 Merge 8.6 2020-05-07 21:59:47 +00:00
jan.nijtmans d239c63651 Change order of some testcases, matching 8.6 2020-05-07 21:52:53 +00:00
dgp 752f99d576 Merge changes from parent branch 2020-05-07 21:47:28 +00:00
jan.nijtmans 236622c790 Merge 8.6 2020-05-07 21:28:19 +00:00
dgp 098e262372 close fork 2020-05-07 20:50:55 +00:00
dgp 1a4f2bb690 merge 8.5 2020-05-07 20:44:28 +00:00
jan.nijtmans 6d3523c5c6 Merge 8.5 2020-05-07 20:36:23 +00:00
dgp 84eae501a3 close fork 2020-05-07 20:32:38 +00:00
dgp 3ec501f29b Same trouble with Tcl_UtfToUniCharDstring. Test and fix. 2020-05-07 20:31:48 +00:00
jan.nijtmans 9c8670e734 Simplify test-cases which don't need the "testbytestring" command to run without it. e.g. [testbytestring \xC2\xA2] is the same as just \xA2. 2020-05-07 20:24:58 +00:00
dgp 1b11028e45 merge 8.5 2020-05-07 19:22:06 +00:00
dgp 18b39d376e [b2816a3afe] Fix counting of malformed sequences at end of string. 2020-05-07 19:12:36 +00:00
dgp 2f7461f649 Fix. Note that just because we get one positive detection of an incomplete
character, we cannot conclude that the next byte also will be, or can by
taken as a single byte.  At least we cannot when TCL_UTF_MAX > 3 so that we
have room for valid two-byte sequences after incomplete sequence detection.
No need for conditional code, just use an algorithm that always works.
2020-05-07 19:08:24 +00:00
dgp 0187afa965 Test demonstrating bug in ticket [b2816a3afe]. 2020-05-07 18:56:37 +00:00
dgp 6d36267ee0 split and constrain the failing test. 2020-05-07 18:36:25 +00:00
dgp 8fc3788533 New approach to fixing the regression reported in [31aa44375d] builds on
recent reforms.  Older efforts aborted.
2020-05-07 18:23:36 +00:00
dgp a905663fb1 merge 8.6 2020-05-07 16:44:08 +00:00
jan.nijtmans 38a609f39c Merge 8.7 2020-05-07 14:47:56 +00:00
jan.nijtmans d8bebc9a8f Merge 8.6 2020-05-07 14:38:44 +00:00
jan.nijtmans 13faf8b1d4 For TCL_UTF_MAX==4: Make sure that Tcl_UtfNext()/Tcl_UtfPrev() never move more than 3 bytes. This is more consistant with what Tcl 8.7 does too.
For TCL_UTF_MAX==6: Make sure that Tcl_UtfNext()/Tcl_UtfPrev() never move more than 4 bytes.
For TCL_UTF_MAX==3: No change.
Introduce ucs2_utf16 test constraint, since many test results now become the same for ucs2 and utf16.
2020-05-07 14:15:06 +00:00
jan.nijtmans fe1e0d3a73 Merge 8.6. Some more tweaks to Tcl_UtfPrev(), so it cannot jump back 4 bytes in "utf16" build any more. 2020-05-07 13:37:18 +00:00
jan.nijtmans cd2794b2d3 Merge 8.7 2020-05-07 11:18:37 +00:00
jan.nijtmans 74330f2873 Fix [fad64a857e76f98e]: "lsearch" provides wrong errorCode with bad -stride option 2020-05-07 11:17:26 +00:00
jan.nijtmans f198eb8b6b Merge 8.7 2020-05-07 11:09:27 +00:00
jan.nijtmans 062c99cefc Merge 8.6 2020-05-07 10:56:39 +00:00
jan.nijtmans fb50148fcc Optimize Tcl_UtfToUniCharDString() 2020-05-07 10:09:26 +00:00
jan.nijtmans 846b23ab0a Tighten optimization in Tcl_UtfToUniCharDString(), just as in Tcl_NumUtfChars(). Don't use "-1" in the Tcl_NumUtfChars() calculation, since that raises more questions than it solves, but that's easy to be remedied as well: Juse use >= in stead of > in the comparation. Great idea, Don!
Backport more code formatting from Tcl 8.6 (e.g. use of CONST, which makes no sense any more in c-files)
2020-05-07 09:31:32 +00:00
dgp 22f9794cfd merge 8.7 2020-05-06 21:59:16 +00:00
dgp 402b2af43a merge 8.6 2020-05-06 21:52:19 +00:00
dgp ea47091d74 merge 8.5 2020-05-06 21:42:47 +00:00
dgp c2fa3a3fa9 Tighten optimization in Tcl_NumUtfChars. Explain in comments. 2020-05-06 21:08:35 +00:00
dgp 446d76d5f3 merge 8.7 2020-05-06 19:55:19 +00:00
dgp 289b43aefd merge 8.6 2020-05-06 19:48:34 +00:00
dgp 50fa02d30e merge 8.5 2020-05-06 19:31:49 +00:00
dgp 391bf99687 Restore safe calls of Invalid(). 2020-05-06 19:22:25 +00:00
jan.nijtmans 1a11b74770 Merge-mark 2020-05-06 17:11:37 +00:00
jan.nijtmans 58ff4bd868 Merge 8.5 2020-05-06 17:10:37 +00:00
dgp 7e53c7afca close fork 2020-05-06 16:59:57 +00:00
dgp 30f444a254 The routine Invalid() has been revised to do something different.
Update the comments to describe what it does now, and cautions that callers
take into account.
2020-05-06 16:58:51 +00:00
jan.nijtmans da60a1af9f Backport testutfprev/testutfnex testcase improvements from 8.7. This makes testdescriptions/testresults more equal among branches, so the real differences are more visible. 2020-05-06 16:38:45 +00:00
jan.nijtmans b17f64a406 Merge 8.7 2020-05-06 13:31:29 +00:00
jan.nijtmans c5e55206a2 Merge 8.6 2020-05-06 13:22:05 +00:00
jan.nijtmans 391948de40 Merge 8.5. More usage of UCHAR() macro. 2020-05-06 13:14:41 +00:00
jan.nijtmans 6c9fa195b0 Change Invalid() parameter type to "const char *". Also call Invalid() first in Tcl_UtfNext(), so if src[1] is invalid src[2] doesn't need to be checked any more.
Note: This order change, calling Invalid() first was wrong, and is corrected in later commits. Thanks, Don, for noticing this!
2020-05-06 13:03:29 +00:00
jan.nijtmans 10d25a2209 Merge 8.7 2020-05-06 09:28:59 +00:00
jan.nijtmans 7adecdbf4a Merge 8.6 2020-05-06 09:05:55 +00:00
jan.nijtmans 73f359fe17 Merge 8.5.
Make testcases utf-7.20.[01] content the same as in core-8-5-branch, core-8-branch and trunk (0xF4 -> 0xF2)
2020-05-06 08:15:49 +00:00
jan.nijtmans 22751e62a6 3 testcases don't need pairsTo4bytes, fullutf is enough, since the dubble-surrogate-backslash syntac has no relation to the internal byte format. 2020-05-06 07:58:25 +00:00
jan.nijtmans e288cc94fa Merge 8.7 2020-05-05 16:31:14 +00:00
jan.nijtmans dfc1625fc3 Remove PROTO_FLAGS here too 2020-05-05 16:23:56 +00:00
jan.nijtmans e81e9b9bc2 Merge 8.6 2020-05-05 16:20:24 +00:00
jan.nijtmans 96f7e93f0b More usage of TclUtfToUCS4(), so we can use the whole Unicode range better in TCL_UTF_MAX>3 builds. 2020-05-05 16:00:06 +00:00
jan.nijtmans c6d9c4cee0 Remove PROTO_FLAGS support from the Makefile, since it isn't used anywhere any more. 2020-05-05 15:56:14 +00:00
jan.nijtmans cc86f6e11e Add 4 test-cases that could fool Tcl_UtfPrev (but ... actually they don't).
Make sure that Tcl_UtfPrev() never reads more than 3 trail bytes (or 4 when TCL_UTF_MAX > 4). Those are the same limits as for Tcl_UtfNext() and Tcl_UtfToUniChar()
2020-05-05 13:23:17 +00:00
jan.nijtmans 9392c28ed8 Merge 8.7 2020-05-05 11:54:58 +00:00
jan.nijtmans a2f768dce6 Fix Tcl_UtfPrev() such that it can never go back more than TCL_UTF_MAX bytes. Already done correctly on core-8-6-branch, but this was never forwarded to core-8-branch. 2020-05-05 11:44:32 +00:00
jan.nijtmans 697a7c9fe1 Merge 8.6 2020-05-05 10:06:25 +00:00
jan.nijtmans 22274089f5 Merge 8.7 2020-05-05 09:51:32 +00:00
jan.nijtmans 28840fbf89 Merge 8.6 2020-05-05 08:16:10 +00:00
jan.nijtmans 9ae5f06a2b One more tip389 selector 2020-05-05 07:44:36 +00:00
jan.nijtmans e76b63ac05 Merge 8.5 2020-05-05 07:39:25 +00:00
jan.nijtmans 9d533c3d48 Properly protect "Invalid" function against lead bytes 0x80-0xBF. This fixes "knownBug" testcase utf-6.93.1.
Rename tip389 selector to utf16, since that's what it actually is, in contrast to ucs2 and ucs4.
2020-05-05 07:29:46 +00:00
jan.nijtmans 413ea81a28 More progress/simplification 2020-05-04 14:17:23 +00:00
jan.nijtmans 476dc5395c Merge-mark 2020-05-04 13:02:10 +00:00
jan.nijtmans 30c34fb956 Merge 8.6 2020-05-04 13:01:03 +00:00
jan.nijtmans 7759441602 New internal function TclGetUCS4() only available when TCL_UTF_MAX=4. This fixes all "knownBug" testcases related to tip389. 2020-05-04 12:31:51 +00:00
jan.nijtmans b6ae0182ce Merge 8.6 2020-05-04 11:08:25 +00:00
jan.nijtmans 27d61fe1d7 Merge 8.6 2020-05-04 09:41:12 +00:00
jan.nijtmans 66197cab8b Merge 8.5 2020-05-04 09:40:05 +00:00
jan.nijtmans 35051648af Test-case cleanup. Increase timeout a little bit in main.test, making Travis build errors because of this less likely. 2020-05-04 09:37:15 +00:00
jan.nijtmans 8c3587a6e8 (partial) fix for [9d0cb35bb2]: Various issues with core-8-6-branch, TCL_UTF_MAX=4. (even though TCL_UTF_MAX=4 is unsupported, it would be nice to make it work)
Marked various test-cases as "knownBug", those work correctly in core-8-branch (8.7). The fix there could be backported. Low prio.
2020-05-04 08:35:44 +00:00
jan.nijtmans 40f4b78949 Merge 8.6 2020-05-03 22:27:19 +00:00
jan.nijtmans ac279b7258 Merge-mark 2020-05-03 22:19:37 +00:00
jan.nijtmans c17661c31e Re-join utf-6.93.0 and utf-6.93.1 (please disregard comment in previous commit, it was not correct).
Perfectionalize TclUtfToUCS4()/TclUCS4Complete() and new (internal) function TclUCS4ToUtf(). They can help preventing bugs regarding splitting/joining surrogates. Used them in a few more places.
2020-05-03 22:16:21 +00:00
jan.nijtmans e137127ae3 Merge 8.7 2020-05-02 23:05:49 +00:00
jan.nijtmans d46279e4ae Merge 8.6 2020-05-02 23:03:14 +00:00
jan.nijtmans 9501890b6c Join test-cases utf-6.93.0 and utf-6.93.1, which MUST give the same answer always for whatever testConstraints.
Fix one invalid use of TclUCS4Complete(), and let TclUtfToUCS4() handle (invalid) 4-byte sequences.
Test-case cleanup (removal of unnecessary quoting)
2020-05-02 22:48:20 +00:00
jan.nijtmans 797bc84ed2 Seems almost correct. Still problem with "string index" for TCL_UTF_MAX>3 2020-05-02 21:54:14 +00:00
jan.nijtmans cc90266615 More fixes for [ed29806baf]. Not working yet. WIP 2020-05-02 10:15:29 +00:00
jan.nijtmans d8fdcffdf7 Merge 8.7 2020-05-01 22:23:37 +00:00
jan.nijtmans 2368ea0a97 Improve/simplify "testutfnext" and "testutfprev" commands. Now don't need to do special things with byte arrays. You can use "testbytestring" for that. This makes it more clear which test-cases use invalid byte-sequences. Now "testutfnext" also checks whether Tcl_UtfNext() reads src[-1] and src[end], and will warn you when it does. 2020-05-01 22:15:50 +00:00
jan.nijtmans 889df48bf0 Merge 8.7 2020-05-01 15:07:39 +00:00
jan.nijtmans 87969cfb0e Never mind remark about TIP #573 in previous commit: Test failure was due to typo. Fixed now. 2020-05-01 14:53:58 +00:00
jan.nijtmans afba02fe04 Merge 8.7 2020-05-01 14:44:31 +00:00
jan.nijtmans c0381fd712 Fix first part of [ed29806baf]: Tcl_UtfToUniChar reads more than TCL_UTF_MAX bytes.
Tcl_UtfToUniChar() now never reads more than TCL_UTF_MAX bytes any more. 
Since the UtfToUtf encoder/decoder now uses TclUtfToUCS4() it doesn't join 2 surrogates as 2 x 3-byte sequences any more. Actually, it shouldn't, because such sequences are invalid UTF-8.
Therefore, added the ucs2 constraint to testcase encoding-15.4. Let's see how TIP #573 goes, this TIP should make this change official.
Other callers of Tcl_UtfToUniChar() needs to be revised for the same problem. Most callers will need to change Tcl_UtfToUniChar() -> TclUtfToUCS4() and Tcl_UtfCharComplete() -> TclUCS4Complete(), but that's not done yet.
2020-05-01 14:20:21 +00:00
jan.nijtmans 9eaf82b745 Fix first part of [ed29806baf]: Tcl_UtfToUniChar reads more than TCL_UTF_MAX bytes.
Tcl_UtfToUniChar() now never reads more than TCL_UTF_MAX bytes any more. The UtfToUtf encoder/decoder is adapted to do attitional checks (more tricky than in Tcl 8.7, since we want compatibility with earlier 8.6 releases).
Other callers of Tcl_UtfToUniChar() needs to be revised for the same problem. Most callers will need to change Tcl_UtfToUniChar() -> TclUtfToUCS4() and Tcl_UtfCharComplete() -> TclUCS4Complete(), but that's not done yet.
2020-05-01 13:38:22 +00:00
jan.nijtmans 62c00ac54a Fix [ed29806baf] by introducing TclUCS4Complete(). All other calls of Tcl_UtfToUniChar() are suspicious, because those cannot handle 4-byte UTF-8 sequences reliable.
So, there's more work to do, but this part can already be backported to Tcl 8.6 and see where we get.
2020-05-01 08:51:09 +00:00
dgp 77a25a222a merge 8.7 2020-04-30 21:09:40 +00:00
dgp a3d900f322 merge 8.6 2020-04-30 21:07:02 +00:00
dgp ba28f48923 merge 8.5 2020-04-30 20:57:05 +00:00
dgp 58ce7d319f D'oh! 2020-04-30 20:55:50 +00:00
dgp a2b8761c73 merge 8.5 2020-04-30 20:34:04 +00:00
dgp 2414411935 Test for [4c591fa487]. 2020-04-30 20:32:38 +00:00
dgp a8c52ddb7d merge 8.7 2020-04-30 19:25:27 +00:00
dgp 48cdeac127 merge 8.6 2020-04-30 19:24:32 +00:00
dgp 0e720e42db merge 8.5 2020-04-30 18:58:50 +00:00
dgp 8c072488a0 Revise constraints to where expectations are met. 2020-04-30 18:53:50 +00:00
oehhar 032a198c31 Win: use physical host DNS name instead cluster name. Ticket [da235271f1] 2020-04-30 15:35:25 +00:00
dgp c03e89cf0d Add comments so I'll know again later why this is here. 2020-04-30 15:21:22 +00:00
jan.nijtmans 9a8559d4cb First, prove that bug [ed29806baf] is present in 8.7 too. Let's see what test-cases fail when we no longer check the validity of the 3th trail byte. 2020-04-30 14:54:59 +00:00
jan.nijtmans 22ab1b1e6c Merge 8.7 2020-04-30 14:20:43 +00:00
jan.nijtmans f4d01f9405 Merge 8.6 2020-04-30 14:19:19 +00:00
dgp 073073bfc7 merge 8.5 2020-04-30 13:59:17 +00:00
dgp f2e39886dc Split a test so other builds are covered. 2020-04-30 13:58:08 +00:00
jan.nijtmans c4c6b4ae6a Merge 8.5 2020-04-30 13:45:21 +00:00
jan.nijtmans d7c4bec3d2 New encoding-15.16 test-case. Fix title of utf 2 test-cases. 2020-04-30 13:43:29 +00:00
jan.nijtmans 4c7e61bdbc Let's not get out the src[3] check yet. 2020-04-30 12:51:38 +00:00
jan.nijtmans f2fc957a67 Merge 8.6 2020-04-30 12:45:19 +00:00
jan.nijtmans b75fb42503 Partial fix for [ed29806ba]: Tcl_UtfToUniChar reads more than TCL_UTF_MAX bytes. 2020-04-30 12:09:41 +00:00
jan.nijtmans e42d35507c Merge 8.7 2020-04-30 11:24:53 +00:00
jan.nijtmans 1e79155fc5 Merge 8.6 2020-04-30 11:11:38 +00:00
jan.nijtmans 2dc3630772 Merge 8.5 2020-04-30 10:44:14 +00:00
jan.nijtmans ddc9ff2c16 Renumber test-cases 2020-04-30 10:36:20 +00:00
jan.nijtmans c0e2540d43 Merge 8.5 2020-04-30 10:10:07 +00:00
jan.nijtmans 9df7d8ea95 Remove unnecessary quoting in test-cases. Add some more tests for toupper/tolower/totitle 2020-04-30 10:08:53 +00:00
dgp 69a1133f21 Merge 8.7. Still knownBug (for TUM=3) 2020-04-29 22:18:32 +00:00
dgp 61d96a9434 Merge 8.6. Still a knownBug here. 2020-04-29 22:14:53 +00:00
dgp 8e7e369f35 Merge 8.5. Mark test knownBug while it fails on builds of this branch. 2020-04-29 22:08:00 +00:00
dgp 03f932c509 New test for Tcl_UniCharNcmp. 2020-04-29 22:04:16 +00:00
jan.nijtmans 7c0c5704e7 Merge-mark 8.5 2020-04-29 20:50:04 +00:00
jan.nijtmans 7acc3ec55f Remove X attribute from .gitignore and .gitattributes 2020-04-29 20:47:29 +00:00
jan.nijtmans f40a4c5978 Backport many UNICODE_OUT_OF_RANGE() calls. This should fix [69634d51fb74551b] for Tcl 8.5 (with TCL_UTF_MAX=4) too. Also fix some comments which were not up to date.
No change at all in behavior for TCL_UTF_MAX=3.
2020-04-29 20:44:25 +00:00
jan.nijtmans edceb04b1f Merge 8.7 2020-04-29 19:23:43 +00:00
jan.nijtmans 55792c9370 Merge-mark 8.6 (Use of UNICODE_OUT_OF_RANGE() macro already was in 8.7).
Quick exit from Tcl_UtfToChar16()/Tcl_UtfToUniChar() when lead-byte is 0xF5 - 0xF7.
2020-04-29 19:20:18 +00:00
jan.nijtmans e75fc19d85 Add UNICODE_OUT_OF_RANGE() calls to UCS4ToTitle() and friends. Backported from 8.7. This fixes [69634d51fb]: handling out of range UCS4 values (at least, it's fixed in 8.6 now the same way as it's fixed in 8.7). 2020-04-29 19:00:10 +00:00
jan.nijtmans 45b096ac88 Better structurize the UTF-8 (mainly around Tcl_UtfNext()/Tcl_UtfPrev(), but not only those) test-cases:
Selector "ucs2" is meant for Tcl 8.5: No knowledge at all about 4-byte sequences.
Selector "ucs4" is meant for Tcl 8.5 or 8.7 with TCL_UTF_MAX=4 or Tcl 8.6 with TCL_UTF_MAX=6
Selector "tip389" is meant for Tcl 8.6 with TCL_UTF_MAX=4 and Tcl 8.7 with TCL_UTF_MAX=3
(of course, this is too simple: there will be testcases needing more than those 3
2020-04-29 11:10:44 +00:00
dgp 606fa23238 merge 8.7 2020-04-28 21:33:16 +00:00
dgp 3f01cc8310 merge 8.6 2020-04-28 21:32:05 +00:00
dgp e31e22c178 merge 8.5 2020-04-28 21:28:49 +00:00
dgp 5fa67352d1 Correct the tests for variants with no UCS-4 support. 2020-04-28 21:27:45 +00:00
dgp 2d10c9a5f8 close fork 2020-04-28 21:19:48 +00:00
dgp 6dbc8ad93f Test the other notation too (as was already done in 8.7+) 2020-04-28 21:18:21 +00:00
jan.nijtmans 924a7fca6b Merge 8.7 2020-04-28 21:17:02 +00:00
jan.nijtmans a20259dc94 Merge 8.6 2020-04-28 21:16:09 +00:00
jan.nijtmans 8a3520db79 Merge 8.5 2020-04-28 21:15:01 +00:00
jan.nijtmans 1a2e2811e7 Fix [b6038e5bc8]: mis-parse of surrogate pair escapes. Thanks Don! 2020-04-28 21:13:13 +00:00
dgp eb2fa54e32 merge 8.7 2020-04-28 21:05:21 +00:00
dgp 99460bd55b merge 8.6 2020-04-28 20:55:05 +00:00
jan.nijtmans 0e5cda3a47 Merge 8.7 2020-04-28 20:46:29 +00:00
dgp 3d0c3b7c92 merge 8.5 2020-04-28 20:44:49 +00:00
dgp 10e14f4107 Split tests utf-8.5.
This is a strange one. All 3 variants do the same thing.
However, builds of Tcl 8.6 with TUM=4 and TUM=6 both do something different.
Those builds also reject all three constraints. They are something else and
are uncovered so far.
2020-04-28 20:42:11 +00:00
jan.nijtmans f57801a3b0 Extend "testutfnext" test-command such that it can detect when it reads more bytes than the end of the string.
If you want to null-terminate string explitely, use \x00
2020-04-28 20:39:35 +00:00
dgp a2dbb46cfd Expand coverage of indexing across all variants. 2020-04-28 20:19:55 +00:00
jan.nijtmans e71aa6771e Bring forward test-cases utf-6.94 and utf-6.95 from Tcl 8.6 (higher ones have no value IMHO, but those 2 have!) 2020-04-28 20:02:44 +00:00
dgp 280ebb9eae merge 8.6 2020-04-28 19:46:21 +00:00
dgp d16a8663d9 merge 8.5 2020-04-28 19:45:55 +00:00
dgp 03577f4fd6 repair numbering botch. 2020-04-28 19:44:59 +00:00
dgp f1ea508185 merge 8.6 2020-04-28 19:44:15 +00:00
dgp 00090f5330 merge 8.5 2020-04-28 19:20:33 +00:00
dgp b57e682ce4 More constrained splits to cover variants. 2020-04-28 19:02:50 +00:00
dgp ae42064e6b If we insist on tidy grouping and numbering, lets get it right. 2020-04-28 18:43:18 +00:00
dgp 3079e2387f Restore constraint compat with later branches in utf-2.8* tests. 2020-04-28 18:35:04 +00:00
dgp 09a297b63d Proposed fix. 2020-04-28 18:29:36 +00:00
jan.nijtmans 731ea18a69 Merge 8.7 2020-04-28 07:43:02 +00:00
jan.nijtmans dc53acd095 Merge 8.6 2020-04-28 07:41:49 +00:00
jan.nijtmans 370f71be79 Merge 8.5 2020-04-28 07:17:59 +00:00
jan.nijtmans 15b634b5e5 Backport parsing of surrogate-pair change from 8.6 (only for TCL_UTF_MAX=4)
Adapt test-cases accordingly. Renumber and split testcases, making the numbering more equal to the numbering in 8.6/8.7/9.0
2020-04-28 06:54:05 +00:00
dgp be98f67f6a merge 8.7 2020-04-27 19:29:34 +00:00
dgp ced5960da8 merge 8.6 2020-04-27 19:28:36 +00:00
dgp a04e1b7c1b Merge 8.5; mark failing tests as knownBug. 2020-04-27 19:25:04 +00:00
dgp 215662c8ba Improve the reporting of a failing test. Start testing extended chars. 2020-04-27 19:17:40 +00:00
dgp a6d4146363 merge 8.5 2020-04-27 17:41:03 +00:00
dgp 165a986a41 Parameterize tests of Tcl_UniCharNcasecmp 2020-04-27 17:29:59 +00:00
dgp 2e67393129 [a444889cbe] Quick fix to satisfy Travis. Might revise later. 2020-04-27 16:10:54 +00:00
dgp 97e600c877 merge 8.6 2020-04-27 16:07:45 +00:00
dgp 68213d5212 merge 8.6 2020-04-27 15:57:15 +00:00
dgp edc1cce498 merge 8.5 2020-04-27 15:41:27 +00:00
dgp ef40d8b856 case 2020-04-27 15:36:30 +00:00
dgp 9127e81066 case 2020-04-27 15:34:17 +00:00
dgp c08455b2c9 merge 8.6 2020-04-27 15:30:00 +00:00
dgp 189fb0dc55 merge 8.5 2020-04-27 15:28:44 +00:00
dgp c1c8df380b constraint fixes 2020-04-27 15:27:41 +00:00
dgp d8bf58441d test reconciliation 2020-04-27 15:22:50 +00:00
dgp aa386ba8fc merge 8.7 2020-04-27 13:44:38 +00:00
dgp 64151c5802 merge 8.6 2020-04-27 13:37:03 +00:00
dgp 3b165ace67 merge 8.5 2020-04-27 13:29:04 +00:00
dgp b1d47f7bfb silence compiler warning 2020-04-27 13:18:16 +00:00
dgp d9e077b2fa merge 8.7 2020-04-27 12:59:06 +00:00
dgp e0b9dbb21d merge 8.6 2020-04-27 12:57:35 +00:00
dgp bdb10b8e7d merge 8.5 2020-04-27 12:42:20 +00:00
dgp 4ce7f0cd86 Pull back another test from 8.7. 2020-04-27 12:41:36 +00:00
dgp 8424957e3c merge 8.5 2020-04-27 12:33:55 +00:00
dgp bada59f796 bring back new tests 2020-04-27 12:32:24 +00:00
dgp 0650564b5d [45ca2338cd] Revise the [string to*] machinery for custom builds. 2020-04-27 12:29:47 +00:00
dgp 60d1d8c7eb Use lossless internal routines to cover extended characters. 2020-04-27 12:26:39 +00:00
dgp 4d391ba3a7 Still more tests 2020-04-27 03:03:25 +00:00
dgp 54713d6e0a More tests showing more bugs. 2020-04-27 02:43:51 +00:00
dgp 48357577d7 Possible fix for [string to*] writing out a high surrogate at end of string. 2020-04-27 01:29:18 +00:00
dgp 9a08654b23 merge 8.7 2020-04-26 22:14:45 +00:00
dgp 1c0f9c6c22 merge 8.6 2020-04-26 22:13:57 +00:00
dgp 7a2e5e227c merge 8.5 2020-04-26 22:13:07 +00:00
dgp d92241af58 More test reconciliation. 2020-04-26 22:11:07 +00:00
dgp 3dce3e5685 merge 8,7 2020-04-26 21:32:03 +00:00
dgp 2aa14c7032 merge 8.6 2020-04-26 21:30:54 +00:00
dgp fdc5798df7 merge 8.5 2020-04-26 21:29:08 +00:00
dgp d9333f5aab test reconciliation 2020-04-26 21:28:10 +00:00
dgp 99a9e5c7c5 merge 8.7 2020-04-26 21:18:49 +00:00
dgp b5fdc14e81 merge 8.6 2020-04-26 21:15:17 +00:00
dgp e4bd95ebe3 merge 8.5 2020-04-26 21:12:43 +00:00
dgp e6de958cf5 Refine the constraint. The fact that Tcl stores extended characters
internally does not imply that [string length] counts UCS4 characters
instead of UTF-16 code units.
2020-04-26 21:11:40 +00:00
dgp ea742cd45e merge 8.5 2020-04-26 21:02:13 +00:00
dgp 371c07da34 Continuing test reconciliation. 2020-04-26 20:58:28 +00:00
dgp d438ca171b merge 8.7 2020-04-26 20:38:06 +00:00
dgp ed18a32961 Merge 8.6 2020-04-26 20:32:06 +00:00
dgp c6fa005d8f merge 8.5 2020-04-26 20:27:07 +00:00
dgp f6fd0c69f1 Bring back a set of tests from 8.6. Invented new constraints to constrain to
the right conditions, not implied ones.
2020-04-26 20:18:20 +00:00
jan.nijtmans 4a86cf8b00 Since Tcl_NumUtfChars() now can return a value of more that 32 bits .... 2020-04-26 15:30:12 +00:00
jan.nijtmans d2444449ec Merge 8.7 2020-04-26 15:21:21 +00:00
jan.nijtmans d28ffce7cd Cherry-pick Tcl_UniCharAtIndex() implementation from [6596c4af31], but adapted to the needs of TIPs 389/542. 2020-04-26 15:11:41 +00:00
jan.nijtmans c2cd944d57 Merge-mark 2020-04-26 13:03:56 +00:00
jan.nijtmans 3579ec86f6 Add 6 "ucs2" markers. The first 4 of them are not bugs: They show that Tcl_UtfComplete() cannot be
used to protect Tcl_UtfNext() calls. So, those test-cases, even though they work with ucs2, are simply wrong.
The other 2 (utf-6.93 and utf-6.126) look like a bug to me. Not high prio (since TCL_UTF_MAX=4 builds are unsupported), but worth a ticket.
2020-04-26 12:56:47 +00:00
jan.nijtmans 70ca5816c6 Undo last change in regc_lex.c: It doesn't do the expected thing when TCL_UTF_MAX>3. More work needed 2020-04-25 23:19:14 +00:00
jan.nijtmans 0f01f464de Merge 8.7 2020-04-25 22:50:39 +00:00
jan.nijtmans ff3cf2ae39 Make reg-13.33/reg-13.34 work again. Still have to investigate what's the problem. 2020-04-25 22:49:16 +00:00
jan.nijtmans 9d83a309b0 Merge 8.6 2020-04-25 22:32:19 +00:00
jan.nijtmans 4d159d9803 encoding-12.6 only works for "ucs2" for now. Don't use (deprecated) INLINE and CONST 2020-04-25 22:16:37 +00:00
dgp 58876a37b8 dup test name 2020-04-25 17:03:18 +00:00
dgp 00be8f7939 Bring forward a collection of missing tests. 2020-04-25 16:46:14 +00:00
dgp 4804a3fdec Cherrypick [d2143c14c1]: Eliminate the -bytestring option of [testutfnext]. No caller needs anything else. 2020-04-25 16:26:12 +00:00
dgp be68e53906 Close utf-next-regressions 2020-04-25 16:04:16 +00:00
dgp 3e82be416f close dgp-alternative 2020-04-25 15:31:08 +00:00
dgp 2a1570025d merge 8.6 2020-04-25 14:37:45 +00:00
dgp e90c15381f Merge another step. Four failing tests, but all understood now. 2020-04-25 14:06:39 +00:00
jan.nijtmans 6e4f2c437a merge-mark 2020-04-24 22:46:07 +00:00
jan.nijtmans e598b0d32c Found problem with utf-6.125/6.126: argument -bytestring was missing in test 2020-04-24 22:42:30 +00:00
jan.nijtmans 3ac32056bc Quickfix to Tcl_NumUtfChars(). Barely used in Tcl core. Still needs a better look.
Mark two new tests as knownBug. Needs a further look as well.
2020-04-24 22:40:03 +00:00
dgp 09ad9bf8c8 WIP merging more from 8.6; little separation left. 2020-04-24 22:02:09 +00:00
dgp 3cfbf71c40 WIP merging 8.6. 2020-04-24 21:54:02 +00:00
jan.nijtmans 5fe38b57ea Merge 8.7 2020-04-24 21:44:28 +00:00
jan.nijtmans 0bf016741d Merge 8.6 (Except encoding-12.6 test-case still to be handled) 2020-04-24 21:37:37 +00:00
jan.nijtmans ba884cc1dd Backout [ 649f53b9f4]: This was not meant for 8.6 2020-04-24 21:03:47 +00:00
jan.nijtmans e9f9a08085 Merge 8.5 (but this time correct) 2020-04-24 21:01:10 +00:00
dgp cecf0f737f merge 8.5 2020-04-24 20:54:48 +00:00
dgp e41fff4743 Merge 8.5. Failing tests need examination and adjustment. 2020-04-24 20:51:14 +00:00
jan.nijtmans 7d2cbe2aef Fix [cc4d805771]: reg-13.17.error fails in 8.5 tip 2020-04-24 20:39:05 +00:00
dgp 9b3252ab93 Merge from 8.5. Failing tests encoding-12.6, reg-13.3[34] appear to be real
failures reporting first contact with tests and code.
2020-04-24 20:21:34 +00:00
dgp fbfa513c23 Two more tests developed during work on [27944a3661]. 2020-04-24 17:37:36 +00:00
dgp 59343a872e Revert the parts of [76213b3f72] that converted callers of Tcl_UtfToUniChar
into callers of Tcl_UtfNext. With this reversion, any future divergence
between those two will not harm these callers. Retain the tests, and retain
the new implementation of Tcl_UtfNext itself and its new macro form.
2020-04-24 17:18:23 +00:00
dgp cfdcea5683 Revise tests to reflect fixed bug in RE parsing of \uHHHH escapes. 2020-04-24 16:31:36 +00:00
jan.nijtmans 252880a07c Make (unsupported) 'U' regex escaping work again. 2020-04-24 15:38:23 +00:00
jan.nijtmans 5db75c45c9 Missing '0' 2020-04-24 15:17:57 +00:00
jan.nijtmans 88661ac0e9 Add protections against overflow in Unicode values. Backported from 8.6. Also remove some out-of-date comments. 2020-04-24 15:10:23 +00:00
jan.nijtmans c202c057b1 Merge 8.7 2020-04-24 13:32:47 +00:00
jan.nijtmans adb2d1d939 Merge 8.6 2020-04-24 13:31:53 +00:00
jan.nijtmans f0b58b55b6 Merge 8.5.
Fix regression in Tcl_UtfComplete(), actually already present for longer time but masked by error in TclUtfNext() macro.
Adapt expectations accordingly ("/xA0/xA0" should really have length 2 ....)
2020-04-24 13:15:53 +00:00
jan.nijtmans 423df1f681 Fix GCC warning in MemDebug mode: format not a string literal and no format arguments [-Wformat-security] 2020-04-24 12:26:09 +00:00
jan.nijtmans f4072f4ef7 Merge 8.7 2020-04-24 10:49:28 +00:00
jan.nijtmans da116b95a3 Merge 8.6. This mainly introduces the overlong check into Tcl_UtfPrev(). 10 testcase changed results, all of them due to the Tcl_UtfPrev() improvement. Tcl_UtfNext() is not affected: Previous implementation was based on Tcl_UtfToUniChar(), which already did this check. 2020-04-24 10:23:33 +00:00
dgp 4ca994daf1 Demonstrate that the failing tests on the 8.6 branch tip can equally well
be solved by backing out the recent changes associated with [27944a3661].
2020-04-23 20:22:59 +00:00
jan.nijtmans 7d74396455 Revert change in ParseLexeme() too 2020-04-23 19:14:29 +00:00
jan.nijtmans e7186db8a9 Fix regression in Tcl_NumUtfChars, caused by this commit: [6596c4af31e29b5d]. Expectations of failing tests was adapted later, that's why this was missed.
Lesson: Tcl_UtfNext() is _not_ just an optimized replacement for Tcl_UtfToUniChar(). Sorry, but this change it just to dangerous!
Tcl_UniCharAtIndex() and Tcl_UtfAtIndex() most likely have the same regression when fead with invalid byte-sequences, therefore reverted those too.

HOLD ON! These regressions are equally the result of [5c322bbd51]. It takes both changes to cause the failing tests.  We need to argue about which change was the wrong one.
2020-04-23 19:07:08 +00:00
dgp 6eb9a20757 Argument conditions for Invalid() call were not always satisfied. 2020-04-23 19:04:57 +00:00
sebres a9e7b242c6 documentation: descibes the empty list creation (with reserved space) where objv is NULL, like Tcl_NewListObj(n, NULL) 2020-04-23 14:52:10 +00:00
jan.nijtmans 2ca7ab9af0 Fix TclUtfNext() macro. Use it in tclTest.c, so such a mistake can be detected next time. 2020-04-23 13:53:54 +00:00
jan.nijtmans 666cf1c887 Merge 8.7 2020-04-23 12:58:46 +00:00
jan.nijtmans b48319b304 Testcase cleanup 2020-04-23 12:34:38 +00:00
jan.nijtmans d016b9e8e1 Testcase cleanup 2020-04-23 12:19:42 +00:00
jan.nijtmans 80da4a766d Fix [1004065]: UTF-8 encoding crashes in UCS-4 mode 2020-04-23 12:14:30 +00:00
jan.nijtmans 3afe55c978 Fix [27944a3661]: Taming test utf-6.88
Fix [c11e0c5ce4]: Regression in Tcl_UtfCharComplete
Fix [1b1f5f0b53]: Tcl_UtfNext incompatibility in Tcl 8.6.10
2020-04-23 11:31:47 +00:00
dgp 6852f6d630 test number reuse 2020-04-22 22:31:39 +00:00
dgp 3b1c00722a Collection of tests checking read limit protections calling Tcl_UtfNext. 2020-04-22 22:18:53 +00:00
jan.nijtmans 05fe66d4ee (cherry-pick): Update documentation of Tcl_UtfPrev/Tcl_UtfNext back to how it was. Will be updated later, when implementation is ready and agreed upon. 2020-04-22 22:13:53 +00:00
dgp 7f1a39781f Add optional second argument to [testutfnext] that can limit how many
bytes are permitted to be read. Needed to test protection of buffer overruns.
2020-04-22 21:28:17 +00:00
dgp 9c04c8ce98 Eliminate the -bytestring option of [testutfnext]. No caller needs anything else. 2020-04-22 20:49:33 +00:00
jan.nijtmans dae8f60d9d Merge-mark. Add Travis builds for TCL_UTF_MAX=5 and TCL_UTF_MAX=6: It looks like all tests are passing now! 2020-04-22 16:46:33 +00:00
jan.nijtmans 9c0475426c Another ucs2 testContraint no longer used 2020-04-22 16:27:16 +00:00
dgp 39736552af Restored a test constraint to tolerate [1004065] (maybe just in time to not need it anymore). 2020-04-22 16:12:41 +00:00
jan.nijtmans 55d47dd21e Oopsee (but not really crucial) 2020-04-22 16:06:39 +00:00
jan.nijtmans 04bb9b292c Attempt to fix [1004065] for TCL_UTF_MAX=4. Disallow building Tcl with TCL_UTF_MAX>4 2020-04-22 16:00:36 +00:00
jan.nijtmans 11a3e7e9ee Merge 8.6 2020-04-22 14:49:16 +00:00
jan.nijtmans 6b9ee09453 Merge 8.5 2020-04-22 10:29:31 +00:00
jan.nijtmans 070fa22acb Determine "testConstraint ucs2" without the need for a testcommand. Rename "compat85" testConstraint to "ucs2", because that's what it actually is. 2020-04-22 10:02:06 +00:00
jan.nijtmans 4bd7d54291 Merge 8.7 2020-04-22 08:10:35 +00:00
jan.nijtmans c6ecbcda14 Fix [27944a3661]: Taming test utf-6.88. Long-standing bug in Tcl_UtfNext(). Corner-case when the pointer doesn't advance to the start-byte of the next UTF-8 character. 2020-04-22 07:59:19 +00:00
jan.nijtmans 93bdac7a50 Merge 8.5 2020-04-22 07:41:36 +00:00
jan.nijtmans 03d9b705d0 Improved "testutfnext" command 2020-04-21 21:41:15 +00:00
jan.nijtmans ce76e24a88 Improve the "testutfnext" command. It can now accept both bytes and strings, and it will test whether src[-1] is read without needing test-variations for it. 2020-04-21 19:45:34 +00:00
dgp 7a644db668 [c574e50a3b] Stop segfault in tests utf-2.[89]. Create clean test suite
runs for the TCL_UTF_MAX = 4, 6 builds.
2020-04-21 15:59:47 +00:00
dgp 4da0e25225 remove merge litter 2020-04-21 15:56:34 +00:00
dgp 1588b8475d Use new testing command to constrain tests to (sizeof(Tcl_UniChar) == 2)
until bugs are fixed when (sizeof(Tcl_UniChar == 4).
2020-04-21 15:52:03 +00:00
dgp d48bca3324 Move testing command [testsize] from Windows to generic.
Extend it to report sizeof(Tcl_UniChar).
2020-04-21 15:41:01 +00:00
dgp 941ef44a3f Revert the other encoding system backport.
The blocking and failing tests are illustrations of existing tickets
[1004065] and [1122671], recording that the encoding machinery hardcodes
assumptions in multiple places that sizeof(Tcl_UniChar) == 2.

Closing the segfault bug fix should not be hostage to fixing those old bugs.
2020-04-21 14:52:48 +00:00
jan.nijtmans b002a51274 Merge 8.7 2020-04-21 10:24:45 +00:00
jan.nijtmans 4a16a0e646 Fix corner-case in TIP #542 implementation: For extensions compiled with TCL_UTF_MAX=4 while Tcl is built with TCL_UTF_MAX=3, Tcl_UtfCharComplete() might give the wrong result. 2020-04-21 10:14:40 +00:00
jan.nijtmans e6d30d023d More test cleanup 2020-04-21 09:49:19 +00:00
jan.nijtmans 92e4d3dffc Wrong indent in comment 2020-04-21 07:26:38 +00:00
jan.nijtmans a1d0f9db90 Merge 8.7 2020-04-21 07:18:50 +00:00
jan.nijtmans 108ee43423 Add more test-cases for TCL_UTF_MAX>3 2020-04-21 07:03:46 +00:00
dgp 5ccd380c46 We've settled on using (TCL_UTF_MAX > 3) to indicate 4-byte Tcl_UniChar. 2020-04-21 02:57:41 +00:00
dgp d8bc590eef Revert the backport to tclEncoding.c that seems to redefine the "unicode"
encoding to mean UTF-16. Don't want that behavior change in 8.5.
2020-04-21 02:50:23 +00:00
dgp 4c9bc32c39 Pair every compat85 test with a fullutf test so that we cover all variants. 2020-04-20 23:00:30 +00:00
dgp 58cf4db1cc Tie together the TCL_UTF_MAX=4 and TCL_UTF_MAX=6 builds to mean the same
thing on the 8.5 branch -- use internal UCS-4 storage.
2020-04-20 22:35:39 +00:00
jan.nijtmans 1e6e700682 Merge 8.7 2020-04-20 22:00:46 +00:00
jan.nijtmans 206022e979 Teach Tcl_UtfPrev() that 0xC1 is _always_ an invallid byte. Test-case utf-7.34.
Make sure that Tcl_UtfCharComplete(src, TCL_UTF_MAX) always returns 1, for whatever bytes, since that's the maximum number of bytes Tcl_UtfToUniChar() can read in a single call.
2020-04-20 21:54:31 +00:00
jan.nijtmans fc7ca4202e Change a few variables from type "int" to "size_t". Always test TCL_UTF_MAX for <= 3 or > 3, because that's the only 2 flavours we really have. 2020-04-20 21:07:35 +00:00
jan.nijtmans 68c30819ad Merge 8.7 2020-04-20 20:46:50 +00:00
jan.nijtmans 059d5cc180 Add test-cases handling TclGetBytesFromObj() ( actually Tcl_UtfToUniChar too) 2020-04-20 20:44:24 +00:00
jan.nijtmans 4f2621d9d5 Proposed fix for [c11e0c5ce4]: Regression in Tcl_UtfCharComplete. 2020-04-20 15:20:55 +00:00
jan.nijtmans effab20437 (cherry-pick): Proposed fix for [27944a3661]: Taming test utf-6.88. 2020-04-20 11:56:27 +00:00
jan.nijtmans eb263e1e05 Code cleanup (more typecasts), making it more compatible with -Wc++-compat. Less use of /* ARGUSED */. 2020-04-20 11:30:31 +00:00
jan.nijtmans dcd9929939 Add travis build for TCL_UTF_MAX=4 and TCL_UTF_MAX=6. This test whether the "compat85" constraint (which is only true for TCL_UTF_MAX=3) is necessary for this test-case.
Since TCL_UTF_MAX>3 is UNSUPPORTED, it doesn't matter what the actual test result is for test-cases tagged with "compat85". We just want to know which testcases are effected.
2020-04-20 08:32:39 +00:00
jan.nijtmans 2958d5196d Move the needed apt package in .travis.yml to the top, so they can be shared between the images. 2020-04-20 07:50:22 +00:00
dgp 0424b820bc Backport the fix for encoding-16.1 in a TCL_UTF_MAX=6 build. 2020-04-20 07:34:28 +00:00
dgp 534db753ae Backport the encoding fix for source-7.2 in TCL_UTF_MAX=6 build. 2020-04-20 06:45:47 +00:00
dgp bb5381f946 Reconcile tests to the 8.5 branch history. 2020-04-20 05:35:54 +00:00
dgp fef15108cc merge 8.5 2020-04-19 22:04:17 +00:00
dgp 9bcd48e5ff typo 2020-04-19 22:02:10 +00:00
jan.nijtmans 1a343cd043 More test-cases. Fix wrong quoting in testcase utf-10.5 2020-04-19 19:37:05 +00:00
jan.nijtmans 942bd1ddd9 Proposed fix for [27944a3661]: Taming test utf-6.88.
This fix is not optimized, it still uses TclUtfToUniChar() in its implementation. 
But optimizing work is on its way, hopefully, coming through 8.5 .. 8.6 .. and up.
2020-04-19 09:57:08 +00:00
jan.nijtmans fa2ae66dcd Merge 8.7 2020-04-19 09:17:35 +00:00
jan.nijtmans 4551b21590 4 more testcases, which could detect future regressions in Emoji handling 2020-04-19 09:12:54 +00:00
jan.nijtmans 8ddd5fea3c Merge 8.7 2020-04-18 20:30:08 +00:00
jan.nijtmans 62e02d2ea6 More test-case cleanup 2020-04-18 20:23:26 +00:00
jan.nijtmans 4f3cc7f661 Clean-up testcases: Constant use of uppercase in hex-values. Use "testbytestring" in stead of "bytestring". Mark tests not working with TCL_UTF_MAX>3 with "compat85" 2020-04-18 19:54:08 +00:00
dgp f866e98a39 regexp engine has to agree about the sizeof(Tcl_UniChar). 2020-04-18 15:11:22 +00:00
dgp ea9467702a Make TCL_UTF_MAX=4 build test clean again. 2020-04-18 15:02:51 +00:00
jan.nijtmans 6f00fef31d Fix [c574e50a3b30e76f]: CRASH: utf-2.[89] in 8.5 built with TCL_UTF_MAX=4 2020-04-18 13:47:06 +00:00
jan.nijtmans ec1723eead Update documentation of Tcl_UtfPrev/Tcl_UtfNext back to how it was. Will be updated later, when implementation is ready and agreed upon. 2020-04-18 12:46:54 +00:00
dgp aa9bb7f9e4 [493dccc2de] Revise sequence validity check to reject out of range decodes too. 2020-04-17 21:07:09 +00:00
dgp 4520aa1ca3 More tests explicitly for Tcl_UtfNext near validity boundary U+110000 2020-04-17 21:03:30 +00:00
dgp e19b1f1306 [493dccc2de] Coverage that Tcl_UtfPrev also checks the upper range validity. 2020-04-17 20:38:38 +00:00
dgp 7067acad79 Corrections for many tests, changing lead byte \xF4 to \xF2.
The tested sequences were always intended to be valid 4-byte sequences.
Also a few errors with greedy \xHHHH .
2020-04-17 20:23:49 +00:00
dgp 1e5043ff45 Backport a collection of tests for consistency between branches. 2020-04-17 20:15:07 +00:00
dgp 4b0626ddd7 Bring back the test utf-2.11; it fails in a TCL_UTF_MAX=4 build. 2020-04-17 16:56:51 +00:00
jan.nijtmans af3020df90 Merge-mark 2020-04-17 13:32:53 +00:00
jan.nijtmans d569ea2c8b Add mem-debug build to Travis. Update Xcode from 8 to 8.3, 9 to 9.2 and 11.3 to 11.4 2020-04-17 13:31:06 +00:00
jan.nijtmans e62ccc83c8 Merge-mark 8.5. Remove some ARGSUSED usage. 2020-04-17 13:09:59 +00:00
jan.nijtmans 54b62ddd62 Unbreak shared windows build. Remove some ARGSUSED usage. 2020-04-17 13:01:35 +00:00
jan.nijtmans aea602a07a Clean-up some unnecessary spacing. 2020-04-17 12:49:32 +00:00
jan.nijtmans 980bcbfdbf Merge 8.7 2020-04-17 12:32:42 +00:00
jan.nijtmans 072e295b80 Add test-case for Tcl_UtfNext/Tcl_UtfPrev. About 15 of them give the wrong answer, but - at least - this way we record the current state, to be compared with the new implementation coming soon. 2020-04-17 12:20:23 +00:00
jan.nijtmans 4de1b924a8 Fix implementation of Tcl_UtfAtIndex() for TCL_UTF_MAX=6 (There's no test-case for this in the core-8-6-branch, but there is in core-8-branch). 2020-04-17 11:02:19 +00:00
jan.nijtmans 0c272ad2ce More test-cases. Mark test-case utf-2.11 as "knownBug", doesn't give the right answer for any TCL_UTC_MAX value. TODO: To Be Fixed! (Don ????)
Fix build/testcase for TCL_UTF_MAX=6 (testcase is OK, "string length" implementation was not!)
2020-04-17 10:32:52 +00:00
jan.nijtmans b4ecc6b747 More test-cases 2020-04-17 09:47:01 +00:00
dgp 98700eaf2b Clean test suite for both TCL_UTF_MAX=3 and TCL_UTF_MAX=4 builds. 2020-04-17 05:16:55 +00:00
dgp ad85391b59 When supporting 4-byte sequences even with TCL_UTF_MAX = 3, need to
paramterize a few things differently. (utf-4.11 failures).
2020-04-17 05:14:43 +00:00
dgp 1edc023972 more test fixes 2020-04-17 04:51:48 +00:00
dgp c998be1b06 When supporting 4-byte sequences, make sure the Overlong test does too, and
make sure the test results reflect it.
2020-04-17 04:45:26 +00:00
dgp 700b782299 enable the tests on a bug fix branch 2020-04-17 04:17:51 +00:00
dgp dc5d14fded close fork 2020-04-17 04:16:28 +00:00
dgp 6f61fdff62 merge mark 2020-04-17 04:09:51 +00:00
dgp e1f67c4c92 Bring the single-byte marker for invalid lead byte \xC1 into the complete table 2020-04-17 04:08:46 +00:00
dgp 882fcc12b2 Fix the bad tests utf-2.11 and utf-6.88 that expected the wrong results.
Also reconcile the merge from 8.5 to the new decoupling of bytesequence
counts from indexed code unit couints. Docs still need an update.
2020-04-17 03:54:50 +00:00
jan.nijtmans 1045aefa35 Fix build for TCL_UTF_MAX=4. Mark some failing tests with "knownBug". Those still need to be fixed! 2020-04-16 22:19:15 +00:00
jan.nijtmans 335f3c8fb7 Fix more test-cases for TCL_UTF_MAX=3 2020-04-16 22:06:54 +00:00
dgp d168b44ff6 Adjust test results and implementation for Tcl 8.6 current support of
4-byte sequences in a TCL_UTF_MAX=3 build.
2020-04-16 20:59:11 +00:00
dgp 69a5e401ce Merge 8.5. Failing tests for now. To be remedied shortly. 2020-04-16 20:38:01 +00:00
dgp ae8350301e merge litter 2020-04-16 20:28:15 +00:00
jan.nijtmans 1924a68fc6 Add "knownBug" testcase, showing a situation in which Tcl_UtfNext doesn't behave as described in the documentation 2020-04-16 20:24:49 +00:00
dgp 90e26007fa Convert Tcl_UtfNext into a routine that doesn't decode UTF-8 into UCS-2,
but sticks only to its task of computing the pointer increment. Update callers
of Tcl(_)UtfToUniChar that do not need decoding to use Tcl_UtfNext instead.
Changes here fix [2738427] putting in place full overflow protection for
Tcl_NumUtfChars(). Many tests and doc improvements.
2020-04-16 19:52:26 +00:00
dgp 66197fff21 Improve the docs for Tcl_UtfNext. 2020-04-16 19:39:36 +00:00
sebres b0791473e9 code simplification, no interim copy/move buffers, no decompression d-string, the inflate occurring in single step (ResultDecompress combines ResultGenerate and ResultCopy); better handling in non-blocking mode (also recognizes or distinguish no data/EAGAIN cases) 2020-04-16 19:08:57 +00:00
dgp c2479a465e delete merge litter 2020-04-16 19:04:47 +00:00
dgp 60d5424069 More detailed comments. 2020-04-16 19:02:40 +00:00
dgp 443928c10f compiler warning 2020-04-16 18:42:37 +00:00
dgp e6faa58e6d More tests and fix for overlong handling in revised Tcl_UtfNext. 2020-04-16 18:40:40 +00:00
dgp 1875c87617 merge 8.5 2020-04-16 18:15:38 +00:00
dgp 2b4c279e0b Create and use macro TclUtfPrev for Tcl_UtfPrev. 2020-04-16 18:14:55 +00:00
dgp cf45a0c3cc merge 8.5 2020-04-16 17:55:42 +00:00
dgp 54bf162842 [5e6346a252] Adapt Tcl_UtfPrev to new Tcl rules that reject overlong sequences. 2020-04-16 17:41:10 +00:00
dgp 0f4abadd96 Convert Overlong() to use a lookup table. 2020-04-16 17:30:29 +00:00
dgp c6eae962e7 When we reject overlong sequences, \xC1 is as invalid a lead byte as \xFF. 2020-04-16 16:22:34 +00:00
dgp 25426542ea merge 8.5 2020-04-16 15:48:22 +00:00
dgp 0e1998f629 merge 8.5 2020-04-16 15:38:19 +00:00
jan.nijtmans 14abfaa3d0 Merge 8.7 2020-04-16 14:54:21 +00:00
sebres becf4bcc18 few documentation changes (limit default and handling is changed) 2020-04-16 14:37:05 +00:00
sebres fb7b5ca9d3 small amend combining similar parts 2020-04-16 14:05:24 +00:00
sebres 3577e36e79 zlib: optimize ZlibTransformInput, if inflate is done no read and no generate needed anymore 2020-04-16 13:43:07 +00:00
sebres b7f84c7bc0 zlib: performance - set default read ahead limit to DEFAULT_BUFFER_SIZE (4K); better fix avoiding BO (replacement for [54605d16b9]) 2020-04-16 13:28:49 +00:00
sebres a0c779ad22 zlib, *BO*: fixes possible segfault (or buffer overrun), for instance if limit (max 65K) is set larger as allocated buffer for inflate-input (default 4K) 2020-04-16 12:55:47 +00:00
sebres 14143230c8 added (reworked) patch suggested by aku in [f70ce1fead]: recognize stream is done (and unget the unprocessed data back to input channel) 2020-04-16 11:54:34 +00:00
jan.nijtmans 495f74d5cb Merge 8.7 2020-04-16 11:14:19 +00:00
jan.nijtmans ac1ec8201e Upgrade Xcode from 11.3 to 11.4. Let Travis test whether "make install" works when the destination directory contains a space. 2020-04-16 10:32:56 +00:00
jan.nijtmans 520bc7b80c Merge 8.6. Add TclStaticPackage to (internal) stub table. Code cleanup. 2020-04-16 10:30:51 +00:00
jan.nijtmans 3e46af6402 Add (internal) stub entries for TclRegisterLiteral and TclStaticPackage. Not used in any test-cases yet, but could be used in extensions for testing. Backported from 8.6.
New test commands "testbytestring" and "teststringbytes". Also backported from 8.6. Not used in any test-cases yet.
2020-04-16 10:07:03 +00:00
dgp d491ca6385 Refactor the Overlong test into a utility routine. 2020-04-15 22:39:53 +00:00
dgp 1f6e0698a6 Use test existence to shorten comment. 2020-04-15 22:28:18 +00:00
dgp 6c57933263 More test coverage 2020-04-15 22:14:33 +00:00
dgp e1e00509b7 Rework Tcl_UtfPrev so it properly handles overlong sequences. 2020-04-15 21:48:57 +00:00
jan.nijtmans d296c39c60 Merge 8.7 2020-04-15 20:22:03 +00:00
jan.nijtmans 8393f3aaad Use TclGetBytesFromObj() in testcases in stead of Tcl_GetByteArrayFromObj(), since we only want to handle proper bytearrays. 2020-04-15 20:12:18 +00:00
jan.nijtmans 54e3729e91 Merge 8.7 2020-04-15 20:03:38 +00:00
jan.nijtmans 53e02bac83 Merge 8.6 2020-04-15 19:54:58 +00:00
jan.nijtmans 2ca7fe6104 Merge 8.5 2020-04-15 19:38:00 +00:00
jan.nijtmans f480c2471b New test command "testutfnext", not used yet in actual test-cases. Being merged up to higher branches. (Thanks, Don!) 2020-04-15 19:33:20 +00:00
jan.nijtmans ccded0d96e Merge 8.6 2020-04-15 19:12:49 +00:00
sebres 6422781fdc fixes bug [8af92dfb66]: resolve too earlier stop of inflate's cycle (if generating decompressed data on flush case of full buffer) 2020-04-15 19:06:38 +00:00
sebres 951e893716 TclTrimRight/TclTrimLeft: removed mixed declarations and code (forbidden in ISO C90, declaration-after-statement);
restored mistakenly removed part of check-in [578c25b43a] (move Tcl_UniChar initializations out of the loop), but "ch2" belongs to the inner loop, so move it inside outer interation.
2020-04-15 18:59:00 +00:00
dgp fe893becb4 New tests checking Tcl_UtfPrev handling of overlong sequences. Bug demonstrated. 2020-04-15 17:05:52 +00:00
dgp e2a3a358c9 Add test demonstrating that Tcl_UtfNext accepts overlong byte sequences,
which is in conflict with what Tcl_UtfToUniChar does.
2020-04-15 16:42:32 +00:00
dgp 532ec4fa92 Collection of coverage tests for Tcl_UtfNext. 2020-04-15 14:42:41 +00:00
jan.nijtmans 7c16f9379c Merge 8.6 2020-04-15 13:18:50 +00:00
jan.nijtmans 59cfd3a159 Update latest Xcode from 11.3 to 11.4 2020-04-15 13:15:38 +00:00
jan.nijtmans 9ddfa6bdf0 More double-quotes 2020-04-15 06:35:51 +00:00
jan.nijtmans 73e4fb471c Try adding some quotes 2020-04-14 22:36:12 +00:00
dgp f0f59ae8a3 New testing command [testutfnext]. 2020-04-14 21:39:53 +00:00
dgp 7aff227882 typo 2020-04-14 21:32:22 +00:00
dgp e2b7ad1627 Fix the bad logic in Tcl_UtfNext(). 2020-04-14 21:25:33 +00:00
dgp 6df0ccf399 Replace calls of TclUtfToUniChar() with TclUtfNext() when caller has no
decoding need. Failing test string-22.14 indicates something is still not
quite right.
Now that Tcl_NumUtfChars() is not paying decoding prices, we let it spend
to properly protect against overflow. [2738427]
2020-04-14 21:16:43 +00:00
dgp 279c54dbff Create and use an optimized macro TclUtfNext() for Tcl_UtfNext(). 2020-04-14 20:18:55 +00:00
dgp e9b1c88a41 The function of Tcl_UtfNext() is to advance a pointer. There's nothing
inherent in that task that requires decoding of the characters, but the
implementation does that. Let's try a simpler solution for callers that do
not need the content decoded.
2020-04-14 20:03:33 +00:00
dgp 8f8f9400f5 merge 8.7 2020-04-14 18:06:31 +00:00
dgp 7638dbf49d merge (mark) 8.6 2020-04-14 17:57:18 +00:00
dgp 937994af1c merge 8.5 2020-04-14 17:54:44 +00:00
dgp cf28c6b1da Keep the tests consistent. 2020-04-14 17:52:14 +00:00
dgp 890dbba35a Same issue fixed for test string-20.8* 2020-04-14 17:49:27 +00:00
dgp 0d2f550658 Expose the failing tests. Fix string-20.7 by using an invalid single byte
that is stable in its meaning across different Tcl versions.
2020-04-14 17:45:34 +00:00
jan.nijtmans 0103777046 Merge 8.7 2020-04-14 16:47:32 +00:00
jan.nijtmans 5999fb9666 Missing .$noComp in string-20.8 test-case, we don't want duplicate test-case numbers. 2020-04-14 16:33:54 +00:00
jan.nijtmans d20e8e7e25 Merge 8.7 2020-04-14 16:16:48 +00:00
jan.nijtmans f5916c3bbe Merge 8.6 2020-04-14 16:11:53 +00:00
jan.nijtmans ef95b51d4c Backport encoding-15.3 test-case from 8.7, together with missing "teststringbytes" command: Usefull for testing byte strings without the need for the "identity" encoding 2020-04-14 16:02:16 +00:00
dgp 3a2ad288ca Remove test not suitable for Tcl 9. 2020-04-14 15:57:08 +00:00
dgp 6c1d8e4d62 merge 8.7 2020-04-14 15:38:08 +00:00
dgp 198630afda merge 8.6 2020-04-14 15:37:46 +00:00
jan.nijtmans 5edd5f235f Merge 8.7 2020-04-14 14:50:29 +00:00
jan.nijtmans 33aa9d5c48 Fix windows build (with older compilers) 2020-04-14 14:48:07 +00:00
sebres 3e8eb73302 partially revert [e9f5ff2f6a] - encoding-15.3 used not existing command "teststringbytes" (should be "testbytesstring"? but it is not an opposite to get same result as convert to identity, so splitted to 3 new cases illustrating the results) 2020-04-14 14:39:15 +00:00
jan.nijtmans 6a0b66fc79 Merge 8.7 2020-04-14 14:30:35 +00:00
sebres 4343a82671 amend to [e9f5ff2f6a]: added missing constraint (testbytestring) 2020-04-14 13:58:10 +00:00
jan.nijtmans 1faed93cad Merge 8.6 2020-04-14 13:02:53 +00:00
jan.nijtmans bb758346eb Add missing testConstraint definition 2020-04-14 12:30:30 +00:00
jan.nijtmans a314c32836 Add test-case for bug [c61818e4c9] 2020-04-14 11:59:02 +00:00
jan.nijtmans b1098f9b9e Don't use 'identiy' encoding in test-cases any more! 2020-04-14 10:55:04 +00:00
jan.nijtmans e59db7e00e Merge 8.6 2020-04-14 10:17:31 +00:00
jan.nijtmans 920063dce7 merge-mark 2020-04-14 09:43:44 +00:00
jan.nijtmans fc83219563 Backport test-cases from 8.6 2020-04-14 09:38:30 +00:00
jan.nijtmans f4e0eafe2c Fix expecations and test-cases, according to expectations in latest core-8-6-branch (before this series of fixes). TODO: discussion on [1b1f5f0b53], how to handle invalid 4-byte sequences, which - in fact - are proper UTF-8) 2020-04-14 08:49:34 +00:00
jan.nijtmans 3aca2a1af1 Fix unit-test, change expectations according to current 8.6 branch (not handling [1b1f5f0b53] yet, doing that in separate branch) 2020-04-14 08:44:18 +00:00
dgp aeab67f4dc Create separate tables to serve Tcl_UtfPrev and Tcl_UtfComplete. 2020-04-14 00:09:06 +00:00
dgp 5d9fa3c9db Merge 8.5. Failing tests highlight ticket [1b1f5f0b53]. 2020-04-13 21:36:12 +00:00
dgp b7b6ab2719 test numbering 2020-04-13 21:18:21 +00:00
dgp c993ec6fa1 [c61818e4c9] Fix regression in Tcl_UtfPrev from 2001. Many tests. 2020-04-13 19:45:49 +00:00
dgp d7f2c3aaa4 Improve the precision of the Tcl_UtfPrev documentation. 2020-04-13 19:39:39 +00:00
dgp 4214a568d4 Make the comments describing Tcl_UtfPrev more complete and precise. 2020-04-13 18:42:09 +00:00
dgp 01fa998afe Repair tests to expect the right thing. 2020-04-13 16:57:15 +00:00
dgp ef4ed624ca merge 8.5 2020-04-13 16:52:53 +00:00
dgp ff42448124 [a7f685a181] Eliminate botched call of Tcl_UtfPrev. 2020-04-13 16:51:34 +00:00
dgp 7110b5a18c New test demonstrating Tcl_StringCaseMatch is botched in its use of
Tcl_UtfPrev.  It doesn't consider multi-byte characters at all, let alone
anything malformed. Good thing the call isn't needed at all.
2020-04-13 16:44:07 +00:00
dgp 2b0e60f789 merge 8.5 2020-04-13 15:02:30 +00:00
dgp 9b529e0539 Known bug test string-22.14 is not so hard to fix. 2020-04-13 15:01:38 +00:00
dgp ea5d755488 A NUL byte cannot be mistaken for a trail byte. 2020-04-13 14:30:49 +00:00
dgp f5a417ed5c merge 8.5 2020-04-13 14:29:18 +00:00
dgp 5ca0fff784 TclTrim() can also demand NUL-terminated arguments, and be simplified. 2020-04-13 14:21:09 +00:00
dgp 787517aa7f TclTrimLeft and TclTrimRight are internal routines. They demand NUL-terminated
arguments. That's a reasonable burden to put on internal callers, and all
existing callers already meet it.
2020-04-13 13:51:50 +00:00
jan.nijtmans f3d156bf80 Merge 8.7 2020-04-13 10:05:04 +00:00
jan.nijtmans 2280b62ae3 Merge 8.7 2020-04-13 10:04:17 +00:00
jan.nijtmans 25c9da1b6d Try installing in a directory with a space in its name. 2020-04-13 09:40:53 +00:00
jan.nijtmans 527a481e1a Merge 8.7 2020-04-13 09:25:35 +00:00
jan.nijtmans 2f98c2ea4d Merge 8.6 2020-04-13 09:20:18 +00:00
jan.nijtmans 98807ade2d Add "make install" check to Travis build. sync rules.vc with versions in 8.7 and 9.0 2020-04-13 09:18:34 +00:00
dgp 3d83ad9ffd merge 8.5 2020-04-13 02:31:03 +00:00
dgp d1a1538c30 [c61818e4c9] [string trimright] robustly handle backing up over incomplete
or malformed byte sequences.
2020-04-13 02:28:24 +00:00
dgp 40effa0f8a Cherrypick partial fix. 2020-04-13 02:10:45 +00:00
dgp a7989b0e58 merge 8.5 2020-04-13 01:41:23 +00:00
dgp a8641c2da1 Another test for [string trimright] that demonstrates its own failures,
not those of Tcl_UtfPrev.
2020-04-13 01:40:18 +00:00
dgp e4426ffac8 Convert test to not directly use identity encoding. 2020-04-13 00:12:26 +00:00
dgp 901525301c added test case covering [c61818e4c9] - string trim for not valid utf-8 sequence (mistakenly considers NTS-zero char as a continuation of utf-8 pair) 2020-04-13 00:09:43 +00:00
dgp 7f8fe10801 merge 8.5 2020-04-12 23:54:30 +00:00
dgp 7d90cc50f2 Stop direct use of the identity encoding in tests. 2020-04-12 23:53:27 +00:00
dgp c878e211c9 [2006888] Backport conversion of test file to strict ASCII. ISO-8859-1
assumption is nonportable and increasingly invalid. Fossil does not like
working with files that contain invalid UTF-8 byte sequences.
2020-04-12 23:47:02 +00:00
jan.nijtmans edd76b8920 Let's test if "make install" works, for now without spaces in the path 2020-04-12 11:04:54 +00:00
dgp 1aa65236ca Repair invalid utf-8 in subst.test. 2020-04-11 22:26:30 +00:00
jan.nijtmans ae2a5363a3 Merge 8.7 2020-04-10 21:21:39 +00:00
jan.nijtmans 1e0c16c4db merge-mark 2020-04-10 21:00:44 +00:00
jan.nijtmans 67af6004fc Only set MODULE_INSTALL_DIR once in UNIX makefile .... 2020-04-10 20:57:00 +00:00
jan.nijtmans a763531949 Merge 8.7 2020-04-10 15:22:40 +00:00
jan.nijtmans b22489dc5a Merge 8.6 2020-04-10 14:44:45 +00:00
jan.nijtmans 9e182b4c49 Fix determination of TCL_PACKAGE_PATH if it contains multiple directories, and at least one of them contains a space. 2020-04-10 14:43:32 +00:00
jan.nijtmans 50dd457a4c Merge 8.6 2020-04-10 13:02:10 +00:00
jan.nijtmans 61e8620f86 re-generate UNIX configure script 2020-04-10 12:25:07 +00:00
jan.nijtmans 2d1dce6328 Introduce MODULE_INSTALL_DIR in make/nmake files, for compiling Tcl. Less use of ".." in the makefiles.
Adapt all makefiles (unix/win) such that they can handle spaces in LIB_INSTALL_DIR/SCRIPT_INSTALL_DIR/MODULE_INSTALL_DIR, just by adding double-quotes in appropriate places.
2020-04-10 12:21:56 +00:00
jan.nijtmans b3e2e15abb Since Tcl_UtfCharComplete() now guarantees that at least 3 more bytes are available for header bytes 0x80-0xBF, check those 3 bytes first in Tcl_UtfToUniChar() before doing other checks (that might point to uninitialized memory in non-confirming extensions) 2020-04-10 12:19:13 +00:00
dgp 7f995b755b Add (disabled) test to demo the inability of [string wordstart] to handle
malformed UTF-8 sequences.
2020-04-10 00:01:52 +00:00
dgp ab39084d89 Bulletproof the calls to Tcl_UtfPrev in Tcl_AppendLimitedToObj. 2020-04-09 22:27:37 +00:00
dgp a112c1ed58 merge 8.5 2020-04-09 19:22:11 +00:00
dgp 18e7960200 Same trouble fixed the same way in Tcl_AppendElement(). 2020-04-09 19:13:48 +00:00
dgp 6b3b5aaca5 [085913c760] Fix Tcl_DStringAppendElement quoting of #. 2020-04-09 19:04:04 +00:00
dgp 54867c8feb More tests. 2020-04-09 18:41:12 +00:00
dgp 0834a2b225 Revise two tests that were detecting and forgiving a bug. 2020-04-09 17:43:16 +00:00
dgp e2b3b1edf0 Guarantee TclNeedSpace and TclFindElement have common definition of whitespace
by having both call the same routine. Create a macro form to contain
performance costs and adapt callers.
2020-04-09 17:30:06 +00:00
dgp 77dbe8dc08 [afa4b28153] Correct TclNeedSpace handling of trailing escaped space. 2020-04-09 16:24:34 +00:00
dgp 94a4f5be20 New tests demonstrating bug in TclNeedSpace(): improper handling escaped space. 2020-04-09 15:56:26 +00:00
dgp da5e6c4ffd merge the base branch 2020-04-08 18:07:56 +00:00
dgp 41a89c36a8 Cherry pick the [string trim] changes. 2020-04-08 18:07:07 +00:00
dgp a0961e9436 Apply better bug fix that does not create new bugs this time. 2020-04-08 17:31:58 +00:00
dgp ac0e8526f0 Restore the original Tcl_UtfPrev routine. Fails a different set of tests.
Many fewer.
2020-04-08 16:43:09 +00:00
dgp ac03c44f43 more tests 2020-04-08 14:09:48 +00:00
jan.nijtmans 744ac0e8e6 Merge 8.7 2020-04-08 09:44:52 +00:00
jan.nijtmans 54adbbe05c Merge 8.7 2020-04-08 08:11:04 +00:00
jan.nijtmans c7de8a1d22 In TCL_UTF_MAX=4 mode, string lengths are quitely different. 2020-04-08 07:57:03 +00:00
jan.nijtmans 6860390243 Teach "split", "string wordstart" and "string wordend" how to handle Unicode characters >\uFFFF, using the new utility function TclUtfToUCS4(). (Thanks, Don!). Add test-cases to prove it. 2020-04-08 07:27:50 +00:00
dgp bf7064c9ad Convert the tests to use the testing command. 2020-04-07 21:49:02 +00:00
dgp fe515177dd New testing command so we can directly demonstrate flaws. 2020-04-07 21:06:58 +00:00
dgp db1693829c Bring in the armor plated [string trim*] 2020-04-07 20:44:10 +00:00
sebres 2227dd53ff fixes [c61818e4c9] for all variants of string trim 2020-04-07 20:05:24 +00:00
sebres 8bdc1b8e32 added test case covering [c61818e4c9] - string trim for not valid utf-8 sequence (mistakenly considers NTS-zero char as a continuation of utf-8 pair) 2020-04-07 20:04:25 +00:00
dgp e3ec61b93b More tests that should continue to demo faults in Tcl_UtfPrev after
[string trimright] implementation is improved.
2020-04-07 19:52:15 +00:00
dgp 38179215a4 Set of tests demonstrating flaws in Tcl_UtfPrev (as viewed through a fragile
implementation of [string trimright]). See ticket [c61818e4c9].
2020-04-07 19:36:54 +00:00
sebres 1aea640959 closes regression in string trimright [c61818e4c9] without modifying of Tcl_UtfPrev (so certain inconsistency by Tcl_UtfPrev/TclUtfToUniChar still remains) 2020-04-07 18:27:20 +00:00
jan.nijtmans 9848eb222d Merge-mark 8.7. Also fix 2 executable flags, which shouldn't have been set. 2020-04-07 16:28:27 +00:00
jan.nijtmans bcbcbc8f9e merge-mark 2020-04-07 09:45:40 +00:00
jan.nijtmans 2558f025da Add two test-cases, regarding expectations on Tcl_UtfCharComplete()/Tcl_UtfToUniChar(). Backported from 8.7, let's keep numbering the same everywhere 2020-04-07 09:43:11 +00:00
jan.nijtmans 6e89d3d433 Merge 8.7 2020-04-06 20:50:10 +00:00
jan.nijtmans ed8749e3d8 Fix [dd010cadfb]: [string trim] mishandles surrogates 2020-04-06 20:33:35 +00:00
jan.nijtmans f47fbe763a Fix build with --enable-symbols=mem 2020-04-06 13:24:34 +00:00
jan.nijtmans fc83e1302a Merge 8.7 2020-04-06 09:34:42 +00:00
jan.nijtmans df716cead9 Make Tcl_UtfCharComplete() usable for both Tcl_UtfToUniChar() and Tcl_UtfToChar16(). Defect noticed by Don Porter. Thanks!
Add test-cases, assuring correct handling of 4-byte UTF-8 sequences.
Use "end-1", "end" and "end+1" in testcases related to Tcl_NumUtfChars(), that's more readable/maintainable than integers.
2020-04-06 09:22:18 +00:00
jan.nijtmans 2fa58f1e9f Merge 8.7 2020-04-05 20:46:06 +00:00
jan.nijtmans d4e425be85 Better use public function Tcl_GetIntForIndex() in stead of private one. 2020-04-05 20:40:46 +00:00
jan.nijtmans 34db10ac21 Merge 8.6 2020-04-05 20:36:46 +00:00
jan.nijtmans de914c0ed5 Partial fix for [31aa44375de2c87e]: Tcl_NumUtfChars regression in default 8.6 build.
This commit brings Tcl_UtfCharComplete() into agreement with Tcl_UtfToUniChar(), whether it demands 1, 3 or 4 succeeding bytes.
2020-04-05 20:28:06 +00:00
jan.nijtmans 57d80b8062 Revert test-case utf-4.10 change from previous commit: It caused the Travis build failure.
Change the testnumutfchars command to accept "end+1" as lenght, in which case it will count the ending null-byte too, as test-case 4.10 demands.
2020-04-05 20:11:49 +00:00
dgp 2bc844ee61 Fix testing command [testnumutfchars] so it cannot overrun the buffer. 2020-04-03 20:56:42 +00:00
dgp 401fb4fe4f merge 8.7 2020-04-03 14:31:54 +00:00
dgp 4e2a2de6e8 Fix broken build. 2020-04-03 14:28:23 +00:00
jan.nijtmans b586e6742c Merge 8.7 2020-04-03 09:14:38 +00:00
jan.nijtmans 3e7df06557 Simplify implementation of TclUtfToUCS4: The #undefined Tcl_UtfToUniChar() already does everything for use here (Unlike in Tcl 8.6, with has to live without TIP #542) 2020-04-03 09:13:27 +00:00
jan.nijtmans 9a6f2b0032 Merge 8.6 2020-04-03 08:50:21 +00:00
jan.nijtmans 63ec99cd74 Make sure that "Windows NT" is the only supported Windows platform. On Windows CE, no chance that Tcl 8.6 will ever run .... Windows XP is the minimum now. 2020-04-03 08:36:50 +00:00
jan.nijtmans 5bd35202c0 Merge 8.7 2020-04-03 07:39:22 +00:00
jan.nijtmans 04270bbbcf Merge 8.6 2020-04-03 07:35:49 +00:00
jan.nijtmans e60e69eac9 Update xcode 8 -> 8.3 and 9 -> 9.2 for Travis build. Install latest libtommath homebrew package without hack, this time. 2020-04-03 07:27:41 +00:00
dgp b804844729 merge 8.7 2020-04-02 23:26:47 +00:00
dgp 8cc9a5a6c4 Use new utility routine so that error characters using surrogates are
reported correctly.
2020-04-02 22:46:39 +00:00
dgp f426afea86 merge 8.6 2020-04-02 22:18:38 +00:00
dgp 381c52e801 Remove stray debug 2020-04-02 22:18:06 +00:00
dgp 6d656d1833 typo 2020-04-02 22:05:52 +00:00
dgp 2f92315df0 One more caller conversion that simplifies.
There may be other callers of TclUtfToUniChar that would be made more correct
or consistent with a similar conversion.
2020-04-02 21:29:26 +00:00
dgp c583e93403 Adapt another caller. This one had a bug when (TCL_UTF_MAX == 4) because it
was never adapted when TclUtfToUniChar change from returning 0 to returning 1
for a high surrogate.
2020-04-02 20:50:32 +00:00
dgp d429ddf40d More callers. 2020-04-02 20:36:04 +00:00
dgp fbf2a3255b New utility routine TclUtfToUCS4() to contain some complexity. Two callers adapted. 2020-04-02 20:18:52 +00:00
sebres a9032c6dac merge 8.7 2020-04-02 14:41:45 +00:00
sebres 4518522d28 merge 8.6 2020-04-02 14:18:21 +00:00
sebres 39859a5aca merge bug-f583715154-v2: added tests covering [f583715154] and few other RC similar situations around socket thread transfer (note thread constraint) 2020-04-02 14:12:30 +00:00
dgp f8715bf730 merge 8.7 2020-04-01 20:20:49 +00:00
dgp a5117fe2c3 Prevent a binary read appending to a non-bytes value. 2020-04-01 20:14:40 +00:00
dgp 6bce59a249 merge 8.7 2020-04-01 19:22:59 +00:00
dgp bf0697812e Use TclGetBytesFromObj to check that all commands and public routines that
expect bytes as arguments get what they expect.
2020-04-01 19:09:27 +00:00
dgp ea2baff446 Use TclGetBytesFromObj to check that [zipfs mount_data] gets proper bytes argument 2020-04-01 17:22:07 +00:00
jan.nijtmans 47e4246d76 Merge 8.7 2020-04-01 13:47:43 +00:00
jan.nijtmans 0f54ec13b5 Remove variable "properByteArrayType" from tclTest.c, because it isn't used any more. 2020-04-01 13:45:33 +00:00
sebres 5f991db594 improve stability of socket*-13.2.* tests (e. g. windows compatibility, etc) 2020-04-01 13:28:34 +00:00
dgp 8ab2c9cf62 merge 8.7 2020-04-01 12:37:52 +00:00
sebres 20de65b6fc added tests covering [f583715154] and few other RC similar situations around socket thread transfer (note thread constraint) 2020-04-01 12:06:26 +00:00
dgp 14c6f5491b merge 8.6 2020-04-01 11:54:27 +00:00
dgp f394d8c0d4 fixes [f583715154] - tclUnixSock.c: introduced ThreadActionProc considering a transfer of async-connecting channel between threads; cherry-picked some prevention against invalid thread owner addressed in [815e246806] 2020-04-01 11:48:49 +00:00
jan.nijtmans ac15e0156c More Mem-Debug builds, using MSVC.
Install libtommath on MacOS, in order to assure that the built-in libtommath doesn't conflict with that.
2020-04-01 09:35:29 +00:00
dgp f8ae8cc375 Adapt [testbytestring] to use TclGetBytesFromObj, which must be in internal
stubs to make that work.
2020-04-01 05:37:15 +00:00
jan.nijtmans bc7b59b6f6 Merge 8.7 2020-03-31 21:16:45 +00:00
jan.nijtmans 0ea08dbbf2 Add enable-symbols=mem builds to Travis 2020-03-31 20:52:28 +00:00
jan.nijtmans 6a1a8526f1 Merge 8.7 2020-03-31 20:29:07 +00:00
jan.nijtmans db95c403f6 Fix a few warning-message in --enable-symbols-mem mode 2020-03-31 20:28:37 +00:00
jan.nijtmans 6d963231d6 Fix [828dda049b]: Memory faults post-TIP 557 2020-03-31 20:18:31 +00:00
sebres a43b4a80fa fixes [f583715154] - tclUnixSock.c: introduced ThreadActionProc considering a transfer of async-connecting channel between threads; cherry-picked some prevention against invalid thread owner addressed in [815e246806] 2020-03-31 20:04:53 +00:00
dgp e266daa43e close fork 2020-03-31 16:22:22 +00:00
dgp 6e29f3da25 Missed one int -> size_t in the merge. 2020-03-31 16:21:11 +00:00
jan.nijtmans 50737b35c5 Merge 8.7 2020-03-31 16:19:08 +00:00
jan.nijtmans 7ecd2974be Merge 8.6 2020-03-31 16:15:16 +00:00
dgp 449b68a777 merge 8.7 2020-03-31 16:09:38 +00:00
jan.nijtmans 28b6f603a9 Fix (harmess) gcc warning, noted on Ubuntu 2020-03-31 16:08:24 +00:00
dgp 5214ebc44f merge 8.6 2020-03-31 16:04:05 +00:00
dgp dfcc6b3a0e [b8e82d293b] Restrict the options of [binary encode uuencode] to values that
will not prevent ability of [binary decode uuencode] to decode the result.
2020-03-31 15:59:35 +00:00
dgp 7240c45f57 Tweaks 2020-03-31 15:44:08 +00:00
dgp 67934ac333 Update docs to describe these changes. 2020-03-31 15:39:15 +00:00
dgp 2df9142617 Retrict -wrapchar values to those that can be decoded. 2020-03-31 15:20:25 +00:00
jan.nijtmans ad15c7af55 Merge 8.7 2020-03-31 11:03:42 +00:00
jan.nijtmans f3056f720b Merge 8.7 2020-03-31 11:02:57 +00:00
jan.nijtmans ca8e5cafd0 Merge 8.6 2020-03-31 10:46:32 +00:00
jan.nijtmans 2d5ec98631 Other suggested solution for [b8e82d293b] 2020-03-31 10:30:27 +00:00
jan.nijtmans 4258dcc3ac Remove MODULE_SCOPE function TclpSetInterfaces(), which is just empty.
Increase size of MSG structure in Cygwin Notifier: Should conform with Win32 size. Some related code cleanup.
2020-03-31 10:17:44 +00:00
jan.nijtmans 998384d149 Internal API simplifications: Don't use types like HINSTANCE/HMODULE any more, just void*. Has effect only on Win32 and Cygwin. 2020-03-31 07:09:46 +00:00
dgp c578a1e4fa merge 8.7 2020-03-30 16:08:17 +00:00
dgp 26bd764323 Merge 8.6; revise to use TclGetBytesFromObj. 2020-03-30 15:51:00 +00:00
dgp 68a12bf6aa Optimize [binary decode hex] to process bytearray without string generation
when it can.
2020-03-30 15:48:17 +00:00
jan.nijtmans 988aec3c94 Merge 8.7 2020-03-30 15:30:06 +00:00
jan.nijtmans 60d0ed0069 Initialize Tcl_UniChar's, in case we are handling surrogates (however unlikely). 2020-03-30 15:27:43 +00:00
dgp 8139a8a595 Merge 8.6, revise to use TclGetBytesFromObj. 2020-03-30 15:13:53 +00:00
dgp 987ffc2687 Optimize [binary decode uuencode] to process bytearray without string
generation when it can.
2020-03-30 15:09:40 +00:00
jan.nijtmans 3597e830be Merge 8.7 2020-03-30 13:03:14 +00:00
jan.nijtmans c0fc8c6aad Merge 8.7 2020-03-30 13:01:26 +00:00
jan.nijtmans bcfc4a29c5 Merge 8.6 2020-03-30 13:00:44 +00:00
jan.nijtmans 1d7fa6b53d genStubs.tcl: Only do an "append line" when there really is something to be done. 2020-03-30 12:59:29 +00:00
jan.nijtmans ddd4c15594 Merge 8.7 2020-03-30 12:04:49 +00:00
jan.nijtmans aa371355b1 Optimize TclStringFirst/TclStringLast: Let it return a Tcl_Obj * in stead of an int, so its callers don't need to do the conversion any more. 2020-03-30 11:37:54 +00:00
jan.nijtmans 4c5782603a Merge 8.7 2020-03-30 10:33:08 +00:00
jan.nijtmans 958d0d8617 Merge 8.7 2020-03-30 10:32:16 +00:00
jan.nijtmans 4cbd0649ef Merge 8.6 2020-03-30 10:30:30 +00:00
jan.nijtmans 97ab1046f9 tcltest.tcl: Only adapt "filesMade" variable if the file to be removed is actually found.
tcltest 2.5.2 -> 2.5.3
2020-03-30 10:25:44 +00:00
dgp 9e82ddc739 Adjustments for easier merging. 2020-03-30 03:23:26 +00:00
dgp 2a007ddb50 Change of variables. 2020-03-29 22:10:28 +00:00
dgp ce51daca48 Let the private, internal TclGetBytesFromObj handle size_t lengths 2020-03-29 21:47:12 +00:00
jan.nijtmans 712dea6f45 Merge 8.7 2020-03-29 19:42:25 +00:00
dgp 5da270361f merge 8.7 2020-03-28 19:59:18 +00:00
dgp 7a81cc7b2b merge 8.6 2020-03-28 19:39:42 +00:00
dgp e7e6720ba4 Add a test for fixed bug. 2020-03-28 19:25:54 +00:00
dgp a32dffe303 [8edfcedfa0] [binary encode base64] build a string instead of a bytearray
whenever it might be required to get the right result.
2020-03-28 19:21:56 +00:00
dgp 65c57e8170 Make sure maxlen value does not rely on ordering of options. 2020-03-28 18:52:16 +00:00
dgp beae292420 Revise comment that was a plain lie. 2020-03-28 18:28:42 +00:00
dgp 65c59cb146 Missing error codes from decoder routines. 2020-03-28 18:23:43 +00:00
dgp 29cb05c855 Optimize base64 decoder to work on bytearrays without string generation. 2020-03-28 17:35:23 +00:00
dgp 08d3728b1d merge 8.7 2020-03-28 16:42:05 +00:00
dgp f5621cf853 merge 8.6 2020-03-28 16:33:50 +00:00
dgp c619f65f15 [ffeb2097af] Restore the standard and original practice of ignoring invalid
characters when decoding base64. Error only in -strict mode. See RFC 2045.
2020-03-28 15:35:12 +00:00
dgp 3cd192c81c Further improvement. Report invalid multi-byte characters accurately. 2020-03-27 21:52:42 +00:00
dgp 74657995c7 Improve error reporting. If codepoint looks negative, bad char is reported
as REPLACEMENT CHARACTER, which is wrong, therefore not helpful.
2020-03-27 21:21:28 +00:00
jan.nijtmans 329bb2e68d Merge 8.7 2020-03-27 21:11:01 +00:00
jan.nijtmans d58bfaf6f3 Merge 8.7 2020-03-27 21:07:58 +00:00
jan.nijtmans a30671934a Merge 8.6 2020-03-27 21:06:19 +00:00
jan.nijtmans 250116c887 Fix [767e070d35]: Tcl_GetRange and Tcl_GetUniChar do not validate index inputs. Backported from 8.7 (where it already was fixed as part of TIP #542 implementation) 2020-03-27 20:58:33 +00:00
dgp 2b68efb386 Repair bad test labels. 2020-03-27 18:02:02 +00:00
jan.nijtmans c3948aeea7 Merge 8.7 2020-03-27 16:28:50 +00:00
jan.nijtmans afa1204d07 Merge 8.6 2020-03-27 16:28:03 +00:00
jan.nijtmans 0a00f85f84 Looks like this little hack is no longer necessary on current 32-bit Cygwin. 2020-03-27 16:24:30 +00:00
jan.nijtmans 8c16a043c1 Merge 8.7 2020-03-27 12:07:00 +00:00
jan.nijtmans 82b83bb7a6 Merge 8.6 2020-03-27 12:06:38 +00:00
jan.nijtmans 5c2d281edc Fix harmless gcc warning, when compiling on Linux 2020-03-27 12:05:39 +00:00
jan.nijtmans 9a007031fa Fix [767e070d35]: Tcl_GetRange and Tcl_GetUniChar do not validate index inputs 2020-03-27 10:33:08 +00:00
jan.nijtmans c8658d80cf Merge 8.7 2020-03-26 08:36:38 +00:00
jan.nijtmans 6eaa73e23c Merge 8.7 2020-03-25 17:07:30 +00:00
jan.nijtmans 841855aced Merge 8.6 2020-03-25 17:06:52 +00:00
jan.nijtmans 4005a8776e Little typo 2020-03-25 17:06:03 +00:00
jan.nijtmans b6f9e488f5 Fix for windows build (Windows doesn't have "%z" printf modifier) 2020-03-25 15:37:25 +00:00
jan.nijtmans a514fc0bbb Merge 8.7 2020-03-25 15:15:22 +00:00
jan.nijtmans b86333ba01 Merge 8.6 2020-03-25 15:03:06 +00:00
jan.nijtmans 6f438769bc Follow-up to [a9f61c48906b66f8]: Fill UNIX TclIntPlatDecls stub entry 5 with same entry from win32. Can be simplified further in 8.7/9.0. 2020-03-25 14:48:44 +00:00
jan.nijtmans f00ce28128 Merge 8.7 2020-03-24 13:40:10 +00:00
jan.nijtmans 652e994c73 Merge 8.6 2020-03-24 13:34:44 +00:00
jan.nijtmans 9acd2dacaa Spurious test-failure on Travis OSX 2020-03-24 13:31:42 +00:00
jan.nijtmans fa618f393f Merge 8.7.
Remove Tcl_MacOSXOpenBundleResources() completely.
2020-03-24 11:13:27 +00:00
jan.nijtmans 3f3b063fc1 Merge 8.6. If compiled with -DTCL_NO_DEPRECATED, remove Tcl_MacOSXOpenBundleResources() completely 2020-03-24 10:59:21 +00:00
jan.nijtmans 6a93c7f370 MacOS: Make Tcl_MacOSXOpenBundleResources() a macro calling Tcl_MacOSXOpenVersionedBundleResources: One more stub entry which can be removed in Tcl 9.0 2020-03-24 10:42:49 +00:00
jan.nijtmans 26039c20d8 Fill UNIX TclIntPlatDecls stub entries 15 up to 19 and 22 with same functions as for win32. Not used in 8.6 yet.
This is a step on the way, making the TclIntPlatDecls stub table the same for all platforms in 9.0
2020-03-24 10:34:48 +00:00
jan.nijtmans c33fbde8df Merge 8.7 2020-03-22 21:30:39 +00:00
jan.nijtmans ac5b43b095 Merge 8.7 2020-03-22 21:28:01 +00:00
jan.nijtmans e1c726c819 Merge 8.6 2020-03-22 21:24:31 +00:00
jan.nijtmans 833501b319 Even more uppercase HEX representations in source-code 2020-03-22 21:16:21 +00:00
jan.nijtmans a2aaaad84a Merge 8.7 2020-03-20 17:17:06 +00:00
jan.nijtmans a6d6075761 Resolve gcc compiler warnings, only on 32-bit builds (gcc-7) 2020-03-20 17:16:28 +00:00
jan.nijtmans d6150b3cd3 Merge 8.7 2020-03-20 12:59:42 +00:00
dgp 39b03cdb38 merge 8.7 2020-03-18 22:03:17 +00:00
dgp bb70971aa9 Improve the standard error message for nonbyte arguments. 2020-03-18 20:48:32 +00:00
jan.nijtmans d7364d1f4b Merge 8.7 2020-03-18 14:06:17 +00:00
jan.nijtmans 176431f584 Merge 8.6 2020-03-18 13:54:06 +00:00
jan.nijtmans af7fa225c1 More uppercase HEX representations in source-code. 2020-03-18 12:51:30 +00:00
jan.nijtmans d5d003595a Merge 8.7 2020-03-17 16:56:50 +00:00
jan.nijtmans 303fbfc4be Merge 8.7 2020-03-17 16:48:07 +00:00
jan.nijtmans ae243c85b7 Merge 8.6 2020-03-17 16:45:47 +00:00
jan.nijtmans 27c27e941a Merge 8.5. Mainly add Unicode 13 new plane 3 characters to the internal Unicode tables. Not used in 8.6 yet. 2020-03-17 16:35:51 +00:00
jan.nijtmans 50eee151a9 Unicode 13 has a new range of characters from 0x30000 to 0x3134A, so generate those in the tables too.
Add one reserved stub entry (Backported from 8.6)
2020-03-17 16:19:17 +00:00
dgp 77bbf50dd0 merge 8.7 2020-03-17 01:20:01 +00:00
dgp cb291b4c47 a few more 2020-03-17 01:03:05 +00:00
dgp dc763386a9 TIP 569 - remove lint comments 2020-03-17 01:01:25 +00:00
jan.nijtmans adc1fbb1f1 Merge 8.7 2020-03-16 15:28:26 +00:00
jan.nijtmans a4232f298f Complete implementation. Let's take some time for testing. 2020-03-16 14:51:06 +00:00
jan.nijtmans da292a768b More WIP 2020-03-16 13:38:05 +00:00
jan.nijtmans b083441639 Further simply TclIndexEncode(), and fix range checks. 2020-03-16 09:07:42 +00:00
jan.nijtmans bc266f9d91 Simplify TclIndexEncode(). Range checks not 100% correct yet. More WIP. 2020-03-15 23:44:03 +00:00
jan.nijtmans 23bd4dbf08 merge-mark 2020-03-15 22:24:01 +00:00
jan.nijtmans 07cfb2190f Add one more reserved stub entry, most likely will be Tcl_GetBytesFromObj() in Tcl 8.7. 2020-03-15 22:21:27 +00:00
jan.nijtmans 9c405af577 Merge 8.7 2020-03-15 12:21:21 +00:00
jan.nijtmans 27ee10bdf0 Merge 8.6. Also fix build with -DTCL_NO_DEPRECATED (which was also the cause of the "master" build failure) 2020-03-15 12:11:51 +00:00
jan.nijtmans 13be49f585 Make ourEnviron type (techar **) not (char **), so we need less type-casts. 2020-03-15 12:03:21 +00:00
jan.nijtmans 2632f2d529 merge-mark 2020-03-14 22:08:33 +00:00
jan.nijtmans ad02769933 Merge 8.6 2020-03-14 22:07:25 +00:00
jan.nijtmans bb05d544ee Fix one wrong type-cast (only causing warning, nothing serious) 2020-03-14 22:06:08 +00:00
jan.nijtmans a98d79021f Merge 8.7 2020-03-14 22:02:00 +00:00
jan.nijtmans 6751485187 Merge 8.6 2020-03-14 21:52:01 +00:00
jan.nijtmans 7070324787 Convert many test-cases to modern test syntax 2020-03-14 21:21:10 +00:00
jan.nijtmans 9b8409d9e9 Fix [8f89e2e059aafa1c]: Windows: environment is not reflected properly (special characters). Thanks to sebres for patch and test-case! 2020-03-14 21:02:12 +00:00
jan.nijtmans 8a2823e5f8 WIP: Reform internal representation of "end-offset" type, so it can be used for "integer-integer" as well. 2020-03-13 23:32:36 +00:00
dgp e3e05a2cf9 Need declaration too. 2020-03-13 18:55:10 +00:00
dgp fdfd0ad0b6 New internal routine TclGetBytesFromObj().
Aimed to become public, see TIP 568 in progress.
2020-03-13 18:32:45 +00:00
jan.nijtmans 91484ba1c9 Merge 8.6.
Code review: Tcl 8.6 doesn't (need to) build with -DUNICODE -D_UNICODE any more, so things can be simplified. Good work, thanks!
2020-03-13 14:45:34 +00:00
sebres 72a735d089 fix back-ported from tclSE (with several modifications due to conflicts and compat reasons) 2020-03-13 13:08:15 +00:00
sebres 86581b5325 env.test: added test for windows illustrating bug [8f89e2e059] - loss of multi-byte chars in environment if single-byte system encoding used 2020-03-13 13:06:53 +00:00
jan.nijtmans 49b167a388 Merge 8.7 2020-03-13 11:12:33 +00:00
jan.nijtmans f7550ff059 Merge 8.6 2020-03-13 11:03:14 +00:00
jan.nijtmans 068df4904b reformat assemble-15.* test-cases 2020-03-13 11:01:34 +00:00
dgp 442f4cfd68 Minimal fix for crash bug. 2020-03-12 20:54:09 +00:00
dgp bebe16e96c Merge new tests. Reveals crash in Tcl 8.7 implementation. 2020-03-12 17:38:30 +00:00
dgp 5d52fb6a3f Renumber tests to account for later releases. 2020-03-12 17:37:16 +00:00
dgp 46e5b17ffb Add some testing of Tcl_SetByteArrayLength(). 2020-03-12 17:29:33 +00:00
sebres 2ded4dcac5 merge 8.7 (lpop SF fix) 2020-03-11 15:55:31 +00:00
sebres e13a8e77f2 fixes segfault [234d6c811d]: "lpop" on empty list variable without index + new test case 2020-03-11 15:51:06 +00:00
sebres 7cf28a1e23 close [234d6c811d]: fixed segfault on empty list variable by "lpop" without index 2020-03-11 15:48:07 +00:00
sebres 14fd6b059e lpop.test: added test illustrating segfault in [234d6c811d] (and small review - stability of tests depending on outside circumstances, e. g. in case of -singleproc) 2020-03-11 15:33:28 +00:00
jan.nijtmans 72f5a0b42f Put back dummy Tcl_DriverCloseProc/Tcl_DriverSeekProc (just defined as "void"). Needed to make Tk compile with C++ against 9.0 headers. 2020-03-11 10:20:51 +00:00
jan.nijtmans 5821819beb Merge 8.7 2020-03-10 15:25:14 +00:00
jan.nijtmans 745e45d119 Merge 8.7 2020-03-10 13:58:07 +00:00
jan.nijtmans f13b7726c4 Fix Windows build, broken by [d5175f6050e308f4] 2020-03-10 13:51:25 +00:00
dgp f336629f65 merge 8.7 2020-03-09 16:34:46 +00:00
dgp 065483ce8b Mac fix 2020-03-09 16:24:52 +00:00
dgp 683144e7f0 TCL_UNUSED for win sources. 2020-03-09 16:13:11 +00:00
dgp 8816b1a873 TCL_UNUSED in the unix sources. 2020-03-09 15:45:52 +00:00
dgp 1baa16d30d need internal header now. 2020-03-09 14:43:18 +00:00
dgp bd4dfc850e Bring TCL_UNUSED to macosx sources. 2020-03-09 14:40:27 +00:00
dgp a5406cf5c0 more 2020-03-09 14:34:27 +00:00
dgp a8870a4fae More 2020-03-09 13:15:02 +00:00
jan.nijtmans 254b4fa35f Merge 8.7 2020-03-09 13:08:33 +00:00
jan.nijtmans 4f3c0fa94f Use more uppercase hex (e.g. 0xFF) in stead of lowercase (0xff) consistantly. 2020-03-09 12:49:41 +00:00
dgp 42e6e9b167 More TCL_UNUSED 2020-03-09 12:31:47 +00:00
dgp 085094bd87 More TCL_UNUSED. 2020-03-08 13:58:07 +00:00
jan.nijtmans 24cfa12d40 Merge 8.7 2020-03-07 18:31:45 +00:00
jan.nijtmans 89b0bdb882 Move TCL_UNUSED to tclInt.h, so we can still deprecate JOIN() 2020-03-07 18:25:27 +00:00
jan.nijtmans 2c34ced219 Merge 8.7 2020-03-07 16:03:16 +00:00
jan.nijtmans 467d03dbc9 Change (interal) function signature of TclpAlloc/TclpRealloc/TclpFree, using (void *) in stead of (char *) 2020-03-07 15:55:35 +00:00
dgp b8ffa18096 Unused arguments in the OO source code files. 2020-03-07 00:41:42 +00:00
dgp fa6d9198c0 more 2020-03-06 23:44:14 +00:00
dgp c4a1ea568e merge 8.7 2020-03-06 21:33:24 +00:00
dgp 81e31a16d8 More unused arguments through the IO code. 2020-03-06 21:22:28 +00:00
dgp a619fad748 more 2020-03-06 20:57:28 +00:00
dgp d599e21dbc more unused arguments 2020-03-06 20:46:51 +00:00
dgp b996359ed1 merge 8.6 2020-03-06 20:34:25 +00:00
dgp 2cd124a28e Remove SetIndexFromAny(), a useless routine that can only be reached via
unsupported shenanigans.
2020-03-06 20:32:47 +00:00
dgp b88a8f3dd9 more 2020-03-06 20:23:01 +00:00
dgp 9bfe372421 more 2020-03-06 20:15:24 +00:00
dgp e72ebf58a1 (no comment) 2020-03-06 20:01:56 +00:00
dgp 3f741fda03 (no comment) 2020-03-06 19:58:14 +00:00
dgp e870d650fd more unused arguments 2020-03-06 19:29:59 +00:00
dgp 3db7dab605 more of the same 2020-03-06 18:31:49 +00:00
dgp e84e229fd5 More TCL_UNUSED(). 2020-03-06 18:02:25 +00:00
dgp c0a030fa0b More TCL_UNUSED deployment 2020-03-06 16:42:07 +00:00
dgp 62a2883b43 More TCL_UNUSED deployment. 2020-03-06 14:41:02 +00:00
dgp d38d34e937 Untangle some MEM_DEBUG ifdeffery. 2020-03-06 13:55:07 +00:00
dgp 39956f875b More deployment of TCL_UNUSED. (Travis appears happy with it). 2020-03-06 13:45:00 +00:00
dgp 1e155ca669 merge 8.7 2020-03-05 19:22:45 +00:00
dgp 02ceb3f3a4 Have to move the JOIN() macro out of deprecation for this TCL_UNUSED.
Alternatives welcome.
2020-03-05 19:17:34 +00:00
dgp 39cde7c069 Merge TCL_UNUSED to dev branches for full Travis testing as a tool to arrest
the undesirable explosion of "(void)dummy" through the codebase.
2020-03-05 19:09:15 +00:00
jan.nijtmans 2a68cc554f Merge 8.7 2020-03-05 14:44:51 +00:00
jan.nijtmans f5a3d0b135 Merge 8.6 2020-03-05 14:42:36 +00:00
jan.nijtmans 9cc797aba7 Update to Unicode-13 2020-03-05 14:39:23 +00:00
jan.nijtmans 36d1b8447c Update all internal tables to Unicode 13.
(while on it) sync tclWinDdde.c and tclWinReg.c, making it 100% identical to other branches.
2020-03-05 14:03:59 +00:00
jan.nijtmans 7f9190f5db Merge 8.7 2020-03-05 11:56:24 +00:00
jan.nijtmans 6daca5d73a Merge 8.6 2020-03-05 11:48:21 +00:00
jan.nijtmans 38aabeeca8 Move setting of interpreter error-message from tclUnixSock.c to tclIO.c, since the same should be done for all channel types. (Thanks, Don, for noticing this!)
Also, ENOTCONN for a half-close should not be fatal, just a EINVAL, when doing it as part of a full close. See: [65c9cd1534]
2020-03-05 11:32:43 +00:00
dgp 2328e4a58e merge 8.7 2020-03-04 21:05:02 +00:00
dgp 0bee61f5cd merge 8.6 2020-03-04 21:00:44 +00:00
dgp dd7b6e2245 The close routines of the "tcp" channel type were failing to record error
messages and error codes.
2020-03-04 20:50:38 +00:00
jan.nijtmans d9f1c65e5b Merge 8.7 2020-03-04 16:18:04 +00:00
jan.nijtmans 9d172afc1b Merge 8.6 2020-03-04 16:17:26 +00:00
jan.nijtmans 167bc4d8e7 Some more gcc(-9) warnings 2020-03-04 16:16:30 +00:00
jan.nijtmans cf1d1dfbd9 Merge 8.7 2020-03-04 15:56:32 +00:00
jan.nijtmans 1ad756567b Merge 8.6 2020-03-04 15:55:38 +00:00
jan.nijtmans 3e92ec87df Fix some gcc(-9) warnings caused by -Wcast-function-type 2020-03-04 15:52:50 +00:00
jan.nijtmans 026ddaafb8 Merge 8.7.
Remove documentation and typedefs related to old channel types.
2020-03-04 14:33:19 +00:00
jan.nijtmans f67e087180 Merge 8.6 2020-03-04 13:59:36 +00:00
jan.nijtmans 8defb7d10b Implement WideSeekProc() for all channels which have a SeekProc(). Implement Close2Proc() for all channels, as minimal wrapper around CloseProc().
Backported (with comments) and adapted from core-8-branch.
2020-03-04 13:42:42 +00:00
dgp 71e8c4c72b Create a new macro to deal with unused arguments so we can silence compiler
warnings without the need of an explosion of noise lines "(void)dummy"
2020-03-02 17:08:01 +00:00
jan.nijtmans c3d90415a2 merge-mark 2020-03-02 11:31:06 +00:00
jan.nijtmans ac5f46d270 Don't generate "deprecated" warning for Tcl_Close(), since only the stub entry is deprecated. Will be replaced by macro. 2020-03-02 11:30:05 +00:00
jan.nijtmans f4a42dff01 re-generate configure script (option -Wc++-compat was still missing) 2020-03-01 12:35:04 +00:00
jan.nijtmans 0846f65993 Merge 8.7 2020-02-29 21:44:11 +00:00
jan.nijtmans 520e0c9938 Better error-message in case of "index out of range", mentioning the actual index which was out of range. Also, use the same error-code, because the underlying cause is all the same. 2020-02-29 21:42:18 +00:00
jan.nijtmans f30e9cfd65 Merge-mark 2020-02-28 14:24:30 +00:00
jan.nijtmans 4cca9ff9e3 Minor TIP #562 fix: Missing #endif, results in (harmless) compiler warning when compiling with -DTCL_NO_DEPRECATED. 2020-02-28 14:23:34 +00:00
jan.nijtmans 35cf0ba42a Merge 8.7 2020-02-28 14:07:17 +00:00
jan.nijtmans 57b1d9531c Implement TIP #562: Deprecate channel types 1-4 2020-02-28 13:13:07 +00:00
jan.nijtmans 4a07460db0 Implement TIP #497: Full support for Unicode planes 1-16. 2020-02-28 12:58:54 +00:00
jan.nijtmans 4af90e27e5 Merge 8.7 2020-02-28 12:46:42 +00:00
jan.nijtmans 52e543c569 Implement TIP #557: C++ support for Tcl 2020-02-28 12:06:07 +00:00
jan.nijtmans 63994a73e3 Merge 8.7 2020-02-26 14:16:49 +00:00
jan.nijtmans f9ddbba3d6 Merge 8.6 2020-02-26 14:05:44 +00:00
jan.nijtmans a4154b246b Resolve a number of shadowed variables (discovered by compiling with -Wshadow) 2020-02-26 13:45:40 +00:00
jan.nijtmans 24a416ad38 Merge 8.7 2020-02-26 10:58:01 +00:00
jan.nijtmans 86d269ab0a Merge 8.7 2020-02-26 08:14:56 +00:00
jan.nijtmans 5c61b2bbdc Merge 8.6 2020-02-26 08:04:34 +00:00
jan.nijtmans 14276a3feb Make tclWinDde.c compilable with C++ compiler. dde -> 1.4.3
Make tclWinReg.c compilable with C++ compiler. registry -> 1.3.5
2020-02-26 07:58:38 +00:00
jan.nijtmans 9eeda3feb2 Make tclWinDde.c compilable with C++ compiler. dde -> 1.4.3
Make tclWinReg.c compilable with C++ compiler. registry -> 1.3.5
2020-02-26 07:51:52 +00:00
dkf 1eeefb073a Ensure that we release the correct references when an error occurs during setting a class's superclasses 2020-02-25 15:07:51 +00:00
jan.nijtmans f0ead2e309 merge-mark 2020-02-24 13:16:53 +00:00
jan.nijtmans 0c37363fff Correct ANSI prototype of TclNokia770Doubles() 2020-02-24 13:07:13 +00:00
jan.nijtmans 912dd9a997 Merge 8.7 2020-02-24 12:19:29 +00:00
jan.nijtmans c7814dd59f Merge 8.6 2020-02-24 12:18:31 +00:00
jan.nijtmans 730152b608 Merge 8.5 2020-02-24 12:01:04 +00:00
jan.nijtmans 904ba06b0a Add -Wpointer-arith warning to C-compile. Fix gcc(-9) warning. 2020-02-24 11:07:18 +00:00
dkf fc3487d2b2 typo fix 2020-02-22 12:34:14 +00:00
jan.nijtmans 5eb39e3973 Fix [da235271f1]: [info hostname] on Windows is limited to max NetBIOS name length 2020-02-21 09:25:03 +00:00
jan.nijtmans 2cce06805f Merge 8.7 2020-02-21 08:55:02 +00:00
jan.nijtmans 5c1a56d36b Merge 8.6 2020-02-21 08:52:54 +00:00
jan.nijtmans 1fb8e115c4 Restore compatibility with older (mingw) Makefiles. Fix for [4b5deacc70]: undefined reference to `Tcl_SetStartupScript'. 2020-02-21 08:46:15 +00:00
sebres e2bcebca79 merge 8.5 2020-02-17 14:52:54 +00:00
sebres 471091f55a windows: avoid create of legacy error-vars on init phase (in fresh created interpreter) - no tcl_pkgPath variable on windows 2020-02-17 14:50:45 +00:00
jan.nijtmans 958180f361 Merge-mark 2020-02-14 09:23:42 +00:00
jan.nijtmans 5c380477df (cherry-pick): Fix travis build, due to the change of Windows image. 2020-02-14 09:21:44 +00:00
jan.nijtmans 3929a73ee0 Merge trunk 2020-02-13 22:24:07 +00:00
jan.nijtmans 8c3eb78cf7 Merge 8.7 2020-02-13 22:06:10 +00:00
jan.nijtmans 541f9afd42 Merge 8.7 2020-02-12 13:26:52 +00:00
jan.nijtmans 3d8bc1b9ce Merge 8.7 2020-02-12 13:25:50 +00:00
jan.nijtmans e7306ac7d8 Merge 8.7 2020-02-12 13:25:11 +00:00
jan.nijtmans 30c32418f6 Merge 8.7 2020-02-12 13:19:35 +00:00
jan.nijtmans 73cc9cd62f Merge 8.6 2020-02-12 13:18:27 +00:00
jan.nijtmans c11eec4d5d Fix travis build, due to the change of Windows image. 2020-02-12 13:12:08 +00:00
jan.nijtmans 0f3e54cedb Move build from xenial to bionic. Add Xcode11.3 build for MacOS (now that we are on it anyway) 2020-02-11 16:38:45 +00:00
jan.nijtmans 2a89abd783 Attempt to fix travis build. See: [https://travis-ci.community/t/vcvarsall-bat-freezes-on-new-1809-based-windows-images/7098] 2020-02-11 15:59:38 +00:00
jan.nijtmans 45f6edc21e Update all tables to [http://unicode.org/versions/Unicode13.0.0/|Unicode 13] (to be released March 10, 2020) 2020-02-11 13:31:32 +00:00
jan.nijtmans 55b841549a merge-mark 2020-02-05 16:41:25 +00:00
jan.nijtmans b1791f0b92 (cherry-pick): It appears that inttypes.h was introduced in Visual Studio 2013 2020-02-05 16:40:19 +00:00
jan.nijtmans 802d340dad Merge 8.7 2020-02-04 11:05:57 +00:00
jan.nijtmans 517974e23b Merge 8.6 2020-02-04 11:04:28 +00:00
jan.nijtmans 6f55ec4986 Clean up some usage of DBGX: It isn't used any more on UNIX 2020-02-04 11:03:12 +00:00
jan.nijtmans 992ba81694 Few more DBGX cleanups 2020-02-04 10:40:27 +00:00
jan.nijtmans 2345630acb Adapt rules.vc too 2020-02-04 09:52:22 +00:00
jan.nijtmans 31a63a3247 Death to DBGX 2020-02-04 09:46:33 +00:00
jan.nijtmans 33f3ebf7ec Merge 8.7 2020-02-04 08:28:49 +00:00
jan.nijtmans 225b4e7cc0 It appears that inttypes.h was introduced in Visual Studio 2013 2020-02-04 08:28:07 +00:00
jan.nijtmans f2ae531f0f Oopsee 2020-02-02 22:17:50 +00:00
jan.nijtmans 4c9136763a Deprecate Tcl_Close() stub entry as well 2020-02-02 22:11:38 +00:00
jan.nijtmans 7c18228900 merge-mark 2020-02-02 16:30:35 +00:00
jan.nijtmans 4ee1ddaeaa TclInitBignumFromWide(U)Int is not used any more. 2020-02-02 16:26:36 +00:00
jan.nijtmans 108d222378 Merge 8.7 2020-02-02 15:27:13 +00:00
jan.nijtmans f06c1e0ba4 Fix conflict between (unpatched) tommath.h and tcl.h. See also [https://github.com/libtom/libtommath/pull/473] 2020-02-02 15:24:58 +00:00
jan.nijtmans bfad7e731e Make Tcl_ChannelCloseProc() deprecated too. Implement close2Proc and wideSeekProc for all internal channel types. 2020-01-31 14:58:07 +00:00
jan.nijtmans ff4989d192 Merge 8.7 2020-01-31 08:00:22 +00:00
jan.nijtmans d6e3843b5a Merge 8.7 2020-01-31 07:56:03 +00:00
jan.nijtmans cac60f04fc Add 64-bit seek to the ZipChannel 2020-01-31 07:54:59 +00:00
jan.nijtmans 75b437e696 Merge 8.7 2020-01-30 16:08:14 +00:00
sebres 58232a8750 merge 8.7 2020-01-30 15:47:12 +00:00
sebres 944694962a merge 8.6 2020-01-30 15:44:23 +00:00
sebres 61962d02f5 merge 8.5 2020-01-30 15:39:56 +00:00
sebres f05d9af86d introduces new command and constraint testWithLimit (as include tests/internals.tcl) that can be used to test a code under restricted circumstances (e.g. limited address space) 2020-01-30 15:32:51 +00:00
jan.nijtmans 7fa698c624 Merge 8.7 2020-01-30 13:54:51 +00:00
jan.nijtmans c8c1298bb3 Merge 8.6 2020-01-30 13:54:01 +00:00
jan.nijtmans f58b90fb02 Reset WSAGetLastError()/errno always, even when this error is not reported due to the earlier error. 2020-01-30 13:52:58 +00:00
jan.nijtmans 29b9dd2e6f Merge 8.7 2020-01-30 13:27:57 +00:00
jan.nijtmans 64fdac4aec Merge 8.6 2020-01-30 13:21:38 +00:00
jan.nijtmans ee66478056 Simplify the use of HaveVersion() in Channel handling. Nothing functional, only code clean-up. 2020-01-30 13:04:12 +00:00
jan.nijtmans 56f2fc4f04 According to the [https://core.tcl-lang.org/tcl/artifact?udc=1&ln=469-471&name=5ac7827cd282bbda|documentation], close2Proc(...., 0) should operate the same as closeProc(). Fix the UNIX/Windows socket channels to behave like that. 2020-01-30 13:00:12 +00:00
sebres 782689d5eb small amend (comments only) 2020-01-29 17:02:16 +00:00
sebres 57321fa4a4 better test covering [5d989f9ba3] - limiting AS considers normal memory usage of process;
prepared for new common test-facility (test-with-limit) for resticted execution
2020-01-29 16:50:56 +00:00
jan.nijtmans f85de8a933 Deprecate channel types 1-4 2020-01-29 15:52:02 +00:00
jan.nijtmans 9d8c640e00 Merge 8.7 2020-01-29 13:03:20 +00:00
jan.nijtmans 667676a551 Fix compiler warnings on Cygwin when using -DTCL_NO_DEPRECATED
Use TCL_CHANNEL_VERSION_5 in stead of TCL_CHANNEL_VERSION_3 in tclZlib.c
2020-01-29 13:02:06 +00:00
jan.nijtmans 2a7ba6468e Merge 8.7 2020-01-27 10:33:49 +00:00
jan.nijtmans 7c48658c9f Fix install-libraries-zipfs-static target: On Windows INSTALL_DATA makes no sense. Reported by René Zaumseil. Thanks! 2020-01-27 10:31:36 +00:00
jan.nijtmans 0ebc58865f merge-mark 2020-01-25 14:53:02 +00:00
jan.nijtmans bfed58b030 TIP #559 follow-up: Make sure that if Tcl_FreeResult() is used in an extension compiled with -DTCL_NO_DEPRECATED, this results in a link error.
Do the same with deprecated funcions from other TIP's.
2020-01-25 14:51:08 +00:00
dgp a9fd991fe6 Implement TIP 559 2020-01-24 16:53:13 +00:00
dgp e6800a165c Implement TIP 559 2020-01-24 16:44:25 +00:00
jan.nijtmans 5570417141 Merge trunk 2020-01-24 11:00:58 +00:00
apnadkarni dc9dbe5998 Fix See also links in list commands 2020-01-23 15:42:59 +00:00
apnadkarni b20939682d Fix See also links in list commands 2020-01-23 15:40:08 +00:00
jan.nijtmans a3f11a86e9 Merge 8.7 2020-01-23 13:15:51 +00:00
jan.nijtmans 05776cbb41 Merge 8.6 2020-01-23 13:14:09 +00:00
jan.nijtmans 92c8a53689 Better error-handling in some libtommath calls. 2020-01-23 12:55:41 +00:00
jan.nijtmans 2c19ef85ed Merge 8.7 2020-01-23 10:41:38 +00:00
jan.nijtmans c15121ae96 Add error-handling to all libtommath function calls. Most likely not perfect (open for further improvements/review), but for sure better than no error-handling at all. 2020-01-23 10:33:37 +00:00
jan.nijtmans 5bf4816c29 merge-mark 2020-01-23 09:47:38 +00:00
jan.nijtmans b9f442e8b2 Merge 8.6 2020-01-23 09:46:18 +00:00
jan.nijtmans ff928c6450 Merge 8.5 2020-01-23 08:33:22 +00:00
jan.nijtmans ad096310ec Last unused internal stub entry from 258 to 259. 2020-01-23 08:29:26 +00:00
jan.nijtmans e03aa95407 Merge 8.7. All calls using MP_WUR handled now. 2020-01-22 09:26:00 +00:00
dgp 5f9514bba4 Implement TIp 543. 2020-01-21 22:14:55 +00:00
dgp 5dab8a0c6b Implement TIP 543 2020-01-21 22:00:20 +00:00
jan.nijtmans 05ed23d325 Merge 8.7, more WIP 2020-01-21 16:05:02 +00:00
jan.nijtmans c48019496e Merge trunk 2020-01-21 09:39:21 +00:00
jan.nijtmans b77246e08b Enable test-cases stringObj-15.[5-8]: "nodep" restriction doesn't work in 9.0. 2020-01-21 09:21:30 +00:00
jan.nijtmans 220ee76c14 merge-mark 2020-01-21 08:49:21 +00:00
jan.nijtmans 0f71efe445 Don't run stack-3.1 test on OSX, it fail regulary. Don't really bother for Tcl 8.5 any more. 2020-01-21 08:48:17 +00:00
jan.nijtmans a3fdbe449b Merge trunk 2020-01-20 16:43:54 +00:00
jan.nijtmans 7eeeb51309 Merge-mark 2020-01-20 15:28:38 +00:00
jan.nijtmans e403afa147 Now that TIP #538 is integrated, make rules.vc work for both 8.6 and 8.7 without changes. 2020-01-20 15:27:47 +00:00
jan.nijtmans 4b7066e5b3 Merge 8.7. Add TclAppendUnicodeToObj() to internal stubs, since it is needed in tclTestObj.c 2020-01-20 15:16:22 +00:00
jan.nijtmans a3906f4953 Don't deprecate Tcl_NewUnicodeObj/Tcl_SetUnicodeObj/Tcl_GetUnicodeFromObj, since that's not according to TIP #542. (Those are only deprecated when using TCL_UTF_MAX=4, not in the general case) 2020-01-20 14:35:25 +00:00
jan.nijtmans 8ff40f7d46 Merge 8.7 2020-01-20 14:19:47 +00:00
jan.nijtmans 12d3b15f30 Implementation of TIP #542: Support for switchable Full Unicode support 2020-01-20 12:18:34 +00:00
sebres 041d53289b merge 8.7 2020-01-17 18:37:40 +00:00
sebres 668c35bfc2 merge 8.6 2020-01-17 17:15:37 +00:00
sebres 33c6ac50b3 merge 8.5 (closes [5d989f9ba3]: avoid segfault by OOM if too many items to sort) 2020-01-17 17:08:18 +00:00
sebres a3728e6d82 small amend (skip messages, avoid output on interactive shell) 2020-01-17 16:40:37 +00:00
sebres 35ec25a6cf closes [5d989f9ba3]: avoid segfault by OOM if too many items to sort (would throw an error instead, and use system alloc for long elementArray due to size_t);
added test cases covering that (in child process with limited address space, if "prlimit" available)
2020-01-17 16:12:06 +00:00
dgp eb5163d9e8 merge 8.7 2020-01-17 15:37:22 +00:00
jan.nijtmans 3262fa4d4e Merge 8.7, more WIP 2020-01-17 10:43:44 +00:00
jan.nijtmans 37ad5db296 Merge 8.6 2020-01-17 08:54:21 +00:00
jan.nijtmans 9169847966 Fix [8cd2fe7474]: "unload" command Bug (when handling multiple libs) 2020-01-17 08:53:29 +00:00
jan.nijtmans eb08a10e38 Fix [8cd2fe7474]: "unload" command Bug (when handling multiple libs) 2020-01-17 08:51:38 +00:00
jan.nijtmans d59509dee2 Proposed fix for [8cd2fe7474]: "unload" command Bug (when handling multiple libs) 2020-01-16 14:16:48 +00:00
jan.nijtmans e446f6c309 Merge 8.7 2020-01-15 15:29:54 +00:00
jan.nijtmans a72376335b Merge 8.7 2020-01-15 10:22:25 +00:00
jan.nijtmans 3101fc1da1 Merge-mark 8.6. Remove a few "break"'s added in the previous commit, because they are redundant. 2020-01-15 10:21:02 +00:00
jan.nijtmans 9a78221b8d A few more "break" statements, so any compiler knows these are no FALLTHROUGH situations. 2020-01-15 10:07:46 +00:00
jan.nijtmans 939c35f568 A few more "break" statements, so any compiler knows these are no FALLTHROUGH situations. 2020-01-14 09:09:50 +00:00
jan.nijtmans c6135def08 Attempt to resolve a conflict between (unmodified) tommath.h and tcl.h in the definition of mp_int. See: [https://github.com/libtom/libtommath/pull/473] 2020-01-13 21:46:18 +00:00
dgp 9b0b0dc37d Implement TIP 559 (deprecation part). 2020-01-13 17:00:21 +00:00
dgp fc63e758a4 Implement TIP 559 2020-01-13 16:49:42 +00:00
jan.nijtmans 54beae13a7 Merge 8.7 2020-01-13 15:21:38 +00:00
jan.nijtmans 41e035d59b Merge 8.6 2020-01-13 15:20:03 +00:00
jan.nijtmans 46a6094df7 Fix [cff53cf7d0]: Failed test oo-0.9 in file oo.test in Tcl8.6.10 2020-01-13 15:19:08 +00:00
jan.nijtmans c32336ef0e Merge 8.7 2020-01-13 12:48:05 +00:00
jan.nijtmans a8e3a2a3a8 Merge 8.6 2020-01-13 12:47:13 +00:00
jan.nijtmans 6a4eb9df57 Add ${LDFLAGS} to MAKE_LIB. This handles the possibility of adding LDFLAGS=?? on the "configure" commandline. Suggested by Pietro Cerutti. Thanks! 2020-01-13 12:17:09 +00:00
jan.nijtmans 86052f5003 Merge 8.7 2020-01-13 12:11:10 +00:00
jan.nijtmans f468073bd5 Merge 8.6 2020-01-13 10:44:25 +00:00
jan.nijtmans 997e0f3505 Fix [0b9332722a]: Support utf-8 on Windows console 2020-01-13 10:01:30 +00:00
jan.nijtmans f3070aa2fc Silence some gcc-9 compiler warnings. 2020-01-13 10:00:03 +00:00
dgp 5953233f3b merge trunk 2020-01-10 17:40:55 +00:00
dgp 31f988f9c8 merge 8.7 2020-01-10 17:40:34 +00:00
jan.nijtmans 8c3314fad9 More WIP 2020-01-10 16:00:03 +00:00
jan.nijtmans 034fad8f6a Merge 8.7 2020-01-10 15:27:49 +00:00
jan.nijtmans 2d27c96b7e tommath_private.h : Remove special C4146 handling: already done in tclWinPort.h too.
tcl.pc.in:  Make sure that libtommath >= 1.2.0
2020-01-10 15:18:36 +00:00
jan.nijtmans 01db149e3c Merge 8.7 2020-01-09 09:28:34 +00:00
jan.nijtmans f608fa90db Put "-ltommath" in $MATH_LIBS in stead of $LIBS, so it won't be used by other checks in the configure script. Suggested by Pietro Cerutti. 2020-01-09 09:27:09 +00:00
jan.nijtmans 07829dc8b9 Put "-ltommath" in $MATH_LIBS in stead of $LIBS, so it won't be used by other checks in the configure script. Suggested by Pietro Cerutti. 2020-01-09 09:25:56 +00:00
jan.nijtmans cc211af4ea Start handling WUR (Warn Unused Result) in all tommath calls. WIP, not complete yet. 2020-01-09 09:20:57 +00:00
dgp f7076c6ce8 merge 8.7 2020-01-08 23:00:06 +00:00
dgp 1afc0833ed merge 8.7 2020-01-08 22:32:16 +00:00
dgp 8ef7bd41b6 Improvements to doc changes from TIPs 422 and 512. 2020-01-08 22:25:36 +00:00
dgp 7c1facbfb4 merge 8.7 2020-01-08 21:40:42 +00:00
dgp 0d799f84b3 s/in stead/instead/ 2020-01-08 21:40:10 +00:00
dgp d1f6dc44aa s/in stead/instead/ 2020-01-08 21:39:12 +00:00
dgp d7e1a76e06 merge 8.7 2020-01-08 21:10:50 +00:00
dgp 6804338322 merge 8.6 2020-01-08 21:10:10 +00:00
dgp 780f439396 Remove another mention of interp->result. 2020-01-08 16:53:25 +00:00
dgp 0215962576 Revise documentation that refers to direct access to interp->result. 2020-01-08 14:23:06 +00:00
jan.nijtmans 7d716898d7 Merge 8.7 2020-01-08 13:19:09 +00:00
jan.nijtmans 0c195b760a Merge 8.6 2020-01-08 13:16:49 +00:00
jan.nijtmans 0df818c01f Use _copysign on Windows always (available from float.h). Use mp_iszero() whenever appropriate. 2020-01-08 12:51:29 +00:00
jan.nijtmans 3b3abe0ce1 Code cleanup (mostly comments, backported from 8.6). 2020-01-08 11:53:03 +00:00
jan.nijtmans 3b9e37ced8 Merge 9.0 2020-01-07 15:58:30 +00:00
jan.nijtmans 4afa382971 Merge 8.7 2020-01-07 15:44:16 +00:00
jan.nijtmans 0ba9e042a2 Merge 8.7 2020-01-07 15:22:06 +00:00
jan.nijtmans 14b5289e4a Merge 8.7 2020-01-07 15:20:49 +00:00
jan.nijtmans 6776429ba1 Merge 8.7 2020-01-07 14:50:44 +00:00
jan.nijtmans 49a7184962 Don't use "operator" as variable name, as it is a keyword in C++.
Add some break statements, so Tcl can be compiled warning-free with gcc-7's -Wimplicit-fallthrough
A few better indications of unused (dummy) functions parameters.
2020-01-07 14:42:15 +00:00
jan.nijtmans 7c23c57789 Some eol whitespace eliminations 2020-01-07 14:32:16 +00:00
jan.nijtmans 7d90738e3a One more place where the (deprecated) "unicode" encoding was still used. 2020-01-07 12:18:51 +00:00
jan.nijtmans 631c17942e Merge 8.7 2020-01-07 09:45:47 +00:00
jan.nijtmans d92cffaa0c Remove type-casts in many Tcl_LinkVar() calls, which is no longer necessary since 8.7.
Small missing piece in Tcl_LinkArray() implementation, handling (unsigned) longs on 64-bit platforms.
2020-01-07 09:24:19 +00:00
jan.nijtmans 98496f3c16 Merge 8.7 2020-01-07 08:45:45 +00:00
jan.nijtmans 0bf39185fb Fix test encoding-28.0, adapting for the correct number of available encodings 2020-01-07 08:35:34 +00:00
dgp 1b9f0a138d merge 8.7 2020-01-06 20:26:34 +00:00
dgp 1923110631 one more 2020-01-06 20:24:25 +00:00
dgp c187695b61 Bring docs up to date with TIP 330 and TIP 336 changes already in Tcl 8.7 2020-01-06 20:12:32 +00:00
dgp 889b9a832f merge 8.7 2020-01-06 18:08:58 +00:00
dgp edcdd9afe1 Missing bit of interp->result deprecation. 2020-01-06 18:07:43 +00:00
dgp 99c687177a merge 8.7 2020-01-06 17:27:10 +00:00
dgp f140e958c5 Remove "new in 8.6" marks from the docs in the 8.7 branch. 2020-01-06 17:26:05 +00:00
dgp b0db0ad956 remove 'new in 8.5' marks in docs 2020-01-06 17:17:58 +00:00
dgp 6dcb4cb65c Remove the "new in 8.5" markings from the 8.6 branch of docs. 2020-01-06 17:17:11 +00:00
jan.nijtmans 162b310610 Merge 8.7 2020-01-06 11:02:56 +00:00
jan.nijtmans 4c14bc7964 Fix typo: "==" -> "=" 2020-01-06 11:02:12 +00:00
jan.nijtmans b81709b80a Merge 8.7.
Don't think that ${LDFLAGS} should be part of MATH_LIBS: that should be arranged correctly in the Makefile by providing both LDFLAGS and MATH_LIBS to the command line.
2020-01-06 10:57:58 +00:00
jan.nijtmans 16deae9be1 Merge-mark 2020-01-06 10:50:18 +00:00
jan.nijtmans 8d01cecc9a (cherry-pick): Fix issue [9128866ec8448752] by adding Line Feed character to tis-620.enc. 2020-01-06 10:48:04 +00:00
jan.nijtmans a315170269 Merge 8.7 2020-01-06 10:41:57 +00:00
jan.nijtmans 4bea353255 Merge 8.6 2020-01-06 10:40:14 +00:00
jan.nijtmans 2595be3dfe Merge 8.5 2020-01-06 10:34:16 +00:00
jan.nijtmans 1ccdd5f186 Don't assume/set LDFLAGS being "", it could be set on the "configure" command-line.
Remove "test-packages" test-target (which doesn't exist), but add "test-tcl" being the same as "test".
2020-01-06 10:28:28 +00:00
dgp b60f173c37 Tcl_TransferResult was new in 8.6, so mark the man page with that version. 2020-01-05 19:41:04 +00:00
dgp 3dae54c810 formatting typo and rewrite 2020-01-05 19:18:30 +00:00
dgp 5f46a6c4a7 Rewrite: lead paragraph with name of documented routine. 2020-01-05 19:16:33 +00:00
dgp a75f6ac8ce Fix documentation, comments, and argument names of Tcl_TransferResult(). 2020-01-05 19:03:12 +00:00
pooryorick ac2be8e353 Add a test for issue [9128866ec8], encoding fails to load 2020-01-04 17:21:53 +00:00
pooryorick 0cd25f6ca2 merge 8.6 2020-01-04 14:51:40 +00:00
pooryorick b873f56401 Fix issue [9128866ec8448752] by adding Line Feed character to tis-620.enc. 2020-01-04 14:34:36 +00:00
fvogel ff7ff08f29 merge core-8-branch, restore the build by providing a copysign replacement for old MSVC versions. 2020-01-02 21:01:37 +00:00
fvogel 0188ad7082 Restore the build by providing a copysign replacement for old MSVC versions. 2020-01-02 21:00:22 +00:00
fvogel 019eea55c0 Restore the build by providing a copysign replacement for old MSVC versions. 2020-01-02 20:56:46 +00:00
fvogel 158c112e03 Restore the build by providing a copysign replacement for old MSVC versions. 2020-01-02 20:56:20 +00:00
dgp fd4b052c0d merge trunk 2019-12-30 21:29:09 +00:00
dgp 341619118a merge 8.7 2019-12-30 21:25:43 +00:00
dgp f5a8aaadf8 Remove TclInitCompiledLocals(), internal routine marked deprecated in 8.5+. 2019-12-30 21:00:09 +00:00
dkf 30d15963da Fixed index line 2019-12-30 16:24:29 +00:00
gahr c24a2bec01 Regenerate configure 2019-12-30 13:49:39 +00:00
gahr 54e9b9d2b3 Fix equality check, reported by Emiliano 2019-12-30 13:48:44 +00:00
gahr 61ddd431ca Include LDFLAGS in TCL_LIB, since that's where MATH_LIBS come in 2019-12-27 12:53:48 +00:00
gahr a5fd8b5d9c Regenerate configure 2019-12-27 12:13:15 +00:00
gahr 70b0310ff7 Make sure LDFLAGS are propagated to MAKE_LIB 2019-12-27 12:12:15 +00:00
gahr 54aabbf053 Use AC_CHECK_LIB and put ltommath in MATH_LIBS to avoid polluting LIBS 2019-12-27 12:11:38 +00:00
Kevin B Kenny 329faccfd5 Merge Tcl 8.7 changes to deal with integer overflow in the exponent, and floating point overflow in the significand, of floating point input conversion (Bug [1de6b0629e] 2019-12-27 00:34:51 +00:00
Kevin B Kenny ccc57bc577 Merge Tcl 8.6 changes to deal with integer overflow in the exponent, and floating point overflow in the significand, of floating point input conversion (Bug [1de6b0629e] 2019-12-27 00:23:49 +00:00
Kevin B Kenny 8140d238ea Merge Tcl 8.5 changes to deal with integer overflow in the exponent, and floating point overflow in the significand, of floating point input conversion (Bug [1de6b0629e] 2019-12-27 00:12:58 +00:00
Kevin B Kenny f7d1daa7fd Merge changes to deal with integer overflow in the exponent, and floating point overflow in the significand, of floating point input conversion (Bug [1de6b0629e] 2019-12-27 00:03:41 +00:00
Kevin B Kenny ba0a3a3dd2 Add test cases that used to cause floating point overflow in computing the correction term in floating point input conversion. Fix exponent overflow in floating point input conversion, and floating-point overflow in the significand in input conversion. 2019-12-26 23:54:03 +00:00
jan.nijtmans 8d0c814716 Merge 8.7 2019-12-24 15:05:50 +00:00
jan.nijtmans 032451725b Add FALLTHRU markers, eliminating gcc warning using -Wextra 2019-12-24 15:04:57 +00:00
jan.nijtmans 3254602d80 Attempt to improve support for external libtommath 2019-12-24 14:23:42 +00:00
jan.nijtmans d326c63806 Merge 8.7 2019-12-24 13:52:54 +00:00
jan.nijtmans 51bf99fdf5 More progress in making clang build on Cygwin warning-free 2019-12-24 13:52:05 +00:00
jan.nijtmans 0f7dc05b52 Make definition of struct mp_int EXACTLY the same as the one in the (modified) tommath.h 2019-12-24 13:51:22 +00:00
jan.nijtmans 3ae5ed3dfc Merge 8.7 2019-12-24 10:06:37 +00:00
jan.nijtmans 2d00a8c17e Put our own included (-I) directories before directories coming in though CFLAGS, so building with external libraries (like libtommath) doesn't possibly corrupt our own build. Reported by Pietro Cerutti 2019-12-24 10:05:40 +00:00
jan.nijtmans 89890a88e6 Merge 8.7 2019-12-23 13:43:49 +00:00
jan.nijtmans cf8d2f27eb Merge 8.6 2019-12-23 13:42:55 +00:00
jan.nijtmans 86e6d287a0 Fix for building Cygwin using Clang. 2019-12-23 13:38:20 +00:00
jan.nijtmans 5074a34663 Merge 8.7 2019-12-23 11:28:29 +00:00
jan.nijtmans ce2dc4a07d Merge 8.6 2019-12-23 11:27:22 +00:00
jan.nijtmans 1e7fb75229 Workaround for [ce3b9f2b04]: compilation errors with clang (windows msys2) 2019-12-23 11:26:31 +00:00
dgp 63253bc07d Fix parsing bug when (numSigDigs == 0). 2019-12-23 00:54:44 +00:00
dgp 38d9207627 Assign a double literal to a double variable. No point in requiring conversion. 2019-12-22 23:48:00 +00:00
dgp e52a22ff57 Tests for another parsing bug. 2019-12-22 18:44:45 +00:00
jan.nijtmans 32a3c1d678 Merge 8.7 2019-12-22 15:10:25 +00:00
jan.nijtmans 7b099b30d8 Merge 8.6 2019-12-22 14:55:25 +00:00
jan.nijtmans 834ee2dd0d Minor optimization in TclFormatInt: No need to check for "0" as special value. No need to include final NULL-byte in character-reversion operation, as we already known the NULL-byte will come last. 2019-12-22 14:52:33 +00:00
dgp 1f81e5eb51 Tests demonstrating the number parsing overflow bugs. 2019-12-21 14:19:08 +00:00
jan.nijtmans f3e5dd7a04 Prevent double definition of MODULE_SCOPE on Darwin 2019-12-20 16:13:36 +00:00
jan.nijtmans bb09dba8c0 Fix 2 unused arguments with USE_DTRACE 2019-12-20 16:11:54 +00:00
jan.nijtmans 8e18ac6cf7 Update travis build fro xcode11 to xcode11.3 as highest platform 2019-12-20 15:23:26 +00:00
jan.nijtmans 4f37c25271 Two more unused arguments.
Merge 8.7
2019-12-20 14:23:11 +00:00
jan.nijtmans 14a974e2d0 Merge 8.7. Exclude 4 test-cases in TCL_NO_DEPRECATED mode, because they are not supposed to work then 2019-12-19 22:26:37 +00:00
jan.nijtmans 1d52808a73 Merge 8.7 2019-12-19 22:16:09 +00:00
jan.nijtmans 2a08be49c2 Merge 8.6 2019-12-19 22:12:19 +00:00
jan.nijtmans 588a92ec6b Merge 8.5 2019-12-19 22:11:01 +00:00
jan.nijtmans 6fa04d74e0 Add type-cast, making sure that the unary minus is handled correctly on any compiler 2019-12-19 22:09:46 +00:00
jan.nijtmans 2c3a603e13 Merge 8.6 2019-12-19 22:04:09 +00:00
jan.nijtmans a0f11eae42 Merge 8.5 2019-12-19 21:31:05 +00:00
jan.nijtmans 88e4842dfe Put back 4 test-cases as they were in core-8-branch, but only for TCL_UTF_MAX=3 2019-12-17 23:14:53 +00:00
jan.nijtmans 3a7b07be0d Better fix for [3390638]: making the intVal variable unsigned prevents the need for using sprintf() altogether. 2019-12-16 10:09:40 +00:00
jan.nijtmans dbd3d4eff0 Only use OPTS=msvcrt in combination with "static", otherwise it's a NOOP. Disable pragma warning:C4146 (backported from 8.6), since it only gives misleading warnings. 2019-12-16 10:08:07 +00:00
jan.nijtmans 899310175d Merge 8.7 2019-12-14 17:46:34 +00:00
jan.nijtmans de7ebc2ea1 Merge 8.7 2019-12-14 17:45:04 +00:00
jan.nijtmans 4e6d44d0e6 Merge 8.6 2019-12-14 17:43:22 +00:00
jan.nijtmans ea5ed28162 Make win/configure work with CC=g++ (doesn't actually work with Tcl and Tk yet) 2019-12-14 17:36:09 +00:00
jan.nijtmans e9fb22cfeb Merge trunk 2019-12-14 14:12:41 +00:00
jan.nijtmans 72b3895d8b Merge 8.7 2019-12-14 14:08:54 +00:00
jan.nijtmans 112bcf743a merge-mark 2019-12-13 22:20:32 +00:00
jan.nijtmans a91c7a019d Merge 8.7 2019-12-13 22:20:03 +00:00
jan.nijtmans 59f4600ec3 One #undef too much 2019-12-13 22:18:40 +00:00
jan.nijtmans 89e6e17872 Merge 8.7 and (hopefully) fix Travis build with C++ 2019-12-13 22:12:32 +00:00
jan.nijtmans de326e5c5e Don't export mp_sqr() directly from libtcl 2019-12-13 21:48:15 +00:00
jan.nijtmans 230886d1fe Merge 8.7 2019-12-13 21:27:52 +00:00
jan.nijtmans 676312d822 Merge 8.7 2019-12-13 21:22:11 +00:00
jan.nijtmans 9eeefad066 Optimize mp_mul for the case a==b 2019-12-13 21:16:44 +00:00
jan.nijtmans be44843404 Fix [435acb846c]: libtommath - missing declarations 2019-12-13 20:35:56 +00:00
jan.nijtmans 8ddd0ca822 Merge 8.7 2019-12-13 15:41:16 +00:00
jan.nijtmans e438829082 Merge 8.7 2019-12-13 15:39:23 +00:00
jan.nijtmans 4cef9fbbe2 merge-mark 2019-12-13 15:13:15 +00:00
jan.nijtmans 3fb9396959 Fix Travis build for MSVC Debug mode 2019-12-13 15:12:29 +00:00
jan.nijtmans 9118bcfb5f More tweaks to libtommath functions signatures: No need any more to stay binary compatible with Tcl 8.x, so we can use the mp_digit type now. 2019-12-13 15:09:59 +00:00
jan.nijtmans 8f533db35f Remove deprecated libtommath stub entries 2019-12-13 13:33:33 +00:00
jan.nijtmans 077504f676 Merge 8.7 2019-12-13 13:06:34 +00:00
jan.nijtmans 6fdc83ae14 Implement TIP's #538: Externalize libtommath 2019-12-13 11:05:43 +00:00
jan.nijtmans d0ff8f4a0d Merge 8.7 2019-12-12 21:43:08 +00:00
jan.nijtmans db35fe50e9 Little code tweaks, regarding the use of TCL_UTF_MAX or wchar_t. 2019-12-12 21:38:46 +00:00
jan.nijtmans 9ef936369e merge-mark 2019-12-12 21:05:16 +00:00
jan.nijtmans 3701dc242d Add 3 (libtommath) functions to the stub table. Will be added to 8.7 too, through TIP #538 2019-12-12 21:02:48 +00:00
jan.nijtmans 94e8f63367 Merge 8.7. Add C++ entries for Windows to Travis build. 2019-12-12 16:14:05 +00:00
jan.nijtmans f70589ae3e Add many missing constraints 2019-12-12 13:12:29 +00:00
jan.nijtmans 368faf4c43 Update win/tcl.m4, for use with C++ 2019-12-12 13:11:09 +00:00
jan.nijtmans e3f42b0c1a Little doc tweak 2019-12-12 08:23:58 +00:00
jan.nijtmans 74f50a92f3 Merge 8.7 2019-12-11 15:53:07 +00:00
jan.nijtmans 43b7af15a7 Merge trunk 2019-12-11 15:37:09 +00:00
jan.nijtmans f8474f319c Implement "panic" as described in the TIP 2019-12-11 12:41:00 +00:00
jan.nijtmans 81d54e6432 Merge 8.7 2019-12-11 08:55:48 +00:00
jan.nijtmans d1a4083e3f Merge 8.7 2019-12-11 08:54:47 +00:00
jan.nijtmans 1d6a94f9f8 Fix bug in tclEncoding.c, only manifesting in testcase encoding-15.4 for TCL_UTF_MAX=6. (knownBug, fixed now) 2019-12-11 08:52:58 +00:00
jan.nijtmans ac849b98ed Merge 8.7 2019-12-10 13:43:32 +00:00
jan.nijtmans 86c130f239 Merge 8.6 2019-12-10 13:42:52 +00:00
sebres beb5137192 merge 8.7 2019-12-10 13:19:56 +00:00
jan.nijtmans db4a693d72 Fix [5f236bc67a]: valgrind report for Tcl_UniCharToUtf. Also add test-cases for more corner-cases. 2019-12-10 13:16:48 +00:00
sebres 4a214309b2 merge 8.6 2019-12-10 13:15:48 +00:00
sebres 5caaa0f557 amend to [2cf1202807]: find the hooks in tcltest namespace only 2019-12-10 12:45:09 +00:00
jan.nijtmans 4c162a421c Merge 8.7 2019-12-09 22:55:01 +00:00
jan.nijtmans a7212b0557 Undo accidental change in [343273c9de4fd4f1] 2019-12-09 22:48:56 +00:00
jan.nijtmans 216a1d1937 Attempt to fix [5f236bc67a]: valgrind report for Tcl_UniCharToUtf 2019-12-09 19:36:21 +00:00
sebres de8a9991af merge 8.7 2019-12-09 11:44:27 +00:00
sebres 19e564ab89 remove unneeded import (for >= 8.7) 2019-12-09 11:42:57 +00:00
jan.nijtmans 0e4f559e7f Merge 8.7 2019-12-09 11:32:07 +00:00
jan.nijtmans 54b0e77083 Merge 8.6 2019-12-09 11:31:25 +00:00
sebres c66173309f merge 8.5 (timing issue avoidance, skip test in runtime feature) 2019-12-09 10:40:04 +00:00
sebres f9490c56c6 small amend (whitespace, no functional) 2019-12-09 10:30:19 +00:00
sebres c8634b0b9e tcltest: hook enhancements rewritten backwards compatible now, reverts [0067db1bbf], [0f3d6f90f0], [b8be012969], [375a566d22] 2019-12-09 10:26:23 +00:00
jan.nijtmans 37f6a196c5 Fix [abd4abedd2]: Failed to build tk 8.6.10 with cross compile 2019-12-09 10:02:20 +00:00
jan.nijtmans fea9c41d92 Add special handling of lower surrogate to UtfToUtfProc(), so valgrind should't complain in that situation. With new test-cases covering that. 2019-12-09 09:59:02 +00:00
jan.nijtmans 1121106257 Merge 8.7 2019-12-08 16:58:26 +00:00
jan.nijtmans 743e03cf5e Merge 8.7 2019-12-08 16:55:03 +00:00
jan.nijtmans fe32483d5c Merge 8.7 2019-12-08 16:52:00 +00:00
jan.nijtmans 39bf69006a Merge 8.6Merge 8.6 2019-12-08 16:49:34 +00:00
jan.nijtmans d67affb100 Fix Valgrind problem reported as follow-up in [fc4393e9b0]. Since it happens only for TCL_UTF_MAX>3 it's not actully a 'bug' in 8.6, but it might be a corner-case not handled well in 8.7 2019-12-08 16:33:18 +00:00
jan.nijtmans 6d5473da30 merge-mark 2019-12-07 18:25:58 +00:00
jan.nijtmans bf4f51ce78 Fix 2 test-cases, which were failing when TCL_UTF_MAX=6. Add UTF_MAX=6 UNIX build to Travis as proof that now all test-cases pass for UTF_MAX=6 (still not officially supported) 2019-12-07 18:23:41 +00:00
griffin e38608eeb3 Initial implementation for TIP-551 Permit underscores in numeric literals 2019-12-07 05:52:14 +00:00
griffin 5a7749b042 Create new branch named "tip-551" 2019-12-07 05:46:10 +00:00
sebres 74b0c7c91a rewrite of [dff608952b]: skip tests if there is really a timing issue (and implements new feature ::tcltest::Skip which allows conditionally skipping of tests at runtime) 2019-12-06 16:42:19 +00:00
dgp f3b259c158 merge 8.7 2019-12-06 16:02:01 +00:00
jan.nijtmans 364ba5e8b9 Exclude some test-cases with possible timing problems on Windows. Double ;; in generic/tclTimer.c 2019-12-06 14:51:39 +00:00
jan.nijtmans 5aef84d1f4 Merge 8.6 2019-12-06 14:38:28 +00:00
jan.nijtmans f67bef714e Unnecessary double ;; in tclTimer.c. Update compat/zlib to exactly the same content as in the core-8-branch branch. 2019-12-06 14:35:10 +00:00
jan.nijtmans e2ecc3c090 merge-mark 2019-12-06 13:47:34 +00:00
jan.nijtmans a84aa656ee Fix some test-cases when Tcl is compiled with -DTCL_UTF_MAX=6. Not officially supported but used by Androwish. The test-cases prove that "unicode" should be UTF-16 actually for all TCL_UTF_MAX values. 2019-12-06 13:43:25 +00:00
jan.nijtmans 8ed389c37a Merge 8.7 2019-12-04 13:30:22 +00:00
jan.nijtmans 7d17ab9a13 Merge 8.6 2019-12-04 13:26:53 +00:00
jan.nijtmans 0acc700234 Add builds using TCL_UTF_MAX=4 on Windows. Not officially supported, but used by Androwish. Also alphabetise some options in win/makefile.vc and win/rules.vc 2019-12-04 12:54:39 +00:00
jan.nijtmans d02ab64fa2 Use the right encoding when converting (Unicode) messages regarding socket errors on Windows. Some code cleanup in win/tclWinfile.c. 2019-12-04 12:53:25 +00:00
jan.nijtmans 3fc1c2a172 Merge 8.7 2019-12-03 19:31:48 +00:00
jan.nijtmans 29b775c36a Remove Travis's Clang builds using TCL_UTF_MAX!=4. Too little difference with the corresponding GCC builds to be useful. 2019-12-03 19:30:19 +00:00
jan.nijtmans 40938f72a2 Add build using gcc and TCL_UTF_MAX=4 to Travis build. Not officially supported but used by Androwish. Remove "threads" designator on Windows, since it's already default. 2019-12-03 19:24:05 +00:00
jan.nijtmans 8d6601013e Merge 9.0 2019-12-03 16:16:52 +00:00
jan.nijtmans 4a5f73e338 Merge 8.7 2019-12-03 16:13:29 +00:00
jan.nijtmans d8fd9552b5 Merge 8.7 2019-12-03 16:12:14 +00:00
jan.nijtmans f00afc4fdd Merge 8.7 2019-12-03 13:22:18 +00:00
jan.nijtmans 28d5df364e Merge 8.6 2019-12-03 13:21:32 +00:00
jan.nijtmans 678d2103f9 Fix encoding-15.6 testacase for TCL_UTF_MAX=6, due to changes escape sequences for upper/lower surrogate combination. 2019-12-03 13:20:47 +00:00
jan.nijtmans 5a66f39637 Merge 8.7 2019-12-03 12:59:47 +00:00
jan.nijtmans c4990c8bf6 Merge 8.6 2019-12-03 12:58:25 +00:00
jan.nijtmans 9e0083e9f0 Fix [3cd9bea1e6]: check-in [43032d7ba3] potential problems. Also don't allow surrogates in \U?????? syntax. 2019-12-03 12:27:42 +00:00
pooryorick 3c7bb58fb9 merge 8.6 2019-12-02 22:07:33 +00:00
pooryorick 36f4518f89 Add tcltest::CleanupTest to make it easier to customize behaviour. 2019-12-02 22:04:41 +00:00
jan.nijtmans 87baa32396 Merge 8.7 2019-12-02 20:51:41 +00:00
jan.nijtmans cfb43a5a2c Merge 8.6 2019-12-02 20:48:35 +00:00
jan.nijtmans 4f6ea8aef9 If TCL_UTF_MAX>=4, make Tcl_ParseBackslash combine two surrogates so they appear as one 4-byte UTF-8 byte sequence from the start. Add test-case for this. 2019-12-02 20:26:58 +00:00
dgp 38160dc3cc Bump to 9.0a2 to distinguish development from 9.0a1 release. 2019-12-02 18:25:35 +00:00
dgp a42ecfa12e Bump to 8.7a4 to distinguish development from 8.7a3 release. 2019-12-02 18:15:07 +00:00
jan.nijtmans 9be1e807d6 Merge 8.7 2019-12-02 13:35:28 +00:00
jan.nijtmans eadbf37f4e Fix [a46a49b90f]: tests http-cookiejar-1.[12] fail 2019-12-02 13:28:46 +00:00
jan.nijtmans b6a51d3251 Merge 8.7 2019-12-02 11:50:26 +00:00
jan.nijtmans 8e1f9bb6d1 Eliminate excess eol-spacing 2019-12-02 10:58:19 +00:00
jan.nijtmans a86677ebd5 Merge 8.6 2019-12-02 10:52:45 +00:00
jan.nijtmans 90493b4012 Renumber tcltest from 2.5.1 -> 2.5.2, already for next release. 2019-12-02 10:49:11 +00:00
jan.nijtmans d6a3244d18 More eol-spacing 2019-12-02 10:48:01 +00:00
jan.nijtmans f7e46677b5 Eliminate unneccessary eol-spacing from documentation. 2019-12-02 10:47:00 +00:00
jan.nijtmans 332c5aadfa Merge 8.7 2019-12-01 21:26:11 +00:00
jan.nijtmans db669f381b Fix make install on Ubuntu (and - most likely - other platforms) 2019-12-01 21:25:32 +00:00
jan.nijtmans 6cc489aa4f Merge 8.7 2019-12-01 20:04:10 +00:00
pooryorick 506589f483 Add tcltest::EvalTest to make it easier to customize behaviour. 2019-12-01 19:45:54 +00:00
jan.nijtmans bf9226489d Fix executable flag 2019-12-01 17:53:26 +00:00
jan.nijtmans bd7870ec5f Fix executable flag 2019-12-01 17:52:17 +00:00
jan.nijtmans 3ea27f399f Merge 8.7 2019-12-01 17:00:20 +00:00
pooryorick 7363d850a9 merge 8.6 2019-12-01 13:52:06 +00:00
pooryorick d138d28133 Fix tcltest::SetupTest added in previous commit. 2019-12-01 13:48:48 +00:00
pooryorick af1ecf410e merge 8.6 2019-12-01 12:16:04 +00:00
pooryorick 3435c9713f add tcltest::SetupTest to make it easier to customize the -setup step of a test 2019-12-01 11:59:41 +00:00
jan.nijtmans 09abed41d6 merge-mark 2019-11-29 12:29:18 +00:00
jan.nijtmans 332401e645 Add some new test-cases involving e.g. Unicode 11. Backported from Tcl 8.7a3 2019-11-29 12:27:00 +00:00
jan.nijtmans 5fc479ca03 Merge 8.7 2019-11-29 09:55:01 +00:00
jan.nijtmans 17a9125415 Merge 8.7 2019-11-29 09:52:54 +00:00
jan.nijtmans 800a3f62b3 Fix one failing testcase (thanks, Travis!) 2019-11-29 09:52:09 +00:00
jan.nijtmans e4704dda2f Merge 8.7 2019-11-28 14:14:29 +00:00
jan.nijtmans 8e51252be8 Merge 8.7 2019-11-28 13:45:50 +00:00
jan.nijtmans a5162e47d5 Merge 8.6 2019-11-28 13:15:44 +00:00
jan.nijtmans 122bb72a66 Enhance rules.vc like already done in other configure scripts: Determine HAVE_STDINT_H/HAVE_INTTYPES_H/HAVE_STDBOOL_H/MP_NO_STDINT the simple way, just by compiler version. 2019-11-28 12:53:38 +00:00
jan.nijtmans bc00595941 Give cookiejar en tcl::idna a 3-part version number. Use 0.2.0 for cookiejar and 1.0.1 for tcl::idna.
"make install" and "make install-libraries" should now (finally) work fine for all platforms, both with configure/make and nmake.
2019-11-28 12:36:22 +00:00
jan.nijtmans 7c405f2e81 Merge 8.5 (Update opt package from 0.4.6 to 0.4.7).
Also fix installation of opt0.4 as done by makefile.vc, which never worked in Tcl 8.6.
2019-11-28 11:35:51 +00:00
jan.nijtmans d473f1507c Update "opt" from version 0.4.5 to 0.4.7, backported from Tcl 8.7a3. 2019-11-28 10:54:21 +00:00
jan.nijtmans f67e946a67 Merge 8.7 2019-11-27 22:25:05 +00:00
jan.nijtmans 0e57f61ede (hopefully) fix installation on Windows 2019-11-27 22:20:48 +00:00
jan.nijtmans 4ab699dc03 Merge 8.7. Tweak makefile.vc for detection of stdint.h/inttypes.h/stdbool.h 2019-11-27 21:09:36 +00:00
jan.nijtmans 389e7e96e5 Merge 8.7 2019-11-27 20:17:51 +00:00
jan.nijtmans 0c50d57d08 Another minor tweak: No need to include manifest.txt in the vfs zip-file, since it's renamed to pkgIndex.tcl 2019-11-27 20:15:50 +00:00
jan.nijtmans 38e41ac6ef Merge 8.7, and take over some fixes for VC++ 6.0 from Sebres. 2019-11-27 14:41:11 +00:00
jan.nijtmans dfdf436fb2 Merge 8.7 2019-11-27 14:27:26 +00:00
jan.nijtmans 9a80393d63 Minor tweak: Don't include the "dde" and "reg" directory in the zip-file on UNIX 2019-11-27 14:25:47 +00:00
sergey.brester 87934d6db3 merge digit-bit-60 2019-11-27 13:43:36 +00:00
sergey.brester dd334ec3d0 fixes compile errors for old VC versions, as well as tommath include path, there are two files with this name and wrapper "generic/tommath.h" gets included, but "libtommath/tommath.h" is never included, because did not addressed directly with this name (first from path wins). 2019-11-27 13:38:37 +00:00
jan.nijtmans f5464908a6 Move check for stdbool.h from SC_MISSING_POSIX_HEADERS to SC_CONFIG_CFLAGS, since it's not POSIX. 2019-11-27 12:14:57 +00:00
jan.nijtmans 93246519da Merge 8.7 2019-11-27 11:10:55 +00:00
jan.nijtmans 37a548351b Merge 8.6 2019-11-27 11:09:33 +00:00
dkf d9f8a23002 Proposed Windows installation code for cookiejar package 2019-11-27 11:01:38 +00:00
jan.nijtmans 1b760ca1a5 Merge 8.5 2019-11-27 10:25:49 +00:00
jan.nijtmans 627fe239a5 Don't bother paths of 64-bit SDK any more: This was Visual Studio 2008-specific and doesn't work with other Visual Studio versions. 2019-11-27 09:44:17 +00:00
jan.nijtmans 9eaa827e59 Merge 8.7 2019-11-26 22:49:05 +00:00
jan.nijtmans 94206b30ff Merge 8.7 2019-11-26 22:42:59 +00:00
jan.nijtmans 405b29cd1b Merge 8.7 2019-11-26 21:40:36 +00:00
jan.nijtmans d8a1ef0827 Fix installation of cookiejar on UNIX, and add same pieces to windows as well. Also modify manifext.txt accordingly, for the zipfile vfs. 2019-11-26 21:35:52 +00:00
dgp 8f7d32c7dd merge release 2019-11-26 18:26:42 +00:00
dgp 43550ce1fa merge trunk 2019-11-26 17:57:56 +00:00
dgp d8127f5c3a merge 8.7 2019-11-26 17:55:38 +00:00
dgp e5e3156e56 merge release 2019-11-26 17:35:08 +00:00
dgp 5d1722aaf1 Accept repackaging and distribution of http::cookiejar for Tcl 8.7a3. 2019-11-26 16:29:12 +00:00
dkf 582196abb8 Move the cookiejar package to its own directory so http works as a TM. Fix the unix installation code to include the bootstrap registrar names. 2019-11-26 11:16:12 +00:00
jan.nijtmans e92bcc6be3 Merge 8.7a3 2019-11-26 08:11:37 +00:00
dgp cf9edc4a1d merge 8.7 2019-11-25 18:08:50 +00:00
dgp 41381425e6 merge mark 2019-11-25 17:01:23 +00:00
dgp 76414db5a3 merge mark 2019-11-25 17:00:52 +00:00
dgp b5b74f1c5b merge mark 2019-11-25 16:59:54 +00:00
dgp b427bd59d0 Makefiles got out of sync with tcltest version. 2019-11-25 16:41:51 +00:00
jan.nijtmans a9fd02e864 Merge 8.7 2019-11-25 16:41:25 +00:00
jan.nijtmans 91a9b97aa6 Fix 2 version numbers in Makefile echo's (just misleading). Thanks to Pietro Cerutti for noticing this. 2019-11-25 16:40:32 +00:00
jan.nijtmans a5549e4cd2 Tweak visibility of some libtommath symbols and add --with-system-libtommath configure option (as requested by Pietro Cerutti) 2019-11-25 16:34:20 +00:00
jan.nijtmans b7e4a9f65b Merge 8.7 rc branch 2019-11-23 20:49:55 +00:00
dgp 18e4f3d635 complete changes 2019-11-22 21:26:09 +00:00
dgp 5a7c86fa32 Start record of the changes only in Tcl 9. 2019-11-22 21:08:12 +00:00
dgp 69aedf8b17 reset changes baseline 2019-11-22 21:01:36 +00:00
dgp 9d9fcdf383 merge trunk 2019-11-22 20:59:12 +00:00
dgp d7e26630c0 merge 8.7 2019-11-22 15:36:45 +00:00
dgp 20ce24d285 merge 8.7 2019-11-22 15:18:54 +00:00
dgp 7172d12a3f merge 8.6 2019-11-22 15:15:54 +00:00
dgp 98fe12ee6d merge release 2019-11-22 15:01:22 +00:00
jan.nijtmans 76f04364e3 Undo minor tweak, no longer necessary 2019-11-22 13:33:53 +00:00
jan.nijtmans 3a1186689a Merge 8.7, and update to latest libtommath (support/1.x branch) 2019-11-22 13:26:30 +00:00
apnadkarni 44bc67ccd6 Merged rc file VERSIONINFO fixes 2019-11-22 04:10:47 +00:00
apnadkarni 931120cefe Fix generation of VERSIONINFO in RC files when package versions have 4 or more
components or use "a" or "b" as version separators. Previously they would result 
in the resource compiler generating an error.
2019-11-22 04:04:48 +00:00
sebres 06bbb3d47b merge 8.7 2019-11-21 19:19:06 +00:00
sebres 58a383b2f0 merge 8.6 2019-11-21 19:16:58 +00:00
dgp f19d3d1f63 merge 8.6 2019-11-21 19:08:01 +00:00
sebres c26994f746 merge 8.5 (cmdMZ timing issues + verbose output in error case) 2019-11-21 18:58:44 +00:00
sebres e722bb7121 amend to [c93862b3bc] - fixes next timing test-issue in cmdMZ.test - measure without overhead now (otherwise net-time can be calculated too few);
makes test results more verbose in the error case
2019-11-21 18:30:09 +00:00
dgp 8afc392129 Merge 8.6; update changes. 2019-11-20 15:58:51 +00:00
jan.nijtmans 9c4252f295 Fix typo in tclTestObj.c 2019-11-20 13:32:00 +00:00
jan.nijtmans b39f1c56d5 Merge 8.7. ignore MP_WUR for mp_neg() calls with equal arguments (even though MP_WUR is not enabled yet) 2019-11-18 21:41:18 +00:00
jan.nijtmans 5d4efa2510 Merge 8.7 2019-11-18 20:42:22 +00:00
jan.nijtmans 25d746ccdb Merge 8.6 2019-11-18 20:38:28 +00:00
jan.nijtmans c53c54cec4 Fix [13657a2dc3]: application/json is not a binary payload for http. http 2.9.0 -> 2.9.1 2019-11-18 20:33:53 +00:00
jan.nijtmans cf11c42355 http package from 2.7.14 to 2.7.15 2019-11-18 20:27:57 +00:00
jan.nijtmans 5997f60c9a Fix [13657a2dc3]: application/json is not a binary payload for http 2019-11-18 20:22:32 +00:00
jan.nijtmans 377a4e24ed Formatting 2019-11-18 15:56:11 +00:00
jan.nijtmans 29db2a6761 Some code cleanup. Build with zlib dll on Win32 when using makefile.vc (shared-build only) 2019-11-18 14:40:54 +00:00
jan.nijtmans 37e202ac7d Update makefile.vc and rules.vc for using libtommath.dll/zlib1.dll in stead of statically linking libtommath, whenever possible. 2019-11-18 12:58:55 +00:00
jan.nijtmans 1b8114cd71 Merge 9.0 2019-11-17 20:12:21 +00:00
jan.nijtmans f02189588a Merge 8.7. Unbreak travis build with TCL_UTF_MAX=3 2019-11-17 13:39:46 +00:00
dgp 16135b4d33 update changes 2019-11-16 19:57:03 +00:00
dgp 7ff0cfd5b7 merge trunk 2019-11-15 20:32:35 +00:00
dgp 13ebaf6ca3 merge 8.7 2019-11-15 20:20:42 +00:00
dgp 85f552fa8a merge 8.7 2019-11-15 20:20:33 +00:00
dgp fc5da6d413 merge 8.6 2019-11-15 20:11:10 +00:00
dgp 20685407f3 merge 8.7; update changes 2019-11-15 20:01:16 +00:00
dgp bab811ce01 merge 8.6; update changes 2019-11-15 19:58:05 +00:00
jan.nijtmans 12a2241641 Fix test-case event-11.8, failing as a result of the TclOOObjectDestroyed() function restructuring. 2019-11-15 15:49:33 +00:00
jan.nijtmans 88e67d27d8 fix compliation warning, resulting from previous commit 2019-11-15 15:42:19 +00:00
jan.nijtmans 84987939c7 Merge 8.7 2019-11-15 15:19:56 +00:00
jan.nijtmans 3ce435c137 Merge 8.7 2019-11-15 14:53:21 +00:00
jan.nijtmans c44fa310d2 Merge 8.7 2019-11-15 14:45:28 +00:00
jan.nijtmans 521b33f6ec Backout [b5c1404365f53fe0], removing TclFreeObj() is a step too far for 8.7 2019-11-15 14:35:12 +00:00
jan.nijtmans ce1e21eb7c Merge 8.7 2019-11-15 14:20:45 +00:00
pooryorick e404d07959 Add TclOOObjectDestroyed to make logic more explicit. Renamed Deleted() to
Destructing().  No functiontional changes.
2019-11-15 13:50:39 +00:00
jan.nijtmans f3c5988996 Merge 8.7 2019-11-15 13:18:03 +00:00
jan.nijtmans e2e22061b0 Merge 8.6 2019-11-15 13:05:02 +00:00
jan.nijtmans b99314020d Remove mp_get_bit() from the libtommath stub table: It wasn't present in Tcl 8.6.9, isn't used anywhere in Tcl, and is going to be deprecated in libtommath. 2019-11-15 12:54:12 +00:00
jan.nijtmans b28beee0fc Merge 8.7 2019-11-15 12:17:42 +00:00
jan.nijtmans e5b1e20b49 Merge 8.6.
Also fix the use of WUR (warn unused result) in libtommath function signatures: this cannot be used in combination with "deprecated" or "nostub"
2019-11-15 10:09:11 +00:00
jan.nijtmans e00ef49560 Protect additional Tcl_UtfToUniChar() call, for the case when not enough bytes are available in the buffer any more.
Add additional test-cases for those situations (upper surrogate followed by somthing other than lower surrogate)
2019-11-15 09:41:03 +00:00
sebres 7e79827ba3 merge 8.7 2019-11-14 20:13:05 +00:00
sebres c28a047f8a merge 8.6 2019-11-14 20:07:37 +00:00
sebres 4a0d55e4c9 merge 8.5 2019-11-14 19:58:11 +00:00
sebres bb1eeada78 remove unneeded constraint 2019-11-14 19:57:12 +00:00
sebres b350e6ad91 fixes bug [135804138e] 2019-11-14 19:30:23 +00:00
sebres 434361c3c6 restore verification for deleted interp 2019-11-14 19:22:46 +00:00
sebres 05b4cb2080 make oo-7.10 test more readable 2019-11-14 17:41:51 +00:00
sebres b098fb3279 fixed SF [135804138e] -- no call of next possible after object namespace is deleted 2019-11-14 17:06:06 +00:00
sebres f00d9f9d02 bug [135804138e]: test case illustrating the segfault 2019-11-14 17:04:39 +00:00
jan.nijtmans 33632b0955 Merge 8.7 2019-11-14 14:50:41 +00:00
jan.nijtmans 0cb2dc120b Merge 8.6 2019-11-14 14:48:44 +00:00
jan.nijtmans 3707688157 Better - more complete - fix for [d433c0e0ad]: TCL_UTF_MAX == 4 problems. It allows emoji to be produced by the system encoding, even for other values of TCL_UTF_MAX.
Also added test-cases for this.
2019-11-14 14:01:13 +00:00
dgp c2e61fa00e merge 8.7 2019-11-13 18:24:06 +00:00
dgp 2ab36cc28a merge 8.6 2019-11-13 18:11:56 +00:00
dgp 21c4caf8e1 More work on changes. 2019-11-13 17:32:26 +00:00
jan.nijtmans e9559b5cc0 Merge 8.7 2019-11-13 16:11:37 +00:00
jan.nijtmans 9e9a51f3cb Merge 8.7 2019-11-13 16:10:12 +00:00
jan.nijtmans d085d8f0bb Merge 8.7 2019-11-13 16:03:18 +00:00
jan.nijtmans 8126172c86 Merge 8.6 2019-11-13 16:02:34 +00:00
jan.nijtmans ed907ec2d1 Make tclWinFile compile warningless using -DTCL_UTF_MAX=6 (not officially supported, but used by Androwish) 2019-11-13 16:01:35 +00:00
jan.nijtmans db160493de Don't install tommath_class.h and tommath_superclass.h on Windows any more by makefile.vc. Those are purely internal, not needed by extensions. 2019-11-13 15:59:11 +00:00
jan.nijtmans 27fd2bbb61 Merge 8.7 2019-11-13 13:50:19 +00:00
jan.nijtmans 3b32ee24fb Merge 8.6 2019-11-13 12:38:08 +00:00
jan.nijtmans d3315530e8 Part 2 of bugfix [d433c0e0ad]: TCL_UTF_MAX == 4 problems 2019-11-13 12:37:24 +00:00
jan.nijtmans 9ec6e380ed Merge 8.7 2019-11-13 09:24:00 +00:00
jan.nijtmans f502b57f5d Merge 8.6 2019-11-13 09:08:47 +00:00
jan.nijtmans 3181ee9123 Fix TIP #389 implementation, bug [d433c0e0ad]: TCL_UTF_MAX == 4 problems. Thanks to Christian Werner for the report. 2019-11-13 09:07:08 +00:00
jan.nijtmans de04d595fa Fix compiler warning when compiling with -DTCL_UTF_MAX=4 or 6 2019-11-13 08:16:51 +00:00
jan.nijtmans 863dfac9d9 try to install libtommath 1.2.0 through homebrew on MacOS 2019-11-12 22:06:09 +00:00
jan.nijtmans 41e4211a15 Merge 8.7. Finish implementation. 2019-11-12 12:11:05 +00:00
jan.nijtmans 8f3c64a7cd Merge 8.7 2019-11-11 20:52:10 +00:00
jan.nijtmans 34714bcefa Merge 8.6 2019-11-11 20:51:07 +00:00
jan.nijtmans 589c6b9de8 Use <inttypes.h> header-file on windows when available, just as on UNIX 2019-11-11 20:50:02 +00:00
jan.nijtmans e85c33074d On win32, include <inttypes.h> if available, just as on UNIX.
Disable compiler warning C4244 on all Microsoft compiler versions, not just the latest ones.
2019-11-11 16:32:42 +00:00
jan.nijtmans 6ce8973116 Merge 8.7 2019-11-11 16:19:46 +00:00
jan.nijtmans e512564f36 Merge 8.7 2019-11-11 14:26:50 +00:00
jan.nijtmans d33f396b99 Merge 8.7 2019-11-09 20:39:06 +00:00
jan.nijtmans 1acefe17b1 Merge 8.7 2019-11-09 20:04:53 +00:00
jan.nijtmans ac7ef03d8e Now that libtommath has mp_init_l/mp_init_ll/mp_init_ull, use those instead of the legacy TclBNInitBignumFromLong/TclBNInitBignumFromWideInt/TclBNInitBignumFromWideUInt 2019-11-09 19:39:23 +00:00
jan.nijtmans 3160edd841 Now that libtommath has mp_init_l/mp_init_ll/mp_init_ull, use those instead of the legacy TclBNInitBignumFromLong/TclBNInitBignumFromWideInt/TclBNInitBignumFromWideUInt 2019-11-08 21:56:52 +00:00
jan.nijtmans 99cce0ea11 Fix travis build win32, 32-bit mingw 2019-11-08 20:09:46 +00:00
jan.nijtmans 89dd0dcb93 Merge 8.6 2019-11-08 15:57:24 +00:00
jan.nijtmans c1f8c02900 Add support for mp_init_i32/mp_init_i64/mp_init_l/mp_init_ll/mp_init_u32/mp_init_u64/mp_init_ul/mp_init_ull/mp_set_ull, the main functions in libtommath 1.2.0 for setting values directly in mp_int's.
One new stub entry (mp_set_ull), the others make use of already existing stub entries. This is 100% fully upwards compatible.
2019-11-08 15:32:33 +00:00
dgp 3b028ddc03 Start updates to changes 2019-11-08 15:11:42 +00:00
jan.nijtmans a3bdd051a3 Merge 8.7 2019-11-08 11:44:37 +00:00
jan.nijtmans 5de9b738d3 Merge 8.6.
Add support for libtommath's mp_set_ll() function, since that's the replacement for the deprecated TclBNInitBignumFromWideInt() function.
2019-11-08 09:01:43 +00:00
jan.nijtmans 65946d3f86 For long/wide "scans"'s of negative numbers, but scanned as unsigned, generate binary representation in stead of string representation just as for all other numbers. 2019-11-08 07:58:54 +00:00
sebres 2325ddede0 added removal of timeout-event in cleanup of io-44.6 (can bother followed tests), removed unneeded constraint 2019-11-07 18:36:57 +00:00
pooryorick 52e0f14369 Rewrite comments in tclIOUtil.c 2019-11-07 16:40:09 +00:00
jan.nijtmans d6d77a73be Merge 8.7 2019-11-07 15:39:37 +00:00
dgp b82082f321 merge 8.7 2019-11-07 15:09:23 +00:00
jan.nijtmans 09776ae196 Merge 8.6 2019-11-07 14:58:53 +00:00
jan.nijtmans 22c56e716c merge-mark 2019-11-07 14:57:40 +00:00
jan.nijtmans 208e4fd87b Make mp_mul(a,a,c) equivalent to mp_sqr(a,c). Optimization backported from libtommath. 2019-11-07 14:56:58 +00:00
jan.nijtmans 79b3f448c0 Merge 8.7 2019-11-07 14:37:14 +00:00
jan.nijtmans dd8793f10d Deprecate mp_div_3(): Will be private function in future libtommath, not used in Tcl.
Deprecate mp_sqr() stub entry: Will be converted to macro calling mp_mul().
2019-11-07 13:56:25 +00:00
jan.nijtmans 8665d61608 Silence MSVC C4090 warnings when using ckrealloc(). Also make sure that Tcl itself doesn't use ckalloc() and friends any more. 2019-11-07 08:41:17 +00:00
sebres 1a379fa961 merge 8.6 2019-11-06 23:10:57 +00:00
sebres bdf8f9cc31 merge 8.5 2019-11-06 23:08:53 +00:00
sebres 41cd7b2754 cmdMZ.test: solved timing issues (too slow machines, debug builds, etc) 2019-11-06 23:03:43 +00:00
jan.nijtmans cbeadca761 Silence MSVC C4090 warnings when using ckfree() in certain situations. Problem reported by fvogel. 2019-11-06 22:30:07 +00:00
jan.nijtmans 6802d4740c Twice ckfree() -> Tcl_Free() 2019-11-06 22:18:37 +00:00
pooryorick a93db0866a Rewrite documentation of IO subsystem. 2019-11-06 20:41:58 +00:00
dgp 22abf1ffa4 merge trunk 2019-11-06 14:58:51 +00:00
dgp cda283c652 merge 8.7 2019-11-06 14:52:26 +00:00
dgp 245f333d52 Merge 8.7. Add files missing from distribution. 2019-11-06 14:35:24 +00:00
dgp 1e151782fc Add tcl/library/manifest.txt to the distribution produced by make dist 2019-11-06 14:07:15 +00:00
jan.nijtmans 0bddea7ffe Move tclOOScript.tcl from the generic to the tools directory, so "make dist" can pick it up. Reported by Pietro Cerutti. 2019-11-06 13:34:52 +00:00
jan.nijtmans ae33d6bbf6 Fix tclScan.c, not generating a string representation any more with unsigned wideints and unsigned longs. 2019-11-06 13:25:09 +00:00
jan.nijtmans 9348f23012 Fix tclScan.c, not generating a string representation any more with unsigned wideints 2019-11-06 12:34:27 +00:00
dgp 16ee735e92 Bump to version 9.0a1 for release. 2019-11-05 22:05:21 +00:00
dgp 0d8a34fe68 merge 8.7 2019-11-05 21:35:37 +00:00
dgp 7f6aa30c40 Bump release date 2019-11-05 17:52:33 +00:00
dgp 2ac91d1f8e merge 8.7 2019-11-05 17:51:55 +00:00
jan.nijtmans d010f7c348 More WIP: All makefile builds appear to work fine, makefile.vc build still to be done. 2019-11-05 16:37:52 +00:00
dgp f8d95ed6e3 Bump release date to Nov 21 2019-11-05 14:15:09 +00:00
jan.nijtmans 2b84291424 Merge 8.7 2019-11-04 12:10:54 +00:00
jan.nijtmans 55e2ef9b31 Merge 8.7 2019-11-04 12:10:19 +00:00
jan.nijtmans 25091201d6 Fix travis build on Windows (tweak to configure script was made on purpose, to workaround a bug in autoconf-2.59) 2019-11-04 12:03:56 +00:00
dgp bbbc406887 Updates from make dist 2019-11-03 02:25:43 +00:00
dgp 0db44b0516 Fix test failures with -singleproc 1 testing 2019-11-03 02:17:02 +00:00
dgp 8bc7833ed3 bump release date 2019-11-02 17:40:08 +00:00
dgp 0125995766 merge 8,6 2019-11-02 17:38:16 +00:00
jan.nijtmans c848a8872a Add compat/stdint.h, upgrade to libtommath 1.2.0, adapt as much as possible accordingly (still WIP) 2019-11-01 16:15:49 +00:00
jan.nijtmans 01c6f7705f Re-base to core-8-branch 2019-11-01 11:25:03 +00:00
jan.nijtmans 493585e802 Merge 8.6 2019-11-01 10:11:18 +00:00
jan.nijtmans 92be9569b8 Make ioapi.c and minizip.c build on Windows (for someone who would want to) 2019-11-01 10:10:06 +00:00
jan.nijtmans ac8455a022 Change references to mp_digit into unsigned int, everywhere in tclTomMath.decls. It's the same, but it makes it possible to compile libtommath with MP_64BIT in stead of MP-32BIT for greater efficiency for compilers that support it. 2019-11-01 08:55:20 +00:00
jan.nijtmans e415aee138 Fix generic\tclStubInit.c(139): warning C4098: 'TclBN_mp_set': 'void' function returning a value 2019-10-31 14:28:40 +00:00
jan.nijtmans 22b17a9836 Merge 8.7 2019-10-31 12:58:08 +00:00
jan.nijtmans b3b2c76fdc Merge 8.7 2019-10-31 11:16:54 +00:00
jan.nijtmans 9094a7483e Merge 8.6 2019-10-31 11:16:08 +00:00
jan.nijtmans 939e6b3a1a Merge 8.5 2019-10-31 11:14:35 +00:00
jan.nijtmans 4ba2b4fbdf More patches from Debian 2019-10-31 11:13:11 +00:00
jan.nijtmans 1813f87d9a Merge 8.7 2019-10-31 10:59:53 +00:00
jan.nijtmans c4da7631c0 Merge 8.6 2019-10-31 10:15:57 +00:00
jan.nijtmans 84ba09182d 8.5 -> 8.6 2019-10-31 10:05:23 +00:00
jan.nijtmans 757964d7fa Fix [https://core.tcl-lang.org/tk/tktview/056f9e85dc|056f9e85dc]: debian patches 2019-10-31 09:56:52 +00:00
jan.nijtmans 0f43a76273 Fix [https://core.tcl-lang.org/tk/tktview/056f9e85dc|056f9e85dc]: debian patches 2019-10-31 09:31:34 +00:00
jan.nijtmans 1e1530a566 Merge 8.7 2019-10-30 21:40:01 +00:00
jan.nijtmans 5ae87ec20d Merge 8.6 2019-10-30 21:34:02 +00:00
jan.nijtmans e52ace05d3 Change mp_isodd() (back) from libtommath stub entry to macro. libtommath changed it back to macro too in its master branch, we better do the same.
Better usage of mp_isneg() macro, in stead of directly comparing sign with MP_NEG/MP_ZPOS.
2019-10-30 20:33:45 +00:00
dgp 7732a55113 merge 8.7 2019-10-30 14:27:57 +00:00
jan.nijtmans d06eced64d More tweaks, hopefully fixing the Travis build 2019-10-30 09:20:33 +00:00
jan.nijtmans 92428a1045 More tweaks 2019-10-29 23:22:25 +00:00
jan.nijtmans 95d0649165 WIP: Use unsigned int in stead of mp_digit in libtommath stub entries.
This make libtommath's API independant whether compiled with MP_64BIT or not
2019-10-29 23:07:32 +00:00
jan.nijtmans af55df92b4 Merge 8.7 2019-10-29 12:58:19 +00:00
jan.nijtmans 24a5107484 On Windows, use <stdint.h> header-file if available. 2019-10-29 12:47:45 +00:00
jan.nijtmans 75fd364ccf Combine TCL_DD_SHORTEN_FLAG and TCL_DD_SHORTEST to be the same flag (which it is .... actually) 2019-10-29 12:42:46 +00:00
dgp f594ed900c update changes 2019-10-28 17:18:01 +00:00
dgp 00a23c159d merge 8.6 2019-10-28 16:56:12 +00:00
jan.nijtmans c8444b192d Merge 8.7 2019-10-28 16:49:32 +00:00
jan.nijtmans 275904f8cb Merge 8.7 2019-10-28 16:42:52 +00:00
jan.nijtmans e0afc4ae97 Merge 8.6 2019-10-28 16:41:16 +00:00
jan.nijtmans 047122995d Put back tests/fileSystemEncoding.test, but now don't run it on Windows, since the NTFS doesn't the system encoding, therefore doesn't expose bug [bcd1004104]. 2019-10-28 16:40:08 +00:00
jan.nijtmans d85bcdef8b Merge 8.7 2019-10-28 16:22:21 +00:00
jan.nijtmans ba1f0d37e1 Don't typedef mp_digit in tcl.h anymore, it is supposed to be brought in from tclTomMath.h.
Add test in configure scripts for <stdint.h> and <stdbool.h>. Not used by Tcl yet, probably handy for TEA extensions wanting to use that ;-)
2019-10-28 16:09:38 +00:00
dgp 7b7cb95a11 merge 8.6 2019-10-28 15:42:48 +00:00
dgp d48eb0305d merge 8.7 2019-10-28 15:37:47 +00:00
dgp 4bcbf9fc65 Close fork, dropping commits apparently in error. 2019-10-28 15:32:28 +00:00
jan.nijtmans b89e3d8c83 Merge 8.7 2019-10-28 09:10:32 +00:00
jan.nijtmans 6e88a50771 Remove (temporaryly) tests/fileSystemEncoding.test, since the bug is not fixed yet on Windows 2019-10-28 09:09:59 +00:00
jan.nijtmans fb040138c9 Close fork, Merge 8.7 2019-10-28 08:50:57 +00:00
jan.nijtmans 1370648058 Merge 8.6 2019-10-28 08:40:21 +00:00
jan.nijtmans 4f6ff8445f Close fork, and temporary remove tests/fileSystemEncoding.test, since apparently bug [bcd1004104] is not fixed yet on Windows. 2019-10-28 08:37:30 +00:00
Kevin Walzer 507395df2c Tweak README 2019-10-27 22:24:39 +00:00
Kevin Walzer 56f2abbf89 further refinement of configure to remove /System 2019-10-27 22:22:50 +00:00
Kevin Walzer 2cd7aa2260 Remove /System from auto_path on macOS; change seems to have been overwritten by other merge 2019-10-27 22:14:41 +00:00
Kevin Walzer 6926f5bdc9 Documentation change for auto_path on macOS 2019-10-27 22:11:09 +00:00
pooryorick a2796ccf0a Test for [bcd100410465] and add ::tcltests::tempdir. 2019-10-26 17:52:25 +00:00
pooryorick 4b994916bd More simple fix for [bcd100410465], stale cached file FsPath object. 2019-10-26 17:47:12 +00:00
pooryorick c5aa761ded Test for issue [bcd1004104651], and new routine, ::tcltests::tempdir. 2019-10-26 15:43:35 +00:00
pooryorick 71c3d83e9d Fix for [bcd100410465], stale cached file FsPath object 2019-10-26 14:14:24 +00:00
jan.nijtmans bf1382a38f Merge trunk 2019-10-25 20:45:45 +00:00
jan.nijtmans efe1dce70b Merge 8.7 2019-10-25 20:32:26 +00:00
jan.nijtmans 6362d5ced5 Merge 8.7 2019-10-25 20:09:13 +00:00
jan.nijtmans 0c8bc1d8c2 More code cleanup related to libtommath 1.2.0: Adapt naming of (internal) symbols to new conventions. Remove deprecated declarations which were never implemented/included by Tcl. 2019-10-25 19:51:18 +00:00
jan.nijtmans 44f5f557ef Merge 8.6.
Also remove unused variable in unix/tclUnixFile.c
2019-10-25 16:24:11 +00:00
jan.nijtmans d31b63df9c Put #define's in alphabetical order.
Use MP_DIGIT_BIT in stead of (deprecated) DIGIT_BIT everywhere.
(just code cleanup, nothing funcional)
2019-10-25 16:09:50 +00:00
dgp 6ca9f62bb5 merge 8.6 2019-10-25 15:18:11 +00:00
pooryorick 2d699b3818 If NO_REALPATH is defined, raise an error instead of building a broken Tcl. 2019-10-25 13:17:28 +00:00
Kevin Walzer 0d122fd177 Remove /System from auto_path on macOS because Apple has deprecated its own ancient installation of Tcl/Tk 2019-10-25 01:25:48 +00:00
Kevin Walzer e9121854f9 Remove /System from auto_path on macOS because Apple has deprecated its own ancient installation of Tcl/Tk 2019-10-25 01:16:54 +00:00
Kevin Walzer 1d042a78a8 Remove /System from auto_path on macOS because Apple has deprecated its own ancient installation of Tcl/Tk 2019-10-25 01:13:42 +00:00
jan.nijtmans 1a5b1241db Merge 8.7 2019-10-24 19:55:34 +00:00
jan.nijtmans e22b6eb9ab Merge 8.6 2019-10-24 19:26:44 +00:00
jan.nijtmans 94ef14f2fe Combine two libtommath stub entries, which (almost) do the same 2019-10-24 18:58:31 +00:00
jan.nijtmans 065fc14cc4 Merge 8.7 2019-10-24 15:41:32 +00:00
jan.nijtmans d0345abbf6 Reference registry 1.3.3 -> 1.3.4 2019-10-24 15:38:09 +00:00
jan.nijtmans 25eedf811a Merge 8.7 2019-10-24 15:34:30 +00:00
jan.nijtmans 846e8f4c80 Add support for libtommath's MP_WUR annotation to genStubs.tcl. Not enforced yet by the Tcl core, but extensions will encounter the libtommath warnings. Can be switched off. 2019-10-24 15:07:10 +00:00
jan.nijtmans 8f3937588f Merge 8.7 2019-10-24 08:45:23 +00:00
jan.nijtmans c3353d5a64 Backout [0f2870649c804dd8], since testcase encoding-2.2 fails 2019-10-24 07:57:54 +00:00
jan.nijtmans 5837fdc42c merge-mark 2019-10-24 07:41:43 +00:00
jan.nijtmans 07f720d567 Add additional (dummy) stub entries in the libtommath stubtable 2019-10-24 07:36:48 +00:00
jan.nijtmans 710734302b merge-mark 2019-10-23 20:36:03 +00:00
jan.nijtmans a1e06f4b0a Combine two libtommath stub entries, which do exactly the same.
Fix mp_init_set_int stub, handling the situation that mp_init() fails (however unlikely)
2019-10-23 20:28:11 +00:00
dgp d6513e05a7 merge 8.6 2019-10-23 17:10:06 +00:00
jan.nijtmans d068a54395 Merge 8.7. But - in stead - remove all deprecated API from libtommath 1.2.0: Starting with Tcl 9.0 we don't support libtommath's deprecated API any more. 2019-10-23 14:33:58 +00:00
jan.nijtmans b986f31385 Deprecate mp_unsigned_bin_size, mp_init_set_int, mp_set_int, which are deprecated in libtommath 1.2.0.
In stead, add new function mp_set_ul to the build (mp_ubin_size was already included in the build earlier)
2019-10-23 14:11:37 +00:00
jan.nijtmans 6b002a2d06 Fix gcc warning, also introduced by [0f2870649c804dd8] 2019-10-23 11:51:32 +00:00
jan.nijtmans 9f1a598fc1 Fix possible gcc warnings. Also indicate dummy parameters as "dummy" 2019-10-23 11:49:34 +00:00
jan.nijtmans 52f3af0bcf Merge 8.7 2019-10-23 11:11:58 +00:00
jan.nijtmans 01498c5ecd Merge 8.6.
Also unbreak windows build, broken since [0f2870649c804dd8].
2019-10-23 10:01:11 +00:00
jan.nijtmans 2df6f12a99 Extend libtommath stub table, so extension writers can move away from deprecated libtommath functions. 2019-10-23 09:16:37 +00:00
jan.nijtmans 481c3a3fd5 Update "make dist" for libtommath 1.2.0: TOMMATH_SRCS 2019-10-22 23:01:58 +00:00
jan.nijtmans 4958363608 merge-mark 2019-10-22 21:56:05 +00:00
jan.nijtmans 76da15f7bc Fix breakage from previous commit (still one test-case, encoding-2.2, is failing) 2019-10-22 21:54:14 +00:00
jan.nijtmans 8726aabade Merge 8.7 2019-10-22 21:36:21 +00:00
pooryorick 566db2779b Fix for [bcd1004104] 2019-10-22 19:21:48 +00:00
jan.nijtmans 1ce018ea85 Deprecate mp_get_bit, mp_expt_d_ex, mp_toradix_n, mp_to_unsigned_bin, mp_to_unsigned_bin_n, because they are deprecated in libtommath 1.2.0 too.
Add replacement functions mp_to_ubin, mp_ubin_size and mp_to_radix to libtommath stub table.
2019-10-22 15:47:53 +00:00
jan.nijtmans d14ab39047 Merge 8.7 2019-10-22 12:54:46 +00:00
jan.nijtmans ab6fc07f69 Merge 8.6 2019-10-22 12:25:18 +00:00
jan.nijtmans 03475f0648 Update to latest libtommath, version 1.2.0 2019-10-22 10:38:02 +00:00
jan.nijtmans 13e2682646 Merge libtommath 1.2.0 2019-10-22 09:55:26 +00:00
jan.nijtmans 539ae1750f Merge libtommath 1.2.0 2019-10-22 09:54:09 +00:00
jan.nijtmans 5de6de238c Update libtommath to v1.2.0 2019-10-22 09:53:10 +00:00
dgp 18c563f161 Complete draft changes. 2019-10-21 19:03:51 +00:00
dgp 2922b99f62 merge 8.6 2019-10-21 18:54:11 +00:00
dgp 9943a8a579 Bump to dde 1.4.2 and registry 1.3.4 2019-10-21 18:50:27 +00:00
dgp 783d209ab7 Bump to dde 1.4.2 and registry 1.3.4. 2019-10-21 18:10:29 +00:00
dgp fe24e890ab More progress on changes. 2019-10-21 17:33:46 +00:00
dgp 9b08b0169a merge 8.7 2019-10-21 13:13:52 +00:00
dgp 414826083b merge 8.6 2019-10-21 13:04:46 +00:00
jan.nijtmans c2a49a6f27 Merge libtommath 1.2.0-rc3 2019-10-21 12:25:54 +00:00
jan.nijtmans 49c58637ba Merge libtommath 1.2.0-rc3 2019-10-21 10:03:16 +00:00
jan.nijtmans b03d00e307 Update libtommath to v1.2.0-rc3 2019-10-21 10:01:35 +00:00
jan.nijtmans 9ac86b7c6c Update tclTomMath.h with changes from tommath.h 2019-10-18 15:27:59 +00:00
jan.nijtmans 601e71d7fc Merge latest libtommath changes (will be release 1.2.0) 2019-10-18 15:09:36 +00:00
jan.nijtmans 4da52405ca Merge libtommath 2019-10-18 14:05:24 +00:00
jan.nijtmans 12c8a0c839 update libtommath to v1.2.0-rc2, with a few additional fixes. 2019-10-18 14:04:41 +00:00
jan.nijtmans 6c9ba2c3e1 Disable warning C4003 on MSVC, since it gives a false warning in libtommath. 2019-10-18 12:09:48 +00:00
jan.nijtmans f58aaebc26 Merge some libtommath changes (mainly additon of MP_CALLOC) 2019-10-17 15:28:10 +00:00
jan.nijtmans e70b0460ea Put back MP_CALLOC, since it's going to stay in libtommath 2019-10-17 15:15:24 +00:00
jan.nijtmans 357548f682 Update to latest Tcl (core-8-6-branch) and latest libtommath (1.2.0-rc1) 2019-10-17 13:45:49 +00:00
jan.nijtmans 6893ec40c9 Merge libtommath 2019-10-17 11:09:10 +00:00
jan.nijtmans 6dd152f040 Update libtommath to v1.2.0-rc1 2019-10-17 09:41:54 +00:00
jan.nijtmans 39a95d7e52 Merge-mark 2019-10-15 15:08:49 +00:00
jan.nijtmans 6e9d74fa78 Merge 8.5 2019-10-15 15:07:46 +00:00
jan.nijtmans c9d50be3b9 Add more dummy stub-entries, filled with NULL. Stub table size corresponds with stub table size for 8.7, encountering NULL entries is better than accessing outside of array bounds. 2019-10-15 14:38:11 +00:00
jan.nijtmans 7f35785b2f Merge 8.7 2019-10-14 21:18:02 +00:00
jan.nijtmans 76e2b0d613 Merge 8.6 2019-10-14 21:17:01 +00:00
jan.nijtmans 62cba4649f Fix [02773491861d9fd0]: Tcl_ParseArgsObjv TCL_ARGV_CONSTANT documentation is wrong 2019-10-14 21:06:05 +00:00
jan.nijtmans 17993c4a6f Merge 8.7 2019-10-11 12:47:21 +00:00
jan.nijtmans 37b044ce72 Merge 8.6 2019-10-11 12:46:10 +00:00
jan.nijtmans d7304e379d Merge 8.5 2019-10-11 12:45:07 +00:00
jan.nijtmans fafaee2a19 Update (fossil's) ignore-glob and (git's) .gitignore 2019-10-11 12:43:49 +00:00
jan.nijtmans c358ee8f78 Merge 8.7 2019-10-10 19:19:38 +00:00
jan.nijtmans 9b9ef79f51 Merge 8.6 2019-10-10 19:15:37 +00:00
jan.nijtmans ddbba194c5 Merge 8.5 2019-10-10 19:11:46 +00:00
jan.nijtmans 4edaedf1b0 Don't bother to install wine, when we are not going to run it anyway.
Only build shared version (32/64bit) when cross-compiling on Linux: We already compile all versions with GCC natively (with tests!), so those have little additional value.
2019-10-10 19:07:30 +00:00
dgp 2e674796fc changes WIP 2019-10-07 18:49:56 +00:00
dgp 180d5e31c9 merge 8.6 2019-10-07 15:51:47 +00:00
jan.nijtmans 16a6b9c3c1 Sync with libtommath's "develop" again 2019-10-07 15:29:26 +00:00
jan.nijtmans 1e29c4f4ad Update to latest "develop" branch 2019-10-07 11:37:36 +00:00
jan.nijtmans 152c7b4944 Merge trunk 2019-10-06 20:42:36 +00:00
jan.nijtmans f73034b8e3 Merge 8.7 2019-10-06 20:39:03 +00:00
jan.nijtmans 24a1b4e94f Merge 8.7 2019-10-05 20:45:31 +00:00
jan.nijtmans e53ea0c452 Merge 8.6 2019-10-05 20:44:28 +00:00
jan.nijtmans dd3033a0ce Change LSTATUS to LONG, since older SDK's don't know it. core.tcl.tk -> core.tcl-lang.org and http -> https 2019-10-05 20:43:00 +00:00
jan.nijtmans 92816a0c35 Change LSTATUS to LONG, since older SDK's don't know it.
core.tcl.tk -> core.tcl-lang.org and htt -> https
2019-10-05 20:35:45 +00:00
jan.nijtmans 3d55f5f6f0 Merge 8.7 2019-10-02 21:40:45 +00:00
dgp b73c0aa0aa merge 8.7 2019-10-02 15:45:36 +00:00
dgp 1b0be70377 merge 8.6 2019-10-02 15:38:07 +00:00
jan.nijtmans 35c793de5f Merge 8.7 2019-10-02 11:39:44 +00:00
jan.nijtmans 67e037520d Merge 8.6 2019-10-02 11:38:10 +00:00
jan.nijtmans aaa0152aeb Fix [16768d65f0]: Fix gethostbyname_r and gethostbyaddr_r detection on NetBSD. Patch by Kamil Rytarowski. 2019-10-02 11:29:45 +00:00
jan.nijtmans dc81b2efaf Fix [16768d65f0]: Fix gethostbyname_r and gethostbyaddr_r detection on NetBSD. Patch by Kamil Rytarowski. 2019-10-02 11:22:40 +00:00
jan.nijtmans f512f6d8d5 Correct typo's in tcl.m4. Found by Kamil Rytarowski 2019-10-01 21:29:09 +00:00
jan.nijtmans c4606765eb Merge 8.7 2019-10-01 19:32:32 +00:00
jan.nijtmans 6e4833d8fd Merge 8.7 2019-09-29 15:51:07 +00:00
jan.nijtmans 53c93039f6 Fix correct export on win32 for TclZipfs_AppHook, when not building with -DUNICODE 2019-09-29 15:45:39 +00:00
jan.nijtmans ae65a0ee04 Merge 8.7 2019-09-29 12:18:11 +00:00
jan.nijtmans 0e525ab237 Use Tcl_WCharToUtfDString in stead of (deprecated) Tcl_WinTCharToUtf 2019-09-29 12:16:25 +00:00
jan.nijtmans 07493eeb9d Merge 8.6 2019-09-29 12:08:56 +00:00
jan.nijtmans f96662305e Don't build most of the files with -DUNICODE -D_UNICODE any more, only the ones that need to.
Since all calls to the Win32 API already use the *W() forms directly, this actually doesn't make a difference.
2019-09-29 12:02:22 +00:00
jan.nijtmans 80a7abf7e5 Adapt test-case to full-utf correct behaviour 2019-09-27 13:02:39 +00:00
dgp 2b53ba06dc merge 8.6 2019-09-27 12:21:09 +00:00
jan.nijtmans e0087267df Merge 8.6 and fix Travis build on Windows 2019-09-27 11:42:12 +00:00
sebres 052144cb1f merge 8.5 2019-09-26 16:22:42 +00:00
sebres f1550da616 amend to [fec0c17d39] - reduce max count of nested compiles to 1500 2019-09-26 16:21:25 +00:00
jan.nijtmans a2bc74984c Merge 8.6 2019-09-26 12:14:20 +00:00
sebres db3ee6681b merge-point 2019-09-25 20:02:52 +00:00
sebres ead525956c cherry-pick [f5b6b83de7] - namespace.test: add missing clean-up (allow repetition of test within -singleproc 1) 2019-09-25 20:01:35 +00:00
jan.nijtmans 97294cb6f5 Merge 8.7 2019-09-25 15:06:25 +00:00
dgp 22d8a012ca merge 8.7 2019-09-25 15:03:42 +00:00
dgp c3d5218595 merge 8.6 2019-09-25 15:03:10 +00:00
jan.nijtmans 2c327304a1 Merge 8.7 2019-09-25 13:42:11 +00:00
jan.nijtmans d9415749f8 Merge trunk 2019-09-25 13:18:11 +00:00
jan.nijtmans 82947d7ebf Merge 8.7 2019-09-25 13:17:09 +00:00
jan.nijtmans 13f90df659 Merge 8.6 2019-09-25 13:14:59 +00:00
jan.nijtmans 81bf9a7925 Merge 8.5 2019-09-25 13:07:03 +00:00
jan.nijtmans 988da40f48 Fix failing test-case iocmd-21.20 on Travis 2019-09-25 12:18:14 +00:00
jan.nijtmans 55d9c007c0 Use consistantly "/D" in stead of "-D" for Microsoft compilers (MSVC) 2019-09-25 12:17:29 +00:00
jan.nijtmans 03dea312bd (cherry-pick): Update TZ info to tzdata2019c. 2019-09-25 11:54:18 +00:00
jan.nijtmans 0153d6f564 Make Tcl_WinUtfToTChar/Tcl_WinTCharToUtf really deprecate in 9.0 (now that no battery-extensions use it any more)
Remove two functions which are not used any more (they changed to macro's earlier)
2019-09-25 11:51:41 +00:00
sebres ee57084f05 namespace.test: add missing clean-up (allow repetition of test within -singleproc 1) 2019-09-24 20:01:06 +00:00
jan.nijtmans 1e9e53cfec Merge 8.6 2019-09-20 21:38:17 +00:00
jan.nijtmans e75152402a Merge trunk 2019-09-20 21:37:21 +00:00
jan.nijtmans e1febe2aac merge-mark 2019-09-20 21:28:03 +00:00
jan.nijtmans fe0c007b96 Merge 8.7 2019-09-20 21:21:14 +00:00
jan.nijtmans b776295fc0 Merge 8.6 2019-09-20 21:20:28 +00:00
jan.nijtmans 0a6728c33d Let's use GetWindowLongW/SetWindowLongW on Win32 directly. Missed them because they are not used in Win64. 2019-09-20 21:01:44 +00:00
jan.nijtmans 1e8a4963fc Merge trunk 2019-09-20 15:07:11 +00:00
jan.nijtmans 2912ca25d8 Merge 8.7 2019-09-20 15:04:09 +00:00
jan.nijtmans 6178928e34 Merge 8.6 2019-09-20 15:03:24 +00:00
jan.nijtmans 2137118693 Modify registry/dde such that they no longer need to be compiled with -DUNICODE. Also no longer use Tcl_WinTCharToUtf/Tcl_WinUtfToTchar but the unicode conversions functions to do WCHAR <=> UTF-8 conversions.
When compiled with Tcl >= 8.7, use the TIP #548 wchar_t functions in stead for registry/dde. 
No need to update the registry/dde version numbers (1.3.3 resp. 1.4.1), because those were recentely bumped already, after the Tcl 8.6.9 release.
2019-09-20 15:02:42 +00:00
jan.nijtmans 1ed3c75ba4 Modify registry/dde such that they no longer need to be compiled with -DUNICODE. Also no longer use Tcl_WinTCharToUtf/Tcl_WinUtfToTchar but the unicode conversions functions to do WCHAR <=> UTF-8 conversions.
When compiled with Tcl >= 8.7, use the TIP #548 wchar_t functions in stead for registry/dde.
2019-09-20 14:59:18 +00:00
jan.nijtmans 865ea5e678 More Win32 API impovals. 2019-09-20 13:53:39 +00:00
dgp 75bd963079 merge 8.7 2019-09-20 13:28:34 +00:00
dgp 379c5166ff merge 8.6 2019-09-20 13:28:02 +00:00
jan.nijtmans 775e9aac00 Merge 8.7 2019-09-19 18:27:06 +00:00
jan.nijtmans ce1a26acf5 Merge trunk 2019-09-19 15:42:22 +00:00
jan.nijtmans dc6c385849 Merge 8.7 2019-09-19 15:36:11 +00:00
jan.nijtmans 39795a1da4 Merge 8.6 2019-09-19 15:24:11 +00:00
jan.nijtmans 3147adf346 Some more *A() -> *W() Win32 API changes, making Unicode calls Explicit. 2019-09-19 15:09:38 +00:00
jan.nijtmans 91258f5572 Don't build the Tcl library in Unicode mode any more. Just tclAppInit.c (and cat32 on Windows) 2019-09-19 11:36:21 +00:00
jan.nijtmans 52f7f8443d Merge 8.6. Missing cast in Tcl_WinTCharToUtf() macro (when compiling without -DUNICODE) 2019-09-19 07:44:09 +00:00
sebres ddd29dbbd3 all.tcl: replacement for exit, if calling direct only (avoid rewrite exit if it is inlined or interactive shell) 2019-09-18 22:58:32 +00:00
sebres 63660abb4f TEBC: avoid error "unitialized variable" if called in debug mode (or with analysis tools) - objv = NULL, similar to objc = 0 (e. g. calling parser.test, in doYield by INTERP_DEBUG_FRAME) 2019-09-18 22:43:08 +00:00
dgp 11fdd10d9e merge 8.7 2019-09-18 16:31:13 +00:00
dgp 9fd52465aa merge 8.6 2019-09-18 16:31:00 +00:00
jan.nijtmans 3a94aaa6cb TCHAR -> WCHAR converions (and corresponding Win32 API call changes), since we are impicitly compiling with -DUNICODE 2019-09-18 15:11:23 +00:00
jan.nijtmans 52e96157d2 Merge 8.7 2019-09-18 09:39:53 +00:00
jan.nijtmans bb14939c64 Add 3 more builds with Clang (UTF_MAX=6, UTF_MAX=3, NO_DEPRECATED).
Change build order a little: Do all static builds after the corresponding shared builds.
2019-09-18 09:36:56 +00:00
jan.nijtmans 0ff016021c Make less dependent on UNICODE definition 2019-09-18 09:33:43 +00:00
jan.nijtmans 1d9a058eae Merge 8.7 2019-09-17 13:03:11 +00:00
jan.nijtmans fa67ca104b Merge 8.6 2019-09-17 13:02:38 +00:00
jan.nijtmans f2f4614f5c Add missing constraints to test-cases 2019-09-17 13:01:46 +00:00
jan.nijtmans d8577f3bd9 Merge 8.7 2019-09-17 11:39:21 +00:00
jan.nijtmans 11aba21de9 Merge 8.7 2019-09-17 10:47:21 +00:00
jan.nijtmans 1ff9f7ba97 Fix .travis.yml 2019-09-17 10:45:04 +00:00
jan.nijtmans 86273355c2 Merge trunk 2019-09-17 09:23:29 +00:00
jan.nijtmans 632946bbe0 Merge 8.7 2019-09-17 07:12:57 +00:00
jan.nijtmans 898b17c6b4 Move testgetencpath/testsetencpath test commands from UNIX-specific to general. Rewrite a few other commands (like "memory") to use the Tcl_Obj interface. 2019-09-17 07:02:17 +00:00
jan.nijtmans b765d541e6 Merge 8.7 2019-09-16 21:41:26 +00:00
jan.nijtmans 6d451c02f2 Merge 8.6 2019-09-16 21:35:16 +00:00
jan.nijtmans caa904131a Bugfix in Tcl_UtfPrev/Tcl_UtfNext: When handling 4-byte UTF-8 byte sequences, those should be able to move back/forward 4 bytes if TCL_UTF_MAX <= 4. Update comment accordingly.
Bugfix in Tcl_UtfFindFirst/Tcl_UtfFindLast: Those functions should be able to find both the high surrogate (if asked for) as also the full character (combination of both surrogates)
2019-09-16 21:18:21 +00:00
jan.nijtmans 1583d8b4ef Merge 8.7 2019-09-16 19:16:07 +00:00
jan.nijtmans fab75817f4 Merge 8.6 2019-09-16 19:09:04 +00:00
jan.nijtmans 746ce9535f Add 32-bit windows builds (both MSVC and GCC) to Travis 2019-09-16 18:55:50 +00:00
jan.nijtmans 21ad94030a Add 32-bit Windows builds, both with MSVC and GCC, to Travis.
Backport various test-suite changes fro 8.6 to 8.5, mainly "knownBug" markers and comments
2019-09-16 18:45:38 +00:00
sebres 906d03c8cb execute.test: fix tests (if test started using -singleproc 1) 2019-09-16 16:33:30 +00:00
dgp 2ff1a19af2 merge 8.7 2019-09-16 14:50:38 +00:00
jan.nijtmans 19eb51a4cb Fix Utf16ToUtfProc() (from TIP #548): If last code-point is higher surrogate, make sure that actual conversion is delayed until the next round, assuring proper merging of two surrogates into a single UTF-8 character. 2019-09-16 12:47:19 +00:00
jan.nijtmans e10b32c27a try xcode 10.3 2019-09-15 00:01:34 +00:00
jan.nijtmans c9396a84a8 Merge 8.7 2019-09-14 21:52:20 +00:00
jan.nijtmans 556c0dbc24 Two paces where TCL_AUTO_LENGTH should be used 2019-09-14 13:11:55 +00:00
jan.nijtmans fc77f0dda4 Merge 8.7 2019-09-14 13:07:19 +00:00
jan.nijtmans 93022718af TIP #548 implementation: Support wchar_t conversion functions and deprecate Tcl_WinUtfToTChar() and Tcl_WinTCharToUtf() 2019-09-14 12:41:37 +00:00
jan.nijtmans 4396d37f6f Merge 8.7 2019-09-14 12:37:13 +00:00
jan.nijtmans 5406b20772 TIP #414 implementation: Add (back) Tcl_InitSubsystems as Public API 2019-09-14 12:36:36 +00:00
jan.nijtmans ef1b90ad7a Merge 8.5 2019-09-13 13:29:42 +00:00
jan.nijtmans facb6a3102 merge-mark 2019-09-13 13:28:07 +00:00
jan.nijtmans 7d5b0dc33c Make test-cases (hopefully) work on Travis, e.g. by adding nonPortable marks to test-cases which are nonPortable in 8.6 as well. 2019-09-13 13:27:05 +00:00
dgp 71342a5742 merge 8.6 2019-09-13 12:27:22 +00:00
dgp 663240b26f merge 8.7 2019-09-13 12:27:17 +00:00
jan.nijtmans 0ef77b5263 Merge 8.7 2019-09-13 09:14:34 +00:00
jan.nijtmans 3f40916f38 Merge 8.7 2019-09-13 09:12:20 +00:00
jan.nijtmans e0d5d4dfe5 Merge 8.6 2019-09-13 09:11:27 +00:00
jan.nijtmans 5ba8d3c6d7 Merge 8.5 2019-09-13 09:10:31 +00:00
jan.nijtmans 98e3a60b67 Add knownMsvcBug restriction to chanio-20.5, because it sometimes hangs in a Travis build. Restucture many test-cases to tcltest 2 syntax. 2019-09-13 09:01:44 +00:00
jan.nijtmans bd089b3935 Merge 8.7 2019-09-13 07:58:13 +00:00
jan.nijtmans d6390873ff Merge 8.6 2019-09-13 07:56:17 +00:00
jan.nijtmans 794b9c5949 Remove unneeded knownMsvcBug testconstraint definition 2019-09-13 07:55:30 +00:00
sebres 5d5451c6da merge 8.7 2019-09-12 20:51:24 +00:00
sebres 4a16d65cc6 merge 8.6 2019-09-12 19:46:25 +00:00
sebres 3b982165af cmdAH.test (win-only): rewrite test to prefer SystemRoot (readonly) instead of windir to check windows directory is not owned, bug [7de2d722bd] 2019-09-12 19:34:23 +00:00
sebres a57cd978a5 merge 8.5 - windows: eliminate overwriting of WINDIR env-variable in VS-makefiles (used WIN_DIR now similar to "makefile.in");
init.tcl: windows helper prefer SystemRoot if available.
2019-09-12 19:22:58 +00:00
sebres 77286202dd windows: eliminate overwriting of WINDIR env-variable in makefiles (used WIN_DIR now similar to "makefile.in");
init.tcl: windows helper prefer SystemRoot if available.
2019-09-12 19:12:56 +00:00
jan.nijtmans f38c8594fb Merge 8.5. Mark a few more tests nonPortable (for 8.5, not to be merged to 8.6!) 2019-09-12 15:03:53 +00:00
jan.nijtmans a6c66ef755 Merge 8.7 2019-09-12 14:49:37 +00:00
jan.nijtmans ba0c94d03e Merge 8.7 2019-09-12 14:19:04 +00:00
jan.nijtmans 57805e2383 merge-mark 2019-09-12 14:12:55 +00:00
jan.nijtmans 5c782902a0 More code cleanup: Move more Tcl_UniChar initializations out of the loop. Remove unnecessary type-casts 2019-09-12 14:12:11 +00:00
jan.nijtmans c73f421606 Merge 8.6 2019-09-12 11:26:49 +00:00
jan.nijtmans eaefc3bdf3 Code cleanup: Add some initialization to "Tcl_UniChar ch" declaration, making the chance higher that 4-byte UTF-8 sequences are handled more reasonable internally (see: [https://core.tcl-lang.org/tk/tktview?name=a179564826|a179564826]).
Use more TclGetString() in stead of Tcl_GetString(), which is slightly more efficient.
2019-09-12 11:01:18 +00:00
José Ignacio Marín 5783fb3197 Update TZ info to tzdata2019c. 2019-09-12 08:01:37 +00:00
José Ignacio Marín ec00b7a363 Update TZ info to tzdata2019c. 2019-09-12 08:00:52 +00:00
jan.nijtmans 8fbd03b7ab merge-mark 2019-09-12 07:51:56 +00:00
jan.nijtmans 1c7a85c590 Fix Tcl part of [https://core.tcl-lang.org/tk/tktview?name=a179564826|a179564826]: Tk 8.6: prevent issues when encountering non-BMP Unicode characters.
This changes the handling of incoming 'invalid' 4-bute UTF-8 characters. They are no longer handled as 4 separate bytes, but as 2 Unicode characters.
(partial backported from 8.7). Still, Tcl will NEVER produce 4-byte UTF-8 byte sequences, so this can never hit Tcl applications/extensions by surprise.
More changes to Tk 8.6 expected improving this, but this Tcl change is a pre-requisite for that.
2019-09-12 07:51:13 +00:00
dgp e3967b9754 merge 8.7 2019-09-11 19:28:35 +00:00
dgp 658bd3b3fc merge 8.6 2019-09-11 19:24:51 +00:00
sebres ea5368771d merge-mark (no functional changes) 2019-09-11 19:11:50 +00:00
sebres a9c3a55803 partially cherrypick of [ecf524bce0], bug-fec0c17d39-8.6-limit: ultimate fix for [fec0c17d39] - avoid SO on deeply recursive call stack by restriction of nested compilations using same limit (interp recursionlimit) like the evaluation, this must protect against unexpected stack exhaustion;
conflicts resolved, tests fixed (no command `try` in 8.5)
2019-09-11 19:10:05 +00:00
sebres 91a127237a merge bug-fec0c17d39-8.6-limit: ultimate fix for [fec0c17d39] - avoid SO on deeply recursive call stack by restriction of nested compilations using same limit (interp recursionlimit) like the evaluation, this must protect against unexpected stack exhaustion 2019-09-11 18:24:48 +00:00
dgp 2975cfd589 merge 8.7 2019-09-11 16:10:10 +00:00
dgp ae9073b853 merge 8.7 2019-09-11 16:06:19 +00:00
dgp c2f8b74ee5 merge 8.6 2019-09-11 16:02:44 +00:00
dgp 791a16b48e merge 8.6 2019-09-11 15:55:42 +00:00
jan.nijtmans 01634e6c3b Merge 8.5 2019-09-11 13:53:57 +00:00
sebres 2e2c130d22 merge 8.5 (bug [7de2d722bd]) 2019-09-11 11:51:48 +00:00
sebres 56f6e73e6f windows, close [7de2d722bd]: prefer temp file to check owner and reown it before trying to check in order to avoid dependency on admin with UAC and the setting of "System objects: Default owner for objects created by members of the Administrators group" 2019-09-11 11:49:59 +00:00
jan.nijtmans 810e5a0f69 Merge 8.7 2019-09-11 11:37:02 +00:00
jan.nijtmans e43d36be90 Merge 8.6 2019-09-11 11:35:59 +00:00
jan.nijtmans b293fd6b50 Merge 8.5 2019-09-11 11:14:18 +00:00
jan.nijtmans 15b4eecc82 Use "package provide Tcl" consistantly, in stead of either "package present Tcl" or "info tclversion"/"info patchlevel" 2019-09-11 11:10:47 +00:00
jan.nijtmans ccbf81ed51 Merge 8.7 2019-09-10 14:18:40 +00:00
jan.nijtmans a142b502a9 Merge 8.7 2019-09-10 13:34:39 +00:00
jan.nijtmans 7680153063 Merge 8.6 2019-09-10 13:30:21 +00:00
jan.nijtmans 62fea30847 Merge 8.5 2019-09-10 12:42:19 +00:00
jan.nijtmans 4d51f6b054 Don't use constraints like unixOrPc anymore, use unixOrWin (for example) 2019-09-10 12:05:54 +00:00
jan.nijtmans 4dc0eb3314 Backport some improvements to tm.tcl (mostly comments).
Don't use ::tcl_platform(debug) anymore, since it cannot be thrusted: Better use [::tcl::pkgconfig get debug]
Reduce limits in tests/compile.test (13.2), since apparently it's still too much for some platforms.
2019-09-10 12:03:40 +00:00
jan.nijtmans 3d2df2eae1 Run all test-cases with -verbose sbtel, so we can see which test-case actually hangs. 2019-09-10 11:59:29 +00:00
jan.nijtmans c939eccf4a Add 32-bit (Windows-x86) builds to travis, both with MSVC and GCC 2019-09-10 08:02:55 +00:00
jan.nijtmans 1224ff3e01 merge-mark 2019-09-09 09:24:47 +00:00
jan.nijtmans 6a8c97bdf8 Don't use -64 in travis titles any more: x64 is implicit if 32-bit is not explicitely mentioned. 2019-09-09 09:23:47 +00:00
jan.nijtmans a9f4dacf81 Merge 8.7 2019-09-09 09:05:16 +00:00
jan.nijtmans 31c4acd8e6 Merge 8.6 2019-09-09 09:04:27 +00:00
jan.nijtmans b69bf6e78a Merge 8.5 2019-09-09 09:02:04 +00:00
jan.nijtmans 7f3d798343 Move &crosstest up in .travis.yml 2019-09-09 09:00:44 +00:00
jan.nijtmans 89c692e438 Merge 8.5 2019-09-09 08:57:18 +00:00
jan.nijtmans fcfecf0c0d Final touch to make everything work for 8.5:
- Don't use AS_ECHO macro, because autoconf-2.59 doesn't have it.
- -D_BUILD_tcl  should be -DBUILD_tcl
- Missing back-slashes at the end of the line.
2019-09-09 08:41:14 +00:00
jan.nijtmans f1d0940b8e Merge 8.7 2019-09-08 13:39:24 +00:00
jan.nijtmans 0371dd2510 Merge 8.6 2019-09-08 13:35:56 +00:00
jan.nijtmans 7f375dfb32 Merge 8.5 2019-09-08 13:30:09 +00:00
jan.nijtmans e092b29faa dde and registry extension should be compiled with -DUNICODE -D_UNICODE.
Put 64-bit builds before 32-bit builds in travis
2019-09-08 13:26:00 +00:00
jan.nijtmans 0e12a5af7c merge-mark 2019-09-07 14:44:20 +00:00
jan.nijtmans 327ece5571 Merge 8.5 2019-09-07 14:41:12 +00:00
jan.nijtmans c4a716a517 Add --enable-threads to Windows/GCC (native) builds. This is - most likely - the cause of the travis failure in compile.test. 2019-09-07 14:36:11 +00:00
jan.nijtmans c6ad528613 Merge 8.7 2019-09-07 14:09:08 +00:00
jan.nijtmans 58f3fe5abc Merge 8.6. Remove 3 duplicate build-entries in .travis.yml 2019-09-07 14:03:35 +00:00
jan.nijtmans c92b03f0a4 Don't let Tcl compilation depend on USE_32BIT_TIME_T any more: Microsoft could discontinue this macro any moment, then we are prepared ....
As a bonus: time_t is now allowed to be 64-bit internally, without effect on the C API (like stub-enabled extensions)
2019-09-07 13:58:51 +00:00
jan.nijtmans 2b93599ffd Don't let Tcl compilation depend on USE_32BIT_TIME_T any more: Microsoft could discontinue this macro any moment, then we are prepared ....
As a bonus: time_t is now allowed to be 64-bit internally, without effect on the C API (like stub-enabled extensions)
2019-09-07 13:53:12 +00:00
fvogel 1f9311a1b7 Fix bug 9d10c37aa8 (in the Tk repository): Improperly converted link in HTML man page for ttk::style 2019-09-07 08:55:08 +00:00
fvogel 5ea46c24a2 Fix bug 9d10c37aa8 (in the Tk repository): Improperly converted link in HTML man page for ttk::style 2019-09-07 08:53:43 +00:00
sebres 73dfa2cc44 simple and binary compatible fix for [775ee88560]: use correct relative level (1) in case of top-1, "bad level" message points "below global level" (no regressions anymore, all tests pass) 2019-09-06 20:37:21 +00:00
sebres bbde800d2a merge 8.6 (TclGetFrame is the same as TclObjGetFrame, so no functional changes only test-case which show same "regression" now as "uplevel-4.0.*" tests) 2019-09-06 20:31:47 +00:00
sebres 8e96394008 merge 8.5 2019-09-06 20:26:47 +00:00
sebres d0f808008d if frameName (actual level) does not contain a real level (#0 or 1) historically TclGetFrame and Tcl_UpVar2 uses current level - 1, so to put supplied name in case of bad level (error at top - 1) is wrong;
be more consistent with TclObjGetFrame (at least in error case if relative level used).
2019-09-06 20:22:30 +00:00
sebres bacdfc5ef0 cherry-pick [af744d56e0ffcc65] fixed segfault of [775ee88560] in 8.7 2019-09-06 17:36:06 +00:00
sebres fda6aed43a merge 8.6 2019-09-06 17:33:25 +00:00
sebres 1a36c007cb merge 8.5 (no functional changes on tclProc, it was already fixed there - only test cases) 2019-09-06 17:29:59 +00:00
sebres 5ed9c57d7a fix bad level (if specified argument is not a level at all) 2019-09-06 17:23:58 +00:00
sebres 5b7c6db87d cherry-pick [b87d2183ca]: test cases covering bug [775ee88560]: segfault in upvar at wrong level, wrong message of uplevel 2019-09-06 17:23:05 +00:00
jan.nijtmans 2441daf9cd Fix configure script (re-generated with a modified autoconf-2.59, in which the AC_PROG_MAKE_SET macro is replaced with the one from autoconf-2.69) :-)
Re-enable native travis build on Windows, showing that the build now works.
2019-09-06 15:32:19 +00:00
jan.nijtmans 3f58909d20 Merge 8.7 2019-09-06 14:53:09 +00:00
jan.nijtmans 10147df9b8 Fix build with "cl" using configure/make build system. It turns out that using -DIOAPI_NO_64 is harmful on Windows (although it works with mingw-w64) 2019-09-06 14:51:21 +00:00
jan.nijtmans dec6843491 Merge 8.7 2019-09-06 12:38:41 +00:00
jan.nijtmans fa39cca32f Merge 8.6 2019-09-06 12:33:14 +00:00
jan.nijtmans 779aba1c85 Simplify searching for tcl86.lib (and related files): First search for the one without 't' suffix, then the 't' variant. (Without 't' = built with 'configure'/'make', with 't' = built with 'nmake') 2019-09-06 12:28:15 +00:00
jan.nijtmans dae5efd07d Fix [579a05fb34] (partly): b) tcltest file has mismatched version number. 2019-09-06 11:16:43 +00:00
jan.nijtmans 3179298819 Don't let Tcl depend on USE_32BIT_TIME_T any more: If your compiler supports it, time_t will be 64-bit internally. But at API-level, time_t will still be restricted to 32-bit on Win32 (Not on Win64).
This keeps Tcl_StatBuf the same (unless USE_64BIT_TIME_T is defined), so 64-bit times still cannot be used everywhere.
2019-09-06 08:58:19 +00:00
jan.nijtmans e5f0aa5009 Merge 8.7 2019-09-05 21:30:23 +00:00
jan.nijtmans b0bd304e08 merge-mark 2019-09-05 21:26:35 +00:00
jan.nijtmans 0a562b0983 Merge 8.6 2019-09-05 21:25:07 +00:00
sebres cfb29e0e5e merge 8.5 2019-09-05 16:10:19 +00:00
sebres 3de08d0170 amend to [4718b41c56]: check size of st_mtime instead of time_t in constraint 2019-09-05 16:09:22 +00:00
jan.nijtmans 96c82a32e1 Mark more function paramaters as unused. Now Tcl compiles fully (on UNIX and Windows) without -Wunused-parameters warnings 2019-09-05 15:14:29 +00:00
jan.nijtmans 26c1cd495a Merge 8.7 2019-09-05 07:55:38 +00:00
jan.nijtmans cef22b73ee previous commit should not have been a merge-mark ... 2019-09-05 07:17:54 +00:00
jan.nijtmans bbdcf41e95 merge-mark 2019-09-05 06:59:00 +00:00
jan.nijtmans d3ac5d78eb Merge 8.6 2019-09-05 06:57:59 +00:00
jan.nijtmans 7c8cdba292 Fix [4718b41c56]: windows x86 & x64: file mtime overflows in modification date (2038?, windows 32-bit time_t?) 2019-09-05 06:56:49 +00:00
jan.nijtmans 2d7fb3bc20 interp is not dummy any-more 2019-09-04 22:11:48 +00:00
jan.nijtmans 2cd19c4e6b Bring back Tcl_UntraceVar 2019-09-04 22:08:23 +00:00
jan.nijtmans ed985943f3 Handle "Unload" as well 2019-09-04 21:19:59 +00:00
jan.nijtmans 6506055954 (experiment) Allow C++ symbols to be found in loaded extensions 2019-09-04 20:51:06 +00:00
jan.nijtmans 74315d3d10 merge-mark 2019-09-04 15:57:53 +00:00
jan.nijtmans f39b7c73e6 Don't build on travis with GCC on Windows, since it currently doesn't work in combination with autoconf-2.59-generated configure 2019-09-04 15:53:19 +00:00
jan.nijtmans eeff0f5146 Merge 8.7 2019-09-04 11:03:10 +00:00
jan.nijtmans e949bfae93 Merge 8.6 2019-09-04 11:02:33 +00:00
jan.nijtmans e583aab8c9 When using Tcl 8.7 headers, don't worry about threaded-allocator mismatch any more in rules.vc. 2019-09-04 10:50:49 +00:00
jan.nijtmans 8c60b1157a Mark more unused parameters 2019-09-03 20:32:33 +00:00
dgp 3308210336 Expand acronym in comment. 2019-09-03 19:32:55 +00:00
jan.nijtmans 6e5bee537f Merge 8.6 2019-09-03 18:42:03 +00:00
jan.nijtmans 97cf6a1aff Merge tip-548 2019-09-03 14:55:19 +00:00
jan.nijtmans 2e71e654f8 Merge 8.7 2019-09-03 14:19:05 +00:00
dkf a52cfae900 Docfix: \0 is special in nroff, so use \e0 instead 2019-09-03 14:01:58 +00:00
jan.nijtmans 0625bbefb4 Merge 8.7 2019-09-03 10:57:09 +00:00
jan.nijtmans 2d3d61a110 Merge 8.6 2019-09-03 10:53:42 +00:00
jan.nijtmans 8a86cafb6e Backout [87d28ec30a29e3ce]: Looks like it causes test-failures in event.test on Windows. 2019-09-03 10:50:25 +00:00
jan.nijtmans f39babb15a Backout last commit: Looks like it causes test-failures in event.test on Windows. 2019-09-03 10:48:52 +00:00
jan.nijtmans 07e8d24c83 Fix testing for debug build on UNIX too (on UNIX, ::tcl_platform(debug) is not set ....) 2019-09-02 14:13:33 +00:00
sebres 6ca9bef06d merge 8.6 2019-09-02 13:49:56 +00:00
sebres dfb98f0705 windows (mingw build): fix debug recognition (::tcl_platform(debug)), no debug if NDEBUG is set 2019-09-02 13:48:52 +00:00
jan.nijtmans b5f118d875 Merge tip-548. A few more fixes, trying to make the Travis build work (finally) 2019-09-02 12:27:10 +00:00
jan.nijtmans 2552ed664c Merge 8.7 2019-09-02 11:35:55 +00:00
jan.nijtmans dbdb35e20e Merge 8.7 2019-09-02 11:35:12 +00:00
jan.nijtmans 4376455cb3 Tcl_UntraceVar() -> Tcl_UntraceVar2() and similar changes.
Add @runstatedir@ to Makefile.in's (not used yet)
2019-09-02 11:33:06 +00:00
jan.nijtmans e3a2100f52 Merge 8.5 2019-09-02 11:08:36 +00:00
jan.nijtmans 6f79cd18d7 Missing TCL_GLOBAL_ONLY flag in VwaitVarProc(): vwait always references global variables, this could lead to strange side-effects. 2019-09-02 11:07:46 +00:00
jan.nijtmans 2bf2b06d28 Merge 8.5. Add (still unused) runstatedir in Makefile.in. Re-generate win/unix configure scripts. 2019-09-02 08:33:35 +00:00
jan.nijtmans 7e14ee0b34 Fix [5591e4a820]: @TCL_EXE@ not properly generated in 8.5 branch. Added @runstatedir@ in Makefile.in, not used yet (except if someone decides to re-generate "configure" with autconf-2.70). 2019-09-02 08:28:39 +00:00
sebres 2bfd0ac419 extends [fec0c17d39]: restrict nested compilations using same limit (interp recursionlimit) like the evaluation,
this must protect against unexpected stack exhaustion (avoid SO by deeply recursive call stack)
2019-08-30 19:48:04 +00:00
sebres 02e1466815 merge 8.5 - compile.test: reduce count of nested scripts to 1000 in debug case (seems to be to heavy on some platforms within debug-build);
(small amend to the fix of [fec0c17d39])
2019-08-30 16:35:38 +00:00
sebres 6e297fef1f compile.test: reduce count of nested scripts to 1000 in debug case (seems to be to heavy on some platforms within debug-build);
(small amend to the fix of [fec0c17d39])
2019-08-30 16:33:33 +00:00
jan.nijtmans 876a5d6782 Let's try a real C++ build with Travis on Linux 2019-08-30 15:21:28 +00:00
sebres 8a52f85853 fixes bug [fec0c17d39] (regression firstly introduced in [bf171b6b51]): stack overflow (followed by segfault) by compilation of too many nested scripts (don't use system stack anymore) 2019-08-29 20:55:43 +00:00
sebres 7efc804258 closes [fec0c17d39]: fixed stack overflow (followed by SF) by compilation of too many nested bodies (don't use system stack, size of Tcl_Parse is ca. 400 bytes and compiler proc's of commands are reserving stack too) 2019-08-29 20:50:31 +00:00
sebres 87e3efddb0 more variants in test (since 8.6 compiles "try" using evalStk instruction) 2019-08-29 20:46:46 +00:00
sebres b0b79251f6 bug [fec0c17d39]: add test cases covering nested compilation (8.6th compile generates a stack overflow with following segfault by 2000 nested bodies) 2019-08-29 20:33:30 +00:00
sebres ee6b2e3455 add test cases covering nested compilation bug [fec0c17d39] (8.5 is not affected at the moment by nested count under 2500) 2019-08-29 20:28:47 +00:00
jan.nijtmans 289e2891a6 Merge 8.7 2019-08-29 13:36:08 +00:00
jan.nijtmans 4187ab8e37 Merge tip-548 2019-08-29 13:28:32 +00:00
apnadkarni f5daf73202 Merge from core-8-branch. nmake bug fix [889065786b] for extension stubs. 2019-08-29 10:39:02 +00:00
apnadkarni e8ff3d4faa Merge core-8-6-branch. nmake bug fix [889065786b] for extension stubs. 2019-08-29 10:34:01 +00:00
apnadkarni 1b753c8466 Bug fix 889065786b. Add stubs related flags when compiling extension stubs. 2019-08-29 10:16:36 +00:00
jan.nijtmans ecf5d1b0b8 Fix one version-check in rules.vc (Thanks to Ashok P. Nadkarni for noticing this!) 2019-08-29 07:45:19 +00:00
jan.nijtmans 2b73734be0 Starting with Tcl 8.7, TCL_THREADS is 1 by default. Adapt rules.vc for that. 2019-08-29 07:42:50 +00:00
jan.nijtmans a812c80661 Merge 8.7 2019-08-28 14:38:46 +00:00
dgp 6f8793bff8 merge 8.7 2019-08-28 12:57:14 +00:00
dgp df6c6b5747 merge 8.6 2019-08-28 12:57:04 +00:00
jan.nijtmans b7f809ade5 Merge 8.7 2019-08-28 11:45:42 +00:00
jan.nijtmans da423a1424 Merge 8.6 2019-08-28 11:15:19 +00:00
jan.nijtmans e9a4ca4f22 Add /* FALLTHRU */ markers in various places (silencing possible GCC warnings). Eliminate some more "register" keywords. Eliminate (or silence) some unused function parameters. 2019-08-28 09:59:26 +00:00
sebres 478e248339 merge 8.6 2019-08-27 18:33:44 +00:00
sebres aab801db76 closes [fa6bf38d07]: integrate bug-fa6bf38d07-v2 2019-08-27 18:27:05 +00:00
sebres cf0b9b2722 small amend: be sure checkInterp is set if entering back the code marked as TCL_BYTECODE_RECOMPILE (normally also set in CACHE_STACK_INFO, but...) 2019-08-27 15:40:27 +00:00
sebres 64f262df88 simplification, use the same "fixed" (and faster) code for INST_EVAL_STK 2019-08-27 15:32:58 +00:00
sebres 6a3d250548 fixes [fa6bf38d07]: command invocation (NRE callback to TEBCResume) caused by execution of recompiled TEBC (on epoch bump) 2019-08-27 15:00:44 +00:00
sebres 045b6322e8 more test cases 2019-08-27 14:56:17 +00:00
sebres 1149b24a6e added tests covering bug [fa6bf38d07] 2019-08-27 12:03:51 +00:00
jan.nijtmans fa1cc2cd3f Merge 8.7 2019-08-27 11:59:38 +00:00
jan.nijtmans dfcc35136a Merge 8.6 2019-08-27 11:58:14 +00:00
jan.nijtmans 4dce06b63d Merge 8.5 2019-08-27 11:56:58 +00:00
jan.nijtmans ac370c9a73 One more knownMsvcBug marker (seen in Travis). Properly export ::tcltest::testConstraint in cmdMZ.test 2019-08-27 11:53:43 +00:00
jan.nijtmans eba8349b2c Backport two knownMsvcBug markers, which hit us (again) on Travis. 2019-08-27 11:37:19 +00:00
dgp 278477fcd7 merge 8.7 2019-08-26 16:10:24 +00:00
dgp 9b14adeeea merge 8.6 2019-08-26 15:55:03 +00:00
jan.nijtmans 276049980e Merge 8.7 2019-08-26 14:09:50 +00:00
jan.nijtmans bf62089e12 Merge 8.6 2019-08-26 14:07:03 +00:00
jan.nijtmans 3718091236 Fix [3947fcf7]: Current .gitattributes settings might not allow switching branches 2019-08-26 14:05:32 +00:00
jan.nijtmans 46e7a572e2 Fix [3947fcf7]: Current .gitattributes settings might not allow switching branches 2019-08-26 14:03:19 +00:00
jan.nijtmans 3bdae3d946 Merge 8.7 2019-08-26 09:07:15 +00:00
jan.nijtmans 85a07c9ee7 Merge 8.7 2019-08-26 09:06:31 +00:00
jan.nijtmans 3721613126 Merge 8.7 2019-08-26 09:03:11 +00:00
jan.nijtmans bf10d7f187 Merge 8.6 2019-08-26 09:01:00 +00:00
jan.nijtmans 820f8b93db Merge 8.5 2019-08-26 08:58:18 +00:00
jan.nijtmans 1637e28f70 If tcltest's removeFile fails for a non-expected reason (e.g. Windows keeps the file locked), this should not result in a test failure, just a warning. Observed in this Travis build: [https://travis-ci.org/tcltk/tcl/jobs/576443957]
Tcl test 2.5.0 -> 2.5.1
2019-08-26 08:52:14 +00:00
jan.nijtmans 51d243e502 One more "knownMsvcBug" marker, for a test-case which failed (incidentally) in Travis. 2019-08-26 07:46:40 +00:00
andy a02c311040 Correct NUL encoding in documentation 2019-08-24 18:30:47 +00:00
jan.nijtmans 21ec4f64b2 Merge 8.7 2019-08-23 09:07:33 +00:00
jan.nijtmans 587f8fa3d9 Merge 8.6
Update effective_tld_names.txt.gz to the latest version.
Adapt .gitattributes and .fossil-settings/binary-glob to handle *.gz file transparently in fossil/git
2019-08-23 09:03:27 +00:00
jan.nijtmans 735845efe4 Attempt to fix [3947fcf7]: Current .gitattributes settings might not allow switching branches 2019-08-23 08:29:06 +00:00
jan.nijtmans 6f19106996 Fix [8566dc22f9]: various spelling fixes in comments 2019-08-22 12:20:13 +00:00
jan.nijtmans 33b8dd931e Fix [8566dc22f9]: various spelling fixes in comments 2019-08-22 12:19:04 +00:00
jan.nijtmans 3e5ccac63e Add native Windows builds using GCC (mingw-w64) to travis. 2019-08-22 11:04:53 +00:00
jan.nijtmans 0253a4f956 merge-mark 2019-08-20 14:28:10 +00:00
jan.nijtmans 267c44f6ea Backport some "knownMsvcBug" markers from 8.6: Those indicate test-cases the sporadically fail in the Travis Windows environment. 2019-08-20 14:21:03 +00:00
jan.nijtmans d1e851f0aa Merge 8.6 2019-08-20 09:03:14 +00:00
sebres f1d0d7967e merge 8.6 2019-08-20 08:37:43 +00:00
sebres 714512ff4b merge 8.5 2019-08-20 08:33:38 +00:00
sebres 3c3f52cca3 win/Makefile.in: small amend normalizing test-dependencies 2019-08-20 08:03:37 +00:00
jan.nijtmans e3d59c1d52 Prevent misleading message:
-bash: pwd: -W: invalid option
    pwd: usage: pwd [-LP]"
written to stderr when pwd -W doesn't exist, e.g. on Linux/MacOS/Cygwin or any cross-compile other than Msys2.
2019-08-20 07:20:07 +00:00
sebres 136bf8d460 merge 8.7: fixes [40d5ff2a0e], etc 2019-08-19 19:29:55 +00:00
sebres 968ea25b3b merge 8.6: conflicts resolved, fix mingw build, closes [40d5ff2a0e], etc 2019-08-19 19:12:40 +00:00
sebres ee8a25dcc5 merge 8.5: restore merge point, fix mingw build, closes [40d5ff2a0e], etc 2019-08-19 18:58:21 +00:00
sebres 5c9efe088b win/Makefile.in: partially cherry-picked 8.6th version (and normalized to be more similar to all major versions now), fixed VPATH (TOP_DIR/ROOT_DIR) compiling from chocolatey or git-bash (closes [40d5ff2a0e]), added tcltest-helpers, etc. 2019-08-19 18:34:44 +00:00
jan.nijtmans b4243394a8 Merge 8.7 2019-08-15 15:33:46 +00:00
jan.nijtmans 69a117efbe Merge 8.7 2019-08-15 15:32:20 +00:00
jan.nijtmans 7c060e830b Make zipfsFilesystem static (as the name - not starting with Tcl - suggests). Also remove one unneeded MODULE_SCOPE, as TclZipfs_Init is already declared in tclInt.h 2019-08-15 15:31:43 +00:00
jan.nijtmans 4796062aab Merge tip-548 2019-08-15 15:20:29 +00:00
jan.nijtmans 2d85a1f9de Merge 8.7 2019-08-15 08:59:09 +00:00
jan.nijtmans ab449cd1d2 Merge 8.7 2019-08-15 08:10:11 +00:00
jan.nijtmans 62d4e2a24e Merge 8.6 2019-08-15 07:08:58 +00:00
jan.nijtmans 02ccd2a2ba Eliminate "register" keyword _everywhere_ in Tcl. This keyword is deprecated in C++ (removed in C++17, even), and essentially does nothing with most modern compilers 2019-08-15 07:08:07 +00:00
jan.nijtmans e2bb5b8ee8 Fix [6de8494984]: Tcl_CreateCommandChannel() documentation bug 2019-08-15 07:04:56 +00:00
jan.nijtmans 831e40a351 Minor simplification in test-suite: Because "teststringobj maxchars" has the effect that the value is converted to Unicode for, we don't need a separate function "teststringobj getunicode" for that. So, merge the two functions to one. 2019-08-14 19:23:13 +00:00
jan.nijtmans c299d96628 Merge 8.7 2019-08-14 15:13:41 +00:00
jan.nijtmans 6e2f02a5a6 Merge 8.7 2019-08-14 07:24:45 +00:00
jan.nijtmans be3995f91a Merge 8.7 2019-08-14 07:04:09 +00:00
jan.nijtmans c937630630 Remove "register" keyword in various places. Also add some type-casts to help C++ compatibility. 2019-08-14 06:42:58 +00:00
jan.nijtmans 261bde3156 Eliminate dependency in test-suite on Unicode functions. Merge tip-548. Fix build with -DTCL_NO_DEPRECATED 2019-08-13 21:00:28 +00:00
jan.nijtmans bce65c12f6 Merge 8.7 2019-08-13 20:10:50 +00:00
jan.nijtmans e05045246f Merge 8.7 2019-08-13 20:09:42 +00:00
jan.nijtmans 343b0349d4 Merge 8.6 2019-08-13 20:08:37 +00:00
jan.nijtmans 4b48c76e1c default TCL_UTF_MAX should still be 3 2019-08-12 20:49:50 +00:00
jan.nijtmans 92c04315ff Forgot some changes from tip-548 2019-08-12 20:47:01 +00:00
jan.nijtmans 8ddf96d852 Merge branch tip-548. No longer define addtional stub-entries for functions that will be removed (because of deprecation) anyway 2019-08-12 20:38:09 +00:00
jan.nijtmans 9c94b7bd76 "utfmax" build should be with TCL_UTF_MAX=6 2019-08-12 19:56:18 +00:00
jan.nijtmans 1378468fa1 Forgot "choko install make" 2019-08-12 18:53:55 +00:00
jan.nijtmans 1f5fec57ef Test windows native build 2019-08-12 17:10:26 +00:00
jan.nijtmans 57d789d9a9 Make dateMeridian variable type MERIDIAN (an enum) in stead of int. 2019-08-12 07:27:19 +00:00
jan.nijtmans 2160b3cc72 Mark 3 testcases as knownMsvcBug. See: [e484a8407cb9ec45]: pipe: time-related sporadic hangs in io/chan-io tests 2019-08-11 22:01:41 +00:00
jan.nijtmans 7934f521d7 Merge tip-548 2019-08-11 21:33:32 +00:00
jan.nijtmans f8484f801a Merge 8.7 2019-08-11 21:24:34 +00:00
jan.nijtmans 6ba55114e2 Fix handling of length (size_t)-1 in tclMain.c. This should fix handling of command-line arguments with TCL_UTF_MAX=6, necessary to make tclsh run at all ... 2019-08-11 21:17:35 +00:00
jan.nijtmans 9888ccda67 Fix signature of TclWCharToUtfDString for TCL_UTF_MAX=6, and handling of length -1 2019-08-05 20:15:15 +00:00
jan.nijtmans 3558c04970 merge-mark 8.7 2019-08-04 19:39:29 +00:00
jan.nijtmans d8b88cab22 Two places where "char *" is actually better than "void *", since that's the type the function returns 2019-08-04 19:35:28 +00:00
jan.nijtmans 995305b8d7 Merge 8.7 2019-08-04 18:26:12 +00:00
jan.nijtmans e0e662b6cd Merge 8.7 2019-08-04 18:24:09 +00:00
jan.nijtmans 38d067d936 Merge 8.6 2019-08-04 18:18:57 +00:00
jan.nijtmans 1d102e2c6a One more test which - apparently - cannot be thrusted when run in the Travis Windows environment 2019-08-04 18:17:10 +00:00
jan.nijtmans 67b632666e Use *WChar* in stead of *Char16* functions on Windows, always. It's actually the same, but more consistent. 2019-08-03 21:51:48 +00:00
jan.nijtmans 09dedf803b Increase some timeout's a little, hoping this reduces the chance on Travis test-failures 2019-08-03 20:32:29 +00:00
jan.nijtmans ee3826893d Merge tip-548 (since using the *WChar* functions leads to less type-casts in c++)
Als finish implementaton for MacOSX
2019-08-03 20:25:14 +00:00
jan.nijtmans e74974e6cd Spread out definitions of Tcl_*WChar* functions over multiple lines, making it more readable. 2019-08-02 15:13:54 +00:00
jan.nijtmans 2b096ec26d Merge tip-548 2019-08-02 15:03:45 +00:00
jan.nijtmans a41149258a Oops, wrong check 2019-08-02 14:57:35 +00:00
jan.nijtmans cd61c32b31 Merge 8.7 2019-08-02 14:36:51 +00:00
jan.nijtmans fe381e2b84 Merge 8.7 2019-08-02 14:35:52 +00:00
jan.nijtmans 708f0fe992 Merge 8.6 2019-08-02 14:34:41 +00:00
jan.nijtmans 87ef982286 One more knownMsvcBug marker, for a test which sometimes fails on Travis. 2019-08-02 14:33:18 +00:00
jan.nijtmans 84da3c8113 Merge 8.7 2019-08-02 14:26:47 +00:00
jan.nijtmans ff1762b095 Merge core-8-branch. Use tclWinDde.c and tclWinReg.c to show how the *WChar* functions could be used in Win32 extensions. 2019-08-02 14:24:59 +00:00
jan.nijtmans 61ef69a2d8 Document that the *Backslash parsing functions output maximum 4 bytes, irrespectable of the TCL_UTF_MAX setting: It could be 4 for the "\Uxxxxxx" construct, but never more.
Move <stddef.h> and <locale.h> to tclInt.h, so the can be removed from various other places.
2019-08-02 13:35:21 +00:00
jan.nijtmans 59a630e12e Merge 8.7 2019-08-02 13:00:11 +00:00
jan.nijtmans 4def430d27 Merge 8.7 2019-08-02 12:48:29 +00:00
jan.nijtmans 09e5d9ded7 Merge 8.6 2019-08-02 12:47:42 +00:00
jan.nijtmans 96906cee5e Add one more knownMsvcBug marker, for a test-case which sometimes fails in Travis.
Fix a struct initializer, add two typecasts and a "const", which can generate gcc warnings with some compiler options.
2019-08-02 12:45:54 +00:00
jan.nijtmans 474d95712e Merge 8.7. Continue implementation for win32 2019-08-02 12:15:23 +00:00
jan.nijtmans d5de5123cc Merge 8.7. Some formatting. 2019-08-02 09:00:03 +00:00
jan.nijtmans 9367d3491b merge-mark 2019-08-02 08:10:10 +00:00
jan.nijtmans adbd7d1886 Do UTF_MAX=6 build before NO_DEPRECATED build: consistant ordering of Travis builds. 2019-08-02 08:08:33 +00:00
jan.nijtmans 972ac8cc9d Protect Tcl_AToB() functions against NULL input 2019-08-01 21:55:52 +00:00
jan.nijtmans 203f7657fe wrong length in tclMain.c, and wrong #endif 2019-08-01 21:47:01 +00:00
jan.nijtmans 5c8bbdd6d9 Merge tip-548 2019-08-01 21:35:37 +00:00
jan.nijtmans a4cdc92947 Merge 8.7 2019-08-01 16:05:35 +00:00
jan.nijtmans f0d60d9cdf Merge 8.7. Documentation improvements and code cleanup. Approaching finish. 2019-08-01 16:03:11 +00:00
jan.nijtmans 1f617e10f6 Remove variations of Clang builds: No added value 2019-08-01 16:00:23 +00:00
jan.nijtmans 74f9c831ac Merge tip-548 2019-08-01 11:55:40 +00:00
jan.nijtmans b89c01475a Merge 8.7 2019-08-01 09:31:37 +00:00
jan.nijtmans 0f58a5ca73 Merge 8.7 2019-08-01 09:20:38 +00:00
jan.nijtmans b924d89e29 Mark one more test as knownMsvcBug 2019-08-01 09:18:11 +00:00
jan.nijtmans 75b8ba1fa3 Merge 8.7 2019-08-01 08:37:53 +00:00
jan.nijtmans 6dbc78452d Merge 8.6 2019-08-01 08:26:00 +00:00
jan.nijtmans 0756701c60 Merge 8.5 2019-08-01 08:25:15 +00:00
jan.nijtmans 96e0a23ce6 Add .gitattributes and .gitignore files, hopefully helping checking in/out with the correct line-endings when transfering in/out GIT. 2019-08-01 08:23:48 +00:00
jan.nijtmans 400a5524e5 Attempt to fix [https://core.tcl-lang.org/tk/tktview?name=a179564826|a179564826]: Tk 8.6: prevent issues when encountering non-BMP Unicode characters 2019-08-01 08:02:38 +00:00
jan.nijtmans 3e965c884a Mark one more test-case as knownMsvcBug. TODO: something to be fixed here? See: [https://travis-ci.org/tcltk/tcl/jobs/566325331] 2019-08-01 07:52:28 +00:00
jan.nijtmans 3a4ac7034d merge-mark 2019-07-31 19:50:58 +00:00
jan.nijtmans 61af2ea8d3 Merge 8.5 2019-07-31 19:47:23 +00:00
jan.nijtmans 355ce624c0 (cherry-pick from core-8-branch): Replace memcpy() calls with memmove() to avoid undefined behavior when source and destination overlap 2019-07-31 19:39:12 +00:00
jan.nijtmans 1ef038dd4c Simplify documentation, since we have threaded notifier by default now. 2019-07-31 12:44:10 +00:00
jan.nijtmans ec84d91a80 Merge 8.6 2019-07-31 08:51:37 +00:00
jan.nijtmans 3ab4e9ca24 Mark 6 failing tests as knownMsvcBug. To be investigated. 2019-07-31 08:26:58 +00:00
jan.nijtmans 61fa73a80f Disable two async test-cases on Travis (windows-only) because they are currently failong. Marked with knownMsvcBug 2019-07-31 08:16:37 +00:00
jan.nijtmans d4d4aa8307 Add some "const" keywords, in places where strings are really const. 2019-07-30 11:57:44 +00:00
jan.nijtmans 809842a942 Merge 8.5 2019-07-30 07:47:52 +00:00
jan.nijtmans 50912fc63c typo in .travis.yml 2019-07-30 07:40:56 +00:00
jan.nijtmans 921e5d9661 Update tzdata to 2019b 2019-07-30 07:40:24 +00:00
jan.nijtmans 4a3d06786b Enable testcases on Visual Studio builds. Disable some test-cases on Travis, which are known to fail. 2019-07-29 15:35:09 +00:00
jan.nijtmans adee2e475d Merge core-8-6-branch, and merge latest libtommath 2019-07-28 21:21:35 +00:00
jan.nijtmans e5c5cd920b Merge libtommath 2019-07-26 13:47:19 +00:00
jan.nijtmans 1cb1fee6ed Update to latest "develop" branch of libtommath 2019-07-26 13:12:31 +00:00
jan.nijtmans 29b6cb4801 Fix this Travis build problems on Win32: [https://travis-ci.org/tcltk/tcl/jobs/562935948]. Also, use _read/_write on Windows whenever possible, as read/write is deprecated there. 2019-07-26 12:43:46 +00:00
jan.nijtmans 6f541de9a3 Merge 8.5 2019-07-26 11:56:57 +00:00
jan.nijtmans 93f5ab8b03 Increase timeout a little bit, making it less likely that this test failes in a Travis environment. 2019-07-26 11:56:01 +00:00
jan.nijtmans 62c64586b6 Merge 8.7 2019-07-25 09:01:05 +00:00
jan.nijtmans 37feaf8aec Eliminate more usage of C++-specific keywords in C-code. 2019-07-25 08:36:34 +00:00
jan.nijtmans d15cb9192b Eliminate "register" keyword usage from all header-files (and also corresponding implementations). 2019-07-25 08:33:48 +00:00
sebres 363284783b merge 8.6 2019-07-24 14:14:35 +00:00
sebres 87df0b3b65 merge 8.5 2019-07-24 14:00:15 +00:00
sebres 94d0201025 small amend (normalize hex in all evalFlags) 2019-07-24 13:59:08 +00:00
sebres fee260c834 merge 8.5 (reintegrate, no functional changes) 2019-07-24 13:52:54 +00:00
sebres 2a43bf86a0 cherrypick timerate-loop-opti--discard-result 2019-07-24 13:49:46 +00:00
sebres 15e2f28c95 integrate timerate-loop-opti--discard-result 2019-07-24 13:36:35 +00:00
jan.nijtmans 810eeec19d Merge 8.7 2019-07-24 08:29:25 +00:00
jan.nijtmans bb0e258bba Merge 8.6 2019-07-24 07:59:28 +00:00
jan.nijtmans a31a6c4683 Fix Travis Static/Debug builds on Windows. Als group Clang builds together. 2019-07-24 07:55:59 +00:00
sebres cbbe46e832 small amend with a comment about the optimization 2019-07-23 21:43:37 +00:00
sebres 540d4a2c31 fix done optimization (TCL_EVAL_DISCARD_RESULT) for nested call - supply and reset discard result flag in registering TEBC-callback,
because it is applicable for this call only, and should not affect all the nested invocations may return result (added tests covering that).
2019-07-23 21:08:36 +00:00
sebres 566263fc9a better rewritten loop optimization: new evalFlag "TCL_EVAL_DISCARD_RESULT" introduced, which allows to organize faster TEBC-loop
with discarding of result, simulating pop & done, like it does continue in loop (so ensures that setting of result will not smudge
the measurement).
2019-07-23 17:40:25 +00:00
jan.nijtmans bc6c5be360 Merge 8.6 2019-07-23 17:00:27 +00:00
jan.nijtmans 7384bdbf73 Merge 8.5 2019-07-23 16:55:51 +00:00
jan.nijtmans 9c396b2aea Eliminate the use of C++ keywords as variable names. Nothing more than rename the variables in something else. 2019-07-23 06:47:52 +00:00
jan.nijtmans c69df5188c Fix travis build 2019-07-20 08:43:07 +00:00
jan.nijtmans 3b6d8a9e2d Add Windows build, and Linux full debug build to Travis. No test runs yet, because some of them are still failing. 2019-07-19 13:35:43 +00:00
jan.nijtmans 20bd9d9cab Eliminate "register" keyword _everywhere_ in Tcl. This keyword is deprecated in C++ (removed in C++17, even), and essentially does nothing with most modern compilers. 2019-07-17 15:38:17 +00:00
jan.nijtmans 8f2b15e6db Merge 8.7 2019-07-17 12:49:37 +00:00
jan.nijtmans 737c82426b Merge 8.7 2019-07-17 11:28:47 +00:00
jan.nijtmans 738eb47e4e Fix travis build for 3 sections. Also (temporary) disable full-debug build, because it is currently failing. To be investigated why. 2019-07-17 11:26:22 +00:00
jan.nijtmans a3853cafd1 Merge 8.7 2019-07-16 09:56:23 +00:00
jan.nijtmans ff2baf22af Merge 8.6 2019-07-16 09:55:35 +00:00
jan.nijtmans 8e0fbdb4c1 Eliminate TclDTraceStr type, only in use with DTrace enabled: It's just the same as "const char *", which doesn't give any advantage. 2019-07-16 09:54:49 +00:00
jan.nijtmans bcd1623533 Merge 8.7 2019-07-16 09:25:44 +00:00
jan.nijtmans 117c6b9d73 Merge 8.6 2019-07-16 09:25:08 +00:00
jan.nijtmans 9b29b188a4 Merge 8.5 2019-07-16 09:24:12 +00:00
jan.nijtmans b06a8fa612 Add xcode11 to Travis builds. Sort platform/compiler versions from high to low. 2019-07-16 09:23:24 +00:00
jan.nijtmans 60397b30eb Remove last traces of strtod() function, since it isn't used in Tcl any more. 2019-07-16 09:20:59 +00:00
dgp c5da22ebff merge 8.6 2019-07-15 15:00:21 +00:00
sebres 140064bf12 merge 8.5 2019-07-15 11:34:53 +00:00
sebres 8324e0015d tests-perf suite: fix several tests expecting different output result (convert result) 2019-07-15 11:33:48 +00:00
jan.nijtmans d196dbf071 Two missing "const" designations, in Dtrace configuration 2019-07-15 09:34:38 +00:00
jan.nijtmans 88214c3f77 Fix [7d7038d415b345d5]: tcl is not LTO ready 2019-07-15 07:47:23 +00:00
jan.nijtmans 440325f1fa Fix travis build for xcode 9/10/11 2019-07-15 07:15:23 +00:00
kjnash f14b27d119 Bugfix for #f81beca7af. Revert mistaken change to -querychannel -translation in library/http/http.tcl. Bump http version to 2.9.1. Also, give correct major version in doc/http.n and adjust example user-agent string to a 2.9 value. 2019-07-14 09:04:15 +00:00
kjnash 03c20aae29 Create new branch named "bug-f81beca7af" 2019-07-13 19:38:55 +00:00
jan.nijtmans 44d36b0777 Add experimental xcode11 build steps to travis. Also sort different gcc/xcode versions from high to low 2019-07-13 17:29:00 +00:00
jan.nijtmans c81f2463d8 Merge 8.7 2019-07-13 17:20:28 +00:00
jan.nijtmans 73788579a1 Merge 8.7 2019-07-13 17:18:03 +00:00
jan.nijtmans 20d0031107 (temporary) disable experimental Travis build-steps, as long as they fail: They were merged too soon to the main branches 2019-07-13 17:16:37 +00:00
jan.nijtmans 7357639c2b please don't put experimental build steps in the main branches, as long as they don't work! 2019-07-13 17:11:57 +00:00
jan.nijtmans b6e44cf97f please don't put experimental build steps in the main branches, as long as they don't work! 2019-07-13 17:08:58 +00:00
sebres 44952e7c43 restore test-cases covering bug-4718b41c56 (partially revert last checkin, cherrypick from 8.7), set constraint time64bit to 1 (always valid in 9.0) 2019-07-12 14:32:39 +00:00
sebres 15b8ba49c1 merge point only (no changes, since time_t in 9.0 is always 64-bits and fix of branch bug-4718b41c56 unwanted here) 2019-07-12 12:24:06 +00:00
sebres eb8924753e merge 8.6, integrate branch bug-4718b41c56, rebuild win/configure, conflicts resolved (nothreads not available for 8.7) 2019-07-12 12:18:00 +00:00
jan.nijtmans cd1e068061 Merge 8.7 2019-07-12 12:16:43 +00:00
sebres 30fc501320 merge point 2019-07-12 12:12:12 +00:00
sebres 475ea88a05 integrate branch bug-4718b41c56, revert/rebuild win/configure (2.69 in tcl8.6), conflicts resolved, etc 2019-07-12 12:09:08 +00:00
jan.nijtmans b2b3391857 Merge 8.6 2019-07-12 12:04:38 +00:00
sebres 15eff3a60b close fork 2019-07-12 12:02:43 +00:00
jan.nijtmans f0c797e2ed Merge 8.5 2019-07-12 11:50:05 +00:00
jan.nijtmans 244a3018c5 Leave out travis tests for MSVC, until test-cases are fixed.
Revert generated configure script to use original autoconf version.
2019-07-12 11:48:06 +00:00
sebres 69d77fc137 integrate branch bug-4718b41c56, closes [4718b41c56] 2019-07-12 11:20:15 +00:00
jan.nijtmans c5ced4ccd6 Rename UTF-related functions to "WChar" and "Char16" variants, more intuitive because they represent wchar_t and char16_t (since C++11) types in modern compilers. 2019-07-11 07:18:07 +00:00
jan.nijtmans 0ac369da08 little tweaks, makeing it possible to use either _USE_64BIT_TIME_T or __MINGW_USE_VC2005_COMPAT interchangably.
Put some more remarks, making it more clear what the effect of this is.
2019-07-10 21:02:58 +00:00
sebres 5c69fce733 win/x86: compat fix, 64-bit time_t for 32-build is optional now (via configure/make option time64bit or define _USE_64BIT_TIME_T) 2019-07-10 18:13:41 +00:00
dkf 5a88ffcce9 Add CI (Travis) builds and testing for Windows, both with MSVC and GCC. Added some more test configurations too 2019-07-10 10:17:56 +00:00
dkf d129d1a6e9 Add CI (Travis) builds and testing for Windows, both with MSVC and GCC. 2019-07-10 08:49:57 +00:00
dkf b032f6d67b Add CI (Travis) builds and testing for Windows, both with MSVC and GCC. 2019-07-10 08:28:31 +00:00
dkf 777a642667 merge core-8-5-branch 2019-07-10 08:25:48 +00:00
jan.nijtmans 2a3d586a79 Merge 8.7, and continue implementation. Almost done 2019-07-10 05:51:56 +00:00
dkf eaaa675e99 More tweaking to work around YAML parsing issues and fix an irrelevant test failure with static builds on Windows 2019-07-09 08:39:27 +00:00
jan.nijtmans 6cf70a8d48 Merge-mark 2019-07-08 20:26:14 +00:00
sebres bd11687207 fixes [4718b41c56] for windows x86 (mingw / MSVC versions with CRT supporting 64-bit time_t) 2019-07-08 20:22:27 +00:00
jan.nijtmans 5d106cabda Merge 8.5 2019-07-08 20:18:38 +00:00
jan.nijtmans 4b7f867f90 Simplify previous commit: Just always use Tcl_WideInt 2019-07-08 19:02:56 +00:00
sebres a4c8e24f4c amend to [c14252171d]: fixes [4718b41c56] for x64 (and x86 with 64-bit predefined time_t resp. CRT library) 2019-07-08 15:00:12 +00:00
dkf 309510e33e Tweak the build a bit more, and use YAML a bit better 2019-07-08 10:57:56 +00:00
jan.nijtmans a0676d22d0 Undo changes in configure script: Since wchar_t is not used in Tcl yet (except in Windows), the -fshort-wchar option is not necessary 2019-07-07 20:51:24 +00:00
jan.nijtmans d6fda47fa8 Merge 8.7, and a few tweaks: Only provide Tcl_WinUtfToTChar on Tcl 8.x, not on 9.0 any more 2019-07-07 20:38:54 +00:00
dkf 58c45c0f97 Updated win/configure to use current version of autoconf 2019-07-07 15:20:26 +00:00
jan.nijtmans 3e181ede9d Fix UNIX/Mac build 2019-07-06 23:09:08 +00:00
jan.nijtmans ba1938b59e Merge 8.7
Don't build with TCL_NO_DEPRECATED, since we didn't deprecate anything in 9.0 yet
2019-07-05 23:08:15 +00:00
jan.nijtmans b02bf29036 Merge 8.6 2019-07-05 23:04:22 +00:00
jan.nijtmans fdf2dd144f Merge 8.5 2019-07-05 22:53:07 +00:00
jan.nijtmans 97bf1ced2b Merge 8.5 2019-07-05 22:51:15 +00:00
jan.nijtmans 28f17c0d70 Add "name" entries to travis build configuration 2019-07-05 22:49:31 +00:00
jan.nijtmans fbf9737123 Merge latest libtommath and 8.6 2019-07-05 15:11:17 +00:00
jan.nijtmans c7329913d9 Merge libtommath 2019-07-05 14:54:17 +00:00
dgp 42dff1d622 merge 8.6 2019-07-05 14:40:11 +00:00
jan.nijtmans 508e022fa9 Update to latest "develop" branch of libtommath 2019-07-05 14:23:21 +00:00
jan.nijtmans 4864626e88 Fix [4718b41c56d8c135] for win32. Now timestamps on Win32 can be > 19 january 2038.
Caveat: Now Tcl MUST be compiled with VS2005+, or any other compiler which has C headers compatible with VC2005+ (latest mingw-w64 is OK too!)
Tcl on Win32 is now no longer compiled with _USE_32BIT_TIME_T, so this is (potentially) binary incompatible.
2019-07-05 13:34:24 +00:00
jan.nijtmans 7e70c52009 Merge 8.7 2019-07-05 12:12:13 +00:00
jan.nijtmans 4d6c5fd3ac Merge 8.6 2019-07-05 12:11:00 +00:00
jan.nijtmans 9d0dfc6f26 Fix [4718b41c56d8c135]: windows x86 & x64: file mtime overflows in modification date. Only fixed for x64, because for x86 it isn't possible without breaking API compatibility 2019-07-05 11:23:56 +00:00
jan.nijtmans 4d25168772 Fix [4718b41c56d8c135]: windows x86 & x64: file mtime overflows in modification date.
Only fixed for x64, because for x86 it isn't possible without breaking API compatibility.
2019-07-05 09:29:55 +00:00
jan.nijtmans 30b0dabb9b Improvement: always export both 16-bit and 32-bit UTF function 2019-07-05 09:03:12 +00:00
dkf 912f1a8816 The next round of trying to get Windows builds working 2019-07-05 08:39:59 +00:00
dkf 24829b80ac Might as well try direct gcc on Windows too. 2019-07-04 09:57:31 +00:00
dkf 12c3fbcb0c More tinkering with the build. Can override scripts in the matrix, but need magic to find nmake. 2019-07-04 09:45:24 +00:00
jan.nijtmans 26a830241e Merge 8.7 2019-07-04 07:07:10 +00:00
jan.nijtmans d409a29e57 Experiment: compile Tcl with C++ compiler. WIP 2019-07-04 06:54:24 +00:00
dkf a33b0950be Tcl_ObjectDeleted was only partially documented. Oops. 2019-07-03 20:10:17 +00:00
dgp 459aa94020 merge 8.6 2019-07-03 15:48:09 +00:00
jan.nijtmans dc2e004dcb Merge 8.7 2019-07-03 15:29:35 +00:00
jan.nijtmans cc1e301587 unicode -> utf16/ucs2 in documentation 2019-07-03 14:22:03 +00:00
dkf 9740bc1662 There are no cats in America, and no tabs in YAML files 2019-07-03 13:24:16 +00:00
dkf 8751d32304 So... you can't directly override a script in the matrix section of .travis.yml 2019-07-02 09:13:59 +00:00
José Ignacio Marín 91661a7da0 Update TZ info to tzdata2019b. 2019-07-02 07:25:33 +00:00
José Ignacio Marín b71ad7dc5e Update TZ info to tzdata2019b. 2019-07-02 07:25:02 +00:00
José Ignacio Marín b0ffd31845 Update TZ info to tzdata2019b. 2019-07-02 07:24:11 +00:00
dkf ac198c7f44 This is a trial of doing a classic Windows build-and-test on Travis 2019-07-01 20:33:55 +00:00
dgp 25dac72093 merge 8.7 2019-07-01 19:31:18 +00:00
dgp 572ee1037b Fix unitialized memory report from valgrind 2019-07-01 19:30:55 +00:00
dgp 150fb8061f Avoid valgrind issues with uninitialized memory 2019-07-01 19:29:55 +00:00
dgp d17af2c703 Avoid valgrind issues with "uninitialized memory" 2019-07-01 19:21:06 +00:00
dgp 93c913d132 merge 8.6 2019-07-01 13:28:20 +00:00
jan.nijtmans 722cda78a9 VC++ 6.0 doesn't know the uLL number postfix 2019-06-30 10:08:36 +00:00
jan.nijtmans 9884b5887e Merge 8.7 2019-06-30 09:21:58 +00:00
jan.nijtmans b9dcc2161d Eliminate "catch" as variable-name, is a keyword in C++. Also add some type-casts, making it more C++-friendly. 2019-06-30 09:12:01 +00:00
jan.nijtmans e06dc8eb8d Fix compilation on VC++ 6.0 2019-06-30 07:53:11 +00:00
jan.nijtmans 3f2b427970 Eliminate some more instances of "long long", for VC++ 6.0 2019-06-30 07:22:51 +00:00
jan.nijtmans ce1a0a923b Merge 8.6 2019-06-30 07:15:58 +00:00
jan.nijtmans 91407fd3d6 Merge 8.7 2019-06-29 21:35:38 +00:00
jan.nijtmans 2c9e6ac996 Merge 8.6 2019-06-29 21:34:43 +00:00
jan.nijtmans 41be9233e9 Trying to fix C4761 warning with VC++ 6.0 2019-06-29 21:29:46 +00:00
jan.nijtmans a2d61902c5 Merge tip-548 2019-06-29 14:35:51 +00:00
jan.nijtmans a293b747f1 Merge 8.7 2019-06-29 13:59:55 +00:00
jan.nijtmans 658e03b4d7 Merge 8.7 2019-06-29 13:59:11 +00:00
jan.nijtmans 9d7eafebca Code cleanup, like TCHAR -> WCHAR and TEXT("xxx") -> L"xxx", since we always compile in UNICODE mode. 2019-06-29 13:57:37 +00:00
jan.nijtmans 3d185e117d Merge tip-548 2019-06-29 07:19:50 +00:00
jan.nijtmans 300d11729e Merge 8.7 2019-06-29 07:18:39 +00:00
jan.nijtmans 121c6e30ab Merge 8.7 2019-06-28 22:43:10 +00:00
jan.nijtmans 10643b0298 Fix a warning due to a missing const in an internal minzip function 2019-06-28 22:42:24 +00:00
jan.nijtmans 9f89b782ef Merge 8.7 2019-06-28 22:38:28 +00:00
jan.nijtmans 745219e06c Implement TIP #547: New encodings: UTF-16, UCS-2 2019-06-28 22:36:12 +00:00
dgp 2298ba7ed7 merge 8.7 2019-06-28 12:43:50 +00:00
dkf a4d19fb085 Even better commenting of the fpclassify() replacement trickery. 2019-06-27 18:39:30 +00:00
sebres cdeaa86046 merge 8.6 2019-06-27 16:26:18 +00:00
sebres 574c3c0027 winFCmd.test: fixes EXDEV related constraint and paths in test cases (covering move/rename across devices) 2019-06-27 16:20:05 +00:00
gahr b8a558a78f Fix a warning due to a missing const in an internal minzip function 2019-06-27 15:47:33 +00:00
sebres 9237f2327b zipfs.test: fixed error (couldn't open "...": permission denied) if $tclzip points to directory, due to empty pkgconfig in runtime/debug environment (e. g. no zipped library) 2019-06-27 15:35:37 +00:00
jan.nijtmans 61f6640367 Fix [15d851e394]: Fix spelling in comment of tclCmdIL.c 2019-06-27 13:40:17 +00:00
jan.nijtmans d25a0dae48 Fix [15d851e394]: Fix spelling in comment of tclCmdIL.c 2019-06-27 13:38:09 +00:00
jan.nijtmans 65e3c9b74d Fix execute flag for win/tclWinFile.c here too 2019-06-27 13:29:40 +00:00
dgp eb64fc3dac merge 8.7 2019-06-27 13:08:45 +00:00
dgp 8884cc7dae merge 8.6 2019-06-27 13:06:42 +00:00
jan.nijtmans 379b57abd7 Merge tip-548 2019-06-27 10:49:29 +00:00
jan.nijtmans 44bc247a5a Code cleanup for Tcl_WinUtfToTChar/Tcl_WinTCharToUtf. Tested with Tk now. 2019-06-27 08:22:35 +00:00
jan.nijtmans 218593d964 Merge tip-548 2019-06-26 21:25:54 +00:00
jan.nijtmans 63502e3b41 Add compatibility macro's for Tcl_WinUtfToTChar/Tcl_WinTCharToUtf 2019-06-26 21:03:21 +00:00
jan.nijtmans a0ce8846be Merge tip-547 2019-06-26 20:08:18 +00:00
jan.nijtmans a3e27be768 Merge 8.7 2019-06-26 20:06:59 +00:00
jan.nijtmans 676acf8712 UNEXEC win/tclWinFile.c 2019-06-26 09:36:53 +00:00
jan.nijtmans 666cc554c3 Merge 8.7 2019-06-26 08:34:12 +00:00
jan.nijtmans 8fc811e066 Merge 8.6 2019-06-26 08:32:17 +00:00
jan.nijtmans c4459402a9 UNEXEC win/tclWinFile.c 2019-06-26 08:27:51 +00:00
jan.nijtmans 7c0afa7cd6 Merge 8.5 2019-06-26 08:26:01 +00:00
jan.nijtmans 595cb86379 Remove EXECUTE flag for tclWinFile.c. More eol-spacing cleanup (keeping tests-pref/* among other the same in multiple branches) 2019-06-26 08:21:19 +00:00
jan.nijtmans bd858e0017 Merge 8.6 2019-06-25 22:46:30 +00:00
jan.nijtmans 5fdb86c231 Merge 8.7 2019-06-25 22:34:13 +00:00
jan.nijtmans 6b55f89342 Merge 8.6. Also fix mp_get_long_long for VC++ 6.0 (will be deprecated by libtommath) 2019-06-25 22:32:01 +00:00
jan.nijtmans 5ef1c629df Makef tclTomMath.h work with VC++ 6.0 2019-06-25 22:27:43 +00:00
jan.nijtmans 2400084f1b Merge 8.7 (But without the TclWideMUInt type for VC++ 6.0, most likely too much to be asked for Tcl 9.0) 2019-06-25 20:39:43 +00:00
sebres f5299fe91b merge 8.6 2019-06-25 19:04:18 +00:00
sebres 9392d9001a restore userenv, used in 8.6 2019-06-25 18:59:09 +00:00
sebres e113eb82e5 merge 8.5 2019-06-25 18:02:12 +00:00
sebres 334b8029ed nmakehlp: fixed const qualifier 2019-06-25 17:45:23 +00:00
sebres be26adf83b fixed build with MSVC 6.0 2019-06-25 16:09:33 +00:00
jan.nijtmans d1b95c2624 Change int constants into char constants. Hopefully this eliminates C4305 warnings on MSVC 6.0 2019-06-25 15:50:31 +00:00
sebres da06343b0b amend (remove test define) 2019-06-25 11:01:27 +00:00
sebres 5fe976a533 merge and rewrite fpclassify-mingw-x86: new TCL_FPCLASSIFY_MODE mode (3) for __builtin_fpclassify, actually not used directly 2019-06-25 10:56:14 +00:00
sebres 9fb98b2d11 fixed several fpclassify modes (better recognition and control via TCL_FPCLASSIFY_MODE), typos fixed (FP_INF -> FP_INFINITE), no redefine warnings if FP_* already specified, etc 2019-06-25 10:40:18 +00:00
dkf 940b2183da Where did that stray semicolon come from? Also improve the comments... 2019-06-25 08:48:27 +00:00
sebres f310332a6b use __builtin_fpclassify for mingw x86 (tested up to gcc 8.1, it seems to have a bug in fpclassify, so [fpclassify 1e-314], x86 => normal, x64 => subnormal) 2019-06-25 07:36:28 +00:00
jan.nijtmans f98d08a06c Merge 8.6 2019-06-25 06:57:38 +00:00
jan.nijtmans 9489b8b506 Squelch C4244 warning on any MSVC compiler. 2019-06-25 06:56:26 +00:00
dkf 3c82f32973 Better implementation of fpclassify() equivalent. 2019-06-24 20:36:41 +00:00
sebres 20c0d8a18a amend to [f3d49044c4e658a7]: resolve warnings (signed/unsigned comparisons, if compiled with MSVC) 2019-06-24 10:31:37 +00:00
sebres b747c97138 merge 8.7 2019-06-24 10:17:20 +00:00
sebres 2bdf8bd305 merge 8.6 2019-06-24 08:56:56 +00:00
jan.nijtmans dcdfc7c2e5 Merge 8.7. Also eliminate some spacing before line-endings 2019-06-24 07:35:33 +00:00
jan.nijtmans 3fe9b57f64 Fix test title, since TclGetIntForIndex() is now exported as Tcl_GetIntForIndex() 2019-06-24 07:26:25 +00:00
sebres 8ab0ae062e closes [f8a33ce3db5d8cc2]: Tcl_Exit uses system exit as fallback if Tcl-subsystems are not (yet) initialized (or initialization fails). 2019-06-21 19:22:07 +00:00
dkf 4d2c1c1037 [6bdadfba7d] Stop crash with multi-lappend and failing writes 2019-06-20 19:43:58 +00:00
dkf 6a1b394c2d [6bdadfba7d] Stop crash with multi-lappend and failing writes 2019-06-20 19:42:23 +00:00
dkf 2f8cb2ab85 [6bdadfba7d] Stop crash with multi-lappend and failing writes 2019-06-20 19:40:30 +00:00
dgp c3c72d902f Bump version numbers for 8.6.10 release. 2019-06-17 18:56:40 +00:00
dgp fe44a8d5e9 merge 8.7 2019-06-17 18:28:39 +00:00
dgp 9fb3c12d53 merge 8.7 2019-06-17 18:18:59 +00:00
dgp b9e23e625d merge 8.6 2019-06-17 18:18:36 +00:00
dgp a9083528ab [8b9854c3d8] Undo regression in [info level 0] after ensemble dispatch. 2019-06-17 18:00:29 +00:00
jan.nijtmans e15611da63 Merge 8.7 2019-06-16 11:37:23 +00:00
dkf d72bda67fc Merge 8.7 2019-06-16 09:43:40 +00:00
dkf 0e2ec94c44 TIP 521: Float classification functions 2019-06-16 09:42:23 +00:00
jan.nijtmans ebf5e0545e Merge 8.6 2019-06-15 22:33:10 +00:00
jan.nijtmans 96f1d4ec34 Merge 8.5 2019-06-15 22:31:51 +00:00
jan.nijtmans c1ee80eccf Use mp_init_set() in stead of mp_init_set_int() when the constant is sufficiently small. This is slightly better optimized. 2019-06-15 22:30:59 +00:00
jan.nijtmans 05e8116a11 Merge 8.7 2019-06-15 21:29:44 +00:00
dkf 7a638ab80d A neater way to write it that doesn't depend on detecting a specfic compiler version. For now. 2019-06-15 21:24:36 +00:00
dkf 4e87d51f9d Try to work around MSVC6's lack of fpclassify()... 2019-06-15 21:03:08 +00:00
dkf aa443ce8d5 TIP 461: text comparison operators for [expr] 2019-06-15 17:49:00 +00:00
dkf 475b667827 Corrections to definitions of [binary scan] and [binary format]. 2019-06-15 11:56:44 +00:00
jan.nijtmans 15e17d01d5 Latest libtommath's "develop" branch adapted for Tcl 8.6. And Tcl 8.6 adapted for changes in libtommath 2019-06-14 21:48:00 +00:00
jan.nijtmans db7fa65dce Merge libtommath 2019-06-13 21:28:11 +00:00
dgp 526c432322 Mark test namespace-54.6 as knownBug.
The real bug here is Tcl's failure to forbid ":" as a namespace name.
2019-06-13 20:43:04 +00:00
jan.nijtmans 505f963287 Update to latest libtommath's "develop" branch. On the way to 1.2.0 2019-06-13 19:07:13 +00:00
dgp 1ebe878444 Fix Bug 8b9854c3d8. Now 4 test failures require examination. 2019-06-13 17:58:48 +00:00
dgp 1cd98b93bd Unique test name. 2019-06-13 17:37:46 +00:00
dgp 5645bb01ff Test namespace-56.4 detects Bug 8b9854c3d8. Branch open to fix it. 2019-06-13 17:20:45 +00:00
dgp 1fea6044ed merge 8.7 2019-06-12 18:58:35 +00:00
jan.nijtmans 9bbe0b94a0 Merge 8.7 2019-06-12 15:42:54 +00:00
jan.nijtmans 19d8ff62c5 Eliminate (internal) TclOffset() usage, just use offsetof() in stead. 2019-06-12 15:26:27 +00:00
jan.nijtmans 67c32c7ef6 Merge 8.7 2019-06-11 15:32:49 +00:00
jan.nijtmans 100d8f950d Merge 8.6 2019-06-11 15:32:09 +00:00
jan.nijtmans e69d76af16 Fix [25deec4e46]: Tcl fails to compile with icc due to typedef conflict 2019-06-11 15:31:29 +00:00
jan.nijtmans 6420ec98e8 Fix [25deec4e46]: Tcl fails to compile with icc due to typedef conflict 2019-06-11 15:30:27 +00:00
dkf 7bfc294816 merge core-8-branch 2019-06-10 20:08:52 +00:00
dkf 10da290cf9 merge more expr doc tweaks 2019-06-10 20:02:56 +00:00
dgp 3716148be6 update test 2019-06-10 19:50:03 +00:00
dkf 44d4c7f793 General improvements to the expr manpage 2019-06-10 19:43:59 +00:00
dgp 8137a6d20a merge 8.7 2019-06-10 19:42:54 +00:00
dkf 1cab268c94 General improvements to the expr manpage 2019-06-10 19:27:31 +00:00
dgp 6279ca4192 merge 8.7 2019-06-10 19:24:46 +00:00
dgp 555291ab91 merge 8.7 2019-06-10 19:09:36 +00:00
dgp f627e6922c more formatting 2019-06-10 19:09:16 +00:00
dgp b4a301e016 merge 8.7 2019-06-10 19:06:47 +00:00
dgp 6a3773f611 Doc formatting and advice about double substitution in expressions. 2019-06-10 18:58:44 +00:00
dgp c6cb158e39 merge 8.6 2019-06-10 18:53:29 +00:00
dgp 39fba10b45 More localized documentation of lazy operators. 2019-06-10 18:44:18 +00:00
dgp 5f72a5554c More bytecodes are non-throwing. 2019-06-10 18:33:28 +00:00
dgp 3fe6dfccc1 Remove declarations that are never defined. 2019-06-10 18:31:09 +00:00
dgp 774c2050f1 Remove declarations that are never defined. 2019-06-10 18:24:05 +00:00
dgp 1217d3e0d3 merge 8.7 2019-06-10 16:00:21 +00:00
jan.nijtmans d64f20cebe Merge tip-548 2019-06-09 21:18:35 +00:00
jan.nijtmans ce24c767fc Merge tip-547 2019-06-09 21:17:41 +00:00
jan.nijtmans 3d4f2e4d49 Merge 8.7 2019-06-09 21:16:24 +00:00
jan.nijtmans 7af13a3cf6 Merge 8.7 2019-06-09 21:04:11 +00:00
dkf 95d4ef2aae merge 8.6 2019-06-09 11:36:44 +00:00
dkf ab3a73bf75 minor cleanup of source code formatting 2019-06-09 11:28:58 +00:00
bch b4e34defb1 merge fork 2019-06-09 05:10:31 +00:00
bch c18dcfc96c cast to correct size, stop faulting 2019-06-09 05:07:53 +00:00
sebres eea593cd75 amend to close [c3a211e8a5], fixes can't read "major": no such variable 2019-06-08 10:46:22 +00:00
sebres ee5696ef47 closes [c3a211e8a5995018c82e]: search of tcl/tk is more backwards compatible now + make some errors more verbose (e. g. if scan found nothing and no tcl/tk build expected) 2019-06-07 22:09:32 +00:00
jan.nijtmans ad985a6135 Merge 8.7 2019-06-07 15:25:25 +00:00
jan.nijtmans a1b2390c0f More usage of TCL_INDEX_NONE in stead of -1. More internal use of size_t, mainly in memory statistics (debug-mode only), and TCL_Z_MODIFIER. This gives broader memory statistics on win64. 2019-06-07 14:09:35 +00:00
dkf 9541b1276b Tests and docs 2019-06-06 17:58:33 +00:00
jan.nijtmans 040a8faa61 Merge 8.7, and add some more usage of TCL_INDEX_NONE/TCL_AUTO_LENGTH 2019-06-06 08:20:11 +00:00
jan.nijtmans bd4765cf50 Squelch compiler warnings, but make refCount of type unsigned int. 2019-06-06 07:59:21 +00:00
bch 9d7e696016 squelch int vs. long int (size_t) warings in comparison, format specifiers 2019-06-06 03:47:33 +00:00
dkf 9843b108c9 And fix the silly error 2019-06-05 20:42:32 +00:00
dkf 89aeb7f43d And the command version of the new operators too. 2019-06-05 20:35:02 +00:00
dkf 85539b66a0 Start of implementation of string comparison operators. 2019-06-05 19:34:11 +00:00
jan.nijtmans e2abfe30a7 Merge tip-548 branch. 2019-06-03 21:20:07 +00:00
jan.nijtmans 9a414590a6 TIP #548: Deprecate Tcl_WinUtfToTChar() and Tcl_WinTCharToUtf() and provide more flexible replacement functions 2019-06-03 19:48:14 +00:00
dkf 2dd78d392c Added docs 2019-06-02 13:44:50 +00:00
dkf 9634dccb3c Implement TIP 521, including tests 2019-06-02 11:59:53 +00:00
jan.nijtmans 83661bdca4 Merge tip-547 2019-05-31 23:35:20 +00:00
jan.nijtmans a7ec180fc7 TIP #547 implementation: New encodings: UTF-16, UCS-2 2019-05-31 23:19:07 +00:00
jan.nijtmans f86f9cf5f2 Merge 8.7 2019-05-31 23:14:50 +00:00
jan.nijtmans 10e31bc252 Merge 8.6 2019-05-31 23:14:11 +00:00
jan.nijtmans d23bb9578a In tools/*, use the single-argument version of "expr" always. Making it robust against TIP #526. Those tools generally are the same among all Tcl versions. 2019-05-31 23:13:21 +00:00
jan.nijtmans 84b9d03fb0 TIP 537 implementation: Enable 64-bit indexes in regexp matching 2019-05-31 12:50:04 +00:00
jan.nijtmans 2ed71e62a0 Merge 8.7 2019-05-31 12:37:16 +00:00
jan.nijtmans a8f9285bd0 TIP #544 implementation: Export TclGetIntForIndex() 2019-05-31 12:20:40 +00:00
jan.nijtmans d988f34ccf Merge 8.7. Remove the mp_tc_(and|or|xor) stub entries, because they are no longer in use. 2019-05-31 12:09:48 +00:00
jan.nijtmans e80cd8e284 Merge 8.6 2019-05-31 11:51:58 +00:00
jan.nijtmans be861c2430 Rename mp_get_bit to s_mp_get_bit, rename mp_tc_div_2d to mp_signed_rsh, remove mp_tc_(add|or|xor) functions in favor of mp_(add|or|xor) which can now handle twos-complement. Following ongoing changes in libtommath development. 2019-05-31 11:28:39 +00:00
dgp 9b8f76b445 merge 8.7 2019-05-30 12:14:57 +00:00
jan.nijtmans 2baadaa351 Merge 8.7 2019-05-29 23:11:34 +00:00
jan.nijtmans 4b67509c24 Merge 8.6 2019-05-29 23:10:09 +00:00
jan.nijtmans 984c717026 Merge 8.5 2019-05-29 23:08:11 +00:00
jan.nijtmans 7a1b66b00d Update some libtommath functions to the latest trunk versions. Small step forward in the upgrade to (upcoming) libtommath 1.2.
Advantage: simplify Tcl code accessing those functions.
2019-05-29 22:48:50 +00:00
jan.nijtmans 6333877cc6 Hmm. Since Travis builds go through GIT, we need to use "master" in stead of "trunk" here .... 2019-05-28 22:56:00 +00:00
jan.nijtmans 9964f5b71b Merge 8.7 2019-05-28 22:51:34 +00:00
jan.nijtmans da4e8a7253 Merge 8.6 2019-05-28 22:50:35 +00:00
jan.nijtmans 6c6bec6689 Fix build status in README.md 2019-05-28 22:48:52 +00:00
jan.nijtmans e1d26a8dd9 merge-mark 2019-05-28 22:22:05 +00:00
jan.nijtmans 31899401b7 Merge 8.6 2019-05-28 22:20:34 +00:00
jan.nijtmans 372248583f Rename README to README.md, and reformat 2019-05-28 22:17:37 +00:00
jan.nijtmans bd5f8f74c3 Merge 8.7 2019-05-28 22:13:20 +00:00
jan.nijtmans cf3e58c339 Merge 8.6 2019-05-28 21:42:50 +00:00
jan.nijtmans 4ff1524f2a Merge 8.5 2019-05-28 21:41:23 +00:00
jan.nijtmans 4e994192a1 Eliminate a set of libtommath-related files that don't do anything. There's no sense in it, keeping track of those files in the Tcl repository. 2019-05-28 21:38:58 +00:00
jan.nijtmans c70641a878 Fix "make dist" for the README -> README.md renaming 2019-05-27 21:18:01 +00:00
dkf 815f882201 Merge 8.7 2019-05-25 08:17:42 +00:00
dkf 9290e6c1ac TIP 383: [coroinject] and [coroprobe] 2019-05-25 08:06:25 +00:00
dkf f4fbdbee8e Add to error info when passing an error out of [coroprobe] 2019-05-25 08:01:08 +00:00
dkf ef5c0e282a Implement TIP 431: [file tempdir] 2019-05-25 07:46:24 +00:00
jan.nijtmans e09e63e37e Merge 8.7 2019-05-24 20:14:00 +00:00
jan.nijtmans 1805ed5823 Merge 8.6 2019-05-24 20:12:47 +00:00
jan.nijtmans b15a6a700f end-of-line spacing 2019-05-24 20:10:14 +00:00
jan.nijtmans ffdd95d4a3 Missing keyword: "static" 2019-05-24 20:03:03 +00:00
sebres 3181d9ef0f merge 8.7 2019-05-24 17:01:59 +00:00
sebres 3bf5bf3079 merge 8.6 2019-05-24 17:00:46 +00:00
sebres d249b0629d merge 8.5 2019-05-24 16:56:29 +00:00
sebres cb9018a721 fixes typo ("net" instead of outdated term "nett") 2019-05-24 16:49:32 +00:00
jan.nijtmans 58260d444e More simplifications, taking deprecations into account 2019-05-22 21:50:14 +00:00
jan.nijtmans ea5190faaa Merge 8.7 2019-05-22 07:33:13 +00:00
jan.nijtmans d063a23455 More WIP: eliminate all usage of (platform-specific) Tcl_WinTCharToUtf()/Tcl_WinUtfToTChar() to its proposed portable replacements: Tcl_Utf16ToUtfDString()/Tcl_UtfToUtf16DString()
This allows for Tcl_WinTCharToUtf()/Tcl_WinUtfToTChar() to be declared deprecated.
2019-05-22 07:32:37 +00:00
sebres 5bd2a09f72 merge 8.7 2019-05-21 18:05:34 +00:00
sebres c230bbb7b4 merge 8.6 2019-05-21 18:04:05 +00:00
sebres e298c2595d merge 8.5 (timerate unsigned calc) 2019-05-21 18:01:07 +00:00
sebres 3ab1f672a4 timerate: be more precise using unsigned wide (for total execution time), avoid signed vs unsigned comparison warning (if compiled with VS). 2019-05-21 17:52:14 +00:00
dgp 6fdf1d52a3 merge 8.7 2019-05-21 16:46:08 +00:00
dgp cacd1146d0 merge 8.6 2019-05-21 16:43:00 +00:00
dgp 7db84b0155 Knock VOID back down 2019-05-21 16:42:11 +00:00
sebres fd3264c3a0 merge 8.7 2019-05-21 11:46:36 +00:00
sebres e94891207a merge 8.6 (fixed optimization for create/search hash entries with the same keys) 2019-05-21 11:40:37 +00:00
sebres e2f5de73e3 fixed mistake in optimization of [3f693cdfe9c875c4] (bypass of compareKeysProc if keys pointers/objects are equal) - it should compare given key with entry key (not with a hash entry) 2019-05-21 11:34:13 +00:00
sebres 57c23073f7 small amend (no cast needed) 2019-05-21 11:29:09 +00:00
sebres 245ed0c3c3 cherry-picing of [3f693cdfe9c875c4] to be more compatible across version, resolve mistake with "key objects/pointers comparison by the hash entry" firstly introduced there. 2019-05-21 11:22:36 +00:00
dgp 543703d4ee comment typo 2019-05-17 18:33:49 +00:00
dgp 28cc8c889e merge 8.7 2019-05-17 14:42:44 +00:00
jan.nijtmans f51c5464dc Merge 8.7 2019-05-17 14:22:50 +00:00
sebres a68f7032b3 merge 8.6 2019-05-17 10:40:17 +00:00
dkf cfff0de87e Remove misleading comment in nroff source 2019-05-17 08:13:32 +00:00
dkf cbd3fd20bd Add test for what happens when the directory in the template doesn't exist; doc it too. 2019-05-17 08:09:29 +00:00
dkf c54b6957b8 merge core-8-branch 2019-05-17 07:31:47 +00:00
jan.nijtmans d2867d11a4 Change last parameter of Tcl_LinkArray() to type size_t, since we're on 9.0 here! 2019-05-17 06:40:43 +00:00
sebres 1f5c7c693b merge 8.5 2019-05-16 18:19:25 +00:00
sebres 2865a8da13 small amend to [ac566e9df84daeab] with rollback of done/continue optimization 2019-05-16 18:17:52 +00:00
sebres 8af3fb7317 merge 8.5 (timerate fix to avoid impact of object duplication on shared interp result by the measurement) 2019-05-16 17:56:37 +00:00
sebres ccc592df50 timerate: allow continue from measurement cycle (used for conditional flow control of iterations);
more gentle evaluation behaviour, similar to a cycle now (also avoids extra overhead to set result to interp, etc.);
todo: rewrite optimization of INST_DONE using last-instruction pointer or optimization flags for compile of iteration (if sebres's perf-branch gets merged).
2019-05-16 17:49:25 +00:00
jan.nijtmans bbcbb88d88 Add documentation, don't overwrite earlier stub entry! 2019-05-15 15:18:22 +00:00
jan.nijtmans 642d303548 TIP #544 implementation. Documentation still missing. 2019-05-15 14:58:03 +00:00
jan.nijtmans 6ce7d06a33 Merge 8.7 2019-05-14 19:28:34 +00:00
jan.nijtmans 503da2614f Merge 8.6 2019-05-14 19:26:55 +00:00
jan.nijtmans de4f571baa Merge 8.5 2019-05-14 19:13:01 +00:00
jan.nijtmans 8094d33e43 DIGIT_BIT -> MP_DIGIT_BIT, since DIGIT_BIT is deprecated in future libtommath versions. So, better stop using it at all.
Also add some other defines/typdefs for future libtommath compatibility.
2019-05-14 18:42:59 +00:00
dkf ec265aa929 Tweak the unix build instructions; general cleanup of a few bits and fixing of old maintainer-only targets 2019-05-14 10:31:01 +00:00
jan.nijtmans 3a37a573a2 Merge 8.7 2019-05-13 21:55:28 +00:00
fvogel 0f34d49b76 Fix new tests cmdAH-33.[45] by making them pass on Windows 2019-05-13 17:56:36 +00:00
fvogel 6b6e030ea4 Fix crashing bug in tempdir name creation 2019-05-13 09:54:49 +00:00
fvogel 6902811461 Let branch compile with MSVC 2008 2019-05-13 04:00:48 +00:00
dgp 8265ea67d6 Convert deprecation to elimination for Tcl 9. 2019-05-11 15:04:57 +00:00
dgp 800ce1bfa2 Start TIP 543 for Tcl 9. 2019-05-11 14:56:34 +00:00
dgp 7278c6fb2c Complete doc changes for TIP 543 in Tcl 8.7 2019-05-11 14:43:06 +00:00
dgp ffda787e45 merge 8.7 2019-05-11 12:58:09 +00:00
dgp 923a6774f6 merge 8.6 2019-05-11 12:57:35 +00:00
dgp 9ca29b09ae merge 8.5 2019-05-11 12:49:46 +00:00
dgp 95d2a7f7c0 Revised documented advice that made obsolete reference to interp->result. 2019-05-11 12:48:53 +00:00
dgp 0c863ddec8 Start of TIP 543 implementation. 2019-05-10 20:30:41 +00:00
sebres 0d1ffc0968 testlinkarray: fixed cast to pointer from integer (and eliminate warning) 2019-05-10 18:32:09 +00:00
jan.nijtmans 8ffde10c06 Merge 8.7 2019-05-10 16:35:53 +00:00
jan.nijtmans a2a03ea8fb Merge trunk 2019-05-10 07:50:31 +00:00
jan.nijtmans 7b90ffbb48 merge 8.7 2019-05-10 07:46:32 +00:00
jan.nijtmans 216ea63416 Merge 8.7. Define Tcl_GetStringResult() as macro. 2019-05-09 20:42:55 +00:00
jan.nijtmans b1139d3d20 If compiling with -DTCL_NO_DEPRECATED, make Tcl_GetStringResult() a macro. This opens up one more simplification for Tcl 9.
Compile the load-test dll's/so's with -DTCL_NO_DEPRECATED
2019-05-09 20:06:34 +00:00
jan.nijtmans 5a1aa160a1 Merge 8.7 2019-05-09 15:54:16 +00:00
jan.nijtmans 67ba502f34 Merge 8.6.
Fix compilation warning. No longer return linked adress as interp result in Tcl_LinkArra(): This is not documented, not tested, and simply dangerous: It leaks pointer values into the Tcl space.
2019-05-09 15:52:01 +00:00
jan.nijtmans d232a6d28e Minor compiler warning 2019-05-09 15:32:51 +00:00
dgp 6d88a891b7 merge 8.7 2019-05-08 18:08:47 +00:00
dgp b8b9618102 merge 8.6 2019-05-08 18:07:51 +00:00
dgp 5419f8e0ba For historical/hysterical reasons, the (unused??) public routines Tcl_UpVar()
and Tcl_UpVar2() accept random garbage for a level argument (treat it as 1)
while the [upvar] command has come to reject such values as bad levels.
Add a test to call it to our attention if we ever change that disparity
so we do so only on purpose.
2019-05-08 18:06:23 +00:00
jan.nijtmans 46e32fe90e Merge 8.7. The changes in tclCmdIL.c fix the travis build. 2019-05-08 07:11:30 +00:00
jan.nijtmans 9d68b2dbd1 Make more clear that TCL_INDEX_END|TCL_INDEX_NONE not necessary are int's (in Tcl 9 they are not).
Eliminate use of (local) list_index_t type
2019-05-08 06:53:00 +00:00
jan.nijtmans f218c1f1eb (cherry-pick from8.6): Japanese Reiwa (令和) era 2019-05-07 07:19:10 +00:00
dgp 87814db398 merge mark 2019-05-04 22:51:57 +00:00
dgp a5482cc2a7 merge mark 2019-05-04 22:49:04 +00:00
dgp cb411d059b close fork 2019-05-04 22:46:58 +00:00
dgp 84f4682378 close fork 2019-05-04 22:44:47 +00:00
dgp 7ce4c19aa0 merge mark 2019-05-04 18:33:44 +00:00
dgp 06124df7de merge 8.5 2019-05-04 18:32:39 +00:00
dgp 4909a5cc24 Plug memleak when deleting a namespace destroys a linked Tcl var. 2019-05-04 18:25:40 +00:00
Kevin B Kenny 81f0dbda4f merge 8.7 2019-05-04 15:05:31 +00:00
Kevin B Kenny 845ae36548 merge 8.6 - missed basic.test on prior merge 2019-05-04 15:04:23 +00:00
Kevin B Kenny e6a66488ec merge 8.7 2019-05-04 15:01:35 +00:00
Kevin B Kenny 951df2e52a Japanese Reiwa (令和) era 2019-05-04 14:58:11 +00:00
Kevin B Kenny 55b6550aaa Japanese Reiwa (令和) era 2019-05-04 14:49:58 +00:00
dkf cd6fdc6976 Make sure we test [2c154a40be] explicitly. Part of [cc191552c] 2019-05-04 07:10:34 +00:00
dgp 50146fa5d8 merge 8.7 2019-05-03 20:24:30 +00:00
dgp a35dd18036 merge 8.6 2019-05-03 20:06:09 +00:00
dgp 48891ff56a memleak demo test 2019-05-03 18:54:46 +00:00
dgp 5ee08fdf00 memleak demo test 2019-05-03 18:50:13 +00:00
dgp 065f14aeb7 merge 8.7 2019-05-03 15:35:49 +00:00
dgp 79ac1a3b19 Plug memleak when deleting a namespace destroys a linked Tcl var. 2019-05-03 15:28:23 +00:00
dgp 8510dda2ac missed bit of type revision. 2019-05-03 15:15:21 +00:00
dgp 7a0e892768 leak plug completed 2019-05-03 14:57:04 +00:00
dgp 915cd6b667 WIP 2019-05-01 22:37:36 +00:00
dkf cedf26696f Tests 2019-05-01 18:36:30 +00:00
dgp d2dd1bf17d Use exit handlers to prevent memleak of ZipFile struct in zipfs mounts. 2019-05-01 17:16:13 +00:00
dgp 057bc4e640 duplicate test names 2019-05-01 14:25:40 +00:00
dgp b67323b4d4 merge 8.7 2019-05-01 13:54:27 +00:00
dgp d1faa9b2b1 now testing.... 2019-05-01 13:52:26 +00:00
pooryorick f50dfbd504 merge bug-de232b49f2 2019-05-01 10:44:55 +00:00
pooryorick 89c677d626 Check for BG_FLUSH_SCHEDULED inside ChannelTimerProc 2019-05-01 10:44:10 +00:00
pooryorick a385274ebd merge bug-de232b49f2 2019-05-01 06:33:52 +00:00
dkf 6937b4c670 Document it 2019-04-30 20:18:11 +00:00
dkf fd0444bf94 Implementation of [file tempdir]; hand-tested on OSX... 2019-04-30 18:31:47 +00:00
dkf ae1d2d2d40 Export API 2019-04-30 13:35:53 +00:00
dkf 688e4e8545 Windows implementation of TclpCreateTemporaryDirectory 2019-04-30 13:31:59 +00:00
dkf c0c8a1cbd0 Starting to implement a temporary directory creator. 2019-04-30 07:44:20 +00:00
dgp b3676ba87c more WIP 2019-04-29 19:26:40 +00:00
dkf 3db1b8bbad Advanced feature tests 2019-04-28 16:17:05 +00:00
dkf 7f8f3b946d Basic tests 2019-04-28 16:01:57 +00:00
dkf 5bb0cef260 Documenting, both internally and in manpage 2019-04-28 07:11:39 +00:00
dkf cd37605bd0 Remove unused variables 2019-04-27 18:08:53 +00:00
dkf 0710d7d955 Implement 383 as two commands for two scenarios: injection and probing 2019-04-27 17:56:49 +00:00
pooryorick 36073e502b Fix for de232b49f2, write-only nonblocking refchan and Tcl internal buffers. 2019-04-27 07:19:49 +00:00
dgp 59a2032b5d Track memory lifetimes in the zip mount/unmount. 2019-04-24 19:29:18 +00:00
dgp b21bc1e84f Plug memleak in [lpop] due to mishandling the unconventional recounting
practices of TclLsetFlat().
2019-04-24 14:29:41 +00:00
pooryorick 35396a7f5c merge bug-67a5eabbd3d1 2019-04-24 04:52:22 +00:00
pooryorick a0465a4be2 Add missed timer cleanup in tclIORChan.c/ReflectClose. 2019-04-24 04:04:46 +00:00
dkf e42fbc68b9 Added primitive to allow working coroutine deep introspection 2019-04-23 14:24:53 +00:00
dkf ba3eca6d7e Minor code style cleanup. 2019-04-23 13:47:52 +00:00
pooryorick 2a04ff4dd5 Ensure that Tcl_CreateTimerHandler is not called if there is an existing timer
already scheduled.
2019-04-23 12:59:20 +00:00
pooryorick 70d68cb355 Fix for [67a5eabbd3d1], refchan, coroutine, and postevent from the "watch"
proc.
2019-04-23 11:29:16 +00:00
dkf 812583ffaf merge 8.7 2019-04-23 06:54:09 +00:00
dkf 2306d12442 timerate: code style, doc style 2019-04-23 06:50:02 +00:00
dkf eaf90743ee timerate: code style, doc style 2019-04-23 06:43:08 +00:00
dkf 1e9a4512c7 timerate: code style, doc style 2019-04-23 06:28:28 +00:00
dgp 0f9539f838 Stop leaking ZipFile in MountBuffer() 2019-04-22 15:15:47 +00:00
dgp e240d7269b Prevent reads of uninitalized memory. 2019-04-22 14:56:31 +00:00
dgp e85c55bb57 [zipfs mount_data] should not accept three arguments. 2019-04-22 14:09:48 +00:00
dkf 4dc9d729ca Fix broken tests 2019-04-19 07:06:38 +00:00
dkf 28863a7612 merge 8.7 2019-04-19 00:38:32 +00:00
dkf 8b9a3558a4 Compilation for [dict getwithdefault]. 2019-04-18 22:57:12 +00:00
dkf 9cf9c0a5e5 Style corrections and warning elimination 2019-04-18 08:31:11 +00:00
sebres 407ebf2899 merge 8.5 2019-04-17 20:00:37 +00:00
sebres 0cced28f38 extend performance test-suite, allow several (repeatable) execution of _test_run (if encosed in _test_start/_test_out_total) to produce same summary; provide possibility for measure of single iterators, etc.
small code review
2019-04-17 19:59:13 +00:00
dgp 522f29c7cc Replace memcpy() calls with memmove() to avoid undefined behavior when
source and destination overlap.
2019-04-17 19:23:56 +00:00
dgp 80d050ece4 Do not access allocated memory before initializing it. 2019-04-17 17:45:55 +00:00
dgp dadad672af test file hygiene 2019-04-17 16:56:55 +00:00
dgp d227a324cd Duplicate test names. 2019-04-17 16:32:53 +00:00
dgp 12486f233f The [namespace delete ::httpTest] at the end of httpPipeline.test failed to
also undo the custom [::http::Log] command it put in place. This dangling
command was left broken and made much failure.
Revised httpTest.tcl to use a trace to tidy up after itself.
2019-04-17 16:26:03 +00:00
dgp 1d896481cf [60559fd4a6] Test more robust against frame contexts of testing environment. 2019-04-17 15:08:25 +00:00
dgp 05509bdd77 Revise coroutines tests so they do not leave behind frame footprints that
can interfere with other tests.
2019-04-17 14:34:42 +00:00
dgp 68c28bd274 Isolate tests of [info frame] results from testing environment. 2019-04-17 14:28:51 +00:00
dgp f720f4cad5 Isolate tests of [info frame] results from testing environment. 2019-04-17 14:25:59 +00:00
dkf 25fb160692 Implement TIP 342 2019-04-16 13:25:39 +00:00
dkf bcca980f06 Add [dict getdef] alias 2019-04-15 19:57:54 +00:00
dkf 564d3a1a7b Doc tweak 2019-04-14 15:14:50 +00:00
dkf a929d96cba Implement TIP 504 2019-04-14 14:37:12 +00:00
dkf 0640ff837f Implement TIP 367 2019-04-14 14:17:57 +00:00
dkf 8f940bfbb8 Implement TIP 312 2019-04-14 14:17:14 +00:00
dkf e539ce9a7e Implement TIP 160 2019-04-14 14:15:30 +00:00
dkf e2dcb52134 Removed TCL_LINK_ALLOC; it wasn't used. 2019-04-14 07:52:16 +00:00
dgp bd300c252a merge 8.7 2019-04-12 20:16:02 +00:00
dgp c307971f0e merge 8.7 2019-04-12 20:15:37 +00:00
dgp 6ae823b6b7 merge 8.7 2019-04-12 19:44:34 +00:00
dgp 3947892f31 merge 8.7 2019-04-12 19:21:08 +00:00
dkf 1dbc626f0f Suggested fix for [60559fd4a6]: put selected tests in child interps 2019-04-11 21:39:50 +00:00
jan.nijtmans 63942f2e8d Merge 8.7 2019-04-11 20:38:42 +00:00
jan.nijtmans 71ae5810dc Merge 8.6 2019-04-11 20:37:37 +00:00
jan.nijtmans 7df97e9292 Only use special mp_sqrt() code when double format/tommath format are exactly what's expected. Otherwise, use original always-working tommath code.
Simplify overflow check in bignum expononent code, not using bignums where it's not necessary. 
Don't overallocate bignums when using wideint's only.
2019-04-11 20:09:27 +00:00
sebres 690464ac97 merge 8.7 2019-04-11 12:53:20 +00:00
sebres 9f9c9efac0 merge 8.6 (conflicts resolved, changes on tests/cmdMZ.test in [4cb9044dfa] reverted - timerate is supported in 8.7) 2019-04-11 09:52:20 +00:00
jan.nijtmans 233d558b1e Eliminate use of int32_t (doesn't work on MSVC++ 6.0) 2019-04-10 20:07:15 +00:00
jan.nijtmans d5c3b7ac25 Complete implementation for MSVC (even building minigzip) 2019-04-10 19:53:39 +00:00
sebres 417474f1fd merge 8.5 2019-04-09 19:39:08 +00:00
sebres 6fb4854406 closes [940ce8f958] - tests/cmdMZ.test: avoid import timerate to global NS in tests (e. g. using tcltest -singleproc 1 -file 'cmdMZ* namespace*') 2019-04-09 19:37:55 +00:00
jan.nijtmans fbf45e053a Merge 8.7. Complete implementation for MSVC and for UNIX. 2019-04-09 19:21:38 +00:00
sebres 817da23169 merge 8.5 2019-04-09 10:33:59 +00:00
sebres f2c8c6c408 closes [1e5e25cf2b] - tests/cmdMZ.test: fixed NRT-related sleeps (and time-related corner cases and test expectations);
todo: rewrite several tests if monotonic clock is provided resp. command "after" gets microsecond accuracy (RFE [fdfbd5e10] gets merged)
2019-04-09 10:31:36 +00:00
dkf 747b668676 Clarified some documentation 2019-04-09 09:18:59 +00:00
dkf d96dda52c4 Added missing test case 2019-04-09 09:11:31 +00:00
jan.nijtmans 2ce0a93215 Merge 8.7 2019-04-09 08:46:43 +00:00
jan.nijtmans 869730bf85 Merge 8.6 2019-04-09 08:46:04 +00:00
jan.nijtmans e4912abbd2 Add --disable-shared builds on win32/win64 (mingw-w64) 2019-04-09 08:42:37 +00:00
andy 9b1a75a1cc Correct minor documentation typo 2019-04-09 03:11:14 +00:00
jan.nijtmans 9be114ec2e Merge 8.7 2019-04-08 21:28:20 +00:00
jan.nijtmans 6ed025f0c6 Fix clang compiler warning in tclZlib.c. Clear execute bit in two encodings 2019-04-08 21:25:33 +00:00
jan.nijtmans 1749b4cc87 Add test-cases for win32/win64 --disable-shared, and put standard --enable-threads 2019-04-08 19:31:10 +00:00
jan.nijtmans bb3ef94985 Merge 8.7. Intended operation completed for mingw-w64 (but not yet for other compilers/platforms) 2019-04-08 19:06:57 +00:00
sebres 0305f67f88 merge bug-45b9faf103f2, fewer destructive TclObjLookupVarEx, closes [45b9faf103f2] 2019-04-08 15:35:29 +00:00
sebres 3a8a841386 closes [45b9faf103f2] (tclVar cached lookup): fixes segfaulting if variable released before set; partially revert [4100488a3ca38abf] 2019-04-08 15:03:13 +00:00
dgp f1eba71130 typo fix 2019-04-08 14:02:01 +00:00
dgp 8e7402f6f2 extend comment 2019-04-08 13:54:04 +00:00
dgp 1bef1aacd2 merge 8.7 2019-04-08 13:49:35 +00:00
pooryorick c1de90d70a Improve test for last commit fixing [45b9faf103f2]. 2019-04-08 13:38:19 +00:00
pooryorick f4882bb16f Fix for [45b9faf103f2], [try] interaction with local variable names produces
segmentation fault.
2019-04-08 13:01:18 +00:00
jan.nijtmans 02225865e4 Merge 8.7, and fix build problem on Windows 2019-04-07 14:39:45 +00:00
jan.nijtmans 4865914200 Merge 8.7. Add checks for libtommath library to configure script (experimental) 2019-04-06 20:41:21 +00:00
jan.nijtmans 1e3860a15f Merge 8.7 2019-04-05 21:29:15 +00:00
jan.nijtmans 00c94ffc5d Merge 8.6 2019-04-05 21:15:01 +00:00
jan.nijtmans 96bf31bbbd Take over recent improvements from libtommath after version 1.1.0. 2019-04-05 20:56:24 +00:00
dkf e0b6a53069 More efficient version (after feedback from KBK). Better test too. 2019-04-05 18:37:44 +00:00
jan.nijtmans 0dfee54d3f Merge libtommath 2019-04-05 17:00:45 +00:00
jan.nijtmans 689987ea92 Take over improvements from libtommath's development branch (which will appear in next version).
- More efficient MP_SET_XLONG() macro.
- New internal macro's IS_ZERO/IS_EVEN/IS_ODD
- Changed signature for XMALLOC/XREALLOC/XFREE
2019-04-05 16:58:41 +00:00
jan.nijtmans b1266f39d8 Relax timing for some socket tests a little bit. Hopefully this fixes the spurious hangs on Travis builds there. 2019-04-05 16:46:14 +00:00
dkf 52458f51bc Clean up and refactor a bit 2019-04-04 23:47:38 +00:00
dkf 52d83cb65d Now with fewer memory leaks 2019-04-04 23:08:05 +00:00
dkf 3c6834dbe3 Fix unsigned wide linking. 2019-04-04 22:48:15 +00:00
jan.nijtmans 889e874282 Merge 8.7
Undo Tcl-specific changes in bn_mp_sqrt.c, and re-enable the two disabled test-cases: This proves the observed crash with DIBIT_BIT=60 is caused by those Tcl-specific changes!
2019-04-04 21:31:01 +00:00
dkf c4cf1a4e2c Split up tests to get better focus on what is being tested 2019-04-04 08:52:43 +00:00
jan.nijtmans f9eb1833d2 Merge 8.7 2019-04-03 19:52:38 +00:00
dgp 60cf7f7dfc Rollback an (int -> size_t) conversion that doesn't yet make sense. 2019-04-03 19:21:06 +00:00
dkf cbb2ececd3 Docs 2019-04-03 12:22:07 +00:00
dkf 515da61c9d refactor; mark broken tests as broken 2019-04-03 09:36:33 +00:00
dkf ad137eb4b2 Some fixes. Still broken on 64-bit systems 2019-04-03 09:08:37 +00:00
dkf d1069c7b4f Import of TIP 312 implementation 2019-04-03 07:58:17 +00:00
jan.nijtmans 740e938393 Merge trunk 2019-04-02 20:09:00 +00:00
jan.nijtmans 68d03f6af8 merge-mark 2019-04-02 18:23:43 +00:00
jan.nijtmans 9d183921c9 Fix gcc warning on 32-bit platforms 2019-04-02 18:21:09 +00:00
jan.nijtmans 27027cc682 Merge 8.7 2019-04-01 20:38:09 +00:00
jan.nijtmans 384b9de6bb Modify testbytestring such that is only produces pure byte-arrays, if not it errors out.
Modify Tcl_NewIntObj/Tcl_NewBooleanObj -> Tcl_NewWideIntObj. Less references to "long" datatype.
2019-04-01 19:36:20 +00:00
dgp dab604e786 typos 2019-04-01 16:15:45 +00:00
sebres 983e7511fa merge 8.7 2019-04-01 14:32:30 +00:00
sebres fef5802d1e merge 8.6 (merge-point only, no functional changes) 2019-04-01 14:30:13 +00:00
sebres 95068d8d48 merge 8.6 2019-04-01 14:24:48 +00:00
sebres b938ddd055 integrate sebres-8-6-tommath-1-1 - cherry-picking of several optimizations and simplifications of 8.7 (tommath 1.1), well-arranged branching of long/wide/bignum base and exponent cases, test-cases extended to cover all this branches and edge cases. 2019-04-01 14:22:08 +00:00
sebres 2b8e087252 merge 8.5 2019-04-01 14:00:42 +00:00
sebres 01dccf28f9 closes [1a3fa1232e306a44], test case cmdMZ-6.5 fixed to cover float value by iteration per second 2019-04-01 13:53:54 +00:00
sebres 89fee22341 timerate: avoid divide by zero by no iterations in measurement cycle (e. g. count is 0) 2019-04-01 13:51:46 +00:00
dkf 325bbf5792 Document 2019-04-01 10:51:33 +00:00
dkf 8d4509eafc Add tests 2019-04-01 10:38:47 +00:00
dkf d2fb211d20 Implement [dict getwithdefault] 2019-04-01 08:48:16 +00:00
jan.nijtmans ffbc0140da Enhance documentations. Move TCL_INDEX_NONE from tclInt.h to tcl.h, since it's too useful. 2019-03-31 22:03:55 +00:00
jan.nijtmans 7d8a7adc9f (temporary workaround): Mark expr-47.12 and expr-47.13 as nonPortable: Those are the test-cases failing with DIGIT_BIT=60 on MacOSX but not on other platforms. To be investigated further! 2019-03-31 20:45:46 +00:00
jan.nijtmans b953a1cce7 Merge trunk 2019-03-31 17:43:17 +00:00
jan.nijtmans e6786566e7 Fix gcc warning 2019-03-31 17:35:52 +00:00
jan.nijtmans 997860a3fd fix gcc warnings 2019-03-31 16:38:14 +00:00
dkf 3471a570b6 Added documentation 2019-03-30 12:54:52 +00:00
dkf 83f6cc3841 Tests, and reduce number of copies. 2019-03-30 12:41:59 +00:00
dkf d78f576dc5 Implementation of [lremove]. 2019-03-30 10:36:58 +00:00
jan.nijtmans 194088a1bf Merge trunk 2019-03-29 20:11:55 +00:00
jan.nijtmans 67857c0b6e Minor code cleanup: More use of size_t where possible, and elimination of unneeded type-casts. 2019-03-29 17:57:28 +00:00
dkf 8ac5057a32 Support -winsize read-only option 2019-03-29 14:22:23 +00:00
jan.nijtmans 471764d9aa More internal use of size_t 2019-03-29 12:54:40 +00:00
dkf 5624496889 Oops 2019-03-29 11:57:23 +00:00
jan.nijtmans 554f692cc4 Change regexp C API to handle indexes > 2G. New TIP upcoming. 2019-03-29 09:41:05 +00:00
jan.nijtmans d1a1ae5194 Merge 8.7 2019-03-28 22:49:59 +00:00
jan.nijtmans 3664f127cd More complete typedef for mp_word, for MP_8BIT and MP_16BIT as well. 2019-03-28 22:42:56 +00:00
jan.nijtmans b3664a2eaa Experiment: On platforms which support it (gcc), compiled libtommath with DIGIT_BIT=60 2019-03-28 21:44:39 +00:00
jan.nijtmans 3cd9927e9b Merge 8.7 2019-03-28 21:24:59 +00:00
jan.nijtmans 0817b5a4ef Merge 8.6 2019-03-28 21:21:49 +00:00
jan.nijtmans abf9722f42 Turn KARATSUBA_MUL_CUTOFF (insize libtommath) et al into a #define in stead of exported int symbols. 2019-03-28 20:59:03 +00:00
dkf 99c5fed89e Tests, but not working ones... 2019-03-28 13:11:58 +00:00
dkf ba13f3330a Documentation 2019-03-28 10:53:55 +00:00
jan.nijtmans 41236ea803 Merge 8.7 2019-03-27 23:58:30 +00:00
jan.nijtmans 74e4654447 Make Tcl_StringMatch() into a wrapper macro around Tcl_StringCaseMatch() 2019-03-27 23:48:10 +00:00
jan.nijtmans 336709d0f7 Merge 8.7 2019-03-27 21:17:50 +00:00
dkf f787bc7152 Implement -closemode 2019-03-27 21:14:46 +00:00
jan.nijtmans e30b6432e1 Merge 8.6 2019-03-27 20:21:58 +00:00
jan.nijtmans d74f47cb2a merge-mark 2019-03-27 20:14:37 +00:00
jan.nijtmans 230de714e7 Update TZ info to tzdata2019a 2019-03-27 20:13:25 +00:00
jan.nijtmans 9535d1ecdc Document maximum value for right argument of '**' operator.
Adapt test-cases to test for exactly one more than this maximum value.
Make sure that the maximum is the same for DIGIT_BIT > 28.
Change macro's for mp_iseven()/mp_isodd() so they don't depend on value of DIGIT_BIT any more.
2019-03-27 20:05:26 +00:00
dkf bc322bfae7 Partial implementation on Windows. UNTESTED 2019-03-27 13:54:18 +00:00
dkf 7ff500ca4d Add autoconf support 2019-03-27 08:29:13 +00:00
José Ignacio Marín 9940a8ea92 Update TZ info to tzdata2019a. 2019-03-26 22:24:31 +00:00
José Ignacio Marín 40c2f59cf4 Update TZ info to tzdata2019a. 2019-03-26 22:23:57 +00:00
José Ignacio Marín 9eb32ba719 Update TZ info to tzdata2019a. 2019-03-26 22:23:23 +00:00
jan.nijtmans 2d46cfab69 Additional protection for ridiculously big exponents, in case libtommath is compiled with DIGIT_BIT=60 in stead of 28. 2019-03-26 16:22:22 +00:00
jan.nijtmans 83cce2365b merge-mark 2019-03-25 22:04:10 +00:00
jan.nijtmans 6c1d937172 merge-mark 2019-03-25 21:52:34 +00:00
jan.nijtmans 6d27f27fe6 Eliminate all usage of mp_iszero/mp_iseven/mp_isodd/mp_isneg from libtommath: In the upcoming new version those will become real functions, causing possible binary incompatibility. This change makes Tcl independant from libtommath's changes. 2019-03-25 21:50:34 +00:00
jan.nijtmans b52638ea22 Remove one more comment, which is no longer valid (as "exception" is now removed) 2019-03-24 22:39:50 +00:00
dkf 4701c749af Better handling, reset capabilty, and ensure that inherited channels are correct 2019-03-24 22:08:26 +00:00
dkf 8d4ff7c84a Start of implementation of TIP 160: better terminal control 2019-03-24 18:44:45 +00:00
jan.nijtmans bd869d5d03 Code cleanup: Remove unneeded #undef's, and unneeded inclused. No change in functionality. 2019-03-24 18:14:04 +00:00
jan.nijtmans a43fa652d9 Remove hacked exception for bug [a16752c252]. Should be fixed by then in "tclcompiler". Taken over from "novem". 2019-03-24 18:12:30 +00:00
jan.nijtmans 1fb9fe8141 Merge 8.7 2019-03-24 16:52:15 +00:00
jan.nijtmans d64266c046 Since only bytes 0xF0 - 0xF4 can be the first byte of a valid 4-byte UTF-8 byte sequence, account for that in Tcl_UtfCharComplete(). 2019-03-24 16:50:24 +00:00
jan.nijtmans aaf56c8086 Since only bytes 0xF0 - 0xF4 can be the first byte of a valid 4-byte UTF-8 byte sequence, account for that in Tcl_UtfCharComplete(). Only effective when TCL_UTF_MAX>3 2019-03-24 16:46:27 +00:00
jan.nijtmans f080055506 Since only bytes 0xF0 - 0xF4 can be the first byte of a valid 4-byte UTF-8 byte sequence, account for that in Tcl_UtfCharComplete(). Only effective when TCL_UTF_MAX>3 2019-03-24 16:43:41 +00:00
jan.nijtmans 83d6fd77b0 Merge 8.7 2019-03-24 13:09:29 +00:00
jan.nijtmans 388ed8fba7 Merge 8.7 2019-03-24 13:05:07 +00:00
jan.nijtmans 0f1fe8880d Make all internal small buffer related to Tcl_UtfBackslash() length 4, not TCL_UTF_MAX: For TCL_UTF_MAX=6 it was overkill, for TCL_UTF_MAX=3 not enough.
Prove that this works by adding a Travis CI build configuration using TCL_UTF_MAX=3
2019-03-24 13:02:45 +00:00
jan.nijtmans af74f1af12 Add some test-cases with longer backslash sequences, to test for internal buffer overflows. 2019-03-22 20:44:36 +00:00
pooryorick 69c460065e lots of changes to the "info" page. Replace "command procedure" with "routine"
in Tcl.n.
2019-03-22 15:08:06 +00:00
pooryorick 079965ccb5 Make the html target work under more circumstances. 2019-03-22 15:05:51 +00:00
jan.nijtmans ebd469c2a8 Merge 8.7. Also fix invalid reference to TclUtfToWChar, causing build failure 2019-03-21 20:28:49 +00:00
jan.nijtmans 4431f3dbff Merge 8.7 2019-03-21 20:11:11 +00:00
jan.nijtmans 7afcb333c4 Add entry for 元号 (or NewEra placeholder) to Unicode tables. Since Tcl doesn't do rendering, this prepares Tcl for the expected may 1 event. See: [http://blog.unicode.org/2018/09/new-japanese-era.html] 2019-03-21 20:10:24 +00:00
jan.nijtmans c4f3c560ab Add entry for 元号 (or NewEra placeholder) to Unicode tables. Since Tcl doesn't do rendering, this prepares Tcl for the expected may 1 event. See: [http://blog.unicode.org/2018/09/new-japanese-era.html] 2019-03-21 20:09:25 +00:00
jan.nijtmans 2c246b85fa Add entry for 元号 (or NewEra placeholder) to Unicode tables. Since Tcl doesn't do rendering, this prepares Tcl for the expected may 1 event. See: [http://blog.unicode.org/2018/09/new-japanese-era.html] 2019-03-21 20:06:39 +00:00
jan.nijtmans 9d9c83fd39 Remove incorrect comment.
Simplify handling of last bytes in Tcl_UniCharToUtfDString(), since TclUtfToUniChar() already turns out to handle cp1252 fall-back correctly.
2019-03-21 19:56:55 +00:00
jan.nijtmans f9944f5235 Fix outdated comment 2019-03-21 07:45:32 +00:00
jan.nijtmans d8c1fbed81 Merge 8.7 2019-03-20 22:54:13 +00:00
jan.nijtmans b020c444c3 Merge 8.7 2019-03-20 22:51:17 +00:00
jan.nijtmans d8ec6222e8 Fix Tcl_UtfToUniCharDString() function, handling invalid byte at the end of the string: Not quite correct for bytes between 0x80-0x9F, according to TIP 2019-03-20 22:45:51 +00:00
jan.nijtmans 59ad43ee2c Merge 8.7 2019-03-18 22:34:14 +00:00
jan.nijtmans 04ea3b8bff Comment Comment Tcl_UniCharToUtf() better, what happens handling surrogates. Add type cast in tclUtf.c, making actual check clearer 2019-03-18 22:32:37 +00:00
jan.nijtmans 1dd829fb01 Merge 8.7 2019-03-18 22:17:52 +00:00
jan.nijtmans ec4d7da07d enlarge a few small buffers, which could overflow using Unicode characters > /UFFFF. Eliminate some end-of-line spacing 2019-03-18 22:14:24 +00:00
jan.nijtmans 301062d3fb Add 4 new encodings, and add documentation. 2019-03-18 20:07:15 +00:00
jan.nijtmans a7398e7fcb Merge 8.7 2019-03-17 22:17:10 +00:00
jan.nijtmans c92353bea9 For Tcl >= 8.7, always compile-in the extended Unicode tables, no matter the value of TCL_UTF_MAX. Do this in all Tcl versions, in order to prevent merge conflicts in future Unicode table updates. 2019-03-17 22:16:41 +00:00
jan.nijtmans c73dcaad20 For Tcl >= 8.7, always compile-in the extended Unicode tables, no matter the value of TCL_UTF_MAX. Do this in all Tcl versions, in order to prevent merge conflicts in future Unicode table updates. 2019-03-17 22:15:36 +00:00
jan.nijtmans d164d828d7 For Tcl >= 8.7, always compile-in the extended Unicode tables, no matter the value of TCL_UTF_MAX. Do this in all Tcl versions, in order to prevent merge conflicts in future Unicode table updates. 2019-03-17 22:13:34 +00:00
jan.nijtmans 6d0e92b89e More WIP. Seems to be *almost* working. 2019-03-17 22:01:42 +00:00
jan.nijtmans bc2c8431fc Merge 8.7
Move up some stub entries related to Tcl_UniChar
Use TCL_UTF_MAX=4 for full Unicode in stead of TCL_UTF_MAX=6 (TCL_UTF_MAX: 3 is default)
2019-03-16 21:10:20 +00:00
jan.nijtmans 766a07b4de Merge 8.7 2019-03-15 21:17:24 +00:00
jan.nijtmans 2ff70c01f6 Eliminate usage of mp_isneg(), just check bignum->sign directly (as libtommath itself does)
Make TclInitBugnumFromLong() a static function in stubtable only, as it isn't used by Tcl anymore.
2019-03-15 20:52:25 +00:00
jan.nijtmans 842878d2d0 Merge 8.7.
Fix 2 test-cases which were failing for TCL_UTF_MAX=6
2019-03-14 20:59:28 +00:00
jan.nijtmans fbf7005fcc merge-mark 2019-03-14 20:03:10 +00:00
jan.nijtmans d7fe4af621 Make internal libtommath stub entries deprecated: Those are not supposed to be called in extensions 2019-03-14 19:52:55 +00:00
jan.nijtmans 60670274b0 Eliminate many (mostly harmless) MSVC warning messages. Tcl 9 compiles warning-free now on MSVC. 2019-03-13 20:44:29 +00:00
jan.nijtmans 7e4d779674 Make "struct regmatch_t" match "Tcl_RegExpIndices" (again). Win64 build was broken because of this. Other platforms were OK. 2019-03-13 20:43:05 +00:00
jan.nijtmans da96c53041 Even better support for -DTCL_UTF_MAX=6. Ongoing improvements (TIP being planned) 2019-03-12 20:39:42 +00:00
jan.nijtmans fd3fca18db Merge 8.7 2019-03-11 20:56:32 +00:00
jan.nijtmans 8e7a963f7f Change TCHAR -> WCHAR in many places, since that's what it is since Windows NT 2019-03-11 20:32:48 +00:00
jan.nijtmans 3e3f2b1354 Improve parsing of -xchar option for serial channels: Allow full 8-bit range (correct UTF-8 handling), and let UNIX/win32 produce the same error-message in case of char > 0xFF 2019-03-11 20:30:28 +00:00
jan.nijtmans cda174b1aa Fix [590e687905]: utf-1.11 test-case fails 2019-03-11 20:25:57 +00:00
jan.nijtmans 0bd8e4a634 Make internal libtommath symbols MODULE_SCOPE, and remove them from the stub table: They are not supposed to be called by extensions. 2019-03-10 21:16:06 +00:00
jan.nijtmans 919d62dcd3 Merge 8.7 2019-03-10 21:04:41 +00:00
jan.nijtmans 934e6a9837 re-implemente changes in win/tclWinFile.c (handling -DTCL_UTF_MAX=6) using 3 new utility functions. This allows to re-use code in more places: cleaner implementation more future-proof. 2019-03-10 20:18:48 +00:00
jan.nijtmans dae5abca60 Merge trunk. Further WIP for TIP #497, far from finished .... 2019-03-08 23:54:08 +00:00
jan.nijtmans e6a53eb44d Merge 8.7 2019-03-08 22:51:16 +00:00
jan.nijtmans 2b821c69de Make -DTCL_UTF_MAX=6-build work on win32. Add travis builds to prove it. 2019-03-08 21:27:42 +00:00
jan.nijtmans e30b8a9185 Merge 8.7 2019-03-08 20:25:54 +00:00
jan.nijtmans 2cba0bf573 Use mp_get_bit() instead of mp_iseven()/mp_isodd(): Those latter functions are macro's currently, but will be real function in next libtommath. Bad idea for Tcl to depend on ... 2019-03-08 19:54:37 +00:00
jan.nijtmans eb0e31e945 Code cleanup: less (size_t) casts 2019-03-08 19:51:26 +00:00
dgp db98bdd35f merge 8.7 2019-03-08 14:56:16 +00:00
dgp 3e074a01a2 merge 8.6 2019-03-08 14:47:45 +00:00
dgp df5dff9008 [39fed4dae5] Make sure return value from Tcl_PkgRequire*() survives long enough
for caller to use it.
2019-03-08 14:46:26 +00:00
sebres 2680fee6ce merge 8.5 (perf-test) 2019-03-08 04:42:42 +00:00
sebres 2d4e87b986 fixed mistake ($howmuch is substituted in tests and can be larger as last event index created by too small measurement time). 2019-03-08 04:35:41 +00:00
dgp c5abbcaaf4 In the 8.6.* releases, Tcl_GetStringResult() still passes through interp->result.
Have to ask specifically for the string rep of the value we want.
2019-03-07 22:13:25 +00:00
jan.nijtmans 8628c7e26d Merge 8.7 2019-03-07 22:03:56 +00:00
jan.nijtmans 42e81a69ad Fixes for TCL_UTF_MAX=6, (gcc compiler warnings). Also make everything work on win32/win64. Patch adapted from Androwish (thanks, Werner!) 2019-03-07 22:02:41 +00:00
jan.nijtmans 1bbb597217 Fix gcc compiler warning 2019-03-07 21:59:22 +00:00
dgp 15ff4cc2de Integrate the test, which seems to indicate the bug fix doesn't work.
More to come....
2019-03-07 20:24:53 +00:00
dgp 68061dfef2 Merge forward to demonstrate the test fails after the bug arrived. 2019-03-07 20:05:01 +00:00
dgp 781c32ac29 [39fed4dae5] Proposed test 2019-03-07 20:02:09 +00:00
apnadkarni e0224b6708 (core-8-branch merge) Fix automatic pkgIndex generation for multiplatform installs. 2019-03-07 14:20:10 +00:00
apnadkarni 1763220f4e (core-8-6-branch merge)
Fix automatic pkgIndex generation for multiplatform installs.
2019-03-07 14:17:38 +00:00
apnadkarni d37dcc7d71 Fix automatic pkgIndex generation for multiplatform installs 2019-03-07 14:12:44 +00:00
jan.nijtmans 5b2b2aba5d Merge 8.7 2019-03-07 08:39:37 +00:00
jan.nijtmans efadd7170e Merge 8.6. Remove unneeded code from init.tcl 2019-03-07 08:31:44 +00:00
jan.nijtmans 65baf6c706 Fix some gcc/MSVC (harmless) compiler warnings. Remove some unnecessary end-of-line spacing 2019-03-07 08:00:29 +00:00
jan.nijtmans fa0f595cf9 Fix [9471e6e304]: InitWinEnv not thread safe 2019-03-07 07:58:39 +00:00
sebres 62575cdd32 merge 8.7 2019-03-06 12:34:34 +00:00
sebres 3e2014216a part of [db95e7a61e] reverted for consistency reasons: unsupported namespace is exported in previous versions (so this is more compatible to 8.5/8.6). 2019-03-06 12:25:11 +00:00
apnadkarni efe725c1f9 V1.3. PLATFORM_IDENTIFY, MULTIPLATFORM_INSTALL macro, optionally copy PDBs.
The PLATFORM_IDENTIFY macro matches the output of Tcl's platform::identify and is meant to permit extensions to pick a platform-specific directory for binaries.

MULTIPLATFORM_INSTALL can be set by extensions to install into a platform specific subdirectory as returned by the platform::identify Tcl command. The default automatic pkgIndex.tcl is modified accordingly.

If OPTS=pdbs is set, the default install target will also copy PDBS.
2019-03-06 11:32:04 +00:00
apnadkarni fa78a0da14 V1.3. PLATFORM_IDENTIFY, MULTIPLATFORM_INSTALL macro, optionally copy PDBs.
The PLATFORM_IDENTIFY macro matches the output of Tcl's platform::identify and is meant to permit extensions to pick a platform-specific directory for binaries.

MULTIPLATFORM_INSTALL can be set by extensions to install into a platform specific subdirectory as returned by the platform::identify Tcl command. The default automatic pkgIndex.tcl is modified accordingly.

If OPTS=pdbs is set, the default install target will also copy PDBS.
2019-03-06 11:26:29 +00:00
apnadkarni 1d47b2fc79 V1.3. PLATFORM_IDENTIFY, MULTIPLATFORM_INSTALL macro, optionally copy PDBs.
The PLATFORM_IDENTIFY macro matches the output of Tcl's platform::identify
and is meant to permit extensions to pick a platform-specific directory for
binaries.

MULTIPLATFORM_INSTALL can be set by extensions to install into a platform
specific subdirectory as returned by the platform::identify Tcl command.
The default automatic pkgIndex.tcl is modified accordingly.

If OPTS=pdbs is set, the default install target will also copy PDBS.
2019-03-06 06:26:36 +00:00
dgp 7ca040ad88 [39fed4dae5] Minimal fix for volatile lifetime of string returned by
Tcl_PkgRequire().

We need a test for this ticket to go in the test suite.
2019-03-06 01:42:13 +00:00
jan.nijtmans b44f6152e1 Merge 8.7 2019-03-05 20:16:32 +00:00
jan.nijtmans 58bdb3f389 Remove double macro's. Resolve quotes in travis configuration: it doesn't work 2019-03-05 19:58:33 +00:00
sebres b71535ffd2 integrate/close sebres-trunk-timerate branch (no functional changes, simple merge-point) 2019-03-05 19:46:37 +00:00
sebres f456cd9b3e merge 8.7 (TIP#527, New measurement facilities in TCL: New command timerate, performance test suite) 2019-03-05 18:23:26 +00:00
sebres b930511d5b integrate dgp-sebres-timerate-review: no functional changes (already backported) 2019-03-05 18:02:33 +00:00
sebres a3ad83e5f8 timerate is supported in 8.7 2019-03-05 17:39:05 +00:00
sebres df27b4e4e0 merge 8.6 (TIP#527, New measurement facilities in TCL: New command timerate, performance test suite) 2019-03-05 17:34:31 +00:00
sebres 78000f7f87 integrate sebres-8-6-timerate, merge 8.5 (TIP#527, New measurement facilities in TCL: New command timerate, performance test suite) 2019-03-05 16:59:41 +00:00
sebres bc27eb2430 merge sebres-8-5-timerate (TIP#527 - New measurement facilities in TCL: New command timerate, performance test suite) 2019-03-05 16:25:17 +00:00
sebres d9929185f3 merge updated 8.5-timerate branch 2019-03-05 16:13:23 +00:00
sebres 2e2fdf481a extended performance test-suite, since max-count is implemented in timerate, usage ::tclTestPerf::_test_run ?-no-result? reptime lst ?outcmd?;
update timer-event.perf.tcl for better readability (covering execution in multiple iterations now regarding max-count, so provides more precise result now);
removed unused test-cases here (new cases of event-perf-branch only).
2019-03-05 15:46:31 +00:00
sebres 1568393cf3 back-porting other performance test (timer-event.perf.tcl) from event-perf-branch 2019-03-05 12:58:11 +00:00
sebres 6d9266494b back-porting test-performance suite and clock.perf.tcl from clock-speedup branch 2019-03-05 12:56:22 +00:00
sebres b424e06193 helper to import timerate on demand in unknown/autoload proceeding. 2019-03-05 11:28:54 +00:00
sebres 00f20c7d65 regarding the TIP#527, timerate shall be placed into ::tcl::unsupported in versions prior to 8.7 2019-03-05 11:22:30 +00:00
sebres e50b8ab068 highlighting 2019-03-05 10:07:53 +00:00
sebres 18c4dc903a amend: html-code order changed 2019-03-04 20:50:39 +00:00
sebres ecc6d3264b tools/tcltk-man2html: html-code for micro (sec) character 2019-03-04 20:40:54 +00:00
sebres a548454c57 re-integrates the changes from the TIP#527 description into the manpage 2019-03-04 20:39:09 +00:00
jan.nijtmans 10591b96c8 Various tommath/numeric related optimizations:
- Remove the DD_STEEL formatter: it isn't used anywhere in Tcl, and not recommended.
- Remove double limit-checks, which are already done inside mp_to_unsigned_bin_n()
2019-03-02 18:15:36 +00:00
jan.nijtmans c561b0e117 Add build with -DTCL_UTF_MAX=6 to travis CI. Also fix 2 gcc compiler-warnings occurring with -DTCL_UTF_MAX=6 2019-03-02 17:21:43 +00:00
jan.nijtmans 8c315fd31f Merge 8.7 2019-03-02 16:53:42 +00:00
jan.nijtmans d0eefe67c8 Minor optimization in UTF-8 handling, and add some comments describing how Tcl_UniCharToUtf() handles surrogates. 2019-03-02 16:52:42 +00:00
jan.nijtmans 0801e742ab Fix some "scan.test" test-cases when TCL_UTF_MAX=4. Wrongly resolved merge-conflict in previous cherry-pick merge. 2019-03-02 16:35:26 +00:00
jan.nijtmans c0c278ccb9 Merge 8.7 2019-03-02 16:09:18 +00:00
jan.nijtmans 2d96b842de Merge 8.6 (one forgotten adaptation of surrogate handling, only compiled on Cygwin) 2019-03-02 16:08:40 +00:00
jan.nijtmans bfaca50963 Backport [bd94500678e837d7] from 8.7, preventing endless loops in UTF-8 conversions when handling surrogates. Only effective when compiling with -DTCL_UTF_MAX=4|6 (default: 3). Meant for benefit of Androwish. 2019-03-02 16:04:59 +00:00
jan.nijtmans 0fefbc629f Merge 8.7 2019-03-01 21:59:23 +00:00
jan.nijtmans 921a0bbbfb More use of TclHasIntRep() macro. Add vfs build director to fossil ignore-glob 2019-03-01 21:05:25 +00:00
jan.nijtmans 5a0260cbcc Update Unicode tables to version 12.0 2019-03-01 21:01:46 +00:00
dgp f4c192b1b8 merge 8.7 2019-03-01 20:25:29 +00:00
dgp 420d238d70 A confusion about signed vs unsigned comparision caused Tcl_UtfToUniChar()
to return the wrong answer (contents of random memory) for each single byte
UTF-8 in the input. This commit fixes that bug. More commentary on 
https://core.tcl-lang.org/tcl/tktview/bd94500678
2019-03-01 20:24:31 +00:00
jan.nijtmans cc3041cee0 Update all internal tables to Unicode 12.0 2019-03-01 20:11:33 +00:00
jan.nijtmans 809bbc79fb Update internal tables to Unicode 12.0 2019-03-01 20:10:43 +00:00
jan.nijtmans b3e0d07c59 Merge 8.7 2019-02-27 21:58:41 +00:00
jan.nijtmans 050b6c3d5f Fix [bd94500678e837d7]: SEGFAULT by conversion of unicode (out of BMP) to byte-array 2019-02-27 21:29:43 +00:00
jan.nijtmans b8c0e58734 merge 8.7 2019-02-27 21:10:53 +00:00
jan.nijtmans f04b875d88 More use of (efficient) TclHasIntRep() macro. Also eliminate many (size_t) and (unsigned) type-casts, which don't make sense any more. 2019-02-27 08:34:05 +00:00
jan.nijtmans 50e2540519 Merge 8.7 2019-02-25 21:15:40 +00:00
jan.nijtmans 4fdbe79875 Merge 8.6 2019-02-25 21:13:48 +00:00
jan.nijtmans a29e4e5b15 Merge 8.5 2019-02-25 21:12:53 +00:00
jan.nijtmans 57d9952ece Finish complete fix, all corner-cases correct now. Also spurious UTF-8 testcase failure (as seen on travis) fixed now. 2019-02-25 21:10:33 +00:00
dgp cbd7fd7dec New internal macro TclHasIntRep() to re-encapsulate the typePtr field. 2019-02-25 19:50:43 +00:00
dgp 03405163b7 merge 8.7 2019-02-25 17:46:36 +00:00
dgp 1eba3f12e0 merge 8.7 2019-02-25 17:06:38 +00:00
jan.nijtmans 82c3e7df6d Move from trusty -> xenal for travis builds. Also add build on Mojave (xcode 10.2) 2019-02-24 18:40:32 +00:00
jan.nijtmans 4d61bea373 Merge 8.7 2019-02-24 17:20:12 +00:00
jan.nijtmans 9acb35c45d Merge 8.6 2019-02-24 17:19:09 +00:00
jan.nijtmans dc75a4866c Merge 8.5 2019-02-24 17:15:51 +00:00
jan.nijtmans 6806ca9630 No longer run socket test-cases on travis with OSX: There are too many random failures/hangups. 2019-02-24 17:05:14 +00:00
jan.nijtmans baa6533c99 In TclGetByteArrayFromObj(), no longer assume that Tcl_GetByteArrayFromObj() never returns NULL. And don't use \uXXXX construct in "testbytestring" command, since it's only supposed to work with pure bytearrays anyway. 2019-02-24 16:59:24 +00:00
dgp cacbddcc7d merge 8.7 2019-02-22 18:01:23 +00:00
dgp 68c0005c84 Revert recent commit that breaks the encapsulation interface of TIP 445.
That encapsulation was put in place to support feature evolution such as
that in the dgp-properbytearry branch, which is now a nightmare of merge
conflicts.

TIP 445 was approved. Please respect it. Where it needs revision or improvement
let's work together to TIP those changes.
2019-02-22 17:32:49 +00:00
jan.nijtmans e15d1f5f79 Merge 8.7 2019-02-19 20:21:32 +00:00
jan.nijtmans be2eb79067 Merge 8.7 2019-02-19 20:17:01 +00:00
jan.nijtmans b752d879c7 Merge 8.6 2019-02-19 20:16:25 +00:00
jan.nijtmans 886343e50b Fix some comments: "upper" -> "high" (when talking about surrogates) 2019-02-19 20:12:06 +00:00
jan.nijtmans 9589c85462 Minor optimizations 2019-02-19 19:38:10 +00:00
jan.nijtmans 2473a591bf Proposed fix for [bd94500678]: SEGFAULT by conversion of unicode (out of BMP) to byte-array. 2019-02-18 20:48:59 +00:00
jan.nijtmans a3632778ce Merge 8.7 2019-02-18 20:42:09 +00:00
jan.nijtmans 52ed230e6f Merge 8.6 2019-02-18 20:39:48 +00:00
jan.nijtmans d273753223 Don't use TclUniCharIsSpace() in command-line handling: the windows command-line is not aware of Unicode spaces, only ASCII ones. 2019-02-18 20:38:23 +00:00
dgp a475e0b1ee merge 8.7 2019-02-14 20:05:11 +00:00
dgp d6173d7493 merge 8.7 2019-02-14 19:46:35 +00:00
dgp 5fd6fc8ae4 Improve portability of path constructions. 2019-02-14 19:34:39 +00:00
sebres fc24d0b9cf small amend unfolding list "$tcl_library/http" (previously it was result of glob) 2019-02-14 10:56:48 +00:00
sebres 85b1f06c9c closes [b322938e08]: fix several zipfs-tests searching for single "http" directory in (compressed) tcl-library. 2019-02-14 10:42:49 +00:00
sebres b24cecb582 merge 8-5-timerate (?max-count?, break possibility, diverse fixes) + windows time-calibration cycle optimization [f6637d3dd8] (clock ticks never backwards, more precise and smooth drifting) 2019-02-13 02:57:07 +00:00
sebres 963cceee57 timerate documentation extended 2019-02-13 01:22:07 +00:00
sebres 5add43aac8 timerate: extended with ?max-count? optional parameter, code review and more tests 2019-02-13 01:10:16 +00:00
sergey.brester 2d41d8b6e2 small amend (correct wrong utf-8 prevention for micro sign in RE of check test-case) 2019-02-12 20:40:12 +00:00
sergey.brester f7183b361e few test cases for timerate command 2019-02-12 20:37:11 +00:00
sergey.brester e0587d1564 fixes estimated time of too short execution considering calibrated overhead (it is 0us and not 1us, example: timerate {break} with and without calibration) 2019-02-12 19:46:29 +00:00
sergey.brester 6a355b11a6 timerate: allow break from measurement cycle (usable to provide conditional stop possibility inside timerate) 2019-02-12 19:38:46 +00:00
sergey.brester 1890d482a7 cherrypick [8ad25ef9eb] from 8.6 - timerate: added dynamic factor by threshold calculation (avoid growing of the execution time if iterations are not consistent, e. g. wax continuously on time) 2019-02-12 19:35:37 +00:00
sergey.brester 9a62e42dd6 merge 8.5 (note: to avoid too many conflicts, merged using fossil merge --baseline 0055a16a8b core-8-5-branch) 2019-02-12 18:41:24 +00:00
jan.nijtmans 43cdc88707 Merge 8.7. Tcl_BackgroundError is now a macro. 2019-02-10 15:27:09 +00:00
jan.nijtmans e66cb0c31e Convert Tcl_BacktroundError() into a macro, so we can deprecate the stub entry for it.
Add -Wpointer-arith warning to CFLAGS
2019-02-09 21:05:49 +00:00
jan.nijtmans a525df6909 Change TclGetIntForIndex() and TclGetIntForIndexM() to return a size_t value in stead of int. This allows for larger index handling (>2G) in a lot of places.
Also add -Wpointer-arith in CFLAGS for mingw-w64 (UNIX already had it)
2019-02-08 08:13:32 +00:00
sebres 4b4a960bfb timerate: added dynamic factor by threshold calculation (avoid growing of the execution time if iterations are not consistent, e. g. wax continuously on time) 2019-02-07 21:20:52 +00:00
dgp 97126ce4ae merge 8.7 2019-02-07 17:30:40 +00:00
sergey.brester 0a876f8e00 merge 8.6(.9), conflicts resolved 2019-02-07 15:45:42 +00:00
sebres 445aa5833b tests/httpcookie.test: apply "-load" option for this test (in order to provide/overwrite library/path to fit correct sqlite3 library for the test) 2019-02-06 18:29:37 +00:00
sebres 9d568b1bdd fixes segfault [bd94500678]: Tcl_UtfToUniChar/TclUtfToUniChar could don't advance source pointer in case it produce high surrogate, so it should be repeated with the same value of ch (returned previously), in order to generate low surrogate hereafter (and to avoid endless cycle). 2019-02-05 21:59:46 +00:00
jan.nijtmans de9d42485e Merge trunk 2019-02-05 21:58:41 +00:00
jan.nijtmans 2dad23ad65 More size_t-related consolidations. Now regexp can handle strings >2GB and more. Remove many type-casts which are not necessary any more. 2019-02-05 21:35:10 +00:00
jan.nijtmans d50da922b1 merge 8.7 2019-02-04 22:46:56 +00:00
jan.nijtmans b203ab7aab Merge trunk 2019-02-04 22:45:59 +00:00
sebres 73b6b4eab6 optimize WidePwrSmallExpon (exponent is <= 16), this will huge decrease assembled code on x86 (113 vs 220 instructions) 2019-02-04 15:14:58 +00:00
sebres 0fcfbd81df code review 2019-02-04 14:40:04 +00:00
sebres cf1edde4f6 cherry pick of [238bd4d2c053540c]..[31dd092df4b57fdb]: More simplifications in tclExecute.c (INST_EXPON), much more and well-arranged branching of long/wide/bignum base and exponent cases, test-cases extended to cover all this branches and edge cases. 2019-02-04 12:24:58 +00:00
sebres 08d4e75deb partial cherry pick of [e8e92eb381d689ab]: One more libtommath function, mp_tc_div_2d, which simplifies code. 2019-02-04 09:40:27 +00:00
sebres bcd9ec5103 partial cherry pick of [c5c83014d6]: Many simplifications in tclExecute.c, now that libtommath provides new functions mp_tc_and, mp_tc_or and mp_tc_xor 2019-02-04 09:21:25 +00:00
jan.nijtmans eee1474252 Another (big) round of int -> size_t enhancements. So Tcl can handle string >2GiB in more places. 2019-02-01 20:36:01 +00:00
jan.nijtmans 3106f9a695 merge-mark 2019-02-01 20:02:00 +00:00
jan.nijtmans 04ed7f99da Update libtommath to latest stable release (1.1.0) 2019-02-01 20:00:04 +00:00
sebres a6ecb97fa5 merge 8.7 (regression fix [e3f481f187], conflicts resolved) 2019-02-01 16:21:38 +00:00
sebres 9a35ff9fad merge 8.6 (regression fix [e3f481f187], conflicts resolved) 2019-02-01 16:06:53 +00:00
sebres 997b332284 speedup "process.test" using signal (via file delete) for the child-process it could exit immediatelly (to avoid sleep and time-related issues). 2019-02-01 15:56:18 +00:00
sebres 99be2974c3 merge fix [e3f481f187] regression to lookup non-ASCII proc/lambda formal arguments (TclCreateProc/TclPushVarName) 2019-02-01 13:20:57 +00:00
jan.nijtmans 81ee84c12c Merge 8.7 2019-01-31 22:43:32 +00:00
jan.nijtmans 09eafa22a7 fix [f559bbde4e]: TclInt.h: tclUnixPort.h:162:13: fatal error: ../compat/unistd.h: No such file or directory 2019-01-31 22:42:14 +00:00
jan.nijtmans be020c7aa5 Merge 8.7 2019-01-31 22:35:03 +00:00
jan.nijtmans d0613a0556 Make TclIsPureByteArray() a macro, since it's only doing a single compare. Other internal simplifications/code duplication. No functional change, only optimizations 2019-01-31 22:23:15 +00:00
jan.nijtmans 4c3bb3d6ba Merge 8.6 2019-01-31 21:08:40 +00:00
jan.nijtmans 3aabb2ae35 Fix [0238027108]: Tcl_ParseArgsObjv TCL_ARGV_CONSTANT documentation error 2019-01-31 21:01:25 +00:00
sebres 272e429c2c TclPushVarName: rewritten iterators over token-strings considering utf-8 multi-bytes. 2019-01-31 16:22:45 +00:00
sebres fc5dc8e811 code review with small amend (note nameLength is number of bytes, the argument may be utf-8 as well as not necessarily a NTS, so access of char after end may cause segfault). 2019-01-31 12:52:56 +00:00
sebres 8a8e70d5a6 fixes utf-8 compatibility of proc/lambda arguments (regression on compiled locals/variables containing utf-8 characters) - CompiledLocal::nameLength is length in bytes not in chars everywhere in tcl;
simplest example:
  % apply {{€} { set "€" }} 1; # or apply [list \u20ac { set \u20ac }] 1
  can't read "€": no such variable
2019-01-30 20:32:18 +00:00
jan.nijtmans 2f4e9acf95 Fix for [f559bbde4e] (even though that's not really a bug) 2019-01-28 22:20:40 +00:00
jan.nijtmans a2a2ad3062 Merge 8.7 2019-01-28 22:05:16 +00:00
jan.nijtmans 7518a795db Merge libtommath v1.1.0 2019-01-28 22:03:10 +00:00
jan.nijtmans 0f79f6ed15 Merge libtommath v1.1.0 2019-01-28 21:54:39 +00:00
jan.nijtmans 7cb32717a9 Update to libtommath v1.1.0 2019-01-28 21:53:18 +00:00
jan.nijtmans e163819660 Merge 8.7 2019-01-28 21:47:50 +00:00
jan.nijtmans af3406f86c New internal macro TclFetchIntRep, which is faster than Tcl_FetchIntRep.
But ... don't use this function when the result is only compared to NULL: that's just overkill.
2019-01-28 21:34:29 +00:00
sebres be7f60de26 merge 8.7 2019-01-28 16:23:11 +00:00
sebres 4247e597c6 merge 8.6 ([4ee9b4f3e965a7da5133] was already fixed in 8.7, so no functional changes here) 2019-01-28 16:19:27 +00:00
sebres 3621a3fd74 merge 8.5 2019-01-28 16:15:07 +00:00
sebres 1dec12d618 fixes [4ee9b4f3e965a7da5133]: result of command time overflows by single iteration longer as 35 minutes (uses wide-int instead of int as result now). 2019-01-28 16:12:56 +00:00
pooryorick 0f700f0067 Remove unnecessary inclusion of tclPort.h in tclIntDecls.h 2019-01-26 20:58:24 +00:00
jan.nijtmans c1452de7e5 Merge 8.7 2019-01-26 17:32:49 +00:00
jan.nijtmans a6393381ec Merge 8.6. Also reduce tclCharTypeTable[] to 256 entries, as this table is always addressed with unsigned chars now.
Eliminate some useless end-of-line spacing that slipped in.
2019-01-26 17:08:06 +00:00
jan.nijtmans fa64afb29a Replace isspace() -> TclIsSpaceProc() _everywhere_.
Change TclIsSpaceProc() and TclIsBareWord so it works with both signed and unsigned characters. Actually, this is not a signature change, as "char" arguments are enlarged to "int" by the C-compiler anyway.
2019-01-26 16:50:21 +00:00
dkf d53b2ae83f Do not assume that literals have a non-NULL bytes field; user code could purge it. 2019-01-25 14:17:56 +00:00
dkf 5f4d728863 Do not assume that literals have a non-NULL bytes field; user code could purge it. 2019-01-25 13:58:07 +00:00
dkf 523ea309ce Do not assume that literals have a non-NULL bytes field; user code could purge it. 2019-01-25 13:43:59 +00:00
sebres 918813166c merge 8.7 2019-01-25 13:27:40 +00:00
sebres 4a9e46ab99 renumeration of test 2019-01-25 13:05:55 +00:00
sebres 2eaeb73742 more tests for INST_EXPON: base -1, big exponent (odd/even). 2019-01-25 13:03:19 +00:00
sebres e3c456752e More simplifications in tclExecute.c (INST_EXPON), much more and well-arranged branching of wide/bignum base and exponent cases, test-cases extended to cover all this branches and edge cases. 2019-01-25 12:45:28 +00:00
jan.nijtmans e9034f3754 Merge trunk 2019-01-24 21:07:52 +00:00
jan.nijtmans 1c5db69783 Fix handling of 'a'/'A' in previous commit: Sinze TclGetByteArrayFromObj is a macro evaluating its arguments more than once, we cannot use ++ in there. 2019-01-24 20:50:35 +00:00
jan.nijtmans f786cb097f Another round of int -> size_t modifications, so strings > 2Gb are handled correctly on 64-bit platforms. 2019-01-24 20:10:25 +00:00
jan.nijtmans 25a1f3d894 One more libtommath function, mp_tc_div_2d, which simplifies code. Some more code readability improvements. 2019-01-22 21:44:27 +00:00
jan.nijtmans 90153d0224 Many simplifications in tclExecute.c, now that libtommath provides new functions mp_tc_and, mp_tc_or and mp_tc_xor 2019-01-22 18:09:26 +00:00
jan.nijtmans d093125a6e Merge 8.6 2019-01-22 16:57:00 +00:00
jan.nijtmans c1065a28f9 Remove some mac OSX pre-10.4 stuff, which is outdated: current build doesn't support this anymore 2019-01-22 16:52:56 +00:00
jan.nijtmans dfb0ed4215 Update included libtommath to v1.1.0-rc4 2019-01-22 16:37:28 +00:00
jan.nijtmans d6f67fed94 Merge libtommath v1.1.0-rc4 2019-01-22 16:29:54 +00:00
jan.nijtmans 3cf1eb2c23 Update to libtommath v1.1.0-rc4 2019-01-22 16:26:59 +00:00
sebres 5560716098 fixes creation of libtcl.vfs using links, if ln-command does not support "-t" option (avoids error "ln: illegal option -- t" and fallback to copy) 2019-01-21 13:08:52 +00:00
sebres 8f8efbe011 avoid additional in-between path-segment "." in zip, some zip-programs (inclusive minizip) will insert this if used as path-parameter to compress 2019-01-21 02:21:11 +00:00
sebres 6c7d5918b3 speed up build process (preparing zip - creating of libtcl.vfs/tcl_library directory), use "ln" instead of "cp" if possible 2019-01-21 01:49:57 +00:00
jan.nijtmans ea65a9b875 Merge trunk. All callers of TclIndexDecode and related functions now adapted for enhanced index range. 2019-01-20 01:36:10 +00:00
jan.nijtmans 5a02d5db9c Merge 8.7 2019-01-18 22:44:43 +00:00
jan.nijtmans 3dd30ce854 Clamp output of TclIndexDecode() between -1 (TCL_INDEX_NONE) and INT_MAX. Use this to produce slightly better error-message for lsort -index 2019-01-18 22:18:06 +00:00
jan.nijtmans ff93a19122 more prgress 2019-01-17 23:49:35 +00:00
jan.nijtmans 257a102789 Slightly more efficient TclGetIntForIndexM macro, compared to previous commit 2019-01-17 21:38:01 +00:00
jan.nijtmans 484cf41413 WIP: Allow value > 2^31 for indexes used in string ranges. Not complete yet. 2019-01-17 18:02:03 +00:00
jan.nijtmans 3097e10be1 Merge 8.7 2019-01-16 20:15:16 +00:00
jan.nijtmans 00f134d99d More TIP #502 optimizations and improvements, preparing further for the road to Tcl 9.
No longer use INT_MAX for TCL_INDEX_AFTER, because INT_MAX can be a normal index in Tcl 9. 
TclGetIntForIndex now clips between -1 and INT_MAX. In Tcl 9 size_t will be used for the index data type.
2019-01-16 19:43:32 +00:00
sebres 325b3d3e94 next amend to [3e0a2d99f3]: fixes TclGetIntForIndex for border case of end offset (size_t)-1 if empty subject, (e. g. failed with out of range by lset lst end+1 ... on empty list) on 32-bit system;
introduces new internal macro TclWideIntFromSize for correct conversion of size_t to wide-int to consider platform-related negative value ((size_t)-1), if wide-int and size_t have different dimensions (e. g. on 32-bit platforms).
2019-01-15 12:34:27 +00:00
sebres c6ad0b6909 fixes out-of-range index [string is ... -fail idx ...] on 32-bit platform (should return -1 instead of 4294967295), almost the same case as [3e0a2d99f3] 2019-01-15 11:38:22 +00:00
sebres b2c04e1ff6 merge 8.7 (mingw/win-autoconf build, etc) 2019-01-14 20:03:36 +00:00
sebres 1b13dffa8c merge 8.6, conflicts resolved in win/Makefile.in (fixed auto-path and load tcltests for ROOT_DIR/tests) 2019-01-14 19:59:19 +00:00
sebres 4aca9276df normalize package provide for tcltests 0.1 (declaration moved from pkgIndex.tcl to package source) 2019-01-14 19:51:02 +00:00
sebres 2916e34116 fCmd-9.4.a: restore constraint for winXP (mistakenly removed, should replace 8.6th constraint "win2000orXP" as "winXP", similar to test fCmd-9.6.a) 2019-01-14 19:48:14 +00:00
sebres ae312970b6 mingw/win-autoconf build: provide tcltest-executable (for consistency reasons); normalizes loading packages calls in test-suite, added build of helpers tcltest (tcltest.cmd) to start tcl-test suite (with all dependencies/facilities) from shell 2019-01-14 17:04:24 +00:00
sebres 6933dc6991 win: allows testchmod to reset DELETE DACL-mask (repaired several tests winFCmd-6.*, winFCmd-9.3, that should catch EACCESS) 2019-01-14 10:00:46 +00:00
sebres 0e3cc87362 minor optimization: check length instead of content - don't touch other memory (so potentially fewer cpu-cache washout's) 2019-01-14 08:55:49 +00:00
jan.nijtmans 1d20342d9c Merge 8.7 2019-01-13 15:47:18 +00:00
jan.nijtmans 4249bc4671 Merge 8.6 2019-01-13 15:43:53 +00:00
jan.nijtmans 631a3b78cb Slightly simpler test for empty string, still covering all cases. Also prepare testpurebytesobj for strings >2G 2019-01-13 15:37:42 +00:00
sebres ae556e2203 provided test-cases covering crash fixed by [58c46e74b931d3a1], as well as new test-facility "testpurebytesobj" allowing creation pure bytes object without internal representations (NULL). 2019-01-11 16:29:24 +00:00
jan.nijtmans 73442469a2 Fix crash reported by reported by François Vogel related to: [cc1e91552c0ca1817292d951f8c694b28c2b2251|cc1e91552c] 2019-01-11 14:35:40 +00:00
sebres 96d2d44e16 merge 8.7 (regression bug-[cc1e91552c], etc) 2019-01-09 10:11:39 +00:00
sebres 6504b376c3 merge 8.6 (regression bug-[cc1e91552c], etc) 2019-01-09 10:10:12 +00:00
sebres 4693981b23 closes [cc1e91552c]: fixes lrange instruction on empty not canonical list (and acc. within expansion also) 2019-01-09 10:01:35 +00:00
sebres cc6df875d6 fixed missing dependency in test-cases "*io-60.1" (constraint-related) - missed load of tcltest-library in sub-process 2019-01-08 18:15:30 +00:00
sebres 9ad3d4b7b1 amend to [a87460dbd4], added clean-up to avoid error {can't set "a(x)": variable isn't array} on next iteration of noComp loop. 2019-01-08 14:39:59 +00:00
sebres 97ef187e5b closes [cc1e91552c]: fixes lrange instruction on empty list, return original list only if it is canonical (otherwise new list object) 2019-01-08 13:35:03 +00:00
sebres 1d20d5be0d bug [cc1e91552c]: added test cases showing the regression (expansion & lrange) 2019-01-08 13:29:29 +00:00
sebres 8692d794c4 merge back after cherry-picking (no functional changes) 2019-01-07 01:15:02 +00:00
sebres b4745088b1 cherry-pick [3e4d907d8e] from 8.6: prevent buffer overrun in fast_s_mp_mul_digs(). 2019-01-07 01:11:32 +00:00
jan.nijtmans 9a77299b78 Merge 8.7 2019-01-04 23:37:15 +00:00
jan.nijtmans 3b1d9efc79 Merge 8.6 2019-01-04 22:37:44 +00:00
jan.nijtmans 9fd97a3b30 Merge 8.5 2019-01-04 22:36:15 +00:00
jan.nijtmans e0908c3226 Update TZ info to tzdata2018i. 2019-01-04 22:29:03 +00:00
jan.nijtmans 13ae5915d6 Fix signed<->unsigned comparsion warning (occurring in some gcc compilation flags).
Micro-optimization: Use char array in stead of const char pointer for static variable.
2019-01-04 22:23:27 +00:00
jan.nijtmans 2b6aa28d40 merge-mark 2019-01-03 20:50:33 +00:00
jan.nijtmans d1aae73bf3 Merge 8.6 2019-01-03 20:49:24 +00:00
jan.nijtmans 2593fcb11c Fix conflict with timezone() function in some MSVC versions 2019-01-03 20:48:38 +00:00
jan.nijtmans ae279a393f Fix conflict with timezone() function in some MSVC versions 2019-01-03 20:47:40 +00:00
José Ignacio Marín 7b47e648fa Update TZ info to tzdata2018i. 2018-12-31 10:52:05 +00:00
José Ignacio Marín 9fe95e59fc Update TZ info to tzdata2018i. 2018-12-31 10:51:28 +00:00
José Ignacio Marín 5004f536d3 Update TZ info to tzdata2018i. 2018-12-31 10:50:48 +00:00
jan.nijtmans c094536030 Merge 8.7 2018-12-31 00:04:59 +00:00
jan.nijtmans 0813e41bab Fix [44d382c51a848e6fbe7c9ee15e9386f1237660ee|44d382c51a84]: ZIP filesystem time stamp conversion wrong etc. 2018-12-30 23:59:46 +00:00
jan.nijtmans 72fb39bd82 Merge 8.7 2018-12-30 22:53:30 +00:00
jan.nijtmans 899be54b87 Fix [3cf3a939d32707e100e06e23806e13569856286a|3cf3a939d3]: timezone deprecated in vc2017 2018-12-30 22:50:39 +00:00
jan.nijtmans a1351d366d Fix [3cf3a939d32707e100e06e23806e13569856286a|3cf3a939d3]: timezone deprecated in vc2017.
Also remove unix/config.status.lineno, which was -apparently - checked-in by accident in previous commit
2018-12-30 22:47:44 +00:00
jan.nijtmans 84425899dd Fix [3cf3a939d32707e100e06e23806e13569856286a|3cf3a939d3]: timezone deprecated in vc2017 2018-12-30 22:44:22 +00:00
José Ignacio Marín 15a32019a0 Update TZ info to tzdata2018h. 2018-12-29 23:17:30 +00:00
José Ignacio Marín 905da2b593 Update TZ info to tzdata2018h. 2018-12-29 23:16:43 +00:00
José Ignacio Marín b5a9fff0ac Update TZ info to tzdata2018h. 2018-12-29 23:15:58 +00:00
sebres b226057ffc clock.test: resolve sporadic timing issues - "after 10" could cause pause >120ms on some platforms (especially on heavily loaded systems), so used average value of 5 measured intervals and real retrieved time as reference point 2018-12-29 10:03:33 +00:00
sebres a49d060935 merge 8.6 (merge point only, no functional changes) 2018-12-28 21:09:00 +00:00
sebres 211afcace9 prevent buffer overrun in fast_s_mp_mul_digs(), already fixed in newest libtommath versions. 2018-12-28 21:02:43 +00:00
sebres 55a459a9cf merge 8.7 2018-12-28 20:20:25 +00:00
sebres 13881cf3db win/Makefile.in: closes [0bcc43fa778517c4]: replace INSTALL_DATA_DIR (ported from unix-makefile) with MKDIR/chmod 2018-12-28 20:15:17 +00:00
sebres 6c43931970 merge 8.6 (resolved warnings) 2018-12-28 20:01:53 +00:00
sebres 0513ee0141 resolve warnings: array subscript -1 is below array bounds of 'void *[1]' [-Warray-bounds] if compiled with newest gcc 2018-12-28 19:54:42 +00:00
jan.nijtmans 59eeb967a2 Many internal int -> size_t increases, so string lengths > 2Gb can be handled correctly in many more places. 2018-12-26 15:04:16 +00:00
jan.nijtmans 50b5581156 Merge 8.7 2018-12-20 20:05:47 +00:00
jan.nijtmans a0a457ef4c merge-mark 2018-12-20 20:05:05 +00:00
jan.nijtmans c00086981f New test-cases (backported from 8.7) adapted for pre-TIP-502 behavior 2018-12-20 20:04:01 +00:00
jan.nijtmans e0e776a57e Remove unused MODULE_SCOPE functions 2018-12-20 20:02:00 +00:00
jan.nijtmans 12f94f7a7a (cherry-pick) relax the timings of 2 tests, which incidentally fail on Travis CI.
Also backport a few new test-cases, adapted to match pre-TIP-502 behavior.
2018-12-20 08:06:20 +00:00
jan.nijtmans 492ad5610c Merge 8.7 2018-12-18 20:02:07 +00:00
jan.nijtmans b143bb3fdd Internal minor optimization of TIP #502 implementation. No difference in any outcome. 2018-12-18 20:01:12 +00:00
jan.nijtmans 05a370b2d2 Merge 8.6 2018-12-18 19:54:55 +00:00
jan.nijtmans 878077e3b0 Merge 8.5 2018-12-18 19:52:19 +00:00
jan.nijtmans 4b795b56c8 No need for latest "rvm" any more in osx builds (now even gives an error)
Remove unused/empty header-file
2018-12-18 19:49:09 +00:00
dgp 995a8579cf merge 8.7 2018-12-14 21:33:25 +00:00
dkf f55b154644 Why are we using rvm? Why? 2018-12-14 13:12:17 +00:00
jan.nijtmans 4cbeaa529c Merge 8.7, and make all test-cases pass. 2018-12-13 21:01:58 +00:00
jan.nijtmans 9c5dc4c207 Fix 2 TIP #502 corner-cases. Those corner-cases where (probably) always wrong on 32-bit systems, but now we have a TIP describing how it's expected to behave!
Thanks to Emiliano for noticing and reporting it. Added 6 test-cases for completeness, 2 of them failed before this fix.
Also optimize TclStringLast() a bit, implementing the pre-condition tests as in TclStringFirst().
2018-12-13 20:01:34 +00:00
sebres d233b14db6 reverted to smarter Jan's +1/cast/-1 with additional initial cast now (to pretect against usage of macro with other type as size_t) 2018-12-13 09:43:14 +00:00
sebres fe20a80acb restored inline of TclNewWideIntObjFromSize for 32-bit (avoids double invocation of TclStringFirst/TclStringLast in case of macro function). 2018-12-13 07:32:55 +00:00
jan.nijtmans 535e528fce Fix [3e0a2d99f365c035ce84ec9de1e3acd80c2e2c6c|3e0a2d99f3], for "string last" as well. 2018-12-12 20:28:13 +00:00
jan.nijtmans 1285921148 Merge 8.7 2018-12-12 20:14:19 +00:00
jan.nijtmans 1961633531 If compiled with -DTCL_NO_DEPRECATED, remove Tcl_NewIntObj/Tcl_NewLongObj/Tcl_DbNewLongObj from stub table, as they will be gone in 9.0 (converted to a macro)
Use Tcl_WideInt's directly in more places, diminishing the possibility of inadvent overflow.
2018-12-12 19:38:33 +00:00
sebres 1ce78346fb better fix for [3e0a2d99f3], considering [string first] could return a value larger that INT_MAX for x64 2018-12-12 17:00:59 +00:00
sebres c60e1a679d fixes [3e0a2d99f3]: size_t is smaller as wideInt on 32-bit platform (so by not found, -1 results into 4294967295) 2018-12-12 14:59:36 +00:00
jan.nijtmans f8c365412a Merge 8.7
In test-cases, don't load Tcltest package if it isn't actually used.
Another round of size_t related improvements. Nothing functional. Also improve some comments.
2018-12-11 20:02:40 +00:00
jan.nijtmans 00268d4ae6 Better use of Tcl_WideInt in stead of long, sometimes 2018-12-11 19:43:11 +00:00
jan.nijtmans 9d94ed0d54 Fix executable flags for 2 test-files 2018-12-08 17:36:57 +00:00
jan.nijtmans fb303290b1 merge-mark 2018-12-08 17:35:32 +00:00
jan.nijtmans 416725e464 Fix executable flags of 3 test-files 2018-12-08 17:33:58 +00:00
jan.nijtmans 795fcf4f08 Merge 8.7
Bring back Tcl_InitSubsystems to what Tcl_InitSubsystems was: without additional parameters or additional functionality
2018-12-08 17:16:36 +00:00
jan.nijtmans 9c3b7fe67a Remove some dead code 2018-12-02 20:31:51 +00:00
jan.nijtmans cd23455ba5 merge-mark 2018-12-02 20:04:53 +00:00
jan.nijtmans a7858d818d If compiled with -DTCL_NO_DEPRECATED, remove the Tcl_SetIntObj/Tcl_SetLongObj entries from stub table: Since they are gone in Tcl 9.0 2018-12-02 20:02:41 +00:00
jan.nijtmans 5fc7f158d5 Merge 8.7 2018-11-29 21:37:46 +00:00
jan.nijtmans e2bde4d007 Merge 8.6 2018-11-29 21:34:26 +00:00
jan.nijtmans b3f8bdaff2 relax the timings of 2 tests, which incidentally fail on Travis CI 2018-11-29 21:06:45 +00:00
dkf 72fca75fb1 Make the type casting in TclSpellFix less horrific. It's still bad, but it is no longer ghastly. 2018-11-28 11:37:03 +00:00
jan.nijtmans 6b10f38a3c Merge 8.7
Remove TclFreeObj stub entry
2018-11-27 23:16:09 +00:00
jan.nijtmans 8f18fa7c78 Make TclFreeObj MODULE_SCOPE, so the only way to access it is through the stub table, for backwards-compatible stub-enabled extensions 2018-11-27 22:52:04 +00:00
jan.nijtmans 0cc3b03f32 Merge 8.7 2018-11-25 20:01:54 +00:00
jan.nijtmans 8c642fb171 Fix [df6a91b5c616c3dc126cee700e159b997467465]: build failure (ticket fails to mention that this only happens with TCL_MEM_DEBUG defined) 2018-11-25 19:46:41 +00:00
jan.nijtmans cb7c814567 Merge 8.7 2018-11-25 17:31:49 +00:00
jan.nijtmans c6328d793c Slightly better than previous commit: In case of a version conflict, ignore pkgIndex file. Otherwise report the error normally 2018-11-25 17:29:56 +00:00
jan.nijtmans 57bea5dfa4 Merge 8.7 2018-11-24 15:00:04 +00:00
jan.nijtmans 9fccec3f94 If a pkgIndex file is encountered which produces an error, continue. This shoud fix the Travis build for 9.0 (But same fix should be in 8.7 as well) 2018-11-24 14:59:04 +00:00
jan.nijtmans bf8595e255 re-generate configure script 2018-11-24 09:02:05 +00:00
jan.nijtmans 8653af3a2e comment typo's 2018-11-24 09:00:26 +00:00
sebres b5ef06c920 merge 8.7 2018-11-23 21:00:57 +00:00
sebres d1e9efc1de make: better algo to wrap to absolute zip-path (for systems resp. toolchains without readlink/realpath), e. g. avoid xcode/macosx build error "readlink: illegal option -- m" 2018-11-23 19:59:12 +00:00
sebres 1f8d9b37a0 merge 8.7 2018-11-23 12:03:29 +00:00
sebres 813764c458 make/configure review: normalizes the latest fixes across unix/win 2018-11-23 11:59:53 +00:00
sebres a61946874f merge 8.7 (build zipfs fixes) 2018-11-22 23:18:58 +00:00
sebres a694d92cbd unix build (if ZIPFS_BUILD): fixed relative path to zip-program (in case of minizip), ignore possible zip-error by adjust sfx process (similar to [057d2b674d]). 2018-11-22 23:17:11 +00:00
sebres c772e86ac5 merge 8.7 2018-11-22 22:15:00 +00:00
sebres 1c22d353a9 win/mingw build (if ZIPFS_BUILD): ignore following zip-error by adjust sfx process:
zip error: Zip file structure invalid (tcl87.dll)
dll is loadable and contains zip archive (openable with zip and zipfs with tcl_library is available), so ignores return code of `zip -A`, just write it (as warning) now, and continue build process.
2018-11-22 22:14:24 +00:00
sebres cae3501f7a fixes typo in [e108e6b947], test added to cover this case 2018-11-22 18:30:49 +00:00
sebres 4a077c3555 merge 8.7 2018-11-22 14:45:10 +00:00
sebres c2ce99823e merge 8.6 2018-11-22 14:44:48 +00:00
sebres 5c59a6a505 fixed typo in prepro #ifdef unix || __APPLE__ 2018-11-22 14:44:16 +00:00
sebres 9608869327 merge 8.7 2018-11-22 14:30:22 +00:00
sebres 1cf15d2b4d merge 8.6 2018-11-22 14:16:51 +00:00
sebres fb0f0b6c37 merge 8.5: fixes segfault [7a9dc52b29] and wrong normalization (inside TclJoinPath) for pure relative path-segments; test-cases extended and several windows-related are fixed. 2018-11-22 13:58:37 +00:00
sebres e4f3ce78e3 win/Makefile.in (mingw/gcc toolchains): fixes make mode "tcltest" - added dependencies to build tcl (dlls) also. 2018-11-22 12:58:16 +00:00
sebres dccc93bfb8 fixes segfault [7a9dc52b29] and wrong normalization (inside TclJoinPath) for pure relative path-segments;
test-cases extended and several windows-related are fixed.
2018-11-22 12:48:42 +00:00
sebres a89cd349f1 prepare merge: TclJoinPath is in internal API (MODULE_SCOPE) since 8.6 and static (used locally in tclPathObj) in 8.5 2018-11-22 12:45:04 +00:00
jan.nijtmans 5b63da759c Eliminate gcc compiler warning 2018-11-22 09:26:58 +00:00
jan.nijtmans a27b613909 Make encodings work again ;-( 2018-11-22 09:26:08 +00:00
jan.nijtmans 843754ace3 Fix encoding handling (check for TCL_IO_FAILURE was wrong). Eliminate (size_t) type casts and use of ckalloc() -> Tcl_Alloc() 2018-11-22 09:23:16 +00:00
jan.nijtmans 802d3d1aa0 Merge 8.7 2018-11-22 08:06:26 +00:00
jan.nijtmans 0e7af6107e Merge 8.6
In addition, tclWinSerial.c: Change back two internal variables from size_t -> int, shouldn't have been done here.
2018-11-22 08:03:24 +00:00
jan.nijtmans f49b401512 typo, which caused travis build to fail. 2018-11-22 07:40:12 +00:00
hypnotoad 3c7c613ec1 Added a wrapper script for native builds to utilize Tcl to generate a VFS to attach
to executables or dynamic libraries
2018-11-21 13:06:52 +00:00
sebres e02fb5a67b win: repair test command "testchmod": correct load module (ADVAPI32 for x86/x64) and fix readonly mask (don't deny DELETE mask, test cleanup should be able to delete entry) 2018-11-21 10:00:54 +00:00
jan.nijtmans 02d5149463 Merge 8.7 2018-11-21 07:50:31 +00:00
jan.nijtmans 3a4b0be0b1 TIP #512 documentation: Indicate which functions cannot be called through the stub table any more. 2018-11-21 07:40:13 +00:00
jan.nijtmans e9c1676826 Fix windows build with Visual Studio 2018-11-21 07:36:27 +00:00
hypnotoad fcfb05f5d3 Further refinements for the fix for bug [4e812aadae68af384605a5e78845abe40206fbe9]
Moved the package manifest for the /library file system out of init.tcl file
and into a new file "manifest.txt". If a VFS is populating tcl_library via
a file copy it will rename that file to pkgIndex.tcl, which will allow all
of the packages the core distributes in this way to be available via the standard
package discovery mechanism (as tcl_library is already in the auto_path of an
unmodified tcl interpreter. And if you've modified the tcl interpreter, you
probably know better anyway.

Probably...)
2018-11-21 00:40:32 +00:00
sebres 8c233c93c1 win: fixed pwd-related test-cases in winPipe.test: several test-cases expect current directory equals [temporaryDirectory] 2018-11-20 20:56:50 +00:00
sebres 0e5ff41021 win: fixes case sensitivity of glob test cases (winFile-2.*): current directory can be different as [temporaryDirectory] (if parameter -tmpdir specified). 2018-11-20 20:23:22 +00:00
sebres 23102369d1 refactoring normalize in case of second path starting with tilde (~/~foo) - force second path as relative by join (provide normalize flag for TclJoinPath);
test cases extended
2018-11-20 20:11:02 +00:00
jan.nijtmans 1c46dc5929 Actually, it turns out that platform, platform::shell and tcltest have the same problem ... 2018-11-20 19:15:39 +00:00
jan.nijtmans fcf70e503f Fix [4e812aadae68af384605]: package require msgcat fails 2018-11-20 19:07:34 +00:00
sebres 1aa5869ece fixes segfault [7a9dc52b29]: unexpected decrement of the ref-count after TclJoinPath 2018-11-20 18:02:32 +00:00
dkf e537ff7be6 More coverity issues 2018-11-20 13:51:38 +00:00
hypnotoad e39bbfbe99 Carrying the previous checkin over to the Windows Makefile 2018-11-19 23:53:14 +00:00
hypnotoad 52768f711a Fix for ticket [9cc1db9fb675bf64dfc775372fab1f697e46bb44] 2018-11-19 23:49:56 +00:00
jan.nijtmans bbc2241167 Fix more executable flags 2018-11-19 19:31:01 +00:00
dgp cc6faa155b merge 8.7 2018-11-19 17:29:12 +00:00
dgp e32b5b3f8a merge 8.7 2018-11-19 16:13:52 +00:00
dgp 3afe586b73 Now that we have TCL_AUTO_LENGTH/TCL_IO_FAILURE macro's, use them to make\
code and documentation more readable.
2018-11-19 14:49:35 +00:00
dgp 17d9404840 Repair a few typos 2018-11-19 14:14:59 +00:00
jan.nijtmans b2a63152cb Now that we have TCL_AUTO_LENGTH/TCL_IO_FAILURE macro's, use them to make code and documentation more readable.
Shifted to feature branch as a temporary measure since it doesn't build.
2018-11-18 10:29:41 +00:00
dgp f1dbfbf215 merge 8.7 2018-11-16 20:44:08 +00:00
dgp 1fae54c8c0 merge 8.6 2018-11-16 20:37:09 +00:00
dgp 35299947e3 merge release 2018-11-16 20:26:14 +00:00
dgp 38f743a2c7 [00d04c4f12] Repair broken edge cases in [binary encode base64]. 2018-11-16 18:45:59 +00:00
dgp 4a6019f7a6 [00d04c4f12] Repair broken edge cases in [binary encode base64]. 2018-11-16 18:38:35 +00:00
dkf fa3d7ed178 Clear up a bunch of small issues found by Coverity analysis. 2018-11-16 13:45:26 +00:00
sebres d1e5b0f72f fixes segfault [00d04c4f12], unfulfilled base64 (strict and non-strict mode, etc). 2018-11-15 22:31:39 +00:00
sebres dca8be01de test cases for decode base64, bug [00d04c4f12], unfulfilled base64 (strict and non-strict mode, etc). 2018-11-15 22:18:29 +00:00
jan.nijtmans d904246bf4 Remove "nostub" entries, which are no longer used. See also TIP #512.
Also fix many EXEC/UNEXEC file flags
2018-11-15 20:33:11 +00:00
jan.nijtmans 7829f617b9 Merge 8.7 2018-11-15 19:38:45 +00:00
jan.nijtmans 511765faae Add entry for Tcl_StaticPackage in internal stub table, since the public one is deprecated and will be removed in 9.0
Clean-up a lot of type-casts, which are not necessary any more.
2018-11-15 19:13:55 +00:00
dgp b0122226ed merge 8.7 2018-11-15 18:07:47 +00:00
dgp 76fcfb3c70 merge 8.7 2018-11-15 17:34:57 +00:00
dgp 3046c87be9 merge 8.6 2018-11-15 17:29:38 +00:00
dgp 6a15947389 merge 8.7 2018-11-15 17:04:00 +00:00
dgp f2d42d756e merge release 2018-11-15 16:55:13 +00:00
dgp 8d9924c328 merge 8.6 2018-11-15 16:53:00 +00:00
dgp 54488f1714 close fork 2018-11-15 16:35:58 +00:00
dgp 5b4a1fcaf3 merge 8.5 2018-11-15 16:34:44 +00:00
dkf e348eadefd Stop more crashes on Travis 2018-11-15 10:23:31 +00:00
jan.nijtmans b3d56cb364 Another attempt to fix Travis build: making the build robust against older zlib.h header file 2018-11-15 08:34:59 +00:00
jan.nijtmans 9214af6543 Merge 8.7
Fix Tcl_InitStringRep() signature in line with TIP #494, so it can handle lengths >2Gb on 64-bit platforms
Various other code cleanups, unnecessary type-casts e.o.
2018-11-15 08:19:24 +00:00
jan.nijtmans 65ae2c205e Merge 8.6 2018-11-15 08:07:26 +00:00
jan.nijtmans 5e8ed94397 Make Tcl_WinTCharToUtf/Tcl_WinUtfToTChar work (again) with TCL_UTF_MAX=6. No effect when TCL_UTF_MAX=3|4 2018-11-15 08:05:23 +00:00
jan.nijtmans 0eccb10a23 Implement TIP #512: No stub for Tcl_SetExitProc() 2018-11-15 07:51:01 +00:00
dgp e326690201 Bump to version 8.7a3 for release. 2018-11-14 17:52:35 +00:00
jan.nijtmans a69045247e Merge 8.7 2018-11-14 07:41:17 +00:00
jan.nijtmans b16a1198d9 Workaround for crypt.h, when used in combination with older zlib library. Should make Travis build work again 2018-11-14 07:39:45 +00:00
dkf 4402274b45 Make socket tests less likely to hang on OSX 2018-11-14 03:31:58 +00:00
dgp 50b1bca232 merge mark 2018-11-13 21:11:42 +00:00
dgp 3e8ffff6a3 [35a8f1c04a] Fix bad lengths when creating string rep of some lists. 2018-11-13 21:10:33 +00:00
dgp ad8c23540c Implement TIP 445 2018-11-13 21:04:19 +00:00
dgp 4e39644e1e make genstubs 2018-11-13 17:55:18 +00:00
dgp 74c90a618e TIP 525 bug fix. 2018-11-13 16:49:34 +00:00
dgp 12b55ed51d Implement TIP 506 2018-11-13 16:37:31 +00:00
dgp 336de438e2 Implement TIP 524 2018-11-13 16:29:17 +00:00
dgp 2e1715a99c Adapted TIP 523 2018-11-13 16:18:56 +00:00
dgp 58a1c257b0 Adapted TIP 519 2018-11-13 16:02:30 +00:00
dgp 372c35b657 Adapted TIP 501 2018-11-13 15:52:23 +00:00
dgp a08f5d57e0 Repaired and adapted TIP 406. 2018-11-13 15:41:46 +00:00
dgp e38f827522 Plug memory leak. Fork new trunk that isn't broken. 2018-11-13 15:23:42 +00:00
dkf 237b0edf0d merge 8.6 to get Travis fixes 2018-11-12 09:53:47 +00:00
dkf 77a9cc76b1 Properly switch on running tests on Travis. CI builds now debugged. 2018-11-12 09:51:45 +00:00
dkf fc38a30572 Cleaner way of writing environment variables 2018-11-12 09:49:24 +00:00
dkf fa2ceeffff Make cookiejar tests skip gracefully 2018-11-12 09:48:17 +00:00
dkf 18b503297b Fix brokenness in GNUmakefile 2018-11-12 09:26:25 +00:00
dkf 44fd5b0f83 Fix builds on Travis. 2018-11-11 16:55:53 +00:00
dkf 13f704914a Clean up Travis config now that it passes 2018-11-11 15:07:12 +00:00
dkf 3166f1ad45 merge 8.6 2018-11-10 10:22:19 +00:00
dkf b82e966961 Build instructions tinkering 2018-11-10 09:55:31 +00:00
dkf 6fe99b6e66 Tracking down test failures 2018-11-10 09:39:35 +00:00
dkf cbbc8d66b8 Make the macosx build able to succeed 2018-11-10 07:29:08 +00:00
dgp 4dc3934516 update changes 2018-11-09 19:14:07 +00:00
dgp bd29989aab policyAllow is also a cookiejar method; make tests account for it. 2018-11-09 19:05:44 +00:00
dgp 3416e2d194 Don't make tests depend on third party error messages we do not control. 2018-11-09 19:03:05 +00:00
dgp 730f1c88eb silence compiler warning 2018-11-09 16:48:57 +00:00
dgp d16fc1a584 [35a8f1c04a] Fix bad lengths when creating string rep of some lists. 2018-11-09 16:42:37 +00:00
dgp 563ffe0ad3 Merge and adapt 8.6 2018-11-09 16:16:17 +00:00
dgp 5deb25bc9b merge 8.5 2018-11-09 16:03:22 +00:00
dgp 0f4e877214 [35a8f1c04a] Fix bad lengths when creating string rep of some lists. 2018-11-09 16:00:57 +00:00
dgp 4df4dafad6 Additional test 2018-11-09 15:47:37 +00:00
dgp 83ec300abd Revise bug fix to support (length == 0) correctly.
Added comments and improved safety in caller.
2018-11-09 15:39:26 +00:00
sebres ddae61a859 closes [35a8f1c04a]: minimalist fix - beware of discrepancy between TclScanElement and TclConvertElement (prefer braces considering TCL_DONT_QUOTE_HASH in case of first list element) 2018-11-09 14:19:08 +00:00
sebres 75399e97a8 test case to cover bug [35a8f1c04a] 2018-11-09 14:13:15 +00:00
dgp 13446e004a typo 2018-11-08 17:32:28 +00:00
dgp 4930197d21 merge mark 2018-11-08 17:09:42 +00:00
dgp 008a36f3e4 merge mark 2018-11-08 17:07:01 +00:00
dgp dc53840e35 [86d249bcba] Make sure that tcltest::runAllTests actually returns 1 on failure
Repairs TIP 525 implementation.
2018-11-08 17:06:02 +00:00
dgp 5471354571 [86d249bcba] Make sure that tcltest::runAllTests actually returns 1 on failure.
Repairs TIP 525 Implementation.
2018-11-08 17:05:00 +00:00
dkf 7d16c9044e TESTBUGFIX: The C locale is more commonly based on UTF-8 than it used to be. 2018-11-08 10:40:31 +00:00
dkf 155f409a38 Merge the Travis build rules more properly 2018-11-07 19:22:20 +00:00
dkf 20c06fad80 merge 8.6 branch 2018-11-07 19:04:53 +00:00
dkf 4abbc2cf7d merge 8.6 2018-11-07 18:59:11 +00:00
dkf a6d8a3e498 [86d249bcba] Make sure that tcltest::runAllTests actually returns 1 on failure 2018-11-07 18:56:14 +00:00
dkf c1c94e4437 [86d249bcba] Make sure that tcltest::runAllTests actually returns 1 on failure 2018-11-07 18:50:09 +00:00
dkf c5bbe85f29 Rebase of travis config 2018-11-07 13:25:45 +00:00
jan.nijtmans 29a883d89f Fix "executable" flag for many files (now really!) 2018-11-07 08:58:01 +00:00
dkf d6bc59fcc3 mark many files as not executable 2018-11-06 14:02:48 +00:00
dgp 3475b52b60 Implemen TIP 506 2018-11-06 12:13:15 +00:00
dgp efa3f28435 merge 8.7 2018-11-06 12:11:09 +00:00
dkf 931a2a1ad2 Implement TIP 524 2018-11-06 11:15:33 +00:00
dkf 3a8f5fae79 Implement TIP 523 2018-11-06 11:14:56 +00:00
dkf cef3740779 Implement TIP 519 2018-11-06 11:13:46 +00:00
dkf 4d25d5aefd Implement TIP 501 2018-11-06 11:12:05 +00:00
dkf 3c18b618a5 Added documentation 2018-11-06 10:08:11 +00:00
dkf 179e8f4df7 merge core-8-branch 2018-11-06 10:04:02 +00:00
dkf 2798a075ee Implement TIP 445 2018-11-06 09:51:55 +00:00
dkf 5429d6aeaf Implement TIP 406 2018-11-06 09:50:29 +00:00
dkf 1c2958d455 merge core-8-branch 2018-11-06 09:49:38 +00:00
dgp e2d299f771 Fixed memory leak in TclOO.c:ObjectNamespaceDeleted, object mixins and
object/class mutation.
2018-11-02 17:18:57 +00:00
jan.nijtmans 57f1472371 Merge 8.7 2018-11-02 07:26:17 +00:00
jan.nijtmans bea160e7f6 Start building this branch with Travis. See how far we get 2018-11-01 20:18:12 +00:00
pooryorick d739e9b6a8 Fixed memory leak in TclOO.c:ObjectNamespaceDeleted, object mixins and
object/class mutation.
2018-11-01 20:10:06 +00:00
dgp 2577d3bd45 make dist 2018-11-01 16:31:00 +00:00
dgp c65da32867 update changes 2018-11-01 15:26:12 +00:00
dgp ff9bd4ad1c merge 8.6 2018-11-01 14:50:31 +00:00
dgp fc3971425e merge 8.7 2018-11-01 14:50:14 +00:00
dgp 3788abb994 Eliminate fallback attempts when broken strtod() routines are detected.
This has long been creating more problems than it solves.
2018-11-01 14:48:36 +00:00
dgp a0c7ff582a Eliminate fallback attempts when broken strtod() routines are detected.
This has long been creating more problems than it solves.
2018-11-01 14:46:07 +00:00
jan.nijtmans b3dceb5360 Make MacOSX compile work (hopefully) and cross-compile on mingw-w64 (compile only, no unit-test yet) 2018-10-31 21:02:42 +00:00
jan.nijtmans 00165cded4 Merge 8.7 2018-10-30 20:43:17 +00:00
jan.nijtmans 500a1629c4 Merge 8.6 2018-10-30 20:42:12 +00:00
jan.nijtmans 4c1c62892a Merge 8.5 2018-10-30 20:41:01 +00:00
jan.nijtmans 434a115a3c Add support for DragonFly 2018-10-30 20:40:03 +00:00
jan.nijtmans 74707353e8 Add support for TIP #494 to registry and dde. Only effective when compiled against Tcl 9.0 headers. This way we can keep the source-code for those extensions 100% equal in all branches.
Work-around for gcc warning in tclWinFile.c. Discovered by Travis CI.
2018-10-30 20:39:24 +00:00
jan.nijtmans 707607f617 Merge 8.7 2018-10-29 19:58:07 +00:00
jan.nijtmans dbdd83e5d0 Fix compilation on Visual C++ 6.0, which doesn't have LLONG_MIN/LLONG_MAX 2018-10-29 19:57:29 +00:00
jan.nijtmans 538c6791ab merge-mark 2018-10-29 19:55:50 +00:00
jan.nijtmans 22a5d73ebf squelch some warnings on higher Visual Studio versions: we are not going to bother on this any more. 2018-10-29 19:54:58 +00:00
dgp 820cc5a23d Work started eliminating long outdated compat routines that now cause
cross-compiling failure far more often than they help porting to old broken
platforms.
2018-10-29 18:19:55 +00:00
dgp f7dfeb706f merge 8.7 2018-10-29 15:37:07 +00:00
dgp 0642eb9363 merge 8.7 2018-10-29 15:04:51 +00:00
dgp 78ef9a971b merge mark 2018-10-29 14:39:22 +00:00
dgp ce6023fade [TIP 525] Backport package tcltest 2.5 2018-10-29 14:38:24 +00:00
dgp 4e9742386c merge mark 2018-10-29 14:10:33 +00:00
dgp 030a749dc8 close fork 2018-10-29 14:09:34 +00:00
dgp 2f4c1aecdb [TIP 525] Backport package tcltest 2.5 2018-10-29 14:00:48 +00:00
dgp b3291aebaa [TIP 525] Revise [tcltest::runAllTests] to return indicator of any failure. 2018-10-29 13:36:10 +00:00
dgp 569b59f564 [TIP 522] New option "-errorCode" to [tcltest::test] in tcltest 2.5 2018-10-29 13:19:39 +00:00
dgp ccbbac847a update changes 2018-10-29 12:36:29 +00:00
dgp 8e4701fd31 merge 8.6 2018-10-29 12:28:15 +00:00
dkf de66468301 Documentation 2018-10-28 15:36:55 +00:00
dkf 56f89b9850 Test cases (and some fixes) 2018-10-28 12:48:53 +00:00
jan.nijtmans 1ff54c600e merge-mark 2018-10-28 10:07:04 +00:00
jan.nijtmans 1337738c22 Merge (on-purpose) fork, makeing the merge-mark easier 2018-10-28 10:05:42 +00:00
jan.nijtmans 96b9e6e871 Missing -DUNICODE in makefile.vc 2018-10-28 10:04:08 +00:00
dkf af5d98388a Definition and introspection commands. 2018-10-28 08:22:21 +00:00
dkf fd15b04d3b merge core-8-branch 2018-10-27 22:12:00 +00:00
dkf 3dc41c544f Core machinery for implementing TIP 524; still needs user-facing access commands 2018-10-27 22:05:34 +00:00
jan.nijtmans 52c009322f put back Travis CI build. All merge-marks of previous commit change done. 2018-10-27 19:52:25 +00:00
jan.nijtmans 5318dc3f04 Merge 8.7 2018-10-27 19:46:25 +00:00
jan.nijtmans fd54886393 Merge 8.6 2018-10-27 19:45:31 +00:00
jan.nijtmans 016dc0c5f0 merge-mark... well ... almost: Except for a missing <include> in tclWinDde.c 2018-10-27 19:43:31 +00:00
jan.nijtmans 97ed5b117d (temporary) backout [0386db909a]: Enable CI builds with Travis. This enables everything else to merge-marked to 8.6. Will put it back in the next commit 2018-10-27 19:36:22 +00:00
jan.nijtmans fbc8feeb40 Backport various minor issues from 8.6:
- gcc compiler warning in tclDate.c
- protect Tcl_UtfToUniCharDString() from ever reading more than "length" bytes from its input, not even in the case of invalid UTF-8. 
- update to latest tzdata
- fix 2 failing test-cases on MacOSX
2018-10-27 19:33:40 +00:00
José Ignacio Marín c363d73c13 Update TZ info to tzdata2018g. 2018-10-27 18:08:50 +00:00
José Ignacio Marín a870464cc5 Update TZ info to tzdata2018g. 2018-10-27 18:08:13 +00:00
José Ignacio Marín 5f392f74b6 Update TZ info to tzdata2018g. 2018-10-27 18:07:35 +00:00
jan.nijtmans fef802ea7a Update to latest tzdata (backported from 8.6) 2018-10-27 08:06:42 +00:00
jan.nijtmans d7a697aa50 Missed some version bumps in previous commit 2018-10-27 08:03:56 +00:00
jan.nijtmans 9654f8c692 tclWinDde.c: Backport version 1.4.1 from Tcl 8.6. 2018-10-27 07:53:45 +00:00
dgp 274d86b2ec merge 8.7 2018-10-27 01:31:00 +00:00
dgp b28e8c3bd1 Draft implementation of TIP 506 - rebased to Tcl 8.7 2018-10-27 01:04:33 +00:00
jan.nijtmans 8fd03cb085 Merge 8.7 2018-10-26 19:03:47 +00:00
jan.nijtmans 7ecdd17b4d Merge 8.6 2018-10-26 19:01:57 +00:00
jan.nijtmans 125b29bfe3 tclWinReg.c: Code cleanup. Eliminate some unnecessary variables.
tclWinDde.c: Backport improvements (support for TCL_UTF_MAX=6) from androwish: Both androwish and tclsh (all versions) can now use the same dde.dll.
dde: bump version
2018-10-26 18:41:35 +00:00
pspjuth 63802cdd70 Simplify to only accept index arguemnts. No index list.
Added manual page.
2018-10-24 22:15:50 +00:00
jan.nijtmans c69ccc749e Backport "registry" version 1.3.3, so all active branches now have the same registry version.
(this commit must -eventually- be merge-marked to core-8-6-branch, since everything is there already)
2018-10-24 21:22:18 +00:00
dgp f44fb9b450 Request the tcltest version that provides the testing facilities used. 2018-10-24 14:33:54 +00:00
dgp f338047c19 merge 8.7 2018-10-24 02:00:15 +00:00
dgp f6111b5415 merge 8.7 2018-10-23 23:42:08 +00:00
dgp 691b2ab5c4 update changes 2018-10-23 23:34:34 +00:00
dgp 352d056288 merge 8.6 2018-10-23 23:25:53 +00:00
dgp 335774aef1 [d1d05d1c7a] Fix bug parsing end-$bignum
End deprecated acceptance of "e" and "en" as index value.
Streamline and comment for clarity and improved merging to tip-445 branch.
2018-10-23 23:23:42 +00:00
dgp cb2049e18e merge 8.7 2018-10-23 23:16:22 +00:00
dgp 6457b295e1 Streamline and comment combined routine. 2018-10-23 23:09:48 +00:00
pspjuth bf9af9a408 Cleanup 2018-10-23 21:06:30 +00:00
jan.nijtmans cd2d12e256 Merge 9.0 2018-10-23 19:42:47 +00:00
jan.nijtmans b5fe898956 Merge tip-512 branch 2018-10-23 19:40:21 +00:00
jan.nijtmans 231a11e2ce Merge 8.7 2018-10-23 19:39:00 +00:00
jan.nijtmans 6d8d5c8756 Merge 8.7 2018-10-23 19:15:32 +00:00
jan.nijtmans b7495e42ca Merge libtommath-no-stdint.h branch. Re-generated tclTomMath.h 2018-10-23 19:14:00 +00:00
dgp 7e4b0ec852 rework the logic a bit 2018-10-23 19:11:13 +00:00
dgp 9db751daeb End the deprecated practice of accepting "e" and "en" as valid index values. 2018-10-23 19:01:55 +00:00
dgp a883ddbe3e Refactor the SetEndOffsetFromAny() routine into its only caller. 2018-10-23 18:49:36 +00:00
jan.nijtmans 7e67cf48eb Branch [https://github.com/libtom/libtommath/commits/no-stdint-h] from libtommath, by karel-m. 2018-10-23 18:37:54 +00:00
dgp 4ad4d79d41 The "end-offset" type is unregistered. No need for a setFromAnyProc.
Remove and simplify.
2018-10-23 18:24:50 +00:00
dgp 90d55a9da9 merge 8.7 2018-10-23 17:58:35 +00:00
dkf 983b95bdbd Enable CI builds with Travis. 2018-10-23 11:14:13 +00:00
pspjuth 394e22ef5d Updated tests to exercise new feature. 2018-10-22 21:15:00 +00:00
jan.nijtmans 4ff1d3aad6 Merge 8.7 2018-10-22 20:41:04 +00:00
jan.nijtmans 140cd14f15 formatting 2018-10-22 20:40:25 +00:00
pspjuth 5b1614f31a Documentation and revision bump for tip 522 2018-10-22 20:27:03 +00:00
dgp c4e867d8dd merge 8.7 2018-10-22 20:23:00 +00:00
jan.nijtmans 0748314c35 Merge changes in libtommath's latest "develop" branch 2018-10-22 20:12:18 +00:00
jan.nijtmans f8876cc390 Update libtommath to latest "develop" branch 2018-10-22 19:32:11 +00:00
pspjuth 36f2cb4d7d Implement TIP 523, New lpop command 2018-10-22 18:43:47 +00:00
jan.nijtmans 86013715f6 Missing ',' in documentation (discovered by MacOSX help processing). Some whitespacing 2018-10-22 18:36:42 +00:00
jan.nijtmans adfb542329 Merge 8.7 2018-10-22 18:21:56 +00:00
jan.nijtmans cee756478e Fix error-message on MacOS: the __LINKEDIT segment does not cover the end of the file.
Reason: We appended a zip-file to the end of the library, so during install "strip" doesn't work any more
2018-10-22 18:21:23 +00:00
jan.nijtmans cd4cb2999b Merge 8.7 2018-10-22 18:04:44 +00:00
jan.nijtmans 2517987176 Merge 8.6 2018-10-22 17:54:16 +00:00
jan.nijtmans 49cd80a29d Fix "registry" test-cases. Thanks to Harald Oehlmann for spotting this! 2018-10-22 17:48:40 +00:00
dgp 68cad4302a merge 8.6 2018-10-22 13:30:51 +00:00
dkf c201290179 Expand the build matrix 2018-10-22 13:11:45 +00:00
pspjuth 8c05c20df4 Implement TIP 522, Test error codes with Tcltest 2018-10-22 05:56:37 +00:00
dkf 3ecac0e0ab merge fork 2018-10-22 05:14:54 +00:00
dkf e4c108f3d7 Make new notifier code match Engineering Manual guidelines better 2018-10-22 04:30:24 +00:00
jan.nijtmans 817a97238e Formatting, PTR2INT range improvements, and remove some macro's only used on Cygwin, which are no longer necessary 2018-10-21 21:32:38 +00:00
jan.nijtmans 7398a025d4 Merge 8.7 2018-10-21 21:00:16 +00:00
jan.nijtmans d2c82fc45a Change PTR2INT and PTR2UINT macros's so they can handle long's and Tcl_WideInt's too, so no longer restricted to the "int" range. 2018-10-21 20:38:02 +00:00
dkf 7c2e55d3fd Squash warnings in the OSX notifier 2018-10-21 10:50:21 +00:00
dkf 0c78f5bbad Disable windows builds. Make test failures fatal. 2018-10-21 10:16:05 +00:00
dkf 37c458acb7 Remove unused variable 2018-10-21 10:01:04 +00:00
dkf 775ce545d2 More tests. Better implementation. 2018-10-21 09:57:43 +00:00
dkf 9b417d4592 Rebase on 8.7 2018-10-20 23:41:32 +00:00
dkf 2e0a0b5305 Remove old README 2018-10-20 18:02:45 +00:00
dkf 1caba8a761 Add local links 2018-10-20 16:47:29 +00:00
dkf 6efd8f71f2 formatting tweak 2018-10-20 16:44:51 +00:00
dkf e5cf3448bd formatting tweak 2018-10-20 12:54:28 +00:00
dkf ea29292705 formatting fix 2018-10-20 12:01:49 +00:00
dkf d32d625787 Travis CI build 2018-10-20 11:57:59 +00:00
jan.nijtmans e5817145d2 Fix [77f1088210fd739]: trunk: mac os x: compilation warnings 2018-10-19 21:11:42 +00:00
jan.nijtmans dc465cd88f merge trunk 2018-10-19 19:21:09 +00:00
dgp 50ae8fdcf6 [d1d05d1c7a] Tests and fix for bignums in end-offset index value parsing. 2018-10-19 19:18:30 +00:00
jan.nijtmans e87ceb8957 Merge 8.7 2018-10-19 15:53:14 +00:00
jan.nijtmans cb061edef8 Merge 8.6 2018-10-19 15:52:42 +00:00
jan.nijtmans 49aba3d99e Add support for "nostub" in genStubs.tcl. Not used by Tcl 8.6, but might be used by Tk 8.7 when linked against Tcl 8.6 2018-10-19 15:51:36 +00:00
jan.nijtmans d8decf16a5 Merge 8.7 2018-10-19 15:49:41 +00:00
dkf 74357f24f8 merge core-8-branch 2018-10-19 10:07:24 +00:00
dkf fca6e38924 merge core-8-6-branch 2018-10-19 10:06:23 +00:00
dkf 09446c7544 Added another test case. This one is OK. 2018-10-19 09:59:14 +00:00
jan.nijtmans 0b6248c50a Rebase TIP-414 to TIP-512: If Tcl_SetPanicProc doesn't have a stub entry, it can take over the function of Tcl_InitSubsystems, just by changing its return value. TIP-512 description still to be adapted accordingly. 2018-10-18 22:25:04 +00:00
jan.nijtmans 8bfcffa20a Merge 8.7 2018-10-18 21:54:37 +00:00
dkf 8a4ad6884b Make the object mutation operation as unrestricted as possible. 2018-10-18 21:40:17 +00:00
dkf 2021349249 Make fundamental mutation work. MAGICAL MAGIC MAGICS MAGIC. Abracadabra. 2018-10-18 21:38:08 +00:00
José Ignacio Marín 251aca8829 Update TZ info to tzdata2018f. 2018-10-18 18:25:22 +00:00
José Ignacio Marín e7392a5c22 Update TZ info to tzdata2018f. 2018-10-18 18:24:50 +00:00
José Ignacio Marín 6b0dccd9d5 Update TZ info to tzdata2018f. 2018-10-18 18:23:50 +00:00
dgp 90221ac971 merge 8.7 2018-10-18 15:31:51 +00:00
dkf e006418946 Tests for advanced object mutation issues. 2018-10-18 14:58:28 +00:00
dgp 441aa364da merge 8.7 2018-10-18 13:24:10 +00:00
jan.nijtmans f6ac543323 Merge 8.7 2018-10-17 22:40:01 +00:00
jan.nijtmans 49ebd1264d Add -Wpointer-arith compiler flag to gcc 2018-10-17 22:37:43 +00:00
jan.nijtmans 7a6a9da3e0 Merge 8.7 2018-10-17 20:03:39 +00:00
jan.nijtmans 94d07354ce Merge 8.6 2018-10-17 20:02:36 +00:00
dgp da46155931 merge 8.7 2018-10-17 20:02:16 +00:00
jan.nijtmans 2881b5c3df Fix test-cases running on Windows 10: [string index $tcl_platform(osVersion) 0] doesn't give the correct answer then.
Also backport genStubs.tcl from 8.7: The "deprecated" mark is not used in Tcl 8.6, but it is used by Tk 8.7 when doing "make genstubs" against Tcl 8.6.
2018-10-17 19:55:17 +00:00
jan.nijtmans e0209e39ea Fix test-cases running on Windows 10: [string index $tcl_platform(osVersion) 0] doesn't give the correct answer then (it gives "1", but "10" was expected) 2018-10-17 19:51:47 +00:00
dgp 128086366a merge 8.7 2018-10-17 16:37:20 +00:00
dgp e154c51512 merge 8.6 2018-10-17 16:24:16 +00:00
dgp e1196c53f2 Revert addition of "slowTest" as built-in constraint. (no TIP; no version bump).
Let the test file that needs the constraint define it with existing facilities.
2018-10-17 16:12:42 +00:00
dgp 56b431c4c2 Mark test macOSXFCmf-2.8 non-portable. It appears to pass when the older
HFS+ filesystem is in use, often on disk drives in older systems. It appears
to fail when APFS is in use, more typical on newer SSD storage.
2018-10-17 16:06:38 +00:00
dgp ac4291f473 Backport test fix. 2018-10-17 16:03:54 +00:00
dgp 4dbcfc37b3 typo 2018-10-15 12:49:56 +00:00
dkf f59c9faee2 Make it easier to extend cookiejar for policy reasons 2018-10-15 10:28:23 +00:00
dkf 94c0eede77 Fix up citations 2018-10-14 14:00:38 +00:00
dkf 61a92173cc Added more documentation. 2018-10-14 13:48:11 +00:00
dkf c393791ed5 Added documentation 2018-10-14 13:14:10 +00:00
dkf 239ba78ee4 Adapt the code to the fact that we don't need to stick to the BMP any more 2018-10-14 10:51:27 +00:00
dkf 359b371edd Move header parsing to where it belongs 2018-10-14 09:17:16 +00:00
dkf 67b4e0d544 merge core-8-branch 2018-10-14 09:04:11 +00:00
dkf 2482413c83 Minor doc update 2018-10-12 18:45:54 +00:00
dkf de2192ab20 Turn [zipfs tcl_library] into more internal [tcl::zipfs::tcl_library_init]. It wasn't documented and isn't very useful outside of Tcl's startup code. 2018-10-12 18:44:25 +00:00
jan.nijtmans da2d06ef70 Merge 8.7 2018-10-12 18:29:24 +00:00
jan.nijtmans 7fcc213b7a TCL_NUMBER_WIDE is deprecated 2018-10-12 18:24:20 +00:00
jan.nijtmans 5aceb08fb4 Merge 8.6 2018-10-12 18:15:24 +00:00
jan.nijtmans 1d465c4012 TIP #502 implementation: Index value reform. 2018-10-12 18:14:51 +00:00
jan.nijtmans cc945fabb7 Fix test for UNICODE in win/tclAppInit.c. No longer check for "tclsh install", because tclsh is not compiled with that. Fix minizip.c compilation on systems without open64() 2018-10-12 17:54:42 +00:00
dkf 621251ae2e Added docs for [zipfs lmkimg] and [zipfs lmkzip] 2018-10-12 12:07:13 +00:00
dkf 13e35220c2 Better document how to package an executable script in a zipfs 2018-10-12 09:52:56 +00:00
dkf 45e6ca04f5 Document [zipfs canonical] and add examples of how to use passwords. 2018-10-12 07:36:19 +00:00
dgp 7c859988ba Revert addition of "slowTest" as built-in constraint. (no TIP; no version bump).
Let the test file that needs the constraint define it with existing facilities.
2018-10-11 17:47:05 +00:00
dgp a221655e1a More updates to changes file. 2018-10-11 17:17:37 +00:00
dgp af3a20ad4e Mark test macOSXFCmf-2.8 non-portable. It appears to pass when the older
HFS+ filesystem is in use, often on disk drives in older systems. It appears
to fail when APFS is in use, more typical on newer SSD storage.
2018-10-11 11:48:32 +00:00
dgp f4f6ef461b Update URLs. changes file WIP. 2018-10-11 11:31:29 +00:00
dkf 5719d6ca30 Put documented [zipfs find] in ensemble. Add examples to docs. 2018-10-11 07:24:40 +00:00
dgp d918760272 Backport test fix. 2018-10-10 23:04:25 +00:00
jan.nijtmans 24d57ac224 Merge 8.7 2018-10-09 21:16:17 +00:00
jan.nijtmans 58d332cff9 Use TCL_THREADS in stead of defined(TCL_THREADS) everywhere, otherwise it will give unexpected results with TCL_THREADS=0 2018-10-09 21:13:42 +00:00
jan.nijtmans 1f2c3cb141 isspace -> TclIsSpaceProc in various places.
Re-generate tclDate.c with Bision 3.1
2018-10-09 19:43:38 +00:00
jan.nijtmans 398efeba2d Fix test-case macOSXFCmd-4.1, by assuring the files are sorted alphabetically always. The file-sytem cannot be thrusted doing this. 2018-10-09 19:27:26 +00:00
dkf 0591917a06 Avoid making question marks bold or italic in docs UNLESS EXACTLY MEANINGFUL 2018-10-09 18:52:52 +00:00
jan.nijtmans bedeed1c1b Merge trunk 2018-10-09 18:52:44 +00:00
dgp 9e61a85e86 merge 8.6 2018-10-09 18:27:57 +00:00
dgp bbdb1f12a0 Use the 4 argument form of [makeFile]. 2018-10-09 18:24:57 +00:00
jan.nijtmans da2b2ce861 Merge 8.7 2018-10-09 18:17:22 +00:00
dkf fed4d43bd5 Balance the [makeFile/makeDirectory] and [removeFile/removeDirectory] calls (conditional now, so avoids warnings in filter/constraint cases). 2018-10-09 17:56:34 +00:00
dkf f9a4d9f781 Balance the [makeFile/makeDirectory] and [removeFile/removeDirectory] calls (conditional now, so avoids warnings in filter/constraint cases). 2018-10-09 17:55:20 +00:00
sebres 1a664df87f Balance the [makeFile/makeDirectory] and [removeFile/removeDirectory] calls (conditional now, so avoids warnings in filter/constraint cases). 2018-10-09 16:59:13 +00:00
dgp eec0f0f9da merge 8.6 2018-10-09 13:51:56 +00:00
dkf 77282aad96 Improve documentation of [tcl::process] 2018-10-09 08:21:32 +00:00
jan.nijtmans c9301353fc Tcl_GetStringFromObj -> Tcl_GetString 2018-10-08 22:32:08 +00:00
jan.nijtmans 4b7747b505 Fix MSVC warning: warning C4146: unary minus operator applied to unsigned type, result
still unsigned (hopefully)
2018-10-08 20:47:26 +00:00
jan.nijtmans df93fd85a3 Merge 8.7 2018-10-08 19:36:29 +00:00
jan.nijtmans e7a40e1084 TIP #514 implementation: Platform differences in handling int/wide 2018-10-08 19:08:14 +00:00
jan.nijtmans 1812305cb3 TIP #494 implementation: More use of size_t in Tcl 9 2018-10-08 19:00:39 +00:00
jan.nijtmans fe34611d8e Merge 8.7 2018-10-08 18:50:14 +00:00
jan.nijtmans ee49fa81d9 Merge 8.6
Also fix startup problems on win32, when the encoding path contains invalid UTF-8 (reported by François Vogel)
Various other code cleanup, e.g. remove empty.zip file, as this didn't work quite as expected.
2018-10-08 18:34:09 +00:00
jan.nijtmans cc4dae5c0f Streamline: Tcl_WinTCharToUtf/Tcl_WinUtfToTChar(): Always initialize DString, and let it return NULL when imput is NULL. That's what seem to assume the callers. 2018-10-07 20:26:33 +00:00
dkf 3826a26f8a Centralise the de-fanging of standard ensembles in safe interpreters. Doing it right once is easier than repeating hacks... 2018-10-07 19:34:52 +00:00
dkf 045e0f533d Add better error reporting to zipfs. 2018-10-07 12:25:34 +00:00
jan.nijtmans 99e9ce3656 Use more TCL_AUTO_LENGTH, when appropriate 2018-10-06 19:20:43 +00:00
jan.nijtmans d84d03b91a merge trunk 2018-10-06 18:33:42 +00:00
jan.nijtmans a51d80f377 Merge 8.7 2018-10-06 17:22:38 +00:00
jan.nijtmans ac711bcf45 protect Tcl_WinUtfToTChar/Tcl_WinTCharToUtf against NULL input values: return empty string in that case.
Add TIP #494-compatible definitions of TCL_IO_FAILURE/TCL_AUTO_LENGTH, and use it in some appropriate places.
2018-10-06 17:12:46 +00:00
dkf b5f75d3392 More regularizing of function names, field names and testing styles 2018-10-06 16:49:40 +00:00
dkf ffc7a9f0b9 More cleaning up. 2018-10-06 13:07:52 +00:00
dkf a557024511 Cleanup work on zipfs(n) 2018-10-06 06:41:28 +00:00
dkf 0efc494b97 More tidying up of zipfs 2018-10-06 06:22:57 +00:00
jan.nijtmans 7a674da778 Merge 8.7 2018-10-05 21:22:53 +00:00
jan.nijtmans 70fb513ba3 Merge 8.6 2018-10-05 21:22:13 +00:00
jan.nijtmans 8985ee2114 Better implementations of Tcl_WinTCharToUtf() and Tcl_WinUtfToTChar(). They don't make any assumption on whether encodings are initialized, or specific win32 handling of special characters. 2018-10-05 20:54:59 +00:00
dgp 54f90bae0f merge 8.7 2018-10-05 19:41:45 +00:00
dgp 33d71c61d9 merge 8.6 2018-10-05 19:41:28 +00:00
dgp e13c5f55a1 merge 8.6 2018-10-05 19:40:55 +00:00
dgp c74364be4c Bump version numbers for 8.6.9 release. 2018-10-05 19:37:52 +00:00
jan.nijtmans 85aac3aef7 Fix wrong usage of Tcl_WinTCharToUtf() contract: nativePath should never be NULL, but actually it can be. 2018-10-05 19:37:38 +00:00
dgp c3c71b5f3c Post-TIP 505 editing of [lreplace] documentation. 2018-10-05 17:20:40 +00:00
jan.nijtmans 9c4ab4170b merge trunk 2018-10-04 21:07:27 +00:00
jan.nijtmans 0624d7cbb7 Merge 8.7 2018-10-04 19:27:10 +00:00
jan.nijtmans d1ec31a73d Merge 8.6 2018-10-04 19:26:18 +00:00
jan.nijtmans 9feb8b7c29 In registry, protect "keyName" from being NULL: This actually can lead to crashed (I experienced this ...). Update version to 1.3.3, and align implementation in all branches (core-8-6-branch and higher) 2018-10-04 19:22:37 +00:00
dkf b45b819dfe Clean up zipfs implementation a bit. 2018-10-04 10:42:11 +00:00
sebres 5919affa3d merge 8.7 2018-10-04 08:06:40 +00:00
sebres c365555a69 fixed TclGetWideBitsFromObj - minus applied to unsigned type 2018-10-04 08:04:08 +00:00
dkf 9707adf634 Added Emacs metadata to a bunch of nroff source files. 2018-10-04 07:27:32 +00:00
jan.nijtmans 024406099a Merge 8.7 2018-10-03 20:19:10 +00:00
jan.nijtmans 05e0ee4c06 Merge 8.6 2018-10-03 20:02:25 +00:00
jan.nijtmans 50a1375461 Tcl_UniCharToUtfDString: Don't allocate too much memory for this function.
Tcl_UtfToUniCharDString: Don't allocate too much memory for this function. And make sure that we never access more than 'length' bytes from the string, not even when encountering invalid UTF-8.
2018-10-03 19:24:13 +00:00
hypnotoad 8f20d609b9 Eliminating whitespace changes introduced by the prior checkin 2018-10-01 18:01:13 +00:00
hypnotoad ef381abdfd Pulling back in changes to fix testing on cross compiled static builds 2018-10-01 17:05:00 +00:00
hypnotoad 3dc49c128c Adjust when tcl consults zipfs until AFTER it has checked that env(TCL_LIBRARY)
has not been set
2018-10-01 16:41:12 +00:00
hypnotoad 38dcdcb300 Fixed the arguments that zipfs mount was sending in auto.tcl.
Standardized on 8 spaces instead of tab characters inside of that file.

(The indent pattern was not consistent and editing the file in a modern
editor was... painful.)

Added logic to check the current path for a zipfile with the name of the 
package being loaded. This allows wish to load tcl_library from a zip file in the same
directory as the executable. And in fact, any package which uses the 
tcl_findLibrary mechanism with get this behavior for free.
2018-09-30 23:12:13 +00:00
hypnotoad d0ac3d107b Adding Zipfile to the list of products produced for builds 2018-09-30 22:21:50 +00:00
hypnotoad f08ec44049 Adding logic for static builds to load a properly named zipfile
in the present working directory if that zipfile was not present in
either the install directory or the source directory.
2018-09-30 10:17:44 +00:00
jan.nijtmans b9d97ed6af Merge trunk 2018-09-29 21:56:35 +00:00
jan.nijtmans 51dbd66fe3 Merge 8.7 2018-09-29 20:52:42 +00:00
jan.nijtmans acbdbb87fb Add support for wine. So windows test-cases can now be run on Linux/Mac/whatever. 2018-09-29 20:39:10 +00:00
dkf a9dab78604 More readability improvements to unix makefile 2018-09-29 08:51:42 +00:00
jan.nijtmans 084fba1d17 \Merge 8.7 2018-09-28 19:59:40 +00:00
jan.nijtmans c414b83e0a Merge 8.7 2018-09-28 19:58:43 +00:00
jan.nijtmans 6dbdbb7d1b Merge trunk 2018-09-28 19:56:49 +00:00
jan.nijtmans d2edfcf2bd Merge 8.7 2018-09-28 18:57:25 +00:00
jan.nijtmans 3f2c2080cc Merge 8.6 2018-09-28 18:49:45 +00:00
jan.nijtmans 3d5f129cb0 Another patch contributed by Gustaf Neumann: shifting negative numbers is undefined behavior in the C standard
https://stackoverflow.com/questions/8415895/is-left-and-right-shifting-negative-integers-defined-behavior
2018-09-28 18:45:34 +00:00
jan.nijtmans 6d137e77a5 nmake build fixes for zipfs (ongoing, zip attachments not done yet) 2018-09-28 18:21:10 +00:00
jan.nijtmans 37b9b4dedc code/doc cleanup 2018-09-28 18:19:04 +00:00
dkf 4ee2aeb33d Small fixes to unix makefile 2018-09-28 13:59:19 +00:00
dkf fd03d49b6f Better phrasing from TIP 509 2018-09-28 09:54:24 +00:00
dkf 29fbee5784 Implement TIP 509: reentrant mutexes on all platforms 2018-09-28 09:50:58 +00:00
dkf eede8c60a1 Clean up code style and add key phrases to documentation. 2018-09-28 09:49:57 +00:00
dkf 9dabbdf40b merge core-8-branch 2018-09-28 09:18:49 +00:00
dkf 2f3fc1cfa2 Fix minor typo 2018-09-28 07:24:59 +00:00
jan.nijtmans 66dc9d1fbf Merge 8.7 2018-09-27 21:46:24 +00:00
jan.nijtmans 45d39f0444 ckalloc -> Tcl_Alloc 2018-09-27 21:45:01 +00:00
jan.nijtmans e170502d63 Merge 8.7 2018-09-27 21:38:11 +00:00
jan.nijtmans a29938f899 Merge trunk 2018-09-27 21:36:45 +00:00
dkf b4ae859604 Batch of TIP implementations. 2018-09-27 18:48:11 +00:00
dkf b1e6b58b6a Implementation of TIP 426: Determining the "Type" of Commands 2018-09-27 11:08:14 +00:00
jan.nijtmans de5344f487 Merge trunk 2018-09-26 20:09:49 +00:00
jan.nijtmans ea1a9cc17e Merge 8.7 2018-09-26 19:38:44 +00:00
jan.nijtmans f36f29ad95 Bug-fix (actually a workaround): The "registry" extensions sometimes calls Tcl_DStringSetLength() with length -1 or -2. At least, don't let it crash then. 2018-09-26 19:34:56 +00:00
jan.nijtmans f12dda1428 Merge 8.7 2018-09-25 21:18:30 +00:00
dgp 283e5ff856 merge trunk 2018-09-25 15:05:42 +00:00
dgp 71e4ddb74f merge 8.7 2018-09-25 13:31:19 +00:00
jan.nijtmans 1f6a76bca6 Merge 8.7 2018-09-24 23:33:00 +00:00
dgp 50bedec272 merge 8.7 2018-09-24 16:35:06 +00:00
jan.nijtmans 9865f6dc47 Merge trunk 2018-09-23 14:57:31 +00:00
jan.nijtmans 14d9c80d61 Merge 8.7 2018-09-23 13:30:53 +00:00
jan.nijtmans 4603752cef merge tip-515 branch 2018-09-22 13:37:28 +00:00
jan.nijtmans d298eafcf5 Merge 8.7 2018-09-22 13:19:44 +00:00
jan.nijtmans 1795b4118f merge tip-515 (which is pre-requisite for this TIP now) 2018-09-22 12:54:54 +00:00
jan.nijtmans b59b81e172 merge-mark 2018-09-22 12:30:39 +00:00
jan.nijtmans c0b6ad149e merge 8.7 2018-09-22 12:06:08 +00:00
jan.nijtmans d19917714c merge 8.7 2018-09-22 10:23:56 +00:00
jan.nijtmans 69eafefa76 merge trunk 2018-09-13 20:52:48 +00:00
jan.nijtmans 73e0989e22 merge 8.7 2018-09-13 20:52:12 +00:00
jan.nijtmans 2154b6c5ba Merge trunk 2018-09-12 20:00:56 +00:00
jan.nijtmans 004ac14973 compensate for the removal of the http1.0 directory 2018-09-12 19:44:15 +00:00
jan.nijtmans 4abfb9ea2c Merge 8.7 (TIP #430 implementation) 2018-09-12 19:34:16 +00:00
dgp 4252e1f99f merge 8.7 2018-09-11 15:39:20 +00:00
jan.nijtmans b47bd89d44 TCL_NUMBER_WIDE -> TCL_NUMBER_INT. Two test-cases still failing 2018-09-08 21:49:09 +00:00
jan.nijtmans 33201eb14c Bring back test-cases closer to what they were 2018-09-08 21:34:48 +00:00
jan.nijtmans 079f1e33dc Merge TIP-515 branch, so part of the corrections in the TIP-514 implementation branch now moved to the TIP-515 implementation. 2018-09-08 21:29:40 +00:00
jan.nijtmans 6e39ca4071 Merge 8.7 2018-09-07 22:27:00 +00:00
jan.nijtmans c828e5de43 merge trunk 2018-09-07 22:09:00 +00:00
dgp 58b8920b8f merge 8.7 2018-09-07 12:11:45 +00:00
sebres 737e63d3bc merge 8.7 (segfault fix) 2018-09-07 12:04:07 +00:00
jan.nijtmans 21113a4394 Merge trunk. Also rename TCL_NO_LENGTH -> TCL_AUTO_LENGTH 2018-09-05 14:54:26 +00:00
jan.nijtmans 1f6ac7f87e Merge 8.7.
Change some internal function signatures, accounting for the 64-bit era.
2018-09-05 13:45:15 +00:00
jan.nijtmans cf341f6a19 Merge 8.7 2018-09-05 08:07:25 +00:00
jan.nijtmans 2562ea174b Merge 8.7 2018-09-04 14:37:43 +00:00
jan.nijtmans ce13b82329 Merge 8.7 2018-09-03 13:45:49 +00:00
jan.nijtmans 3250944e1f merge 8.7 2018-09-03 12:54:42 +00:00
dkf 6b9510ca19 Implement TIP 478: Add Expected Class Level Behaviors to oo::class 2018-09-02 13:48:56 +00:00
jan.nijtmans ba417d3ce6 Change ckalloc and friends to Tcl_Alloc and friends. Add two defines, TCL_IO_FAILURE and TCL_NO_LENGTH (experimental, still open to be renamed following discussion) 2018-09-01 22:01:35 +00:00
jan.nijtmans 2afacbce95 Merge 8.7, and improve TIP implementation (using utility function in more places) 2018-08-30 21:28:51 +00:00
sebres 195f90c951 merge 8.7 2018-08-30 11:16:07 +00:00
jan.nijtmans c8e7bb7653 Fix compilation on 32-bit platforms, and fix unit-tests in this environment 2018-08-29 19:30:37 +00:00
jan.nijtmans e663097026 Minor code cleanup 2018-08-29 18:33:58 +00:00
jan.nijtmans 2c081dcd0c merge trunk 2018-08-29 18:07:14 +00:00
sebres ce1c1edacb merge 8.7 2018-08-29 17:02:13 +00:00
jan.nijtmans eeebae7172 Now, restore wide(), but make int() the same as entier(). Add new utility function. 2018-08-28 22:28:50 +00:00
jan.nijtmans 8623f173db Eliminate static function AddObjErrorInfo, which is only used once 2018-08-28 20:30:42 +00:00
jan.nijtmans e754f7aad1 merge core-8-branch 2018-08-28 18:59:25 +00:00
jan.nijtmans 80d62f0547 improved reange checking (also for the Tcl 9.0 proposal). Make platform test platform 32/64-bit independant 2018-08-21 21:36:03 +00:00
jan.nijtmans e588745d77 Re-base branch "all-wideint" to core-8-branch. Still WIP 2018-08-19 09:33:34 +00:00
jan.nijtmans b3fc99501e Still WIP. All test-cases pass now in 32-bit 2018-08-19 09:13:16 +00:00
jan.nijtmans c475df7cfb Undo various test-case changes, in order to prove platform compatibility 2018-08-16 18:54:44 +00:00
jan.nijtmans 51ce0579e8 Few more test-cases 2018-08-16 18:13:31 +00:00
jan.nijtmans 57102e40e9 Experiment, resolving platform differences at script level. Don't look ... 2018-08-16 18:03:27 +00:00
jan.nijtmans afc4e512cb Merge 8.7. Also provide a new function for handling ByteArrays 2018-08-14 07:27:38 +00:00
jan.nijtmans b880f036f9 merge trunk 2018-08-11 22:02:14 +00:00
jan.nijtmans eeead325b4 Merge 8.7 2018-08-08 07:01:46 +00:00
jan.nijtmans 62c8a18cdc Merge 8.7 2018-08-08 06:52:48 +00:00
jan.nijtmans 8ec7000cfd Merge 8.7 2018-08-07 08:23:27 +00:00
jan.nijtmans 1bc2496e01 Merge 8.7 2018-08-02 23:08:00 +00:00
jan.nijtmans c3cec2c712 Merge trunk. Use TCL_8_COMPAT in stead of TCL_USE_INT_RETURN 2018-08-02 07:35:28 +00:00
jan.nijtmans 6042bb0be1 merge 8.7 2018-07-31 20:36:29 +00:00
jan.nijtmans 485410de9b merge trunk 2018-07-30 19:00:29 +00:00
sebres e68dfbc8af merge 8.7 2018-07-26 19:10:41 +00:00
Kevin B Kenny 5c0692322d Merge 8.7: Add a note in the 'clock' man page about the interpretation of impossible values on [clock scan] 2018-07-21 18:46:08 +00:00
sebres 0704a6f87b merge 8.7 2018-07-20 16:07:43 +00:00
andy 45f814fec7 Minor documentation wording change to clean up an awkward construct 2018-07-18 03:34:14 +00:00
sebres 7547e67f40 merge 8.7 2018-07-12 15:32:34 +00:00
dgp 5a177e9aaf merge 8.7 2018-07-11 17:48:31 +00:00
jan.nijtmans ec3c18e54e Remove 4 unneeded compatibility macro's, because those functions never return -1 anyway.
Change documentation to use void * in stead of ClientData
2018-07-10 19:18:17 +00:00
sebres 40e253fe8a merge 8.7 (merge point only after cherry-pick, no functional changes) 2018-07-10 08:20:40 +00:00
sebres 142fa0ec7c amend to [1830f9f520e2abdd], fixed package.test if built without test - avoids test file error: package "Tcltest" isn't loaded statically 2018-07-09 19:24:07 +00:00
sebres 10c6cd5a2c merge 8.7 2018-07-09 19:09:17 +00:00
jan.nijtmans 9a9c228341 typo in compatibility macro (discovered by compiling Tk) 2018-07-09 18:06:40 +00:00
jan.nijtmans 5f1c7cb11e Don't mark ckalloc and friends as deprecate yet, Tk is still heavily using it 2018-07-09 16:12:31 +00:00
dgp 9bd3b59e1d merge 8.7 2018-07-09 14:53:45 +00:00
jan.nijtmans 2b4ed03502 Experimental Tcl-8 compatibility macro's. Still to be tested. 2018-07-07 22:39:55 +00:00
jan.nijtmans 20b21aaa69 Fix build on MacOSX 2018-07-07 20:11:05 +00:00
jan.nijtmans d4a30d2344 remaining external API. Looks like complete now. Milestone! Still more testing needed 2018-07-06 21:36:40 +00:00
jan.nijtmans 7f445021a0 more progress 2018-07-06 19:53:03 +00:00
jan.nijtmans 04e4629c9f Merge trunk
Handle TclCopyAndCollapse, *Trace* et al
2018-07-05 21:25:40 +00:00
jan.nijtmans f74cbbd446 Merge 8.7. Also remove some more unneeded #undef's. 2018-07-05 19:50:49 +00:00
jan.nijtmans 83fd58165e merge trunk 2018-07-04 21:11:12 +00:00
jan.nijtmans b4d2fffb28 Merge 8.7 2018-07-04 20:56:37 +00:00
jan.nijtmans 572883ec08 More size_t API changes (*.decls files are complete now) 2018-07-03 19:24:45 +00:00
andy 535266afa3 Remove stray verbiage from man page 2018-07-03 04:56:43 +00:00
stu cf5a680373 Some tools are executable. 2018-07-03 04:02:23 +00:00
stu 4a0e6ae460 Use INSTALL_*/DIST_INSTALL_* macros to make dist. 2018-07-03 00:45:52 +00:00
jan.nijtmans 79f1d89388 Use size_t in more API's, e.g. *RegExp* types 2018-07-02 19:39:34 +00:00
jan.nijtmans b8e604ca08 New macro TclGetByteArrayFromObj() which can handle size_t 2018-07-01 10:31:07 +00:00
jan.nijtmans 77ba009f38 New macro TclGetUnicodeFromObj() which can handle size_t 2018-07-01 09:11:19 +00:00
jan.nijtmans 3dc03bc4ac Starting to update all callers of TclGetStringFromObj() to use size_t variables 2018-07-01 06:21:55 +00:00
jan.nijtmans 94741577ee Another round of size_t'isms, this time also for Tcl_DString 2018-06-29 20:28:54 +00:00
jan.nijtmans 709f9278ff Improve many parsing-related functions to use size_t 2018-06-29 18:13:10 +00:00
jan.nijtmans 5248fb0651 More API changes using size_t. Internal changes not complete yet (WIP) 2018-06-28 21:42:54 +00:00
jan.nijtmans 9478033661 More using TCL_Z_MODIFIER where possible 2018-06-28 20:30:24 +00:00
jan.nijtmans 66ec3cd3a6 merge trunk 2018-06-27 19:09:01 +00:00
jan.nijtmans 7cb7a44074 merge 8.7 2018-06-26 19:46:07 +00:00
dgp 41a740e30c merge 8.7 2018-06-26 17:18:10 +00:00
dgp 868f84d487 merge 8.7 2018-06-26 14:23:58 +00:00
jan.nijtmans 77bd578d9f TIP #512 implementation 2018-06-25 20:41:56 +00:00
jan.nijtmans 3c26b9439d merge 8.7 2018-06-25 20:39:31 +00:00
jan.nijtmans 6264f49788 Merge 8.7 2018-06-24 20:27:19 +00:00
jan.nijtmans 9d19f3532c merge 8.7 2018-06-17 16:13:54 +00:00
dkf ffd6cad4d9 Add in basic github meta-files to reduce problems with issues being filed where we don't see them. 2018-06-16 18:08:51 +00:00
jan.nijtmans c44181ecaf Change signature of Tcl_GetRange() to use size_t. Merge trunk. 2018-06-16 12:32:49 +00:00
jan.nijtmans 824f621875 merge 8.7 2018-06-15 18:40:46 +00:00
stu ab3286e299 Align common install locations in SC_PATH_TCLCONFIG and SC_PATH_TKCONFIG.
Add FreeBSD (closes [d6d60efd35]) and OpenBSD 8.6 paths.
2018-06-15 10:24:06 +00:00
dgp fd7ecfb877 missing parts 2018-06-14 18:39:34 +00:00
jan.nijtmans 14994d8a85 Merge trunk. Some more size_t additions in parameters/fields 2018-06-14 18:31:24 +00:00
dgp 919ec44584 merge 8.7 2018-06-13 16:58:38 +00:00
stu eccaf23657 Don't call getsockname(2) in Tcl_MakeFileChannel(3) unless absolutely necessary.
Closes RFE [0ac9d06895].
Permits better constraining of Tcl/tclsh via OpenBSD's pledge(2) or similar mechanisms.
2018-06-13 16:15:27 +00:00
dgp 0d36d5f3d8 merge 8.7 2018-06-12 18:03:09 +00:00
dgp a54459bed6 close fork 2018-06-12 18:02:24 +00:00
dgp d8264cbb73 merge 8.7 2018-06-12 17:54:09 +00:00
fbonnet 7fe9e1b90c Removed thread-specific mutex lock counter and replaced by shared counter + thread ID for systems without PTHREAD_MUTEX_RECURSIVE 2018-06-09 17:20:15 +00:00
jan.nijtmans 57409ec3f0 merge 8.7 2018-06-08 07:00:39 +00:00
pooryorick 30a0e246b6 Give tests more time to finish since valgrind slows things down considerably. 2018-06-07 18:19:15 +00:00
dgp d60637c153 Just the [timerate] command for separate review and performance baseline. 2018-06-05 20:16:30 +00:00
dgp f206e0fb4b merge 8.7 2018-06-05 17:26:37 +00:00
sebres c2634b8813 merge 8.7 2018-06-05 09:12:35 +00:00
dgp 9db2475e4e merge 8.7 2018-06-04 13:10:18 +00:00
dgp 050e383cf2 merge 8.7 2018-06-04 13:08:54 +00:00
dgp 29bbdb74d3 merge 8.7 2018-06-04 13:07:15 +00:00
dkf accd885c10 TIP 500: Private Methods and Variables in TclOO 2018-06-03 13:18:11 +00:00
dgp 1545e31557 Rebase the sebres clock bounty work to the 8.7 branch. 2018-06-01 16:04:22 +00:00
jan.nijtmans f6fb514688 Merge 8.7 2018-05-31 07:21:14 +00:00
jan.nijtmans e4c4396db2 merge 8.7 2018-05-31 07:18:06 +00:00
sebres 71f7b946a6 amend to [98a00c62b4798792]: fixed sort of the tests 2018-05-30 11:49:19 +00:00
jan.nijtmans 76ffa2482f Merge 8.7 2018-05-30 07:15:56 +00:00
sebres 83a8197fe9 back-porting of tclclockmod done, merge current 8.6 2018-05-29 17:58:53 +00:00
sebres 153e32d613 fixed ticket [dc69e5ecf04313429fd202b1906cd85bb7888f95]: missing zones AKST/AKDT 2018-05-29 17:41:00 +00:00
sebres 1b580435fc forgotten flag "CLF_DAYOFWEEK" in one case, where day of week is set 2018-05-29 17:38:29 +00:00
sebres f185b8c243 revert explicit adding of validity mode suffix in all test-cases: used wrapper command "test" instead 2018-05-29 17:38:02 +00:00
sebres 991ad56e9c tests: sort test-files without extension (e. g. "clock" before "clock-ivm"). 2018-05-29 17:37:03 +00:00
sebres 371c0aec0b conditional test-call rewritten: realized via tests\clock-ivm.test to cover inverted default validation mode 2018-05-29 17:27:23 +00:00
sebres 2f35271c9d fixed week-based calculation if neither mmdd nor ddd available; 2018-05-29 17:26:12 +00:00
sebres 3cf665c0f5 validation rules: extended for day of year (and test covered now) 2018-05-29 17:25:48 +00:00
sebres ef90044383 amend after rebase to master: follow rename yyDayNumber to yyDayOfWeek 2018-05-29 17:24:41 +00:00
sebres 5fb141ae40 validation rules ready for scan/freescan; test cases extended; code review and clean-up;
running of test cases with and without validate.
2018-05-29 17:24:24 +00:00
sebres da19723bdc first simple validation rules introduced 2018-05-29 17:21:09 +00:00
sebres d1b1eb61ee try to re-implement validation rules for clock scan (option -valid 1|0), see http://core.tcl.tk/tcl/tktview?name=3475995 2018-05-29 17:20:36 +00:00
sebres bacdc67e69 Merge branch 'freescan_tz_fix' 2018-05-29 17:19:31 +00:00
sebres fc3ea33681 follow http://core.tcl.tk/tcl/info/a3463a55a6a27eed: Historical change affecting tests: Detroit did not observe Daylight Saving Time in 1967 2018-05-29 17:18:26 +00:00
sebres 86fa45a2d2 Fixed performance test-cases: several test-cases repaired to be feasible using original clock engine. 2018-05-29 17:16:56 +00:00
sebres e3d338650f fixed test-cases (regardless the current time zone) 2018-05-29 17:14:52 +00:00
sebres 88f8e603d9 FreeScan: rewritten lexer rules and some tokens for better space recognition; fewer conflicts (shift/reduce, reduce/reduce);
differentiate between TZ like "GMT+1" and relative offsets "GMT +1 day", etc.;
test-cases extended for new cases.
2018-05-29 17:14:36 +00:00
sebres 2c4913d479 Apply Flightaware DST fix 2018-05-29 17:13:50 +00:00
sebres 3681b8fdb5 try to fix GMT+0000, etc. **still wrong**, because of "GMT+1" and because of longest match "00:00 GMT +1000 days" (in this case "days" == "1 day")...
% clock scan "+1000 days" -base 100000000 -gmt 1
186364800
% clock scan "00:00 GMT +1000 days" -base 100000000 -gmt 1
100015200

% clock format [clock scan "GMT+10"]
Thu Sep 14 19:54:16 CEST 2017
% clock format [clock scan "GMT+1000"]
Thu Sep 14 10:04:20 CEST 2017
% clock format [clock scan "GMT+10"]
Thu Sep 14 19:54:23 CEST 2017
% clock format [clock scan "GMT-1000"]
Fri Sep 15 06:04:39 CEST 2017
%
2018-05-29 17:12:28 +00:00
sebres 9b3dad29d7 FreeScan: repair scanning date/time with TZ using '+', ex.: "31 Jan 14 23:59:59 +0100", additionally another TZ formats can be used now (token [zone] used instead of sequence '-' tNUMBER); test cases extended.
Closes http://core.tcl.tk/tcl/tktview?name=5019748c73
Cherry picked from fossil branch "sebres_clock_tz_fix", check-in [5f72c863f17145b4]
2018-05-29 17:11:52 +00:00
sebres 743a4fee3d replace unneeded calculation of seconds of day (already available in field secondOfDay) 2018-05-29 17:11:09 +00:00
sebres 35b9322dc3 fixed multi-threaded race condition, if the same format will be first time used by 2 threads simultaneously:
assign tokenized lists (scnTok/fmtTok) to format storage firstly if it get ready.
2018-05-29 17:10:51 +00:00
sebres a194fa9779 code review and cleanup (remove unused code) 2018-05-29 17:09:48 +00:00
sebres b8ef30620b code review and cleanup (remove unused code) 2018-05-29 17:04:51 +00:00
sebres 46c8ea3458 Added max permitted threshold (buffer size > result size) in percent, to directly return the buffer without reallocate (don't affect small formats with size < 80 (MIN_FMT_RESULT_BLOCK_ALLOC)) 2018-05-29 17:03:28 +00:00
sebres 10673db0ce further optimization: better cache for GMT-timezone + minimize (re)allocation of buffers 2018-05-29 17:02:57 +00:00
sebres 14c5c590e0 code review: micro optimizations 2018-05-29 17:01:00 +00:00
sebres 533ca10a79 generic\tclStrIdxTree.c: bug fix (lost abbreviation), if tree will be built from 2 lists, and the short form differentiate from long form ("jan." vs "january", note the dot-char), don't use longest form - should be split in 2 entries with common parent "jan".
Thus use simple case (don't split) only if found item is covered in full (e. g. "jan" vs "january", note without dot-char).
Test covered now (clock-29.181x, locale "fr") - `clock scan [clock format 0 -format {%a %d-%m-%Y} -locale fr] -format {%a %d-%m-%Y} -locale fr`
2018-05-29 16:59:22 +00:00
sebres 916a8e7276 performance: GetMonthDay re-implemented using most faster algorithm (without cycle). 2018-05-29 16:47:02 +00:00
sebres baa4ae5c90 try to resolve warnings by some forwards declarations: redefinition of typedef 'ClockScanToken' is a C11 feature [-Wtypedef-redefinition] 2018-05-29 16:45:56 +00:00
sebres ae8248cd39 fixed test case clock-0.1 "auto-loading of ensemble and stubs on demand" - makes no sense if tclclockmod loaded. 2018-05-29 16:45:07 +00:00
sebres 2293dabf3f Initialize prevf to fix (used before set) warning.
* Prevf doesn't get used at line 145 unless `prevItem != NULL` and prevf also gets set in the same block, so this is safe.
2018-05-29 16:42:27 +00:00
sebres 90c1f734c0 tests-perf\test-performance.tcl: ported from sebres-8-6-event-perf-branch (common test performance framework), removed from "tests-perf\clock.perf.tcl" and used as include. 2018-05-29 16:40:26 +00:00
jan.nijtmans ba6f0054c4 merge 8.7 2018-05-29 07:42:40 +00:00
jan.nijtmans f2ec60553a merge 8.7 2018-05-27 16:32:05 +00:00
jan.nijtmans 9ae8deb0b4 merge 8.7 2018-05-27 14:17:51 +00:00
jan.nijtmans 5e1789954d Convert ScanElement/ConvertElement-related functions to use size_t in stead of int 2018-05-27 13:59:29 +00:00
jan.nijtmans 168a0bba16 Merge 8.7. Modify various other functions to use size_t in stead of int arguments 2018-05-27 12:49:05 +00:00
dgp 50f0f668e5 merge 8.7 2018-05-26 13:21:44 +00:00
fbonnet b91a2765ae TIP #509: Implement reentrant mutexes on all platforms 2018-05-25 19:43:23 +00:00
jan.nijtmans 020fea0acd merge trunk 2018-05-25 06:55:17 +00:00
jan.nijtmans 51ac01d942 merge 8.6 2018-05-25 06:53:47 +00:00
fbonnet fae1c11488 Create new branch named "tip-509" 2018-05-24 16:26:16 +00:00
dgp 61169e4e9e merge 8.7 2018-05-24 13:04:05 +00:00
dgp 2db0464fd9 merge 8.7 2018-05-24 12:46:07 +00:00
dgp 202eeb707c merge 8.7 2018-05-24 12:24:54 +00:00
jan.nijtmans ca0f6f2273 merge trunk 2018-05-23 20:09:24 +00:00
jan.nijtmans a9e7c22c38 merge 8.7 2018-05-23 19:31:59 +00:00
dgp 94314d3409 merge 8.7 2018-05-23 13:43:57 +00:00
jan.nijtmans ae73bae096 merge 8.7 2018-05-22 20:57:12 +00:00
jan.nijtmans 7bc7f4397f merge 8.7 2018-05-21 08:13:47 +00:00
jan.nijtmans 1489bcfe34 merge 8.7 2018-05-19 05:18:47 +00:00
jan.nijtmans 37c4a581ad Merge 8.7, but keep TCL_THREADS undefined in tcl.h (since that's no longer necessary) 2018-05-17 19:05:37 +00:00
jan.nijtmans cfd3e75337 merge 8.7 2018-05-14 19:20:15 +00:00
jan.nijtmans 33610dd48f merge 8.7 2018-05-13 13:55:11 +00:00
jan.nijtmans 1f7ca2ff69 de-duplicate code in win32 panic implementation. Also eliminate gcc compiler warning. 2018-05-13 13:54:46 +00:00
dgp 5eafb95b32 merge 8.7 2018-05-11 11:30:33 +00:00
dgp 2a340ce4c1 merge 8.7 2018-05-11 11:26:35 +00:00
dgp ae6192f9cb merge 8.7 2018-05-11 11:26:20 +00:00
jan.nijtmans c3b1e9053b Merge 8.7 2018-05-11 10:06:22 +00:00
jan.nijtmans cfb0d67424 merge 8.7 2018-05-11 09:15:24 +00:00
dgp b25aceb078 merge 8.7 2018-05-09 16:01:14 +00:00
dgp 56af8c1770 merge 8.7 2018-05-08 15:22:49 +00:00
jan.nijtmans 97b08c9a24 merge 8.7 2018-05-07 07:42:03 +00:00
José Ignacio Marín b97b608974 Update TZ info to tzdata2018e. 2018-05-04 19:07:22 +00:00
oehhar 7a91dd767e Syntax error in msgcat documentation fixed. Ticket [af69c6966d] 2018-05-03 16:24:05 +00:00
jan.nijtmans f61c3bdb28 Start implementing TIP #497. regexp's now are >BMP-aware. WIP 2018-05-01 19:02:32 +00:00
jan.nijtmans 48a249a15e merge 8.7 2018-05-01 18:43:55 +00:00
jan.nijtmans 678622482a Merge 8.7 (= upgrade to Unicode 11 beta) 2018-04-29 21:15:10 +00:00
jan.nijtmans c23982e3c2 Now really fix [9f3c253df5eec5669673d05fe3a51e4afcf99418|9f3c253df5] : Tcl build broken on Win. (tested on Visual Studio 2017) 2018-04-29 20:02:48 +00:00
jan.nijtmans a85834a18e Merge 8.7 2018-04-26 08:33:30 +00:00
jan.nijtmans 36aca800d0 Fix MSVC build [9f3c253df5] 2018-04-25 21:57:27 +00:00
dgp 044bd42331 merge 8.7 2018-04-25 13:39:44 +00:00
dgp 4d9ba4a652 merge 8.7 2018-04-25 13:02:35 +00:00
dgp a14cef18c0 merge 8.7 2018-04-25 11:49:20 +00:00
dgp 9ff5b7077a Plug memory leak handling circular path values. 2018-04-25 11:09:53 +00:00
andy b104b5ce6e Merge fork 2018-04-24 23:00:56 +00:00
dgp 351c77bca3 silence compiler warning 2018-04-24 14:02:49 +00:00
dgp c1555b7cfd merge 8.7 2018-04-24 13:59:43 +00:00
dgp a794e440ae Merge 8.7 2018-04-24 13:51:12 +00:00
jan.nijtmans 1905291fed merge 8.7 2018-04-23 15:07:29 +00:00
dgp 09a6e8adca merge 8.7 2018-04-23 13:53:04 +00:00
dgp d513bef710 merge 8.7 2018-04-22 13:28:42 +00:00
dgp 751fe9de93 merge 8.7 2018-04-20 16:55:30 +00:00
jan.nijtmans 0569fc46c8 merge 8.7 2018-04-20 10:18:29 +00:00
dgp 697d8c5398 merge 8.7 2018-04-19 02:51:50 +00:00
dgp bdc679352c merge 8.7 2018-04-17 14:39:42 +00:00
jan.nijtmans b013797f96 Merge trunk. Update (internal) Trim* functions to use size_t 2018-04-16 23:01:00 +00:00
dgp e42804a0c2 merge 8.7 2018-04-16 13:41:14 +00:00
jan.nijtmans 368acc3d50 Fix [9f3c253df5eec5669673d05fe3a51e4afcf99418|9f3c253df5]: Tcl build broken on Win. Re-introduce TCL_NORETURN1, apparently still needed on MSVC. 2018-04-15 23:06:00 +00:00
jan.nijtmans 5bef70bd07 Merge trunk 2018-04-15 22:01:00 +00:00
andy 4f69e81ae0 Fix documentation typo 2018-04-12 01:58:52 +00:00
dgp 48ed067359 merge 8.7 2018-04-07 17:12:14 +00:00
dgp 7234985a63 merge 8.7 2018-04-07 17:07:26 +00:00
dgp 434c0fa7fb Merge 8.7. Update two macros to TIP 445. 2018-04-06 19:14:48 +00:00
dgp 50698aacbf merge 8.7 2018-04-05 17:59:28 +00:00
dgp b86f569b11 merge 8.7 2018-04-05 15:38:14 +00:00
dgp 754c5a5fe1 merge 8.7 2018-04-05 13:36:34 +00:00
dgp c848d68793 merge 8.7 2018-03-30 20:09:21 +00:00
dgp 4cc60d34fb merge 8.7 2018-03-30 20:08:10 +00:00
dgp 3fe69cba13 merge 8.7 2018-03-30 19:51:05 +00:00
dgp 27f230c6bf merge 8.7 2018-03-30 19:37:21 +00:00
dgp a3204f806c Rebase TIP 502 draft implementation. 2018-03-30 12:32:22 +00:00
jan.nijtmans e1e6b685fd merge 8.7 2018-03-25 19:21:11 +00:00
jan.nijtmans cc19135f2e merge 8.7 2018-03-25 17:43:52 +00:00
José Ignacio Marín 2cf7904bd2 Update TZ info to tzdata2018d. 2018-03-24 10:22:06 +00:00
dgp a6454e20a4 A compiler for [string insert] mirroring the one for [linsert]. 2018-03-21 16:26:11 +00:00
dgp 344b135505 Rebooting a [string insert] implementation branch, bringing over pieces
from the past branches and merging against the updated index parsing
machinery.
2018-03-21 15:31:38 +00:00
dgp 84fe9556f1 merge 8.7 2018-03-20 19:58:27 +00:00
jan.nijtmans c20405e576 Merge-mark (here makefile.vc still had the correct CRLF line-endings) 2018-03-15 21:02:00 +00:00
dgp be8b7d25f6 merge 8.7 2018-03-15 14:23:18 +00:00
dgp 795355ee43 merge 8.7 2018-03-15 11:11:33 +00:00
dgp 2977f2ab44 merge 8.7 2018-03-15 00:01:37 +00:00
dgp 8ecdd7277d merege 8.7 2018-03-14 18:09:20 +00:00
dgp 93e9d2457c merge 8.7 2018-03-14 17:21:29 +00:00
dgp 3f7e1dc18f merge 8.7 2018-03-14 16:17:48 +00:00
dgp 6111cf68fe merge 8.7 2018-03-14 05:51:18 +00:00
dgp f8081ac245 merge 8.7 2018-03-13 17:30:00 +00:00
dgp a14ab9eecb merge 8.7 2018-03-12 16:00:11 +00:00
dgp ccb7c3b60b merge 8.7 2018-03-12 14:49:44 +00:00
dgp 0bef3861ff merge 8.7 2018-03-11 22:42:27 +00:00
dgp c5ae3a0a2d merge 8.7 2018-03-11 21:42:22 +00:00
dgp c7e8d507d9 merge 8.7 2018-03-11 12:33:16 +00:00
dgp dc5861414a merge 8.7 2018-03-10 15:55:38 +00:00
jan.nijtmans cb242c0d50 Merge 8.7 2018-03-07 21:41:00 +00:00
dgp 3616fc519b merge 8.7 2018-03-06 13:50:45 +00:00
dgp bd9f2eb15d merge 8.7 2018-03-06 13:45:45 +00:00
dgp 24c4a4cc6e Remove all the code supporting legacy opcodes.
Restructure to pave the way for re-ordering the opcode table, if we can
agree that some other order is better.
2018-03-06 13:37:22 +00:00
dgp 683e97521e merge 8.7 2018-03-06 13:21:10 +00:00
dgp e5f3c1495b Compiler warning in a --enable-symbols=compile build 2018-03-06 12:10:45 +00:00
dgp 057d325d35 Remove disabled code and reformat. 2018-03-06 12:02:11 +00:00
dgp 54654ae7e4 Convert macros to enums - constrained by need for matching table. 2018-03-06 05:27:21 +00:00
dgp a6dd04e6da experiment 2018-03-06 04:08:54 +00:00
dgp 14a3439dd8 Remove all code supporting legacy instructions. 2018-03-05 22:16:03 +00:00
dgp 695856b85c unbreak 2018-03-05 20:58:32 +00:00
dgp d07756fc70 WIP removing bytecode instructions that are no longer issued. 2018-03-05 20:30:38 +00:00
dgp 79c79df0e1 merge 8.7 2018-03-05 20:05:45 +00:00
dgp 1dbb35b63b merge 8.7 2018-03-05 17:18:14 +00:00
dgp 2e1e641d75 merge 8.7 2018-03-05 17:16:50 +00:00
dgp 5fd49d1907 Merge 8.7; avoid checkin converting TclGetNumberFromObj to TclParseNumber. 2018-03-05 16:09:08 +00:00
jan.nijtmans aef69d0b0f Merge 8.7 2018-03-01 22:37:00 +00:00
jan.nijtmans bfb19782c9 Merge 8.7 2018-03-01 21:06:20 +00:00
dgp 7024801722 merge 8.7 2018-03-01 20:20:55 +00:00
dgp 40dfdbd929 Avoid full list conversion when we can cheaply discover a multi-element list
is not possible.
2018-03-01 19:30:15 +00:00
dgp 0cb6effe14 Continue consistent use of LLONG_MIN and LLONG_MAX. 2018-03-01 04:19:37 +00:00
dgp a0c07fcf28 merge 8.7 2018-03-01 04:13:47 +00:00
dgp 221f1bc18e Use mp_isneg() as appropriate. 2018-02-28 13:40:36 +00:00
dgp c0c1cce296 merge 8.7 2018-02-28 13:38:01 +00:00
dgp a628ce605f merge 8.7 2018-02-27 23:17:17 +00:00
dgp 3607c177d9 Don't save indices with values outside the int range in bytecode. 2018-02-27 22:35:24 +00:00
jan.nijtmans 2461121868 Merge trunk 2018-02-27 21:55:00 +00:00
jan.nijtmans b31a3b3d70 Merge 8.7 2018-02-27 21:12:00 +00:00
dgp e1efe253d2 Much more progress expanding the vocabulary of index values, and getting
results that make more intuitive sense.  Still a few TODOs and tests to update.
2018-02-27 18:20:44 +00:00
dgp 544d338e0e Work In Progress on index value reform -- not working. 2018-02-27 13:13:11 +00:00
dgp fa036d2b99 merge 8.7 2018-02-23 18:10:09 +00:00
dgp a9e916f1b9 merge 8.7 2018-02-23 18:01:26 +00:00
jan.nijtmans 0744802578 merge trunk 2018-02-22 21:17:14 +00:00
jan.nijtmans f5bf130f05 merge core-8-branch 2018-02-22 20:09:33 +00:00
jan.nijtmans 701d9dbe89 Use internalRep.wideValue as internal representation for booleans. This simplifies the handling of "int" resp "boolean", sharing its internal representation. 2018-02-15 19:54:00 +00:00
dgp 64ef84994a merge 8.7 2018-02-15 18:30:34 +00:00
dgp c908681186 merge 8.7 2018-02-15 18:24:22 +00:00
dgp 3b3a5ff07f Better range checking in "string index". Add test-case to prove point.
This opens a large discussion on what the right valid range for index
values should be and what overflow behavior should be. New branch opened
to answer those questions completely.
2018-02-15 17:24:40 +00:00
jan.nijtmans 494a47ee6e Merge core-8-branch 2018-02-14 22:42:00 +00:00
jan.nijtmans f9a0feeb4b fix test-cases, account for differences between Tcl 8.7 and 9.0 2018-02-14 20:59:37 +00:00
jan.nijtmans fcfee868a9 merge core-8-branch 2018-02-14 20:43:51 +00:00
dgp e239fa05dd merge 8.7 2018-02-14 14:52:18 +00:00
dgp e4364f45cc merge 8.7 2018-02-14 14:50:24 +00:00
hypnotoad c5a85dbfdc Correcting the string tests 2018-02-13 19:22:31 +00:00
hypnotoad d49ccd64f2 Ok.. that was all it needed 2018-02-13 19:10:25 +00:00
hypnotoad 2815504547 Implemetation of tip 501.
Note: The build fails with:

bad stack depth computations: is 0, should be 1
Abort trap: 6

When "string is dict" is called
2018-02-13 18:55:31 +00:00
dgp 967136cc0f merge 8.7 2018-02-09 18:52:04 +00:00
dgp 19d052ff26 merge 8.7 2018-02-09 18:45:02 +00:00
jan.nijtmans 5335ab79e5 remove unused stub entries (now that those are macros)
Moved checkin off trunk onto dev branch jn-unused-stubs
because it causes many test suite segfaults, apparently
releated to Tcl_Channels.

Moved back onto trunk. segfaults came from a prior install
of the Thread package that became imcompatible with this
change in the stubs table.  Will followup on TCLCORE.
2018-02-06 22:43:00 +00:00
jan.nijtmans cb2f9cccfb Some more complient API changes 2018-02-06 21:20:00 +00:00
dgp 90806d3525 merge 8.7 2018-02-06 21:11:01 +00:00
jan.nijtmans 346aa04836 merge trunk 2018-02-06 21:08:35 +00:00
jan.nijtmans 6ce7eb980b merge core-8-branch 2018-02-06 20:54:35 +00:00
José Ignacio Marín 6bd80d67e4 Update TZ info to tzdata2018c. 2018-02-02 09:21:35 +00:00
apnadkarni e905a75c0f Fix INCLUDE_INSTALL_DIR def when building against Tcl source. Bump rules.vc to 1.2 2018-02-02 06:18:24 +00:00
jan.nijtmans 66b69b8d36 Change Tcl_Token definition (int -> size_t). Many related code-changes. 2018-01-31 12:18:58 +00:00
dgp 24886887f9 merge 8.7 2018-01-29 15:36:13 +00:00
jan.nijtmans 8a2f752e51 merge trunk 2018-01-29 15:05:34 +00:00
jan.nijtmans ee2574ddce merge core-8-branch 2018-01-29 15:04:33 +00:00
jan.nijtmans cc74cb8525 merge trunk 2018-01-29 11:36:22 +00:00
jan.nijtmans e543dbc09c merge core-8-branch 2018-01-26 10:26:06 +00:00
jan.nijtmans 32aa419154 merge core-8-branch 2018-01-24 10:01:29 +00:00
jan.nijtmans 010f610a80 Don't register oldBooleanType any more. And rename "booleanString" to "boolean" in tclBooleanType. 2018-01-23 15:02:28 +00:00
dgp c0012125d2 merge 8.7 2018-01-23 13:29:34 +00:00
dgp 102d58a165 merge mark 2018-01-22 13:43:05 +00:00
jan.nijtmans 3c6933efc0 merge core-8-branch. Declare CONST86 as deprecated in Tcl 9.0 2018-01-20 16:08:21 +00:00
jan.nijtmans 9e929c12d5 merge core-8-branch 2018-01-20 14:38:38 +00:00
jan.nijtmans a43cab006e No longer use (the undocumented) CONST86 anywhere, just keep the define in tcl.h. 2018-01-19 16:08:02 +00:00
jan.nijtmans 93fa41f6c7 Now really remove Tcl_EvalTokens/Tcl_Backslash as promised in the TIP.
And remove library/tzdata/SystemV/* which contains non-standard timezones. See: [d3c5f2eb2ff63f10] They were originally gone since the tzdata2014f update, but it's unwise to do that in a patch release.
Some documentation updates.
2018-01-19 15:17:45 +00:00
dgp 896002d66a merge 8.7 2018-01-18 13:32:44 +00:00
stu eb5da6ae82 OpenBSD now has AI_ADDRCONFIG. 2018-01-17 19:01:03 +00:00
jan.nijtmans 4786f9814b clean-up some more remainings of the Itcl hack. Taken over from "novem". 2018-01-17 16:01:42 +00:00
jan.nijtmans d695e02d2f Remove obsolete documentation (belonging to now-removed functions). Remove obsolete 8.4 bytecodes. And a few other (internal) macro's which are no longer in use. 2018-01-17 14:17:21 +00:00
jan.nijtmans 1c58e29da2 Remove Tcl_CaseObjCmd from tclInt.h as well (was missing in previous commit) 2018-01-17 12:56:22 +00:00
jan.nijtmans ed6aa022a6 TIP #485 implementation, Tcl 9.0 part: Realy remove code which was declared deprecated in 8.7 2018-01-17 12:45:01 +00:00
jan.nijtmans 0019582fd2 merge core-8-branch 2018-01-12 11:18:48 +00:00
dgp 4389db676e merge 8.7 2018-01-11 14:09:13 +00:00
jan.nijtmans d34c6b6526 merge core-8-branch 2018-01-10 14:33:54 +00:00
pooryorick b40ed15606 Rearrange a few lines TclRenameCommand to reduce operations. 2018-01-08 17:36:00 +00:00
dgp 904582dd30 merge 8.7 2018-01-04 02:40:00 +00:00
dgp 1af6acb542 merge 8.7 2017-12-29 16:16:14 +00:00
jan.nijtmans 1402f26fc8 New Tcl_GetIndexFromObjStruct signature using size_t 2017-12-28 23:23:22 +00:00
jan.nijtmans 69384ff89c Fix compilation using -DUSE_TCLALLOC=1 2017-12-28 22:49:15 +00:00
jan.nijtmans 3a84b4db7e merge trunk 2017-12-28 21:59:35 +00:00
jan.nijtmans d08f08a24d merge core-8-branch 2017-12-28 21:16:13 +00:00
jan.nijtmans 7172ae9071 merge core-8-branch 2017-12-28 18:53:23 +00:00
jan.nijtmans 69be965a23 change ClientData -> void * in a lot of places (mainly header files) 2017-12-28 11:32:40 +00:00
jan.nijtmans 3408294224 Merge trunk.
Rename Tcl_MemAlloc and friends back to Tcl_Alloc, as this renaming turns out not to be necessary.
Make everything compile/run with TCL_MEM_DEBUG=1 (a few signatures were still not correct)
2017-12-27 21:41:31 +00:00
dgp e9ccb8b496 merge 8.7 2017-12-27 14:09:06 +00:00
pooryorick 63224df965 TclOO: Remove unneeded name manipulation from TclOOCopyObjectCmd. 2017-12-26 12:54:00 +00:00
apnadkarni b067895cc4 Merged core-8-branch: replace ifdef TCLDIR with compare against empty string 2017-12-26 03:33:35 +00:00
jan.nijtmans e754f70125 merge core-8-branch 2017-12-23 18:41:29 +00:00
apnadkarni 2a5955ee50 Merge nmake rules 1.1 2017-12-23 08:05:02 +00:00
jan.nijtmans 9694587a1a merge trunk 2017-12-22 15:52:08 +00:00
jan.nijtmans 264c508ca4 merge core-8-branch 2017-12-22 15:48:07 +00:00
jan.nijtmans 7fdcf0c76d merge-mark 2017-12-21 07:51:08 +00:00
pooryorick 7835ba29c7 Further fix for issue [ba1419303b4c]: Delete a namespace for an ensemble having a
deletion trace deletes its namespace: segmentation fault.
2017-12-20 18:22:59 +00:00
jan.nijtmans 8bafabac98 merge trunk 2017-12-20 13:38:17 +00:00
jan.nijtmans a15b801bfb Remove the Tcl_FindHashEntry/Tcl_CreateHashEntry stub entries, as those are actually macro's. 2017-12-20 12:30:23 +00:00
jan.nijtmans 1b40a62611 Change hash/index/mask fields to type "unsigned int", because that's how hash values are generally stored. This eliminates the need for PTR2UINT/UINT2PTR in various places. 2017-12-20 12:02:34 +00:00
pooryorick 2bfe68441a Fix for issue [ba1419303b4c]: Delete a namespace for an ensemble having a deletion
trace deletes its namespace: segmentation fault.
2017-12-20 09:19:59 +00:00
dgp 8ffa3470bb merge 8.7 2017-12-19 21:01:46 +00:00
dgp 82512215ff [586e71dce4] Exeception handling at level #0 by EvalObjv 2017-12-19 21:00:55 +00:00
dgp 77c0d1662a merge 8.7 2017-12-19 16:22:24 +00:00
jan.nijtmans a430544f4a merge core-8-branch. Also change some internal refCount's from int to size_t. 2017-12-19 12:23:19 +00:00
jan.nijtmans 0a2389d0ab merge core-8-branch 2017-12-18 11:48:35 +00:00
jan.nijtmans 4a98f5042e merge-mark 2017-12-15 21:28:35 +00:00
jan.nijtmans 1bcaf97bfd merge trunk 2017-12-15 19:55:16 +00:00
dgp 62545de5ce merge mark 2017-12-15 17:04:26 +00:00
jan.nijtmans ab6e69444f Merge TIP #488 implementation.
Some clean-up in tommath implementation (remove internal stub entries which are no longer needed)
2017-12-15 15:02:42 +00:00
apnadkarni 8bc8d823bb core-8-branch merge: Use nmakehlp -L to locate directories 2017-12-13 10:34:58 +00:00
apnadkarni 0ebe3d394d Add -L option to nmakehlp to locate directories 2017-12-12 17:34:13 +00:00
apnadkarni 5501e78098 Merge from core-8-branch - install stubs and headers where present 2017-12-11 16:42:41 +00:00
jan.nijtmans 5de1c8c6a5 merge core-8-branch 2017-12-10 14:39:00 +00:00
pooryorick e58661a87e Ensure that an automatically-named TclOO object has the same name as its
namespace.
2017-12-10 00:01:01 +00:00
jan.nijtmans 5b605792cb merge core-8-branch.
Remove stub entry for TclWinGetPlatformId(), as it is no longer needed. Is a macro now.
2017-12-09 16:13:58 +00:00
apnadkarni 5724764152 TIP477 merge: reformed nmake build system 2017-12-08 16:54:18 +00:00
jan.nijtmans ae26eec096 merge 8.7 2017-12-07 12:36:16 +00:00
dgp 8fa6374b22 merge 8.7 2017-12-06 21:00:51 +00:00
dgp 2623503549 merge 8.7 2017-12-06 20:48:49 +00:00
dgp a7bb7b19d6 merge 8.7 2017-12-06 20:03:07 +00:00
jan.nijtmans acb6a88df5 doc fixes 2017-12-06 15:40:52 +00:00
dgp adb60835f7 merge 8.7 2017-12-06 13:29:22 +00:00
dgp 1e64c9f8b2 Adapt the bytearray accommodation of Tcl_CharLength() for 8.7+. 2017-12-06 13:28:48 +00:00
dgp fb62f4567b merge 8.7 2017-12-06 13:16:33 +00:00
dgp b68bab17c0 [ce3a211dcb] Failed file normalize when tail is empty string. 2017-12-06 13:07:23 +00:00
jan.nijtmans a49d61a64c merge-mark "novem-bighash": just mark that the contents of this branch are already integrated in the memory-API branch. 2017-12-06 13:02:49 +00:00
jan.nijtmans fe4ff7a3fb merge core-8-branch 2017-12-06 12:27:50 +00:00
dgp b6b032fc3b [4f6a1ebd64] Stop crash when same value passed to the -map and -subcommands options of ensemble configuration. 2017-12-05 15:59:09 +00:00
jan.nijtmans 71c032c816 merge trunk 2017-12-01 15:03:46 +00:00
jan.nijtmans 200910b9c1 merge core-8-branch. Various cleanup: unused structure names, unused #defines. Change some "epoch"-related fields from int to size_t. Nothing functional. 2017-12-01 13:53:51 +00:00
jan.nijtmans 0bd09c4106 remove many test-cases related to tcl_precision 2017-12-01 12:24:25 +00:00
jan.nijtmans ff91f80124 TIP 488: Remove tcl_precision 2017-12-01 11:55:28 +00:00
jan.nijtmans e802927981 Remove stub entries for Tcl_EvalObj()/Tcl_GlobalEvalObj(). Since those functions are actually macro's translating to Tcl_EvalObjEx(), those stub entries don't serve any purpose any more. 2017-12-01 11:03:43 +00:00
dgp 49e332ded2 merge 8.7 2017-11-30 17:52:09 +00:00
dgp 9d4d161834 merge 8.7 2017-11-30 17:29:55 +00:00
jan.nijtmans 111f52def6 merge-mark 2017-11-30 15:27:45 +00:00
jan.nijtmans 9dd792a540 8.[67] -> 9.0 in a few more places 2017-11-30 14:48:03 +00:00
jan.nijtmans 20bbe0a790 merge core-8-branch 2017-11-30 14:38:32 +00:00
jan.nijtmans 94b624f11c merge core-8-branch 2017-11-30 13:23:10 +00:00
dgp 5a9014a650 Follow header file conventions. 2017-11-29 15:19:04 +00:00
dgp 079887fe42 merge 8.7 2017-11-29 14:54:21 +00:00
jan.nijtmans a6a61c4ca6 merge core-8-branch 2017-11-29 12:32:38 +00:00
pspjuth 121654ecd8 merge core-8-branch 2017-11-21 22:47:44 +00:00
jan.nijtmans 4bf4b7d35c merge trunk 2017-11-21 10:16:58 +00:00
jan.nijtmans d0e9170c39 Remove TclCopyChannelOld() function. Should have been part of [b03c4194f001be0b|this] earlier commit. 2017-11-20 12:13:29 +00:00
jan.nijtmans 75a121d773 merge core-8-branch 2017-11-20 10:23:13 +00:00
jan.nijtmans adc8a8bbdf merge core-8-branch 2017-11-20 09:28:02 +00:00
jan.nijtmans 466e0f29c3 TIP #422, Tcl 9.0 part: Don't Use stdarg.h/va_list in Public API 2017-11-17 10:50:02 +00:00
jan.nijtmans 9672bba339 Change TclOO epoch fields from int to size_t. 2017-11-16 15:34:14 +00:00
jan.nijtmans fd3fbe8801 Handle Tcl_UtfAtIndex/Tcl_UniCharAtIndex for extended index range. More field fixes. 2017-11-16 13:50:32 +00:00
jan.nijtmans 5534478fa1 re-base "novem-more-memory-API" to trunk. TIP not submitted yet, but upcoming. 2017-11-16 11:17:54 +00:00
dgp 8a227678b2 merge 8.7 2017-11-15 13:39:12 +00:00
jan.nijtmans de0ff2272e merge core-8-branch 2017-11-15 10:01:18 +00:00
jan.nijtmans b9216a9c1f merge core-8-branch 2017-11-15 08:56:25 +00:00
dgp c7c8527ce3 merge 8.7 2017-11-14 18:52:42 +00:00
dgp 43f411afeb [5d6de65036] [package require] with [package prefer stable] was not choosing available stable package. 2017-11-14 17:24:00 +00:00
jan.nijtmans a35ad3e794 Remove extra.unused2 field from struct Interp. It really is unused ... 2017-11-14 10:00:58 +00:00
jan.nijtmans 7dec4a7fc5 merge novem 2017-11-13 15:53:33 +00:00
jan.nijtmans 7590c5df93 Add back Tcl_Backslash(). Will be removed again when TIP #485 is brought in. Also revert some other API changes (unsigned long -> size_t), for which TIP's are still to be written. 2017-11-13 15:34:50 +00:00
jan.nijtmans 7cfe36d9ae merge novem 2017-11-13 11:47:41 +00:00
jan.nijtmans 1ce0780915 merge trunk 2017-11-13 11:25:35 +00:00
jan.nijtmans cd80622d5e merge core-8-branch 2017-11-13 11:17:23 +00:00
jan.nijtmans c515382280 merge trunk 2017-11-13 09:43:35 +00:00
jan.nijtmans 26c5e61700 merge tcl-9-cleanup (and also a minor bug-fix from core-8-branch). 2017-11-13 08:59:59 +00:00
dgp de9a7da4ba merge trunk 2017-11-09 14:40:30 +00:00
dgp 1462dc4b66 merge 8.7 2017-11-09 13:36:52 +00:00
jan.nijtmans d6acf8cfea merge trunk 2017-11-09 12:52:02 +00:00
jan.nijtmans c1f627b31e Fogot to remove the TclWinSetInterfaces() implementation. 2017-11-09 09:02:44 +00:00
dgp 4ed027b7bc merge trunk 2017-11-08 18:58:31 +00:00
dgp 258b9f4333 Also remove panicVA(). 2017-11-08 18:52:33 +00:00
jan.nijtmans a31c699833 Forgot TclpGetTime() 2017-11-08 16:12:29 +00:00
jan.nijtmans 9c9ce91ef5 Tcl-9 huge cleanup: Remove many unused internal functions which do nothing more than occupy the internal stub table. 2017-11-08 15:50:06 +00:00
jan.nijtmans 91229781db merge trunk 2017-11-08 09:40:33 +00:00
dgp 0a2f847ac9 merge 8.7 2017-11-08 03:32:07 +00:00
dgp dee7abd87b merge trunk 2017-11-08 03:23:35 +00:00
jan.nijtmans c38755a732 Re-base TIP #422 implementation to trunk. Remove Tcl_VarEvalVA() as well. TIP #422 is adapted accordingly. 2017-11-07 09:33:56 +00:00
jan.nijtmans 7417e2c917 merge trunk 2017-11-06 14:55:15 +00:00
dgp cc64de63b9 merge 8.7 2017-11-06 00:17:03 +00:00
jan.nijtmans 6222dc31ab merge-mark 2017-11-05 14:32:27 +00:00
jan.nijtmans 7e1ea05d53 merge trunk 2017-11-05 14:24:46 +00:00
dgp 728286b43f merge trunk 2017-11-03 19:25:33 +00:00
dgp 0708073b35 merge 8.7 2017-11-03 19:15:00 +00:00
dgp ca080daf7f merge trunk 2017-11-02 12:53:06 +00:00
dgp 9c75e1c5f8 TIP 422 implementation (rebase of branch novem-remove-va to trunk). 2017-11-01 14:46:28 +00:00
dgp 1d920f34c6 TIP 278 into novem. 2017-10-30 12:48:40 +00:00
dgp 2bc2789f8f TIP 345 into novem. 2017-10-30 12:43:33 +00:00
dgp f88eecc172 merge trunk 2017-10-30 12:03:14 +00:00
dgp f92a2c43b3 merge trunk 2017-10-30 03:35:23 +00:00
dgp c83d36abf0 merge trunk 2017-10-30 03:29:05 +00:00
dgp eda3104306 merge trunk 2017-10-27 15:20:19 +00:00
dgp 42ed459018 merge trunk 2017-10-27 13:12:21 +00:00
jan.nijtmans 67e505d2ab First implementation of [http://core.tcl.tk/tips/doc/trunk/tip/481.md|TIP #481]: Extend size range of various Tcl_Get*() functions 2017-10-27 08:45:13 +00:00
jan.nijtmans 3303fbcef8 merge trunk 2017-10-24 13:57:21 +00:00
Kevin B Kenny 5db79312af Historical change affecting tests: Detroit did not observe Daylight Saving Time in 1967 2017-10-24 13:35:40 +00:00
José Ignacio Marín 4f74d92f32 Update TZ info to tzcode2017c. 2017-10-23 17:12:00 +00:00
dgp 802b562cbf merge trunk 2017-10-20 12:44:00 +00:00
dgp 336cf18ae8 Merge core-8-6-branch (execpt file win/makefile.vc) 2017-10-20 12:36:40 +00:00
dgp d0c85905c4 merge trunk: 2017-10-20 12:34:45 +00:00
dgp 48ebe9c855 merge trunk 2017-10-13 16:39:14 +00:00
dgp 5e8c17ac4e merge trunk 2017-10-13 16:38:01 +00:00
jan.nijtmans 1152be81e6 merge novem 2017-10-12 15:23:34 +00:00
jan.nijtmans b11f15674d merge trunk 2017-10-12 15:21:25 +00:00
dgp 22ef6f7e0d merge trunk 2017-10-12 12:37:39 +00:00
jan.nijtmans aa484cae05 merge novem 2017-10-11 14:09:34 +00:00
jan.nijtmans 33538b8595 merge trunk 2017-10-09 14:28:07 +00:00
jan.nijtmans b54c19492b merge trunk 2017-10-09 12:55:09 +00:00
jan.nijtmans 7b1579d769 Merge trunk 2017-10-03 09:12:09 +00:00
jan.nijtmans 3b96c2260e Remove coffbase.txt and all references to it: It's not recommended by Microsoft any more. 2017-09-26 09:05:47 +00:00
dgp de970528d7 More TIP 445 conversion of the "path" Tcl_ObjType. 2017-09-22 14:11:45 +00:00
dgp 2af8b0203e Partial conversion of the "path" Tcl_ObjType to TIP 445 contributed by
Cyan Ogilvie.  This reworking also eliminates circular references in
the "path" values.  Test suite indicates the change works.  Don't know
what, if anything, was lost compared to the original Darley design.
2017-09-22 13:32:31 +00:00
dgp 3bd15d3a70 merge trunk 2017-09-22 13:05:36 +00:00
jan.nijtmans 99b72814d3 merge trunk 2017-09-22 08:49:19 +00:00
dgp d67fcf3f9c merge trunk 2017-09-20 16:17:32 +00:00
jan.nijtmans 4284797dbb merge trunk 2017-09-20 09:22:29 +00:00
jan.nijtmans 6a606d16fd merge trunk 2017-09-20 09:09:42 +00:00
dgp a65e5f86de merge trunk 2017-09-18 14:57:21 +00:00
jan.nijtmans 20677d90b8 merge trunk 2017-09-18 14:39:06 +00:00
jan.nijtmans 6f2b60cb33 merge trunk 2017-09-18 12:54:26 +00:00
dgp 8b268fb161 merge trunk 2017-09-18 11:59:56 +00:00
jan.nijtmans b608ba3fa4 Merge trunk 2017-09-18 10:07:04 +00:00
jan.nijtmans c1d1afd473 merge trunk 2017-09-15 13:36:31 +00:00
dgp 415a0e9de3 merge trunk 2017-09-14 14:12:26 +00:00
dgp c0aed167b8 merge trunk 2017-09-14 14:02:47 +00:00
jan.nijtmans 17d410dd99 merge trunk 2017-09-14 08:06:34 +00:00
jan.nijtmans ff718174aa Merge trunk 2017-09-13 10:42:18 +00:00
dgp 41765c8938 Rework [lset] internals to be sure outdated intreps get purged. 2017-09-12 17:01:55 +00:00
dgp de6b083f58 Make sure ListObjReplace invalidates outdated intreps. 2017-09-12 15:44:00 +00:00
dgp ed8604f566 Make sure ListObjAppendElement invalidates outdated intreps. 2017-09-12 15:18:46 +00:00
dgp bbcc51539b Revised dict value means we much invalidate existing intreps. 2017-09-12 13:23:40 +00:00
dgp b1dc2099c7 When we invalidate the string rep of a dict, that's a sign we need to
free all the intreps of that dict as well.
2017-09-12 13:22:46 +00:00
jan.nijtmans 1d028fa4e9 merge novem 2017-09-11 13:21:44 +00:00
dgp 89524bf484 merge trunk 2017-09-11 12:02:49 +00:00
jan.nijtmans 2556e9b109 merge trunk 2017-09-11 11:21:18 +00:00
jan.nijtmans 0d0ab7f829 merge novem 2017-09-10 13:35:18 +00:00
jan.nijtmans 75d248f10f Merge trunk 2017-09-09 16:26:06 +00:00
dgp 9b5022802e merge trunk 2017-09-05 12:41:30 +00:00
jan.nijtmans c4a6da31ec merge trunk 2017-09-04 14:03:39 +00:00
dgp d6ea58f110 merge trunk 2017-09-01 00:52:27 +00:00
jan.nijtmans 29821af817 merge trunk 2017-08-31 13:57:29 +00:00
oehhar 2b0e7061f5 http state 100 continue handling broken [2a94652ee1] 2017-08-31 09:46:40 +00:00
jan.nijtmans fc88994cde merge trunk 2017-08-31 08:41:34 +00:00
jan.nijtmans a0fe6c0579 merge trunk 2017-08-30 11:49:41 +00:00
jan.nijtmans f4c2386551 Merge trunk 2017-08-29 09:19:21 +00:00
dgp c53cfa6c6a merge trunk 2017-08-18 13:43:51 +00:00
dgp 83cbe41d4c merge trunk 2017-08-18 13:23:34 +00:00
andy 5381389cdd Merge trunk 2017-08-08 16:39:51 +00:00
andy 8bd48049f9 Merge trunk 2017-08-08 16:39:25 +00:00
sebres 08d9bb4c7c fixed overflow of year (resp. julianday), closes ticket [16e4fc3096]; test cases adjusted. 2017-08-08 15:19:18 +00:00
dgp e51352557d merge trunk 2017-08-04 13:25:25 +00:00
dgp dfd143bc6b merge trunk 2017-08-04 13:19:31 +00:00
dgp 159d4b2635 merge trunk 2017-07-18 13:39:34 +00:00
dgp dcf71727af merge trunk 2017-07-18 13:34:16 +00:00
dgp 5ebb774188 merge trunk 2017-07-06 16:52:28 +00:00
dgp b16fb594ee merge trunk 2017-07-06 16:52:15 +00:00
jan.nijtmans 5f88824dc9 merge trunk 2017-07-03 12:46:21 +00:00
jan.nijtmans 9dc2ed96d1 merge trunk 2017-07-03 08:32:30 +00:00
dgp 23c0ba0065 merge trunk 2017-06-29 11:29:05 +00:00
jan.nijtmans 7cf3a976b9 merge trunk 2017-06-28 13:45:13 +00:00
dgp 2ebce7dad7 merge trunk 2017-06-26 20:14:14 +00:00
dgp e6e15c60ca merge trunk 2017-06-26 20:13:31 +00:00
jan.nijtmans de7fffb534 merge trunk 2017-06-23 15:05:44 +00:00
jan.nijtmans 770651efae Merge trunk (but without %#d format, pending further decision and bug-fixing) 2017-06-23 09:14:38 +00:00
dgp a8960a0876 merge trunk 2017-06-22 13:45:53 +00:00
dgp cbe13543e4 merge trunk 2017-06-22 13:41:03 +00:00
dgp ba1388e7ae Silence compiler warning 2017-06-19 18:04:23 +00:00
dgp 0e99e9b2f2 Merge trunk. Improve test http-4.16 in robustness and result utility. 2017-06-19 17:56:54 +00:00
dgp 9bd337033d merge trunk 2017-06-19 17:37:33 +00:00
dgp c280d65fd0 merge trunk 2017-06-16 20:35:32 +00:00
dgp cca5a0c27a merge trunk 2017-06-16 20:28:53 +00:00
jan.nijtmans 4ac08a5375 merge novem 2017-06-09 11:48:54 +00:00
jan.nijtmans 54043c0ee1 merge trunk 2017-06-09 11:17:31 +00:00
jan.nijtmans ea967c949e merge trunk 2017-06-08 12:59:45 +00:00
jan.nijtmans b20173ba38 merge core-8-6-branch 2017-06-07 15:21:27 +00:00
sebres 12edf1f533 fixed wrong options suggestions by wrong args, like 'bad option "-base" ...' (for format) or 'bad option "-format" ...' (for add).
Note: sub-commands share common options table, because for the options often used the same literals (objects), so it avoids permanent "recompiling" of option object representation to indexType with another table.
2017-06-07 14:16:35 +00:00
jan.nijtmans 9e607ddb5a Clock options should be alphabetica (so "-base" first). Struct members should start with lowercase. 2017-06-07 12:38:39 +00:00
jan.nijtmans 33602d0a11 Fix LookupLastTransition() for behavior when tick < compVal, undo Tcl_EvalObjEx -> TclEvalObjEx change, eliminate two inline macro's which are only used once. Eliminate many unnecessary MODULE_SCOPE declarations (duplicated with header files) 2017-06-07 10:40:40 +00:00
jan.nijtmans 4b7fc1bb11 merge core-8-6-branch 2017-06-07 09:29:12 +00:00
dgp 4dc66d90aa merge trunk 2017-06-06 15:51:26 +00:00
dgp 9a51ddaa6e merge trunk 2017-06-06 13:48:14 +00:00
jan.nijtmans 0f81412091 merge trunk 2017-06-06 09:25:14 +00:00
sebres e72c67b399 removing "-compile" option on ensembles - allow to compile tcl-internal ensembles within namespace "::tcl::*" (apparently only having map for sub-commands). 2017-06-02 22:43:57 +00:00
sebres b81fc4d41d restored lost documentation of "timerate" 2017-06-02 21:51:35 +00:00
sebres bfa8e4f4dc amend fix default locale, (fixed everywhere - no current locale anymore for default, avoid set it after clear caches, etc.) 2017-06-02 21:48:40 +00:00
sebres ed0399c961 unix/makefile: add header dependencies 2017-06-02 20:45:03 +00:00
sebres 68b7104563 extends performance test cases for converting between locales / TZ, for multiple switching between locales / TZ by scan and format, etc. 2017-06-02 20:10:43 +00:00
sebres 6c2d2971a2 fix default locale: differentiate between no locale specified or "C" (en) and current locale (corresponds system language, resp. env(LANG)) 2017-06-02 20:10:16 +00:00
sebres a592eefcbe [win32] repair clock using system timezone (default :localtime) resp. locale for windows (broken after removal of registry-fix in [848d01b6ef]) 2017-06-02 20:09:53 +00:00
sebres 2fce52b2ae close small performance degradation if alternate between two time zones (e. g. convert from one to another): additionally to last used cache also previously used time zone. 2017-06-02 20:09:25 +00:00
sebres 750bed46fd close small performance degradation if alternate between two locales (e. g. convert from one to another): additionally to last used cache also previously used locale. 2017-06-02 20:09:10 +00:00
sebres d48588c89c Removed public interface to create smart-pointer to dictionaries "dict smartref", common locales catalog rewritten to hold internally onetime referenced merged locales (even as smart-ref). 2017-06-02 20:08:55 +00:00
sebres d5552e2fbe [win32] repair clock test-cases for windows, using system locale / TZ :localtime (broken after removal of registry-fix in [848d01b6ef]) 2017-06-02 20:07:10 +00:00
sebres 0cdd360369 Move "timerate" functionality to "::tcl::unsupported".
This partially reverts commit [848d01b6ef].
2017-06-02 20:06:28 +00:00
jan.nijtmans 449ce271b1 merge-mark core-8-6-branch (no changes) 2017-06-02 11:11:20 +00:00
jan.nijtmans 43f72f639e merge trunk 2017-06-02 11:08:57 +00:00
sebres 9011c35db1 missing static keyword for inline declarations 2017-06-02 06:53:35 +00:00
jan.nijtmans 242f56b093 merge trunk 2017-05-29 13:16:01 +00:00
sebres ccbd8395f4 [win32] optimized calibration cycle (makes Tcl for windows "RTS" resp. NRT-capable):
- the clock ticks never backwards (avoid it by negative drifts using comparison of times before and after calibration);
- more precise, smooth/soft drifting (avoids too large drifts, already after 10 iterations the drift gets fewer as 0.1 microseconds);
- because of more accurate drifting (aspire to the smallest difference), we can prolong calibration interval (up to 10 seconds by small tdiff-value);

Closes ticket [b7b707a310ea42e9f1b29954ee8ca13ae91ccabe] "[win32] NRT-only - NativeGetTime backwards time-drifts bug"
2017-05-23 21:57:13 +00:00
dgp 25084ac51a merge trunk 2017-05-23 12:52:09 +00:00
jan.nijtmans c2e3653931 merge trunk 2017-05-22 09:17:48 +00:00
dgp 9cbaed4d46 merge trunk 2017-05-19 13:00:59 +00:00
dgp 4c1161c24a merge trunk 2017-05-19 13:00:32 +00:00
jan.nijtmans 57c30acc7f merge trunk 2017-05-18 12:36:18 +00:00
sebres 05d83f7b1a back-ported branch sebres-8-6-timerate (new command "timerate" for 8.5) 2017-05-16 12:41:01 +00:00
dgp 5a70bbe10b merge trunk 2017-05-15 18:18:12 +00:00
jan.nijtmans 34944b264b merge trunk 2017-05-12 15:34:42 +00:00
dgp 3f00b2490d merge trunk 2017-05-08 16:22:22 +00:00
dgp 43e76a45e9 merge trunk 2017-05-08 16:14:10 +00:00
jan.nijtmans 0aeb0313c3 Merge trunk 2017-05-04 12:39:27 +00:00
jan.nijtmans f9abf48ecf merge novem 2017-05-04 11:35:55 +00:00
jan.nijtmans 01c5c4ed35 merge trunk 2017-05-04 10:42:54 +00:00
jan.nijtmans da02e63f0a Merge trunk 2017-05-01 08:47:57 +00:00
dgp 76e8da363b merge trunk 2017-04-27 12:54:33 +00:00
dgp e78b0c8945 merge trunk 2017-04-27 12:14:04 +00:00
dgp 7cfeb436e4 merge trunk 2017-04-21 12:44:30 +00:00
jan.nijtmans a3445370e1 merge trunk 2017-04-20 14:47:56 +00:00
jan.nijtmans fd86d4e6c9 merge trunk 2017-04-20 11:47:51 +00:00
dgp 8c56790861 merge trunk 2017-04-17 12:42:59 +00:00
dgp 1212cb034f merge trunk 2017-04-17 12:42:47 +00:00
jan.nijtmans ee6b4f6be2 merge trunk 2017-04-14 09:07:52 +00:00
jan.nijtmans 0e01219533 merge trunk 2017-04-12 14:33:26 +00:00
dgp 6c3fce3382 merge trunk 2017-04-12 13:36:47 +00:00
dgp 18a7f14fd0 merge trunk 2017-04-12 13:28:17 +00:00
jan.nijtmans 6f1a613456 merge trunk 2017-04-12 12:34:24 +00:00
jan.nijtmans d2ef001c49 merge trunk 2017-04-12 12:00:11 +00:00
jan.nijtmans ab6259370e merge trunk 2017-04-11 15:35:04 +00:00
dgp bc2940927e merge trunk 2017-04-11 14:14:05 +00:00
jan.nijtmans ede10ae95d merge trunk 2017-04-11 10:04:00 +00:00
jan.nijtmans 6db7cf0c22 merge-mark. No changes. 2017-04-06 15:27:18 +00:00
jan.nijtmans 72fc97ca20 Merge trunk (no actual modifications). Some 8.6 -> 9.0 version changes which still were forgotten. 2017-04-06 12:47:30 +00:00
dgp 5c21b9c7c7 merge trunk 2017-04-06 11:53:51 +00:00
jan.nijtmans 8648956074 merge trunk 2017-04-06 07:45:11 +00:00
jan.nijtmans 8a4445438c merge trunk 2017-03-31 15:18:07 +00:00
dgp 2b692ce09c merge trunk 2017-03-31 12:08:18 +00:00
jan.nijtmans bbbd34fc38 merge trunk 2017-03-31 09:20:18 +00:00
jan.nijtmans f01bb0828e merge trunk 2017-03-29 14:56:21 +00:00
dgp d236581f7b merge trunk 2017-03-29 14:35:44 +00:00
jan.nijtmans 190dc679f6 Merge trunk 2017-03-29 12:20:08 +00:00
jan.nijtmans 12be86ca29 merge trunk 2017-03-27 13:04:59 +00:00
jan.nijtmans bd92acfbe8 Merge trunk 2017-03-24 09:52:13 +00:00
José Ignacio Marín b3090df235 merge trunk 2017-03-23 08:45:36 +00:00
dgp 555cf46f2a merge trunk 2017-03-21 14:30:29 +00:00
jan.nijtmans b72bf907ec Merge trunk. 2017-03-21 09:05:32 +00:00
dgp 00a454298c merge trunk 2017-03-20 12:55:21 +00:00
jan.nijtmans c8a4b8f057 Merge trunk 2017-03-20 10:31:26 +00:00
dgp fb1a2c58dd merge trunk 2017-03-17 13:14:14 +00:00
jan.nijtmans 3daba65c64 Merge trunk 2017-03-17 12:34:45 +00:00
Kevin B Kenny 6649fab762 Compile [clock clicks], [clock microseconds], [clock milliseconds] and [clock seconds]. 2017-03-15 02:41:51 +00:00
Kevin B Kenny 3d5f0518ca Make 'clock' and 'encoding' into compilable ensembles that play with safe interps 2017-03-14 22:30:01 +00:00
dgp 40ee63b6ff merge trunk 2017-03-13 16:01:05 +00:00
jan.nijtmans 9ab57fce05 merge trunk 2017-03-13 09:16:55 +00:00
dgp 38670f6730 merge trunk 2017-03-10 17:30:10 +00:00
dgp a69a45201b merge trunk 2017-03-10 17:20:51 +00:00
dgp fd1058d488 merge trunk 2017-03-09 14:33:53 +00:00
jan.nijtmans 65775144bb merge trunk 2017-03-08 12:08:40 +00:00
jan.nijtmans 99f1cb58e8 merge trunk 2017-03-07 08:58:29 +00:00
dgp 16ad898a13 merge trunk 2017-03-06 17:48:27 +00:00
dgp 2cc5f1ab51 merge trunk 2017-03-06 17:37:13 +00:00
dgp 90fc87af1c merge trunk 2017-02-27 15:33:38 +00:00
dgp 04ff99c8e5 merge trunk 2017-02-27 15:09:31 +00:00
jan.nijtmans b667a58dab More internal use of size_t in stead of int (e.g. in many 'epoch's) 2017-02-22 09:07:55 +00:00
dgp dc151ef624 merge trunk 2017-02-16 15:51:33 +00:00
jan.nijtmans a0aef631dd merge trunk 2017-02-15 14:08:22 +00:00
jan.nijtmans 80893d2ca7 merge trunk 2017-02-14 14:26:23 +00:00
dgp 37143a57b5 merge trunk 2017-02-09 13:59:22 +00:00
jan.nijtmans da2aacb75f merge trunk 2017-02-08 22:02:12 +00:00
jan.nijtmans 773b4febf2 Shortcut in TclParseNumber(): If obj is a dict or list, don't bother to generate the string representation if we know already beforehand that the parsing will fail. 2017-02-08 14:40:36 +00:00
jan.nijtmans 5bb280ce2f merge trunk 2017-02-07 12:28:17 +00:00
dgp 44b5581c48 merge trunk 2017-02-03 18:49:14 +00:00
jan.nijtmans 2adba3032c merge trunk 2017-02-03 14:40:31 +00:00
jan.nijtmans 0a378930a3 merge trunk 2017-02-03 14:03:11 +00:00
dgp fde54630a5 merge trunk 2017-02-02 20:33:26 +00:00
jan.nijtmans c915433671 Fix [d0f7ba56f0e8f93b7efb5b09ebc30a824bdd577a|d0f7ba56f0]: INST_EQ first-argument NaN shortcut is too aggressive 2017-02-01 14:56:03 +00:00
jan.nijtmans d90ca33b91 merge trunk 2017-01-31 13:46:03 +00:00
dgp 44ec4c77c1 merge trunk 2017-01-27 17:45:21 +00:00
dgp d72bb516ef merge trunk 2017-01-27 16:32:19 +00:00
jan.nijtmans e917f5db4a Convert Tcl_SetResult() to a macro 2017-01-25 12:50:18 +00:00
jan.nijtmans d6418172e0 Put back counter in test-case, so we can see if TestsaveresultFree() was actually called or not. 2017-01-24 15:42:32 +00:00
dgp a316791c49 merge trunk 2017-01-23 16:39:06 +00:00
jan.nijtmans fd5d15f9df merge trunk 2017-01-20 16:22:45 +00:00
jan.nijtmans d2724ffe92 merge trunk 2017-01-18 13:12:02 +00:00
jan.nijtmans ce1ad42e8f merge trunk 2017-01-17 10:06:34 +00:00
jan.nijtmans d62bcbc611 merge trunk 2017-01-16 11:59:03 +00:00
venkat 4434540502 Merge IETF tzdata2016j 2017-01-14 08:47:39 +00:00
dgp 1c1f866bac merge trunk 2017-01-13 16:23:42 +00:00
dgp 42e84df47a merge trunk 2017-01-13 16:21:50 +00:00
dgp abc071c974 merge trunk 2017-01-12 20:59:53 +00:00
jan.nijtmans 255a9e3bf7 merge trunk 2017-01-12 10:37:16 +00:00
jan.nijtmans e8edeca09d merge trunk 2017-01-11 14:39:41 +00:00
jan.nijtmans eeb500cf5a Merge trunk 2017-01-06 10:32:55 +00:00
jan.nijtmans 6312f7bf4f Merge trunk 2017-01-05 15:25:32 +00:00
jan.nijtmans da2ee554de merge trunk 2017-01-04 13:01:11 +00:00
jan.nijtmans bd7f2bebde merge trunk 2017-01-01 19:50:41 +00:00
jan.nijtmans 29ea02d93b merge trunk 2016-12-23 15:49:42 +00:00
dgp ee6c9c9f00 merge trunk 2016-12-23 15:21:22 +00:00
jan.nijtmans 9c4eb9d121 Deprecate otherValuePtr and ptrAndLongRep. Some more minor tweaks. 2016-12-23 10:07:38 +00:00
jan.nijtmans 9394984c31 merge novem 2016-12-23 09:32:32 +00:00
jan.nijtmans dedbad2748 merge trunk 2016-12-23 09:11:43 +00:00
jan.nijtmans a7951ab2ad Merge trunk 2016-12-21 09:20:00 +00:00
dgp bc213f0ba3 merge trunk 2016-12-19 18:43:49 +00:00
jan.nijtmans a728d03f7d merge novem 2016-12-19 10:42:42 +00:00
jan.nijtmans 89f9758279 merge trunk 2016-12-19 09:14:06 +00:00
dgp d58a6ddbc3 merge trunk 2016-12-06 12:46:11 +00:00
dgp 32b482d3bf merge trunk 2016-12-02 19:02:41 +00:00
dgp 1e4644762a merge trunk 2016-12-02 19:01:40 +00:00
jan.nijtmans 99d0691f57 merge-mark 2016-12-02 14:53:41 +00:00
jan.nijtmans 1f666c7ab2 merge trunk 2016-12-02 14:46:25 +00:00
jan.nijtmans 389ad9987b Fix installation of platform/shell-1.1.4.tm on Windows (platform directory was still missing) 2016-12-01 12:32:49 +00:00
jan.nijtmans 9bf56063c6 merge trunk 2016-12-01 11:46:47 +00:00
jan.nijtmans 6b83d829a8 More internal use of size_t. Eliminate unused "isBin" argument from TclpSysAlloc() 2016-12-01 11:20:52 +00:00
jan.nijtmans e3c8777128 Merge trunk 2016-11-30 14:27:41 +00:00
dgp 2efba704b3 merge trunk 2016-11-30 03:16:46 +00:00
dgp fd49860e24 merge trunk 2016-11-29 13:50:34 +00:00
jan.nijtmans bc59d1ce4e merge trunk 2016-11-29 13:08:40 +00:00
jan.nijtmans dd1acb8d65 merge trunk 2016-11-29 12:26:28 +00:00
dgp e615b54704 merge trunk 2016-11-28 16:08:33 +00:00
jan.nijtmans ae7596981b merge trunk 2016-11-25 12:58:30 +00:00
jan.nijtmans 5f291bc906 merge trunk 2016-11-24 20:31:42 +00:00
jan.nijtmans 82903a4b1f merge novem 2016-11-24 12:41:30 +00:00
jan.nijtmans 2290210ff1 merge trunk.
Make epoch in Tcl_DictSearch "unsigned int". This doubles the epoch range here. Use 0 as special value in stead of -1 (so start counting epoch's with 1).
2016-11-24 11:57:07 +00:00
jan.nijtmans 53f3b03647 Merge trunk. More internal use of size_t in stead of int (or long) 2016-11-21 10:40:46 +00:00
dgp e2d691eda8 merge trunk 2016-11-18 18:02:04 +00:00
jan.nijtmans 450b6f46c9 merge novem 2016-11-18 12:10:26 +00:00
jan.nijtmans edcac92c08 Merge trunk 2016-11-18 11:15:27 +00:00
jan.nijtmans 630767b5f7 merge trunk 2016-11-17 16:27:38 +00:00
jan.nijtmans ad9db3faad Merge trunk 2016-11-17 09:34:58 +00:00
dgp 16483765ba merge trunk 2016-11-16 15:04:10 +00:00
jan.nijtmans 56d57b9530 merge trunk 2016-11-16 11:17:13 +00:00
dgp 9b461748a0 merge trunk 2016-11-14 12:16:38 +00:00
venkat d80bf0e7a3 Merge tzdata2016i from IETF 2016-11-12 11:20:17 +00:00
jan.nijtmans e6b26af8f3 merge trunk 2016-11-11 15:18:31 +00:00
jan.nijtmans de9d0bbd20 merge trunk 2016-11-10 15:13:22 +00:00
dgp fbc3a63f6c merge trunk 2016-11-04 15:52:17 +00:00
jan.nijtmans 20880c7ce9 merge trunk 2016-11-04 11:53:00 +00:00
jan.nijtmans 55c589e2de merge trunk 2016-11-04 11:41:58 +00:00
jan.nijtmans e7ef344d8b Merge trunk (Update http version number to 2.8.10, due to [838e99a76d]) 2016-11-02 12:50:26 +00:00
dgp 14c4066381 merge trunk 2016-11-01 16:29:37 +00:00
dgp f2262dec1c merge trunk 2016-11-01 16:18:43 +00:00
venkat 06236552b6 Merge timezone data tzdata2016h 2016-10-26 08:07:39 +00:00
dgp 17cafef755 merge trunk 2016-10-21 13:25:15 +00:00
dgp 506f1152a8 merge trunk 2016-10-21 13:12:33 +00:00
dgp 33d0dac397 merge trunk 2016-10-20 16:37:42 +00:00
dgp 4cb3305614 merge trunk 2016-10-14 19:54:55 +00:00
dgp 029c8634fd merge trunk 2016-10-13 17:04:50 +00:00
dgp 24109a18e4 merge trunk 2016-10-13 17:03:38 +00:00
dgp 9fde0d3e5a Correct improper NULL return from initializing Tcl_InitStringRep(o, b, 0).
Go ahead and return pointer to space where 0 bytes can be written.
2016-10-12 17:31:48 +00:00
dgp aec96db016 Reduce direct use of the tclEmptyStringRep. 2016-10-12 16:58:20 +00:00
dgp e97fab49d3 Purge another direct access to bytes field. 2016-10-12 15:14:51 +00:00
dgp eee33c1731 merge trunk 2016-10-12 14:11:39 +00:00
dgp 4312e69dfe merge trunk 2016-10-12 14:01:04 +00:00
jan.nijtmans 9c590fa6a6 merge trunk 2016-10-11 21:53:43 +00:00
dgp 46cdee3dc8 Update new tests in light of octal death. 2016-10-11 18:22:08 +00:00
dgp 97f59556af merge trunk 2016-10-11 18:19:33 +00:00
dgp ec7df3f449 Purge more direct accesses to bytes field. 2016-10-07 21:06:04 +00:00
dgp 7b2a90493f Use the new purity test. 2016-10-07 19:04:44 +00:00
dgp 3304a8bc1e merge trunk 2016-10-07 18:53:27 +00:00
dgp d0002e5394 New routine Tcl_HasStringRep() and first conversion of callers. 2016-10-07 16:36:42 +00:00
dgp ba2e43e953 merge trunk 2016-10-07 13:11:24 +00:00
dgp 3119d45e4c merge trunk 2016-10-07 13:06:17 +00:00
dgp 3e12c54039 merge trunk 2016-10-04 18:48:17 +00:00
dgp f87d2e5bb6 merge trunk 2016-10-04 18:29:23 +00:00
venkat 4a1f444c9f Merge tzdata2016g from ietf.org 2016-10-02 19:28:22 +00:00
jan.nijtmans 87e3de423c merge trunk 2016-09-21 09:29:57 +00:00
dgp ffc62d0068 merge trunk 2016-09-16 16:43:16 +00:00
jan.nijtmans 56b804fc38 merge trunk 2016-09-16 09:11:09 +00:00
dgp 07b7df0b0e merge trunk 2016-09-09 12:42:09 +00:00
dgp 30a4dc04bb Maintain the changed behavior for unset traces on local vars at proc return.
Update the docs to new function.
2016-09-09 12:39:27 +00:00
gahr bda3724396 merge trunk 2016-09-09 07:31:48 +00:00
dgp 33ceb47046 compiler warning 2016-09-08 20:04:51 +00:00
dgp 227c81511f merge trunk 2016-09-08 03:29:09 +00:00
dgp 1ac6780aed merge trunk 2016-09-08 02:48:09 +00:00
jan.nijtmans 373ad7ed6c merge trunk 2016-09-07 14:03:58 +00:00
jan.nijtmans b2416bd570 merge trunk 2016-09-05 13:57:49 +00:00
jan.nijtmans c69560787b merge trunk 2016-08-30 13:12:09 +00:00
dgp d6656fada6 merge trunk 2016-07-26 19:22:05 +00:00
dgp bc8b826f65 merge trunk 2016-07-26 19:20:55 +00:00
dgp 7a324dfa87 merge trunk 2016-07-21 17:25:04 +00:00
dgp d7890f281b merge trunk 2016-07-20 21:31:04 +00:00
dgp 3e5f21836f Revise "parsedVarName" type to use proposed interfaces. 2016-07-20 19:47:31 +00:00
dgp 7d307a1ae7 merge trunk 2016-07-20 17:46:57 +00:00
dgp f989073e0d Merge trunk; silence compiler warning. 2016-07-20 16:36:25 +00:00
dgp 837e136aa6 merge trunk 2016-07-20 15:43:29 +00:00
dgp f211f9c476 Convert the "localVarName" type to the proposed interfaces. 2016-07-20 15:31:35 +00:00
dgp 43c2d3e981 merge trunk 2016-07-20 11:50:03 +00:00
venkat aefd27f95c Merge tzdata 2016f from ietf.org 2016-07-20 03:06:37 +00:00
dgp 15a1396579 merge trunk 2016-07-19 21:18:35 +00:00
dgp 40d62156ac Second half "chan" Tcl_ObjType conversion. Mistake avoided this time. 2016-07-18 21:53:51 +00:00
dgp df55f87e2d Half convert "chan" Tcl_ObjType to new interfaces. 2016-07-18 20:59:52 +00:00
dgp dbb5e86cde merge trunk 2016-07-18 17:33:54 +00:00
dgp 2a8bbefa69 merge trunk 2016-07-18 17:15:30 +00:00
dgp d9dbe7bb1e merge trunk 2016-07-14 18:09:31 +00:00
dgp bb9fba63c4 Merge mark without merging. Reformatting conflicts with branch edit plans. 2016-07-14 10:55:21 +00:00
dgp 33458f6fe4 merge trunk 2016-07-13 19:25:32 +00:00
dgp 020fdb84f4 yup 2016-07-13 17:25:47 +00:00
dgp 059410842d another 2016-07-13 17:02:24 +00:00
dgp a13a688507 and another 2016-07-13 16:02:04 +00:00
dgp 792e537014 another one 2016-07-13 15:43:44 +00:00
jan.nijtmans 6abb3012d4 Merge novem 2016-07-13 13:06:31 +00:00
dgp 9a0684671a More of the same. 2016-07-12 21:41:42 +00:00
dgp e2e1132eba Prefer removal of just known invalid interp over destruction of all intreps. 2016-07-12 21:38:25 +00:00
dgp ca5093b1ea Prefer removal of just known invalid intrep over destruction of all intreps. 2016-07-12 21:36:13 +00:00
dgp 694ffb7454 convert ensembleCmdType to new interfaces. 2016-07-12 21:32:25 +00:00
dgp d28c66ab23 merge trunk 2016-07-12 19:42:28 +00:00
jan.nijtmans a5748bcfea Merge trunk 2016-07-12 14:40:12 +00:00
dgp f01fb783f1 merge trunk 2016-07-11 22:04:56 +00:00
dgp d5fb92d9a3 merge trunk 2016-07-11 22:04:34 +00:00
dgp 32967bf1a1 merge trunk 2016-07-10 19:36:41 +00:00
dgp 6abeee6109 merge trunk 2016-07-10 19:35:28 +00:00
dgp 71d97d21ac merge trunk 2016-07-09 19:08:18 +00:00
dgp 3408cb4cab merge trunk 2016-07-09 17:21:31 +00:00
jan.nijtmans 4783b95fdf merge trunk 2016-07-08 10:34:55 +00:00
jan.nijtmans d5259dab01 Use TCL_HASH_TYPE #define for compatibility with Tcl8 in stead of TCL_HASH_KEY_TYPE_VERSION_2 2016-07-08 09:46:01 +00:00
jan.nijtmans 26562de083 Adapt hash-function and hash-table to allow hash-tables to grow >1Gb on 64-bit platforms. 2016-07-08 06:56:17 +00:00
dgp 276fee0021 Fully fix old bug [a16752c252] that has been only partially fixed until now
to support legacy tclcompiler binaries.  That no longer makes sense for Tcl 9.
2016-07-07 17:00:01 +00:00
jan.nijtmans 9b9795105f merge trunk 2016-07-07 07:54:23 +00:00
jan.nijtmans abd0c671e8 Unnecessary #undef and unnecessary type cast. 2016-07-06 15:10:01 +00:00
jan.nijtmans 4d9fc11c2f Make epoch in ProcessGlobalValue a size_t 2016-07-06 10:09:07 +00:00
jan.nijtmans b294401d2f merge novem 2016-07-06 09:23:09 +00:00
jan.nijtmans 841ec05ecc Merge trunk. Some more internal use of size_t in stead of int. 2016-07-05 09:56:35 +00:00
jan.nijtmans 3864f4ec46 Merge trunk 2016-07-04 08:46:41 +00:00
dgp 3f704efe4e merge trunk 2016-07-02 20:43:16 +00:00
dgp 46f047fba1 merge trunk 2016-07-02 20:19:07 +00:00
dgp 13269b1224 merge trunk 2016-07-01 20:39:31 +00:00
jan.nijtmans 16762d4246 Merge trunk 2016-07-01 14:14:19 +00:00
dgp deaaa2ccd1 merge trunk; eliminate legacy hacks for Itcl 3; migration paths in place. 2016-07-01 13:36:23 +00:00
jan.nijtmans d1f3e49057 Merge trunk 2016-07-01 08:33:56 +00:00
jan.nijtmans 0f90e86f25 Merge trunk 2016-06-30 13:53:17 +00:00
jan.nijtmans 00d621dfe0 Take over tclStringObj.c from trunk (not all changes there landed in novem) 2016-06-30 12:33:23 +00:00
jan.nijtmans 4139aa785c Make test-cases pass again 2016-06-30 12:18:03 +00:00
dgp 7add065e0f merge trunk 2016-06-29 16:07:24 +00:00
jan.nijtmans b2d284393d Merge trunk 2016-06-29 15:52:14 +00:00
dgp 3f1e1192cb merge trunk 2016-06-28 16:31:27 +00:00
jan.nijtmans 99a50b95e5 Unicode rep en Tcl_Obj length: int -> size_t 2016-06-28 15:22:36 +00:00
jan.nijtmans 85f253bc82 Merge trunk 2016-06-28 13:44:33 +00:00
dgp 0659ddeafe merge trunk 2016-06-27 20:38:16 +00:00
dgp 3d4ff3d7da merge trunk 2016-06-27 19:21:25 +00:00
jan.nijtmans 3615ba88e1 Merge trunk. Make magic stub value different for 64-bit builds, as this can never be stub-compatible with 32-bit builds. 2016-06-27 10:25:52 +00:00
jan.nijtmans 2812be6504 merge trunk 2016-06-26 09:07:51 +00:00
dgp 6f51e05c87 merge trunk 2016-06-23 12:23:03 +00:00
dgp a9aed18760 merge trunk 2016-06-22 18:59:18 +00:00
dgp 1dab75c685 merge trunk 2016-06-22 18:40:23 +00:00
jan.nijtmans 8820f08be6 Merge trunk 2016-06-21 10:02:35 +00:00
dgp 50dbacbaf0 merge trunk 2016-06-17 03:06:17 +00:00
dgp 958ee08b1a merge trunk 2016-06-16 18:28:10 +00:00
jan.nijtmans e12f438c54 merge trunk 2016-06-14 10:01:09 +00:00
dgp cebf94f0db merge trunk 2016-06-03 13:31:52 +00:00
jan.nijtmans e5b61b139f merge trunk 2016-06-02 14:59:32 +00:00
jan.nijtmans 9c93108a05 Merge trunk 2016-06-02 14:19:48 +00:00
jan.nijtmans dad8ec6ec5 Merge trunk 2016-06-01 12:20:55 +00:00
dgp c8d1b2568b merge trunk 2016-05-24 12:17:06 +00:00
dgp 2f61163e6f merge trunk 2016-05-24 12:02:49 +00:00
dgp f707c50e9d merge trunk 2016-05-13 16:03:59 +00:00
jan.nijtmans ce6cc21d0d Merge trunk 2016-05-13 09:21:55 +00:00
dgp 6c3864d50e Revise encodingType to use proposed routines. 2016-05-10 17:22:14 +00:00
dgp 2c218563b3 merge trunk 2016-05-10 16:53:20 +00:00
dgp 2fa7a2f487 merge trunk 2016-05-03 15:14:53 +00:00
dgp 0d83fc1704 More ByteCode revisions. 2016-04-30 17:47:40 +00:00
dgp 9f2bd1e80f typo 2016-04-29 20:34:29 +00:00
dgp c22277cf6a more revisions 2016-04-29 20:33:43 +00:00
dgp 2e23e829d9 Revise the "exprcode" Tcl_ObjType to proposed routines. 2016-04-29 20:20:33 +00:00
dgp be804ed5e6 Revise "assemblecode" Tcl_ObjType to proposed routines. 2016-04-29 20:04:12 +00:00
dgp 29704cd895 merge trunk 2016-04-29 19:32:20 +00:00
jan.nijtmans db5f9d232c merge trunk 2016-04-24 16:04:16 +00:00
venkat b862d349ec Update to tzdata2016d from IETF 2016-04-22 19:49:54 +00:00
dgp 8819aab738 repair merge 2016-04-22 18:57:38 +00:00
dgp aeecfffbb1 merge trunk 2016-04-22 18:13:43 +00:00
dgp 712675a744 Revise "dictIterator" objType to use proposed routines. 2016-04-20 18:02:45 +00:00
dgp 24acc0b24d merge trunk 2016-04-12 12:15:43 +00:00
dgp 53c50e58bf Use static name for a static struct. 2016-04-11 17:46:20 +00:00
dgp 5ebe18e5ec merge trunk 2016-04-11 17:34:04 +00:00
dgp a56a457941 merge trunk 2016-04-11 17:16:31 +00:00
dgp 2c83a6f53e Revise the "end-offset" objType to use proposed routines, and not export or
provide unneeded things.
2016-04-11 01:07:31 +00:00
jan.nijtmans 66c5d3e943 merge trunk 2016-04-10 16:01:57 +00:00
dgp 22da94979e merge trunk 2016-04-08 16:12:45 +00:00
jan.nijtmans d2dabcff9e merge trunk 2016-04-08 13:31:28 +00:00
dgp 17cdd5f2d2 merge trunk 2016-04-08 12:43:07 +00:00
jan.nijtmans 5873cf9d02 merge trunk 2016-04-08 12:29:11 +00:00
dgp 188ebe6ceb Revise the "TclOO method name" objType to use proposed routines. 2016-04-07 21:34:21 +00:00
dgp b42de3a4f3 Revise "levelReference" ObjType to use proposed routines. 2016-04-07 21:07:26 +00:00
dgp fdc5dd1154 merge trunk 2016-04-07 14:57:43 +00:00
dgp f51c126c9d merge trunk 2016-04-07 14:57:12 +00:00
jan.nijtmans 1f02202956 Update all Unicode tables to version 9.0 beta 2016-04-06 10:38:05 +00:00
dgp 9cf82aad7e close fork 2016-04-05 21:06:01 +00:00
dgp 99b30a2b32 merge trunk 2016-04-05 12:13:00 +00:00
dgp f7e5d7a25e merge trunk 2016-04-05 12:07:38 +00:00
dgp 08b6a144bd Revise the "procbody" Tcl_ObjType to use proposed routines. 2016-04-05 00:05:35 +00:00
dgp cf086db3f2 merge trunk 2016-04-04 22:01:45 +00:00
dgp 90bb5bf23c Use new routine TclGetLambdaFromObj to better isolate the "lambdaExpr" ObjType.
Then convert it to use the proposed routines.
2016-04-04 22:00:02 +00:00
dgp cbfce81f38 Use simple name for file static struct. 2016-04-04 19:41:07 +00:00
dgp 68e9e6b533 merge trunk 2016-04-04 18:28:13 +00:00
dgp 6661778d6e Revise "nsName" ObjType to use proposed routines. 2016-04-04 18:12:42 +00:00
dgp aec00dd13c Revise "instname" ObjType to use proposed routines 2016-04-04 17:43:32 +00:00
dgp e51db8046c Revise "regexp" Tcl_ObjType to use proposed routines. 2016-04-04 17:27:24 +00:00
dgp f28ed288b8 merge trunk 2016-04-04 16:38:32 +00:00
dgp eccaf4b672 merge trunk 2016-04-04 16:11:48 +00:00
jan.nijtmans 21ee9bfd9a Merge trunk. Remove excess spacing. 2016-04-01 13:09:43 +00:00
jan.nijtmans eba6ef86a9 merge trunk 2016-04-01 12:00:36 +00:00
dgp 1dc5de0179 Revise "dict" Tcl_ObjType to use proposed routines. 2016-03-30 23:16:21 +00:00
dgp 0a4081dc57 Revise several ACCEPT_NAN stanzas. 2016-03-30 17:55:59 +00:00
dgp 7721fe8b51 Remove direct access to Tcl_Obj typePtr field that does nothing of any
obvious benefit.
2016-03-30 17:15:44 +00:00
dgp f324e94785 merge trunk: 2016-03-30 15:41:32 +00:00
dgp 30d0cf44cb Functional conversion of "list" Tcl_ObjType to proposed routines.
Not yet completely tidy and finished.
2016-03-29 20:07:42 +00:00
dgp 890c05b713 merge trunk 2016-03-29 12:07:16 +00:00
dgp 4baa83bda3 merge trunk 2016-03-28 00:56:17 +00:00
dgp 4a7725e917 merge trunk 2016-03-28 00:55:59 +00:00
dgp dcb52d2ea8 A few more easy conversions. 2016-03-27 17:07:50 +00:00
dkf a749c350a3 Some OSX symbols builds create libtcl*.dylib.dSYM which is a directory. 2016-03-27 15:49:52 +00:00
dgp e29e96a9e1 Conversion of "bytearray" Tcl_ObjType - much better this time. 2016-03-27 15:37:07 +00:00
dgp 25fa1a3a8c Revised design - have Tcl_FetchIntRep return a writable pointer. 2016-03-27 14:57:09 +00:00
venkat 69c8bda7a9 Update to tzdata 2016c from ietf.org 2016-03-26 18:13:31 +00:00
dgp 6fd2ed3f11 Convert the "bytearray" Tcl_ObjType to use the proposed Tcl_ObjIntRep
manipulation routines.  This works, but requires too much ugliness.
The ugliness reveals that the interface needs some refinement, making
this a rejected branch of development.
2016-03-26 12:36:01 +00:00
dgp 0276b6e644 irPtr = NULL passed to Tcl_StoreIntRep clears out any value for typePtr. 2016-03-25 20:01:39 +00:00
dgp 3bd8840931 Get signatures in sync. 2016-03-25 19:56:56 +00:00
dgp 36cf99464d First demonstration conversion to the new intrep manipulation routines. 2016-03-25 14:01:00 +00:00
dgp f19cbcbff5 New routines Tcl_FetchIntRep() and Tcl_StoreIntRep(). 2016-03-25 13:06:53 +00:00
dgp c7039276a0 Create a type Tcl_ObjIntRep so we can pass intreps as arguments. 2016-03-25 12:24:04 +00:00
dgp 1f136d8cb6 merge trunk 2016-03-24 21:22:51 +00:00
dgp a5e1e1f33e Revise the "index" Tcl_ObjType to use the new routine. 2016-03-24 21:11:52 +00:00
dgp 1bebb796bb Revise the "instname" Tcl_ObjType to use the routines. 2016-03-24 20:33:27 +00:00
dgp a19375e928 oops 2016-03-24 20:17:52 +00:00
dgp 413706af15 Update Tcl_InitStringRep callers to handle OOM condition. 2016-03-24 20:15:01 +00:00
dgp 8370f3e275 Revise Tcl_InitStringRep() to do non-panic attempt at allocation.
Let caller decide how catastrophic it is.
Revise [string repeat] to use new routine.
2016-03-24 19:21:47 +00:00
dgp 959413c95a More purging of direct access to bytes field where it isn't important. 2016-03-24 15:01:43 +00:00
dgp 325b2f4ade Update more Tcl_ObjTypes to use Tcl_InitStringRep().
Adapt TclInitStringRep macro to accept TclInitStringRep(objptr, NULL, 0)
without warning -- requires outwitting compiler.
2016-03-24 14:40:35 +00:00
dgp 83ac8470a0 TclInitStringRep() already knows about tclEmptyStringRep. 2016-03-24 13:50:59 +00:00
dgp f6b543ae94 oops 2016-03-24 13:16:42 +00:00
dgp e9a10d7cda stay out of internals when nice interfaces are available. 2016-03-24 12:59:06 +00:00
dgp dc0adeafb4 Revised "end-offset" Tcl_ObjType to use new routine. 2016-03-24 12:51:49 +00:00
dgp 80bc5b30c2 Revise "osType" Tcl_ObjType to use new routine. 2016-03-24 01:50:58 +00:00
dgp 0412f3af19 Revise "ensembleCommand" Tcl_ObjType to use new routines. 2016-03-23 21:50:15 +00:00
dgp c79a28077f Convert "dict" Tcl_ObjType to use new routines. 2016-03-23 21:36:29 +00:00
dgp 6bd1189ac2 merge trunk 2016-03-23 15:21:35 +00:00
dgp 422d353b0a Tcl_InitStringRep() bug. Truncation assumed length == allocated. Wrong!
Convert "bytearray" Tcl_ObjType to used new facilities. No longer directly
refers to bytes or length fields, or any ckalloc of string rep.
2016-03-23 15:19:05 +00:00
dgp 847f2ba0d5 Revise Tcl_InitStringRep(); numBytes is unsigned. Only truncation permitted. 2016-03-23 14:10:39 +00:00
dgp a85aaef490 merge trunk 2016-03-23 13:46:40 +00:00
dgp 98aa34029a merge trunk 2016-03-23 12:51:04 +00:00
dgp cae0944eda Release memory after truncation. 2016-03-23 10:10:10 +00:00
dgp 37f5c2af03 Make sure no path emerges to write on tclEmptyStringRep. 2016-03-23 04:50:21 +00:00
dgp 95de12dbb4 Next step: new routine Tcl_InitStringRep() 2016-03-23 04:31:24 +00:00
dgp de712c24fb First simple step implementing TIP 445. 2016-03-22 23:45:12 +00:00
dgp ccc295d394 merge trunk 2016-03-22 17:54:59 +00:00
jan.nijtmans de842a4b05 merge trunk 2016-03-21 12:10:23 +00:00
dkf c2bbf3cc3a [1af8de570511] Fix crash in [string replace] caused by cut-n-paste. 2016-03-20 20:43:57 +00:00
dgp e3777c3fae merge trunk 2016-03-17 13:31:34 +00:00
venkat fdbbb3e1d1 Update tzdata to 2016b from ietf.org 2016-03-16 09:09:35 +00:00
jan.nijtmans 8907bb1c56 merge trunk 2016-03-11 14:16:13 +00:00
jan.nijtmans ef37739f61 merge trunk 2016-03-07 10:35:59 +00:00
jan.nijtmans a87d7d11f7 Merge trunk 2016-03-02 09:06:08 +00:00
dgp ecd0e0dcdd merge trunk 2016-02-09 18:00:59 +00:00
jan.nijtmans 9bd7291d76 merge trunk 2016-01-22 13:12:30 +00:00
dgp f6f5bda1ed Complete merge trunk 2016-01-19 13:55:46 +00:00
dgp a6dea06eb0 Merge and resolve conflicts. 2016-01-19 13:55:09 +00:00
dgp accf365a42 Partial trunk merge - up to the point where conflicts arise. 2016-01-19 13:52:13 +00:00
jan.nijtmans 14078e6cbe merge trunk 2016-01-06 11:21:05 +00:00
jan.nijtmans 3826a4d32e Clean-up: Remove Tcl_FindHashEntry/Tcl_CreateHashEntry symbols/stub entries, as those two functions are actually defined as macros. The function alternatives were only kept for legacy, but are no longer necessary. 2015-12-16 16:25:07 +00:00
jan.nijtmans a41657e1c7 merge trunk 2015-12-15 15:45:26 +00:00
jan.nijtmans fee8865cb8 merge trunk 2015-12-11 10:19:53 +00:00
dgp 0f07cb10d5 merge trunk 2015-11-30 20:24:27 +00:00
jan.nijtmans 7004d026a9 merge trunk 2015-11-26 12:04:37 +00:00
jan.nijtmans 5c26fc08b4 Merge trunk.
Use "tcl9" in stead of "tcl8" in various Makefiles, which (finally) allows to remove the hack in tm.tcl introduced in [387d3899e088f9e4]
2015-11-24 09:19:43 +00:00
jan.nijtmans d90345e5ba merge trunk 2015-11-01 22:22:24 +00:00
venkat c032143a98 Merge tzdata2015g from ietf 2015-10-27 23:17:18 +00:00
jan.nijtmans b9013a32c5 merge trunk 2015-10-25 22:49:27 +00:00
jan.nijtmans 6de875d527 merge trunk 2015-10-24 07:50:19 +00:00
jan.nijtmans 04c18b117e merge trunk 2015-10-19 12:53:20 +00:00
jan.nijtmans c16b45ac7f merge trunk 2015-10-08 14:50:58 +00:00
dgp 602c01d366 merge trunk 2015-10-08 11:56:34 +00:00
jan.nijtmans 2a95ee6ac2 merge trunk 2015-10-06 09:46:11 +00:00
jan.nijtmans e800634951 merge trunk 2015-10-04 10:27:44 +00:00
jan.nijtmans 56ad3a16ab merge trunk 2015-09-30 14:04:41 +00:00
jan.nijtmans 85cfbf4eb7 rebase with novem 2015-09-29 08:06:00 +00:00
jan.nijtmans 6494c04dee merge trunk 2015-09-29 07:56:53 +00:00
jan.nijtmans 9bec80c561 merge trunk 2015-09-25 17:12:27 +00:00
jan.nijtmans b4b8dd8fff merge trunk 2015-09-24 13:48:37 +00:00
jan.nijtmans 7fd41e8f9e Merge trunk 2015-09-23 10:42:40 +00:00
jan.nijtmans 5420a19e5c merge trunk 2015-09-22 08:20:03 +00:00
venkat 68d8dd01a2 Merge tzdata2015f 2015-08-12 05:08:06 +00:00
jan.nijtmans 45ef27688f merge trunk 2015-08-06 04:34:48 +00:00
jan.nijtmans 1a0d8884f2 merge trunk 2015-08-04 17:34:47 +00:00
dgp 3842344be7 merge trunk 2015-07-29 14:56:50 +00:00
dgp bbb66ad482 merge trunk 2015-07-15 15:34:43 +00:00
jan.nijtmans 593c09234c merge trunk 2015-07-13 09:01:44 +00:00
dgp 7e3e434235 merge trunk 2015-07-05 17:45:27 +00:00
jan.nijtmans 6295fccc15 merge trunk 2015-07-02 13:17:14 +00:00
jan.nijtmans 59b6753d29 merge trunk 2015-07-02 08:42:03 +00:00
venkat 2e9879b29c Merge tzdata2015e from ietf.org 2015-06-28 01:55:42 +00:00
jan.nijtmans 6b51c1fca1 merge trunk 2015-06-25 08:08:32 +00:00
jan.nijtmans 2410a9036f merge trunk 2015-06-24 14:45:45 +00:00
jan.nijtmans 54bb65abf5 merge trunk 2015-06-23 22:22:39 +00:00
jan.nijtmans 573b39572e merge trunk 2015-06-23 20:42:23 +00:00
jan.nijtmans 5821708a49 Fix win compile 2015-06-18 20:58:00 +00:00
jan.nijtmans 0ea82c2d43 merge novem 2015-06-18 19:58:45 +00:00
jan.nijtmans 7679c0513c merge trunk 2015-06-18 19:35:43 +00:00
dgp 6ae60815c7 merge trunk 2015-06-04 11:49:18 +00:00
jan.nijtmans 8a16ff2b7f Merge trunk 2015-05-27 21:11:35 +00:00
jan.nijtmans 6cbae6bbd1 Merge trunk 2015-05-25 13:03:07 +00:00
dgp 9480585347 merge trunk 2015-05-20 13:42:03 +00:00
dgp c582b68ddf merge trunk 2015-05-14 11:20:17 +00:00
dgp 61b992f9d6 merge trunk 2015-04-30 15:32:00 +00:00
jan.nijtmans 382eea8b75 merge trunk 2015-04-29 21:51:12 +00:00
dgp af3600a6ed merge trunk; purge TCL_HASH_KEY_STORE_HASH customization. That was a
migration crutch to help code get to Tcl 8.4.  It need not survive into 9.0.
2015-03-24 18:37:17 +00:00
dgp 21e9e3a800 merge trunk 2015-03-24 15:13:17 +00:00
dgp f6572d0c8d merge trunk 2015-03-12 15:06:29 +00:00
dgp baa2eb6600 merge trunk 2015-03-11 20:55:33 +00:00
dgp 9071374443 merge trunk 2015-02-26 16:35:48 +00:00
venkat 89a037dc48 Merge trunk and tzdata2015a from ietf.org 2015-02-12 17:08:46 +00:00
jan.nijtmans 030b2d7a5e merge trunk 2015-01-26 21:00:15 +00:00
dgp 7b544a220f merge trunk 2014-12-23 18:44:21 +00:00
dgp 84864592a6 merge trunk 2014-12-23 15:19:12 +00:00
jan.nijtmans 3d03d92371 merge trunk (but 86 -> 90) 2014-12-15 10:23:23 +00:00
venkat 2a796662ec merge tzdata2014j from ietf.org 2014-12-10 00:38:41 +00:00
jan.nijtmans e8bdd58fb2 merge trunk 2014-12-08 16:23:09 +00:00
jan.nijtmans 9c58ff6834 merge trunk 2014-11-21 13:10:25 +00:00
jan.nijtmans d61db937ed merge trunk 2014-11-14 09:47:56 +00:00
dgp 41f0c5238f merge trunk 2014-11-12 04:44:56 +00:00
dgp 054f6c2802 merge trunk 2014-11-06 16:56:05 +00:00
dgp e456c84871 merge trunk: 2014-10-18 22:49:12 +00:00
dgp 6db6c3291b merge trunk 2014-10-10 20:03:41 +00:00
jan.nijtmans 4145712613 Merge trunk 2014-10-08 07:14:34 +00:00
dgp 84ff8a7d78 merge trunk 2014-10-03 20:26:01 +00:00
dgp 9454354f0e merge trunk 2014-10-02 14:51:04 +00:00
dgp cd993feddb merge trunk 2014-09-28 22:23:45 +00:00
jan.nijtmans 950a2a295d merge trunk 2014-09-17 13:16:56 +00:00
jan.nijtmans e5db9c5605 merge trunk 2014-09-03 08:33:46 +00:00
jan.nijtmans ff7f3e14a6 merge trunk 2014-09-01 08:19:25 +00:00
jan.nijtmans 2d10a3d198 merge trunk 2014-08-27 20:58:30 +00:00
dgp c44e7fcbe5 merge trunk 2014-08-24 17:50:36 +00:00
dgp f19aaad970 merge trunk 2014-08-19 14:57:05 +00:00
jan.nijtmans 6872b39b3f Merge trunk.
Remove (old and deprecated) SystemV timezone information.
2014-08-14 06:49:43 +00:00
dkf 26f9497dd4 merge trunk 2014-07-18 12:22:17 +00:00
jan.nijtmans 8872d2406c merge trunk 2014-07-17 20:37:00 +00:00
jan.nijtmans 8ebd51d17f merge trunk 2014-07-04 12:51:17 +00:00
jan.nijtmans 19fb52deac merge trunk 2014-06-20 20:00:10 +00:00
jan.nijtmans c4af5fcc1b merge trunk 2014-06-16 12:40:24 +00:00
dkf dd1274d805 merge trunk 2014-05-31 20:47:23 +00:00
jan.nijtmans 7b59202f3a merge trunk 2014-05-23 15:08:45 +00:00
dgp dd743368ee merge trunk 2014-05-16 15:33:05 +00:00
jan.nijtmans 0706ebeb7b merge trunk 2014-05-09 13:50:41 +00:00
jan.nijtmans d7b8af55e7 int -> size_t for hash tables 2014-05-02 07:39:44 +00:00
jan.nijtmans e338d72a45 merge novem 2014-05-02 07:15:49 +00:00
jan.nijtmans ccc37a9193 Update Unicode tables to Unicode 7.0 beta 2014-05-02 06:58:21 +00:00
jan.nijtmans fa235831f2 merge trunk 2014-05-01 15:16:37 +00:00
dkf 5587ec4f28 merge trunk 2014-04-20 15:29:12 +00:00
dkf 02e0c5c152 more tinkering 2014-04-20 15:28:24 +00:00
jan.nijtmans 3ae9b2df5c merge trunk 2014-04-16 18:53:55 +00:00
jan.nijtmans 7c00be9c38 merge trunk 2014-04-16 11:21:58 +00:00
jan.nijtmans f0f432af92 merge trunk.
Remove (internal) functions TclWinGetServByName(), TclWinGetSockOpt() and TclWinSetSockOpt(), which are no longer needed for any purpose.
2014-04-16 11:06:19 +00:00
jan.nijtmans c4700cbf6d merge trunk 2014-04-15 10:46:23 +00:00
jan.nijtmans e8b298cf5d merge trunk 2014-04-07 14:56:30 +00:00
dkf c7e456e77d Limit number of cookies stored, deleting least recently used ones. 2014-04-01 08:18:41 +00:00
jan.nijtmans 8a09097741 merge trunk 2014-03-31 18:47:26 +00:00
dkf e2eaca874e merge trunk 2014-03-31 08:09:20 +00:00
dkf 4fb87dc8de Better cookie option parsing that doesn't throw away critical information. 2014-03-31 08:08:01 +00:00
jan.nijtmans 9d05820f02 merge trunk 2014-03-20 10:14:32 +00:00
dkf 217acf1c4c merge trunk 2014-03-10 09:01:17 +00:00
dkf c60bcbe173 Reorganize log level management, start testing persistence, refactor code to not put so much in ::http namespace 2014-03-10 09:00:31 +00:00
jan.nijtmans 001ceafb23 merge trunk 2014-03-09 21:58:51 +00:00
dkf 666e80e5bd more checks of domain data loading 2014-03-05 22:28:12 +00:00
dkf 9597c478f9 safer setter mechanism 2014-03-04 08:11:02 +00:00
dkf 1575eb36c1 working towards a more consistent way of handling options in the cookiejar API 2014-03-03 23:22:12 +00:00
jan.nijtmans c97a430827 merge-mark 2014-02-26 13:18:07 +00:00
dkf b3e0829c50 start writing integration tests 2014-02-26 08:58:05 +00:00
jan.nijtmans 67072c3d47 merge trunk 2014-02-25 15:59:46 +00:00
dkf 403350cc99 more tests and some fixes 2014-02-25 09:10:52 +00:00
jan.nijtmans 20deebc218 merge trunk 2014-02-25 08:32:55 +00:00
dkf a8069e81b7 more functional testing 2014-02-24 08:13:12 +00:00
dkf 11cd48efa3 merge trunk 2014-02-23 18:17:39 +00:00
jan.nijtmans 129cc066e9 merge trunk 2014-02-21 20:08:47 +00:00
dkf 96c666ffcf testing of the cookiejar implementation 2014-02-18 14:14:33 +00:00
jan.nijtmans 92f89ecbb5 merge trunk 2014-02-18 09:56:16 +00:00
dkf 9b6ba77224 extending the IDNA tests 2014-02-16 09:04:44 +00:00
dkf 1c6910c2ec add the test cases from RFC 3492 2014-02-15 10:02:43 +00:00
dkf 3557938100 more tests, now getting to the IDNA handling 2014-02-14 09:03:49 +00:00
dkf ffb8dbaeee more tests for the punycode engine 2014-02-13 09:04:23 +00:00
jan.nijtmans 6d62578bd3 Merge trunk 2014-02-11 11:13:41 +00:00
dkf 0cffbf8eb7 starting to write some tests 2014-02-09 12:56:24 +00:00
dkf 334a96f761 D'oh! 2014-02-09 12:41:05 +00:00
dkf 50cb73a76e update list of TLDs 2014-02-08 15:36:53 +00:00
dkf 35c72808bf merge trunk 2014-02-08 15:03:35 +00:00
jan.nijtmans 6c766bfaa3 merge trunk 2014-02-06 22:10:55 +00:00
jan.nijtmans 4e8387e36a merge trunk 2014-02-03 15:29:09 +00:00
jan.nijtmans 16ae2d2ae8 merge trunk 2014-02-03 09:53:42 +00:00
jan.nijtmans 88600c03a3 merge trunk 2014-01-31 09:26:33 +00:00
jan.nijtmans f53221ce41 merge trunk 2014-01-25 21:42:16 +00:00
jan.nijtmans 0b63acf914 merge trunk 2014-01-23 23:12:48 +00:00
jan.nijtmans 5191cbbfe2 merge trunk 2014-01-02 17:05:45 +00:00
jan.nijtmans ee2dd7eabb merge trunk 2014-01-01 12:36:14 +00:00
jan.nijtmans 3da68f9953 merge trunk 2013-12-20 08:18:32 +00:00
jan.nijtmans 567da05efa merge trunk 2013-12-19 12:21:25 +00:00
jan.nijtmans 882735641e merge trunk 2013-12-15 21:28:13 +00:00
jan.nijtmans 4032f9d4dc Take over "changes" and "doc/file.n" from trunk, it should have been merged to "novem" already. 2013-11-25 13:02:54 +00:00
jan.nijtmans a8fdebc1eb Don't depend on TCLAPI to be defined in <tcl.h>. If this tclOODecls.h is ever installed in an Tcl 8.x environment, it still will be usable normally. 2013-11-25 12:39:27 +00:00
jan.nijtmans 0f29d005d6 merge trunk 2013-11-24 22:12:57 +00:00
jan.nijtmans c98fcd0e26 merge trunk 2013-11-13 22:18:33 +00:00
jan.nijtmans 6a438c4be4 rebase TIP [http://tip.tcl.tk/414|#414] implementation 2013-11-08 15:06:22 +00:00
jan.nijtmans 1800d11520 Merge trunk (order of man.macros inclusion).
Simplify TCLAPI definition: Since there are extern "C" guards around all TCLAPI usage, the definition itself doesn't need special C++ handling any more.
2013-11-08 14:38:58 +00:00
jan.nijtmans e0080d92e3 merge trunk 2013-11-04 10:26:36 +00:00
jan.nijtmans 09152d341c merge trunk 2013-10-29 13:25:18 +00:00
jan.nijtmans d5553abfbd merge trunk 2013-10-27 12:55:20 +00:00
jan.nijtmans 507739c16e rebase TIP [http://tip.tcl.tk/414|#414] implementation 2013-10-18 07:16:08 +00:00
jan.nijtmans 9255d52d01 Prevent tclOOIntStubs from being exported from the shared library. 2013-10-17 11:22:47 +00:00
jan.nijtmans e8ca755d06 merge trunk 2013-10-17 09:48:16 +00:00
jan.nijtmans 4e40c57d05 Eliminate TclOOInitializeStubs() completely. This fixes [dfc08326e3], at least the TclOOInitializeStubs() surprise part of it.
Further refactoring is possible, eliminating tclOOStubsPtr and/or tclOOIntStubsPtr. A discussion about that is opened on the Tcl Core List. 
This is fully source compatible for TclOO extensions (e.g. Itcl, tdbc) but binary incompatible. 
TODO: update documentation, but that can wait until the refactoring is complete.
2013-10-17 09:00:02 +00:00
jan.nijtmans 8598cdcc02 merge trunk 2013-10-16 05:09:58 +00:00
jan.nijtmans 77f21ce1db merge trunk 2013-10-14 08:36:43 +00:00
jan.nijtmans 9ad2ec38c8 Fix definition of TCLAPI macro, when Tcl header files are used from within C++. 2013-10-13 17:22:28 +00:00
jan.nijtmans 92258c44a5 The Tcl 9.0 way of how [dfc08326e3] should be fixed: Real integration of TclOO in Tcl means that calling the function Tcl_OOInitStubs() should be elminated in full. This branch shows how to do that. 2013-10-13 16:19:44 +00:00
jan.nijtmans 4434155b9f Add note to ChangeLog, copied from Tcl 8.6 ChangeLog note 2013-10-13 15:32:46 +00:00
jan.nijtmans fdb028ce1c merge trunk 2013-10-13 11:02:12 +00:00
jan.nijtmans 23cb83fe47 merge trunk 2013-10-10 14:37:24 +00:00
jan.nijtmans 0c31f565ad merge-mark (novem already had the Unicode 6.3 tables) 2013-10-09 22:04:38 +00:00
jan.nijtmans 1feb781a45 Merge trunk.
Remove obsolete lines in tclOO*Decls.h: TCL_STORAGE_CLASS is not used anywhere in "novem" any more.
2013-10-08 11:58:49 +00:00
Kevin B Kenny befe4b839e Merge trunk. Restore buildability by adding 'scspec TCLAPI' in tclOOInt.decls. 2013-10-05 16:44:05 +00:00
jan.nijtmans d10266cfa8 merge trunk 2013-10-02 08:17:25 +00:00
jan.nijtmans 355c9fe5f3 merge trunk 2013-09-30 14:08:32 +00:00
jan.nijtmans 1b3fcbabc3 merge trunk 2013-09-30 09:44:29 +00:00
jan.nijtmans 0fbbfd7f67 merge trunk 2013-09-30 08:31:37 +00:00
jan.nijtmans 967a775c5a merge trunk 2013-09-27 17:39:26 +00:00
jan.nijtmans 5cb61b0493 merge trunk 2013-09-26 14:28:50 +00:00
jan.nijtmans a1fe1358f3 merge trunk 2013-09-23 20:04:54 +00:00
dgp 7b975975f2 merge trunk 2013-09-21 12:49:59 +00:00
jan.nijtmans 26472fc645 Rebase TIP #414 implementation. 2013-09-07 08:06:14 +00:00
jan.nijtmans 5e0f0ee61a rebase TIP [http://tip.tcl.tk/414|414] implementation 2013-08-19 09:05:33 +00:00
jan.nijtmans cab7c54e3a merge trunk 2013-08-14 14:40:40 +00:00
jan.nijtmans f218f909ad restore all #ifdef TCL_WIDE_INT_IS_LONG, which were accidently removed in [19ff9b95e1] 2013-08-14 14:15:36 +00:00
dgp d0e9f9dade [0aa8f12dcc] Restore minimum code to stop failing tests. 2013-08-13 19:26:35 +00:00
jan.nijtmans 332f11d646 rebase 2013-08-11 15:21:22 +00:00
jan.nijtmans 876ca8cbf3 merge trunk 2013-08-02 10:33:28 +00:00
jan.nijtmans 827e43bd24 merge trunk 2013-07-23 09:49:01 +00:00
jan.nijtmans 68065e88cd Unbreak MSVC6 debug build (thanks Andreas Kupries!) 2013-07-08 18:56:51 +00:00
jan.nijtmans 0aa1749495 Rebase.
Remove usability of -DUSE_TCL_STUBS
2013-07-08 12:37:00 +00:00
jan.nijtmans 783f9f4aad Merge stwo's fork and trunk back to a single "novem". 2013-07-08 07:20:09 +00:00
stwo 2f4d9112d2 OpenBSD/m88k is now elf. Remove unneeded elf check. 2013-07-07 01:09:10 +00:00
Kevin B Kenny 109789c175 merge http://www.iana.org/time-zones/repository/releases/tzdata2013d.tar.gz 2013-07-06 22:33:54 +00:00
jan.nijtmans 210e123b07 merge-mark 2013-07-05 14:06:36 +00:00
jan.nijtmans 343300e7ed merge trunk 2013-07-04 19:33:54 +00:00
jan.nijtmans 8c8d7776cd rebase 2013-06-27 10:30:26 +00:00
jan.nijtmans c2e6c5ebc3 merge trunk.
Remove Tcl_SetPanicProc from stub table; it is meant to be called by embedders, before the stub table is even initialized.
2013-06-27 09:53:04 +00:00
jan.nijtmans 5ef0b5263e rebase 2013-06-26 08:15:12 +00:00
jan.nijtmans f6ed765b4a merge trunk 2013-06-25 12:32:14 +00:00
jan.nijtmans 0a4fd3940a merge trunk 2013-06-25 12:07:45 +00:00
jan.nijtmans 948876257f rebase 2013-06-21 12:28:42 +00:00
jan.nijtmans 901190e2cb Merge trunk.
Remove TclpReaddir and TclpInetNtoa from internal stub table: It's not used anywhere any more.
2013-06-21 12:13:52 +00:00
jan.nijtmans 89ec383cdc Update Unicode tables to latest 6.3 beta version 2013-06-18 13:59:30 +00:00
jan.nijtmans d2b087ebf8 merge trunk 2013-06-18 11:50:02 +00:00
jan.nijtmans 0db50478bc Simplify TIP #414 implementation by using the function TclInitStubTable() in stead of re-use Tcl_InitStubs(). 2013-06-18 08:13:22 +00:00
jan.nijtmans a9efa6f602 merge trunk (except for disabled MSVC warnings, see [48b92a6ab6]) 2013-06-12 10:35:08 +00:00
jan.nijtmans 3ff5e13b09 rebase TIP #414 implementation 2013-06-12 07:19:19 +00:00
jan.nijtmans 33d091ecac merge trunk 2013-06-10 07:41:52 +00:00
jan.nijtmans e73451abd4 merge trunk 2013-05-28 07:25:32 +00:00
jan.nijtmans 3db39eda8a merge trunk 2013-05-19 20:44:36 +00:00
jan.nijtmans daa073ebb1 merge trunk 2013-05-17 13:49:39 +00:00
jan.nijtmans d6392f7a28 merge trunk 2013-05-15 11:03:41 +00:00
jan.nijtmans ff0eb26d90 merge trunk 2013-05-15 10:42:38 +00:00
jan.nijtmans 5a73cd05de merge trunk 2013-05-13 19:30:16 +00:00
jan.nijtmans 2914b6fbc0 merge trunk.
Add back Tcl_AddErrorInfo to stub table (it's still used by Tk 8.6)
2013-05-13 15:17:36 +00:00
jan.nijtmans 8cd35a3b77 merge trunk.
remove some unneeded #undef's
2013-05-07 15:02:20 +00:00
jan.nijtmans d96b2343b0 Change Tcl_UtfNcmp and friend's signature to use size_t in stead of unsigned long.
This is potentially binary incompatible on win64, but not on any other platform. 
It eliminates the need for special stub-wrappers on Cygwin64 for those functions. 
"novem" doesn't promise binary compatibility anyway.
2013-05-06 09:08:45 +00:00
jan.nijtmans 936ef06e82 merge trunk 2013-05-06 07:35:05 +00:00
jan.nijtmans 710249fe7f Eliminate use of NO_WIDE_TYPE everywhere: It's exactly the same as TCL_WIDE_INT_IS_LONG 2013-04-23 14:38:52 +00:00
jan.nijtmans f292911c6d Revert part of [bb4707eb077f0cd9], which removed Tcl_NewIntObj, Tcl_SetIntObj, Tcl_NewBooleanObj, Tcl_DbNewBooleanObj and Tcl_SetBooleanObj from the stub table and replaced those by macros. Add those functions back were they were. Reason: the upcoming cygwin64 will change the definition of 'long', I'm not sure any more this was a good idea. More investigation needed before doing something like this in "novem". 2013-04-21 21:01:26 +00:00
jan.nijtmans 659d602deb merge-mark 2013-04-19 09:49:33 +00:00
jan.nijtmans 5eabb6fcd1 merge trunk 2013-04-12 11:31:30 +00:00
dkf 859eff84db merge trunk 2013-04-05 08:46:23 +00:00
jan.nijtmans 978afd0260 merge-mark 2013-04-04 07:10:19 +00:00
jan.nijtmans 976650bbd1 merge trunk 2013-04-03 20:55:12 +00:00
jan.nijtmans 7e01d5f28f Eliminate some usage of VOID and its variants.
Remove unnecessary #undef's
2013-03-22 14:38:18 +00:00
jan.nijtmans 3eecabfda1 merge trunk 2013-03-22 14:15:06 +00:00
jan.nijtmans 08553f531f merge novem 2013-03-06 13:41:23 +00:00
jan.nijtmans 7e7ec63c2c merge trunk 2013-03-06 13:16:42 +00:00
jan.nijtmans e354aa0e3d merge trunk.
Implement Tcl_VarTraceInfo and Tcl_UpVar as macro.
2013-02-27 12:06:40 +00:00
jan.nijtmans 0957b2c850 merge trunk.
Unicode 6.3 does not have that many spaces.....
2013-02-25 16:05:27 +00:00
jan.nijtmans 57665b295c merge trunk.
Update all unicode tables to current state of Unicode 6.3 (not released yet)
2013-02-25 13:52:05 +00:00
jan.nijtmans dfff588886 merge trunk 2013-02-23 10:54:37 +00:00
jan.nijtmans ca7c7ce1b7 Merge trunk.
Convert Tcl_UntraceVar to macro, calling Tcl_UntraceVar2 in stead. No change of functionality.
2013-02-22 09:41:15 +00:00
jan.nijtmans 4349c08e31 Merge trunk.
Convert Tcl_SetVar/Tcl_UnsetVar/Tcl_GetVar/Tcl_TraceVar to macros, calling the *2 variants of the function. No change of functionality.
2013-02-20 14:51:48 +00:00
jan.nijtmans bb71951f1a Merge trunk.
Tranform Tcl_SaveResult/Tcl_RestoreResult/Tcl_DiscardResult to macros, and remove them from the stub table
2013-02-19 13:21:53 +00:00
jan.nijtmans 4f37f05a9c merge trunk 2013-02-15 16:21:49 +00:00
jan.nijtmans abc5015131 more Tcl_NewIntObj/Tcl_NewBooleanObj -> Tcl_NewLongObj conversions 2013-02-11 10:25:04 +00:00
jan.nijtmans f50166e4fc Merge trunk.
Various Tcl_NewIntObj/Tcl_NewBooleanObj  -> Tcl_NewLongObj modifications
2013-02-11 09:38:07 +00:00
jan.nijtmans 2c163978e7 Merge trunk.
Eliminate all usage of internal macros: TclNewIntObj, TclNewBooleanObj, TclSetIntObj, TclSetBooleanObj. 
Change various function to macros: Tcl_NewIntObj, Tcl_SetIntObj, Tcl_NewBooleanObj, Tcl_DbNewBooleanObj, Tcl_SetBooleanObj, Tcl_AddErrorInfo, Tcl_AddObjErrorInfo.
2013-02-08 13:28:06 +00:00
jan.nijtmans 4acf174468 put braces around all macro parameters 2013-02-07 14:22:16 +00:00
jan.nijtmans e8b3de6a75 merge trunk 2013-02-07 13:57:01 +00:00
jan.nijtmans 6fa4858662 merge trunk 2013-02-07 10:15:07 +00:00
jan.nijtmans dd7709baa2 merge trunk 2013-02-04 22:56:43 +00:00
jan.nijtmans b9c49065a5 merge novem.
Some more API changes int -> size_t
2013-02-04 15:49:53 +00:00
jan.nijtmans c67bfbf1a4 merge trunk 2013-02-04 14:15:14 +00:00
jan.nijtmans 3c3f3d4561 merge novem 2013-02-03 17:17:47 +00:00
jan.nijtmans b0bf6914f1 merge trunk 2013-02-03 16:05:31 +00:00
jan.nijtmans 330e115d11 merge trunk 2013-01-29 08:14:41 +00:00
jan.nijtmans 1d5118fd6c macros for Tcl_GetString and Tcl_GetStringFromObj 2013-01-26 16:11:33 +00:00
jan.nijtmans acb9caa959 merge novem 2013-01-25 23:38:49 +00:00
jan.nijtmans 03c4df2e30 merge trunk 2013-01-25 13:14:48 +00:00
jan.nijtmans ff878198ef merge trunk
Add -Wwrite-strings to compiler options, so we can guarantee correct "const" usage.
2013-01-25 12:58:20 +00:00
jan.nijtmans 84707cf702 Merge trunk
Rename TclInitStubs back to Tcl_InitStubs, for easier compatibility with Tcl 8.
2013-01-25 09:12:32 +00:00
jan.nijtmans d8b1866404 Convert Tcl_GetIndexFromObj implementation to macro 2013-01-24 10:37:30 +00:00
jan.nijtmans 45c9d1dc2c merge trunk 2013-01-23 14:11:12 +00:00
jan.nijtmans a3100689bc merge-mark 2013-01-21 13:52:52 +00:00
jan.nijtmans 014e7b1951 merge trunk 2013-01-19 18:28:03 +00:00
jan.nijtmans ad5f7e5464 Convert Tcl_Eval and Tcl_GlobalEval to a macro 2013-01-17 22:28:38 +00:00
dgp 3b0f6c1c31 merge trunk 2013-01-17 16:32:50 +00:00
jan.nijtmans 4198cbe8cd merge trunk
Remove various double-defined (both in public and private stub tables) functions from private stub table
2013-01-12 22:23:29 +00:00
jan.nijtmans 3e3a85339f Remove TclWinNToHS, it is not used anywhere any more. 2013-01-10 11:45:08 +00:00
jan.nijtmans adf3bedc0c merge trunk 2013-01-10 10:04:13 +00:00
jan.nijtmans c260fedf0c Turn Tcl_PkgPresent/Tcl_PkgRequire into a macro.
Make sure that extensions which are compiled using Tcl version 9.0 alpha/beta headers only run with the exact same Tcl version (9.0a0), so they cannot accidently be used in production. Idea 'stolen' from iTcl 4.0, which did that during alpha/beta
Dde/Registry: eliminate usage of some older API, which might be removed/deprecated in the future.
2013-01-10 09:55:55 +00:00
jan.nijtmans 1c58938f2c Restore panic check at and of the loop. Thanks! Don for noticing this. 2013-01-09 15:37:27 +00:00
jan.nijtmans 051f9006ef Restore API compatibility with public Tcl_*Scan and Tcl_*Convert functions (changes in private functions are OK)
Increase LOCAL_SIZE to 64, and remove two Panic's which cannot occur any more as a result of the improvements.
2013-01-09 12:33:45 +00:00
jan.nijtmans 361141a857 remove some unused static functions/variables 2013-01-08 21:42:23 +00:00
dkf 38dfb78b4e merge trunk 2013-01-08 20:31:35 +00:00
dgp 75194c3206 The Tcl*(Scan|Convert)*Element() routines only need chars, not ints, to
hold their flags.  Reduce waste now that interface freedom permits it.
2013-01-08 17:10:04 +00:00
jan.nijtmans 04a740f5c6 Don't depend on Spencer-specific regexp syntax (/u and /U) any more.
Bump http package to 2.8.6.
2013-01-06 21:09:17 +00:00
jan.nijtmans 6aa85ad35f merge trunk 2013-01-05 00:42:34 +00:00
jan.nijtmans 342be44f4d don't use iPtr->legacyResult for Tcl >= 8.1, because it doesn't work. Use Tcl_AppendResult in stead. 2013-01-03 10:17:14 +00:00
jan.nijtmans e42dd00e98 merge novem 2013-01-02 14:59:21 +00:00
jan.nijtmans 6797693d1b merge trunk 2013-01-02 14:56:58 +00:00
jan.nijtmans 3e69878565 merge trunk.
tclStubLib.c: protect loading incompatible Tcl9 extensions in Tcl8
2013-01-02 11:58:18 +00:00
jan.nijtmans aef36bf11d two more places where refCount was assumed to be a signed value. In Tcl9 that will probably be not true any more. 2012-12-29 18:12:45 +00:00
jan.nijtmans 0dc45b9fe3 fix tm.tcl to include tcl8 locations, and fix corresponding test-cases 2012-12-29 15:24:24 +00:00
jan.nijtmans e65b021050 merge trunk 2012-12-29 09:24:59 +00:00
jan.nijtmans b5100ee98f merge trunk 2012-12-27 15:05:28 +00:00
jan.nijtmans 2951fec86b remove unnecessary struct names, which only pollute the "struct" namespace for the compiler. 2012-12-21 10:13:37 +00:00
jan.nijtmans d07793f49c merge trunk 2012-12-21 09:42:57 +00:00
jan.nijtmans 2acbdb0493 Remove all VA functions Tcl_AppendResultVA, Tcl_AppendStringsToObjVA, Tcl_SetErrorCodeVA, Tcl_PanicVA, and dependancy of tcl.h on <stdarg.h>. TIP required. 2012-12-18 13:47:08 +00:00
jan.nijtmans e00ad288cc remove deprecated functions Tcl_VarEval and Tcl_VarEvalVA 2012-12-17 12:45:19 +00:00
jan.nijtmans 5b8ce14566 Merge trunk.
Add more clarity why refCount should be decremented AFTER checking for <2. 
Protect 8.x extensions for being loadable in "novem", by changing Tcl_PkgProvide into a macro.
2012-12-14 09:40:56 +00:00
jan.nijtmans facce70703 merge trunk 2012-12-13 13:01:49 +00:00
jan.nijtmans 88eafacc82 More memory API changes, mainly char* -> void* and unsigned -> size_t 2012-12-12 21:21:10 +00:00
jan.nijtmans 26f4ba76ca allow novem to use installed Tcl8 .tm packages, such as tcltest and msgcat
remove some dead code (already planned to be removed in Tcl9)
2012-12-12 10:21:55 +00:00
dgp 949c30336f Rename the memory routines so that Tcl_Alloc/Tcl_Free/etc become the recommended
things for extensions and embedders to call, instead of ckalloc/ckfree/etc.
Tcl_Alloc, etc. are macros that can be configured for memory debuggin, as ckalloc, etc.
have been and continue to be.
2012-12-12 05:01:04 +00:00
jan.nijtmans aaf8665696 merge trunk 2012-12-10 20:54:49 +00:00
jan.nijtmans e4dd07e735 merge trunk 2012-12-07 22:16:45 +00:00
dgp e98a68549d merge trunk 2012-12-07 17:05:09 +00:00
jan.nijtmans 1fc4f8eaa3 merge trunk 2012-12-07 16:12:37 +00:00
jan.nijtmans 70bccae334 merge trunk
turn pkgb.so into a Tcl8 interoperability test
library: Whatever Tcl9 looks like, loading pkgb.so in Tcl 8 should
either result in an error-message, either succeed, but never crash.
2012-12-07 10:11:47 +00:00
jan.nijtmans 052f5d50c9 merge trunk 2012-12-05 13:41:51 +00:00
jan.nijtmans 5815a325af merge trunk 2012-12-04 13:40:58 +00:00
jan.nijtmans 3ff398393a Remove obsolete functions Tcl_GetDefaultEncodingDir and Tcl_SetDefaultEncodingDir 2012-12-03 13:02:08 +00:00
jan.nijtmans ef0bb68bcb Initialize legacyFreeProc with invalid value: This will result in
a crash immediately, when an extention tries to call it, in stead
of crashing some time later....
Remove some more legacy regarding accessing interp->result
2012-12-03 10:01:20 +00:00
dgp 382a840e23 Remove all maintenance of a string result in the Interp. 2012-11-30 17:00:16 +00:00
dgp 1e6fd4531c Re-fix failing load-3.2 test. The right way this time. 2012-11-30 16:14:11 +00:00
dgp 21e80b3a25 Stop [glob] complaining about empty list result. Continue support for
a no-op -nocomplain option, but don't document it.  Old script support only.
2012-11-30 16:10:20 +00:00
jan.nijtmans 8e6efd7026 After a Tcl_SetObjResult, don't do a Tcl_TransferResult to the same interpreter 2012-11-30 15:55:03 +00:00
jan.nijtmans 39365ed3c0 merge (modified) novem-review.
unbreak windows build
2012-11-30 15:42:56 +00:00
dgp f52f05c3b1 No string result -> no more need for TCL_RESULT_SIZE 2012-11-29 21:34:22 +00:00
dgp 388741b7d0 Bug fix. Stop load-3.2 test failure. 2012-11-29 21:28:24 +00:00
dgp b2ca802381 Purge remnants of support for compilers ignorant of C keyword 'inline'. 2012-11-29 21:25:52 +00:00
dgp b05600e60a Stop defining VOID. Demand C compilers that know the void keyword. 2012-11-29 21:03:06 +00:00
dgp 98a8b3604f Destroy all the TCL_STORAGE_CLASS and associated nonsense. 2012-11-29 20:32:16 +00:00
dgp 905d1e5d03 Remove STRINGIFY and JOIN utility macros. Tcl doesn't use them.
And Tcl doesn't need to be in the utility macro supply business.
If an extension needs these, let them define them.
2012-11-29 17:45:20 +00:00
dgp cb7c84c310 Proposed rollback of the TCL_STUB_MAGIC change on novem branch. 2012-11-29 17:25:59 +00:00
dgp 03bdf41de2 missed bit of merge 2012-11-29 17:03:17 +00:00
dgp 206428d2cf Get the updated error message 2012-11-29 16:52:45 +00:00
dgp bc0d613154 Merge bug-3588687 2012-11-29 16:26:14 +00:00
dgp 1d6f003314 merge novem 2012-11-29 16:03:21 +00:00
dgp e81a4abd60 merge trunk 2012-11-29 15:58:38 +00:00
dgp 06ebe62a5e Revise TclInitStubs() so that it checks for consistent values of both
TCL_MAJOR_VERSION and TCL_STUB_MAGIC between an extension and the stub library.
2012-11-29 15:24:50 +00:00
dgp 0d78d389e1 3588687 Added cross checks so that [load]ed extension, [load]ing interp, and
linked stubs library all agree on their versions in the ways that matter.
2012-11-27 21:09:20 +00:00
dgp eea64f8d90 Merge (selected bits of) novem 2012-11-26 22:37:01 +00:00
dgp 4c5cc88bdf Stop segfaults in test suite. 2012-11-26 22:23:43 +00:00
dgp a1cee7cd20 merge (some of) novem 2012-11-26 21:49:46 +00:00
dgp 3327979282 Merge use of [load] to find and nicely report error when incompatible stubs
mechanisms between [load]ing interp and [load]ed extension are detected.
2012-11-26 21:43:18 +00:00
dgp 8c19725a30 ...and here's the lines left behind in the editor. 2012-11-26 21:30:13 +00:00
dgp 0a224ddfc8 Comments and renamings around the legacy fields for string results. 2012-11-26 21:25:26 +00:00
jan.nijtmans 9a7c011683 merge trunk 2012-11-26 15:37:24 +00:00
jan.nijtmans 44427fccaa unbreak UNIX build 2012-11-26 15:33:47 +00:00
jan.nijtmans c4cf77f310 Removed functions marked deprecated or obsolete for a long time: Tcl_Backslash, Tcl_EvalFile, Tcl_GlobalEvalObj, Tcl_GlobalEval, Tcl_EvalTokens.
Remove Tcl_FindExecutable from stub table: It is needed by embedders, not extenders. 
Remove TclpGetDate, TclpGmtime, TclpLocaltime: it isn't use anywhere since the new clock implementation. 
Remove TclWinConvertWSAError, it's the same as TclWinConvertError.
2012-11-26 14:29:58 +00:00
jan.nijtmans 9b00a63b22 merge trunk 2012-11-22 09:18:51 +00:00
jan.nijtmans 91d9bd02c0 merge trunk 2012-11-20 10:01:00 +00:00
jan.nijtmans 56b69c4e9a It might be that iPtr->result points to an empty string but that iPtr->objResult contains the real error-message. So, handle that too. 2012-11-20 09:01:46 +00:00
jan.nijtmans d2b1e66352 ... make it more portable 2012-11-20 08:42:36 +00:00
jan.nijtmans d29d888dc6 Add checks for the assumtions made in tclStubLib.c, making sure that those
assumtions are maintained for Tcl 9! If not, extensions compiled for Tcl9
but loaded in Tcl8 (with an incompatible stub table) cannot produce
a nice error-message any more.
<p>This is probably not the best place to do the check, maybe it's better
to do this in tclTest.c, as part of the test suite.
<p>Feedback welcome!
2012-11-20 08:40:56 +00:00
jan.nijtmans f4ed4079b7 make windde and winreg load again 2012-11-19 22:34:32 +00:00
jan.nijtmans dde5a2565e Single stub library can now handle Tcl8 and Tcl9 with different MAGIC values 2012-11-19 21:46:51 +00:00
jan.nijtmans e59a1e0b14 eliminate unused variable 2012-11-19 21:45:34 +00:00
jan.nijtmans c4b5bfbd50 Remove some undocumented - obsolete - function from the API with 'Old' in the name. 2012-11-19 11:17:58 +00:00
jan.nijtmans 44869c9e35 Better solution for handling errors from Tcl 8.x compiled extensions. Works for existing ones. 2012-11-19 08:30:11 +00:00
jan.nijtmans e5463e8ec8 change stub library to detect - and generate a nice error-message -
when a shared library compiled for Tcl 9.x is attempted to be
loaded in Tcl 8.x. Change MAGIC value in stub tables for 64-bit
builds (those surely will be incomatible!)
2012-11-18 17:24:05 +00:00
jan.nijtmans bddf737714 <i>on-hold at Don Porter's request</i>
change stub library to detect - and generate a nice error-message - 
when a shared library compiled for Tcl 8.x is attempted to be
loaded in Tcl 9.x: Tcl 9 will not have the iPtr->result field
so we cannot use that any more.
2012-11-18 17:12:35 +00:00
jan.nijtmans ef0fd808de <i>On hold at Don Porter's request</i>
hange stub library to detect - and generate a nice error-message - 
when a shared library compiled for Tcl 8.x is attempted to be
loaded in Tcl 9.x: Tcl 9 will not have the iPtr->result field
so we cannot use that any more.
2012-11-18 17:04:38 +00:00
jan.nijtmans f4fb1d1752 <i>On-hold at Don Porter's request.</i>
change stub library to detect - and generate a nice error-message - 
when a shared library compiled for Tcl 8.x is attempted to be
loaded in Tcl 9.x: Tcl 9 will not have the iPtr->result field
so we cannot use that any more.
2012-11-18 16:54:16 +00:00
dgp 59ea8cb145 WIP removing the maintenance of a string result in the Interp.
Still some head-scratching on what to do with tclStubLib.c.
2012-11-17 00:25:23 +00:00
dgp e9cf99c212 merge trunk 2012-11-16 22:51:18 +00:00
dgp 80630f4ec9 Burn the bridge back to obsolete [puts] syntax. (Tcl 6?!) 2012-11-16 21:17:29 +00:00
dgp e63dcc2677 Burn the octal bridges. We're not goin' back. 2012-11-16 19:17:21 +00:00
dgp 9bbc90b227 Tcl_Value is now a synonym for Tcl_Obj ! 2012-11-16 17:57:38 +00:00
dgp 8e5dbc8a27 Remove pre-8.5 interface for custom expr functions. 2012-11-16 17:52:55 +00:00
dgp 29c6b72a83 merge trunk 2012-11-16 16:37:07 +00:00
jan.nijtmans fd5b3bb085 eliminate CONST/CONST84/CONST86 2012-11-16 12:02:11 +00:00
jan.nijtmans 2fda7e49a0 Doc fix in TCL_MEM_DEBUG.3 2012-11-16 10:22:58 +00:00
jan.nijtmans 27256fcd71 Merge trunk
<p>Fix Windows build 
<p>Now usable with Thread's "novem" branch (3.0a1)
<p>Remove some more deprecated stuff
2012-11-16 10:12:05 +00:00
dgp e702454abe Abandon support for pre-8.5 bytecode. 2012-11-15 22:17:24 +00:00
dgp 9423df2491 Goodbye to [case]. 2012-11-15 21:04:23 +00:00
dgp 05b1764f74 Octal death documentation impacts. 2012-11-15 05:12:38 +00:00
dgp bff7817ec0 Kill Octal; bump to 9.0a0; make test suite work again. 2012-11-15 04:09:25 +00:00
dkf a1db4012d9 merge trunk 2012-11-13 18:02:35 +00:00
dkf 3f0cb9473b merge trunk 2012-10-16 13:44:58 +00:00
dkf 2edb721609 separating out the IDNA handling code 2012-10-12 13:18:24 +00:00
dkf 82abe83414 reorganize the code so that the IDNA procs live with the punycode procs; correct some misleading (and misleadingly-placed) comments 2012-10-10 14:49:45 +00:00
dkf 1bf1abb40a merge trunk 2012-10-04 10:31:54 +00:00
dkf dd7b94054a merge trunk 2012-09-19 22:57:16 +00:00
dkf ea1ff58500 Fix the bugs in the punycode decoder 2012-09-18 10:15:30 +00:00
dkf 9bbbadaa57 adapt to 8.6 environment properly; still some bugs... 2012-09-17 14:44:23 +00:00
dkf 3c1c246415 merge trunk 2012-09-14 07:44:20 +00:00
dkf 52d39094e4 packing the code tighter, doing more explanatory comments 2012-09-11 10:37:10 +00:00
dkf 4aba0742ce merge trunk 2012-09-10 21:26:22 +00:00
dkf 6f1a0f1c60 loading of restricted domain list now believed to work 2012-09-10 21:24:34 +00:00
dkf 99359a48d9 Now, a working punycode engine 2012-09-10 11:00:59 +00:00
dkf ef405dbe9c working on handling punycoding of IDNAs 2012-09-09 12:02:38 +00:00
dkf ee1f2a2484 More improvements 2012-09-07 10:35:14 +00:00
dkf 9e6f2e579a improving the database, working towards a purging algorithm for session cookies 2012-09-07 07:13:44 +00:00
dkf ddb07346c0 Tidy up, making code be of higher general quality. 2012-09-06 19:18:37 +00:00
dkf 2d8bb440c9 merge trunk 2012-09-06 10:16:39 +00:00
dkf a23ee46c67 improve logging, correct 'secure' property handling, correct domain handling, simplify http<->cookiejar interface 2012-09-06 09:49:52 +00:00
dkf 8d9808cb4d closer to working 2012-09-05 10:24:05 +00:00
dkf fa56a98ba9 more realistic queries 2012-09-05 09:46:03 +00:00
dkf bb95c2d8e9 merge trunk 2012-09-04 21:26:21 +00:00
dkf 51e67d70c4 Improving the cookie lookup code to actually handle paths&domains 2012-09-04 21:24:43 +00:00
dkf bdafa7afcb Add package index entry. 2012-09-02 07:28:02 +00:00
dkf 51ab423164 merge trunk 2012-09-02 07:21:51 +00:00
jan.nijtmans 13bc69a8a4 unnecessary hook struct definitions 2012-08-21 08:07:40 +00:00
jan.nijtmans 9aa711e8e0 remove unnecessary struct names, which only pollute the "struct" namespace for te compiler. 2012-08-20 06:49:25 +00:00
dkf 94ad48ea87 merge trunk 2012-08-04 07:49:14 +00:00
dkf 99af655c4c some small tinkerings 2012-07-31 10:52:29 +00:00
dkf 4085af6b83 merge trunk 2012-07-20 08:23:20 +00:00
dkf db9c41f45c First attempt at a "bad cookie domain" detector, a critical security check. 2012-07-19 16:28:50 +00:00
dgp b339d4bf03 merge trunk 2012-07-19 15:08:23 +00:00
dkf 03fec9c7fe merge trunk 2012-07-11 10:56:57 +00:00
dkf 06cfc731c6 Start of implementation of cookiejar package. Not yet working/finished. 2012-07-11 10:52:49 +00:00
dkf e6dbc77e0e merge trunk 2012-07-08 11:32:04 +00:00
dkf d321f40d3b merge trunk 2012-07-08 11:22:05 +00:00
dkf b9098ee927 Make the parsing work with Google. 2012-07-08 11:15:45 +00:00
dkf 0d4a963517 Starting work on support code for cookies. This adds a configurable interface
for plugging in a cookie manager (not enabled by default).
2012-07-07 12:34:39 +00:00
dgp 1e58e8e42d Implement Tcl_DStringResult with call to TclDStringToObj. 2012-04-25 21:03:58 +00:00
dgp 91af7f6f90 merge trunk 2012-04-25 21:02:42 +00:00
dgp 68191ded75 To preserve the ability of [load] to bring in mistmatched stubs-enabled
modules and react with an error rather than a crash, HasStubSupport() has
to keep fiddling with the same fields as always.
2012-04-19 12:57:45 +00:00
dkf ac3d0b69d3 Clean version of changes; ifdef-free 2012-04-19 12:41:06 +00:00
dkf 96f611f896 merge trunk 2012-04-19 12:20:49 +00:00
dgp ec9c29c80d Experimental branch where the interp->result field and related are removed
and all simplifications that makes possible are done.  Seems this can at best
be a Tcl 9 reform.
2012-04-18 18:42:54 +00:00
875 changed files with 64491 additions and 59311 deletions

No files matched your search

+10 -8
View File
@@ -1,10 +1,12 @@
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
tools/empty.zip
*.a
*.bmp
*.dll
*.exe
*.gif
*.png
*.gz
*.jpg
*.lib
*.pdf
*.png
*.xlsx
*.zip
+2 -1
View File
@@ -1,6 +1,7 @@
compat/zlib/contrib/dotzlib/DotZLib/UnitTests.cs
compat/zlib/contrib/vstudio/readme.txt
compat/zlib/contrib/vstudio/*/zlib.rc
compat/zlib/contrib/vstudio/*/*.sln
compat/zlib/win32/*.txt
compat/zlib/win64/*.txt
libtommath/*.dsp
@@ -16,4 +17,4 @@ win/rules-ext.vc
win/targets.vc
win/tcl.dsp
win/tcl.dsw
win/tcl.hpj.in
win/tcl.hpj.in
-19
View File
@@ -1,19 +0,0 @@
compat/zlib/contrib/dotzlib/DotZLib/UnitTests.cs
compat/zlib/contrib/vstudio/readme.txt
compat/zlib/contrib/vstudio/*/zlib.rc
compat/zlib/win32/*.txt
compat/zlib/win64/*.txt
libtommath/*.dsp
libtommath/*.sln
libtommath/*.vcproj
tools/tcl.hpj.in
tools/tcl.wse.in
win/buildall.vc.bat
win/coffbase.txt
win/makefile.vc
win/rules.vc
win/rules-ext.vc
win/targets.vc
win/tcl.dsp
win/tcl.dsw
win/tcl.hpj.in
+19
View File
@@ -1,9 +1,12 @@
*.a
*.dll
*.dylib
*.dylib.E
*.exe
*.exp
*.la
*.lib
*.lo
*.o
*.obj
*.pdb
@@ -11,6 +14,7 @@
*.sl
*.so
*/Makefile
*/autom4te.cache
*/config.cache
*/config.log
*/config.status
@@ -19,14 +23,18 @@
*/tcltest*
*/versions.vc
*/version.vc
*/libtcl.vfs
*/libtcl_*.zip
html
libtommath/bn.ilg
libtommath/bn.ind
libtommath/pretty.build
libtommath/tommath.src
libtommath/*.log
libtommath/*.pdf
libtommath/*.pl
libtommath/*.sh
libtommath/doc/*
libtommath/tombc/*
libtommath/pre_gen/*
libtommath/pics/*
@@ -36,14 +44,25 @@ libtommath/etc/*
libtommath/demo/*
libtommath/*.out
libtommath/*.tex
macosx/configure
unix/autoMkindex.tcl
unix/dltest.marker
unix/dltest/*.bundle
unix/dltest/*.dll
unix/dltest/*.dylib
unix/dltest/*.o
unix/dltest/*.sl
unix/dltest/*.so
unix/tcl.pc
unix/tclIndex
unix/Tcl-Info.plist
unix/Tclsh-Info.plist
unix/pkgs/*
win/Debug*
win/Release*
win/*.manifest
win/pkgs/*
win/coffbase.txt
win/tcl.hpj
win/nmakehlp.out
win/nmhlp-out.txt
+1
View File
@@ -0,0 +1 @@
u
+40
View File
@@ -0,0 +1,40 @@
# Set the default behavior, in case people don't have core.autocrlf set.
* eol=lf
* text=auto
# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
*.3 text
*.c text
*.css text
*.enc text
*.h text
*.htm text
*.html text
*.java text
*.js text
*.json text
*.n text
*.svg text
*.ts text
*.tcl text
*.test text
# Declare files that will always have CRLF line endings on checkout.
*.bat eol=crlf
*.sln eol=crlf
*.vc eol=crlf
# Denote all files that are truly binary and should not be modified.
*.a binary
*.bmp binary
*.dll binary
*.exe binary
*.gif binary
*.gz binary
*.jpg binary
*.lib binary
*.pdf binary
*.png binary
*.xlsx binary
*.zip binary
+65
View File
@@ -0,0 +1,65 @@
*.a
*.bundle
*.dll
*.dylib
*.dylib.E
*.exe
*.exp
*.lib
*.o
*.obj
*.pdb
*.res
*.sl
*.so
.fslckout
Makefile
Tcl-Info.plist
Tclsh-Info.plist
autom4te.cache
config.cache
config.log
config.status
config.status.lineno
html
manifest.uuid
_FOSSIL_
*/tclConfig.sh
*/tclsh*
*/tcltest*
*/versions.vc
*/version.vc
*/libtcl.vfs
*/libtcl_*.zip
libtommath/bn.ilg
libtommath/bn.ind
libtommath/pretty.build
libtommath/tommath.src
libtommath/*.log
libtommath/*.pdf
libtommath/*.pl
libtommath/*.sh
libtommath/doc/*
libtommath/tombc/*
libtommath/pre_gen/*
libtommath/pics/*
libtommath/mtest/*
libtommath/logs/*
libtommath/etc/*
libtommath/demo/*
libtommath/*.out
libtommath/*.tex
macosx/configure
unix/autoMkindex.tcl
unix/dltest.marker
unix/tcl.pc
unix/tclIndex
unix/pkgs/*
win/Debug*
win/Release*
win/*.manifest
win/pkgs/*
win/coffbase.txt
win/tcl.hpj
win/nmakehlp.out
win/nmhlp-out.txt
+463
View File
@@ -0,0 +1,463 @@
language: c
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- binutils-mingw-w64-i686
- binutils-mingw-w64-x86-64
- gcc-mingw-w64
- gcc-mingw-w64-base
- gcc-mingw-w64-i686
- gcc-mingw-w64-x86-64
- gcc-multilib
jobs:
include:
# Testing on Linux GCC
- name: "Linux/GCC/Shared"
os: linux
dist: focal
compiler: gcc
env:
- BUILD_DIR=unix
- name: "Linux/GCC/Shared: UTF_MAX=4"
os: linux
dist: focal
compiler: gcc
env:
- BUILD_DIR=unix
- CFGOPT=CFLAGS=-DTCL_UTF_MAX=4
- name: "Linux/GCC/Shared: NO_DEPRECATED"
os: linux
dist: focal
compiler: gcc
env:
- BUILD_DIR=unix
- CFGOPT="CFLAGS=-DTCL_NO_DEPRECATED=1"
- name: "Linux/GCC/Static"
os: linux
dist: focal
compiler: gcc
env:
- CFGOPT="--disable-shared"
- BUILD_DIR=unix
- name: "Linux/GCC/Debug"
os: linux
dist: focal
compiler: gcc
env:
- BUILD_DIR=unix
- CFGOPT="--enable-symbols"
- name: "Linux/GCC/Mem-Debug"
os: linux
dist: focal
compiler: gcc
env:
- BUILD_DIR=unix
- CFGOPT="--enable-symbols=mem"
# C++ build.
- name: "Linux/G++/Shared"
os: linux
dist: focal
compiler: g++
env:
- BUILD_DIR=unix
- CFGOPT="CC=g++ CFLAGS=-Dregister=dont+use+register"
# Newer/Older versions of GCC
- name: "Linux/GCC 10/Shared"
os: linux
dist: focal
compiler: gcc-10
addons:
apt:
packages:
- g++-10
env:
- BUILD_DIR=unix
- name: "Linux/GCC 5/Shared"
os: linux
dist: bionic
compiler: gcc-5
addons:
apt:
packages:
- g++-5
env:
- BUILD_DIR=unix
# Testing on Linux Clang
- name: "Linux/Clang/Shared"
os: linux
dist: focal
compiler: clang
env:
- BUILD_DIR=unix
- name: "Linux/Clang/Shared:NO_DEPRECATED"
os: linux
dist: xenial
compiler: clang
env:
- BUILD_DIR=unix
- CFGOPT="CFLAGS=-DTCL_NO_DEPRECATED=1"
- name: "Linux/Clang/Static"
os: linux
dist: focal
compiler: clang
env:
- CFGOPT="--disable-shared"
- BUILD_DIR=unix
- name: "Linux/Clang/Debug"
os: linux
dist: focal
compiler: clang
env:
- BUILD_DIR=unix
- CFGOPT="--enable-symbols"
- name: "Linux/Clang/Mem-Debug"
os: linux
dist: focal
compiler: clang
env:
- BUILD_DIR=unix
- CFGOPT="--enable-symbols=mem"
# Testing on Mac, various styles
- name: "macOS/Clang/Xcode 12/Shared"
os: osx
osx_image: xcode12.2
env:
- BUILD_DIR=macosx
install: []
script: &mactest
- make all
# The styles=develop avoids some weird problems on OSX
- make test styles=develop
- name: "macOS/Clang/Xcode 12/Shared/Unix-like"
os: osx
osx_image: xcode12.2
env:
- BUILD_DIR=unix
- CFGOPT="--enable-dtrace"
- name: "macOS/Clang/Xcode 12/Shared/libtommath"
os: osx
osx_image: xcode12.2
env:
- BUILD_DIR=macosx
install: []
script: *mactest
addons:
homebrew:
packages:
- libtommath
- name: "macOS/Clang++/Xcode 12/Shared"
os: osx
osx_image: xcode12.2
env:
- BUILD_DIR=unix
- CFGOPT="CC=clang++ --enable-framework --enable-dtrace CFLAGS=-Dregister=dont+use+register CPPFLAGS=-D__private_extern__=extern"
script:
- make all tcltest
# Newer MacOS versions
- name: "macOS/Clang/Xcode 12/Universal Apps/Shared"
os: osx
osx_image: xcode12u
env:
- BUILD_DIR=macosx
install: []
script: *mactest
# Older MacOS versions
- name: "macOS/Clang/Xcode 11/Shared"
os: osx
osx_image: xcode11.7
env:
- BUILD_DIR=macosx
install: []
script: *mactest
- name: "macOS/Clang/Xcode 10/Shared"
os: osx
osx_image: xcode10.3
env:
- BUILD_DIR=macosx
install: []
script: *mactest
- name: "macOS/Clang/Xcode 9/Shared"
os: osx
osx_image: xcode9.4
env:
- BUILD_DIR=macosx
install: []
script: *mactest
- name: "macOS/Clang/Xcode 8/Shared"
os: osx
osx_image: xcode8.3
env:
- BUILD_DIR=macosx
install: []
script: *mactest
# Test with mingw-w64 cross-compile
# Doesn't run tests because wine is only an imperfect Windows emulation
- name: "Linux-cross-Windows/GCC/Shared/no test"
os: linux
dist: focal
compiler: x86_64-w64-mingw32-gcc
env:
- BUILD_DIR=win
- CFGOPT="--host=x86_64-w64-mingw32 --enable-64bit"
script: &crosstest
- make all tcltest
# Include a high visibility marker that tests are skipped outright
- >
echo "`tput setaf 3`SKIPPED TEST: CROSS COMPILING`tput sgr0`"
# Test with mingw-w64 (32 bit) cross-compile
# Doesn't run tests because wine is only an imperfect Windows emulation
- name: "Linux-cross-Windows-32/GCC/Shared/no test"
os: linux
dist: focal
compiler: i686-w64-mingw32-gcc
env:
- BUILD_DIR=win
- CFGOPT=--host=i686-w64-mingw32
script: *crosstest
# Test on Windows with MSVC native
- name: "Windows/MSVC/Shared"
os: windows
compiler: cl
env: &vcenv
- BUILD_DIR=win
- VCDIR="/C/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Auxiliary/Build"
before_install: &vcpreinst
- rm -rf tests/safe-stock8*.test
- touch generic/tclStubInit.c generic/tclOOStubInit.c generic/tclOOScript.h
- PATH="$PATH:$VCDIR"
- cd ${BUILD_DIR}
install: []
script:
- cmd.exe //C vcvarsall.bat x64 '&&' nmake '-f' makefile.vc all tcltest
- cmd.exe //C vcvarsall.bat x64 '&&' nmake '-f' makefile.vc test
- name: "Windows/MSVC/Shared: UTF_MAX=4"
os: windows
compiler: cl
env: *vcenv
before_install: *vcpreinst
install: []
script:
- cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=utfmax' '-f' makefile.vc all tcltest
- cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=utfmax' '-f' makefile.vc test
- name: "Windows/MSVC/Shared: NO_DEPRECATED"
os: windows
compiler: cl
env: *vcenv
before_install: *vcpreinst
install: []
script:
- cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=nodep' '-f' makefile.vc all tcltest
- cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=nodep' '-f' makefile.vc test
- name: "Windows/MSVC/Static"
os: windows
compiler: cl
env: *vcenv
before_install: *vcpreinst
install: []
script:
- cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=static,msvcrt' '-f' makefile.vc all tcltest
- cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=static,msvcrt' '-f' makefile.vc test
- name: "Windows/MSVC/Debug"
os: windows
compiler: cl
env: *vcenv
before_install: *vcpreinst
install: []
script:
- cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=symbols' '-f' makefile.vc all tcltest
- cmd.exe //C vcvarsall.bat x64 '&&' nmake 'OPTS=symbols' '-f' makefile.vc test
- name: "Windows/MSVC/Mem-Debug"
os: windows
compiler: cl
env: *vcenv
before_install: *vcpreinst
install: []
script:
- cmd.exe //C vcvarsall.bat x64 '&&' nmake 'STATS=memdbg' '-f' makefile.vc all tcltest
- cmd.exe //C vcvarsall.bat x64 '&&' nmake 'STATS=memdbg' '-f' makefile.vc test
# Test on Windows with MSVC native (32-bit)
- name: "Windows/MSVC-x86/Shared"
os: windows
compiler: cl
env: *vcenv
before_install: *vcpreinst
install: []
script:
- cmd.exe //C vcvarsall.bat x86 '&&' nmake '-f' makefile.vc all tcltest
- cmd.exe //C vcvarsall.bat x86 '&&' nmake '-f' makefile.vc test
- name: "Windows/MSVC-x86/Shared: UTF_MAX=4"
os: windows
compiler: cl
env: *vcenv
before_install: *vcpreinst
install: []
script:
- cmd.exe //C vcvarsall.bat x86 '&&' nmake 'OPTS=utfmax' '-f' makefile.vc all tcltest
- cmd.exe //C vcvarsall.bat x86 '&&' nmake 'OPTS=utfmax' '-f' makefile.vc test
- name: "Windows/MSVC-x86/Shared: NO_DEPRECATED"
os: windows
compiler: cl
env: *vcenv
before_install: *vcpreinst
install: []
script:
- cmd.exe //C vcvarsall.bat x86 '&&' nmake 'OPTS=nodep' '-f' makefile.vc all tcltest
- cmd.exe //C vcvarsall.bat x86 '&&' nmake 'OPTS=nodep' '-f' makefile.vc test
- name: "Windows/MSVC-x86/Static"
os: windows
compiler: cl
env: *vcenv
before_install: *vcpreinst
install: []
script:
- cmd.exe //C vcvarsall.bat x86 '&&' nmake 'OPTS=static,msvcrt' '-f' makefile.vc all tcltest
- cmd.exe //C vcvarsall.bat x86 '&&' nmake 'OPTS=static,msvcrt' '-f' makefile.vc test
- name: "Windows/MSVC-x86/Debug"
os: windows
compiler: cl
env: *vcenv
before_install: *vcpreinst
install: []
script:
- cmd.exe //C vcvarsall.bat x86 '&&' nmake 'OPTS=symbols' '-f' makefile.vc all tcltest
- cmd.exe //C vcvarsall.bat x86 '&&' nmake 'OPTS=symbols' '-f' makefile.vc test
- name: "Windows/MSVC-x86/Mem-Debug"
os: windows
compiler: cl
env: *vcenv
before_install: *vcpreinst
install: []
script:
- cmd.exe //C vcvarsall.bat x86 '&&' nmake 'STATS=memdbg' '-f' makefile.vc all tcltest
- cmd.exe //C vcvarsall.bat x86 '&&' nmake 'STATS=memdbg' '-f' makefile.vc test
# Test on Windows with GCC native
- name: "Windows/GCC/Shared"
os: windows
compiler: gcc
env:
- BUILD_DIR=win
- CFGOPT="--enable-64bit"
before_install: &makepreinst
- rm -rf tests/safe-stock8*.test
- touch generic/tclStubInit.c generic/tclOOStubInit.c generic/tclOOScript.h
- choco install -y make zip
- cd ${BUILD_DIR}
- name: "Windows/GCC/Shared: UTF_MAX=4"
os: windows
compiler: gcc
env:
- BUILD_DIR=win
- CFGOPT="--enable-64bit CFLAGS=-DTCL_UTF_MAX=4"
before_install: *makepreinst
- name: "Windows/GCC/Shared: NO_DEPRECATED"
os: windows
compiler: gcc
env:
- BUILD_DIR=win
- CFGOPT="--enable-64bit CFLAGS=-DTCL_NO_DEPRECATED=1"
before_install: *makepreinst
- name: "Windows/G++/Shared"
os: windows
compiler: g++
env:
- BUILD_DIR=win
- CFGOPT="CC=g++ --enable-64bit"
before_install: *makepreinst
script:
- make all tcltest
- name: "Windows/GCC/Static"
os: windows
compiler: gcc
env:
- BUILD_DIR=win
- CFGOPT="--enable-64bit --disable-shared"
before_install: *makepreinst
- name: "Windows/GCC/Debug"
os: windows
compiler: gcc
env:
- BUILD_DIR=win
- CFGOPT="--enable-64bit --enable-symbols"
before_install: *makepreinst
- name: "Windows/GCC/Mem-Debug"
os: windows
compiler: gcc
env:
- BUILD_DIR=win
- CFGOPT="--enable-64bit --enable-symbols=mem"
before_install: *makepreinst
# Test on Windows with GCC native (32-bit)
- name: "Windows/GCC-x86/Shared"
os: windows
compiler: gcc
env:
- BUILD_DIR=win
before_install: *makepreinst
- name: "Windows/GCC-x86/Shared: UTF_MAX=4"
os: windows
compiler: gcc
env:
- BUILD_DIR=win
- CFGOPT="CFLAGS=-DTCL_UTF_MAX=4"
before_install: *makepreinst
- name: "Windows/GCC-x86/Shared: NO_DEPRECATED"
os: windows
compiler: gcc
env:
- BUILD_DIR=win
- CFGOPT="CFLAGS=-DTCL_NO_DEPRECATED=1"
before_install: *makepreinst
- name: "Windows/G++-x86/Shared"
os: windows
compiler: g++
env:
- BUILD_DIR=win
- CFGOPT="CC=g++"
before_install: *makepreinst
script:
- make all tcltest
- name: "Windows/GCC-x86/Static"
os: windows
compiler: gcc
env:
- BUILD_DIR=win
- CFGOPT="--disable-shared"
before_install: *makepreinst
- name: "Windows/GCC-x86/Debug"
os: windows
compiler: gcc
env:
- BUILD_DIR=win
- CFGOPT="--enable-symbols"
before_install: *makepreinst
- name: "Windows/GCC-x86/Mem-Debug"
os: windows
compiler: gcc
env:
- BUILD_DIR=win
- CFGOPT="--enable-symbols=mem"
before_install: *makepreinst
# "make dist" only
- name: "Linux: make dist"
os: linux
dist: focal
compiler: gcc
env:
- BUILD_DIR=unix
script:
- make dist
before_install:
- rm -rf tests/safe-stock8*.test
- touch generic/tclStubInit.c generic/tclOOStubInit.c generic/tclOOScript.h
- cd ${BUILD_DIR}
install:
- mkdir "$HOME/install dir"
- ./configure ${CFGOPT} "--prefix=$HOME/install dir" || (cat config.log && exit 1)
before_script:
- export ERROR_ON_FAILURES=1
script:
- make all tcltest || echo "Something wrong, maybe a hickup, let's try again"
- make test
- make install
+2 -2
View File
@@ -1,6 +1,6 @@
A NOTE ON THE CHANGELOG:
Starting in early 2011, Tcl source code has been under the management of
fossil, hosted at http://core.tcl.tk/tcl/ . Fossil presents a "Timeline"
fossil, hosted at https://core.tcl-lang.org/tcl/ . Fossil presents a "Timeline"
view of changes made that is superior in every way to a hand edited log file.
Because of this, many Tcl developers are now out of the habit of maintaining
this log file. You may still find useful things in it, but the Timeline is
@@ -1847,7 +1847,7 @@ a better first place to look now.
* tools/uniClass.tcl: [FRQ 3473670]: Various Unicode-related
* tools/uniParse.tcl: speedups/robustness. Enhanced tools to be
* generic/tclUniData.c: able to handle characters > 0xffff. Done in
* generic/tclUniData.c: able to handle characters > 0xFFFF. Done in
* generic/tclUtf.c: all branches in order to simplify merges for
* generic/regc_locale.c: new Unicode versions (such as 6.1)
+1 -1
View File
@@ -1779,7 +1779,7 @@
* generic/tclCmdMZ.c: Fixed infinite loop bug with [regexp -all]
[Bug: 4981].
* tests/*.test: Changed all occurances of "namespace import
* tests/*.test: Changed all occurrences of "namespace import
::tcltest" to "namespace import -force ::tcltest" [Bug: 3948].
2000-04-09 Brent Welch <welch@scriptics.com>
+2 -2
View File
@@ -351,7 +351,7 @@
* mac/tclMacFile.c: fixed bug in permission checking code
* mac/tclMacLoad.c: corrected utf8 handling, comparison of package
* mac/tclMacLoad.c: corrected utf-8 handling, comparison of package
names to code fragment names changed to only match on the length of
package name, this allows for fragment names with version numbers
appended.
@@ -3525,7 +3525,7 @@
* generic/tclVar.c (Tcl_UnsetObjCmd): Rewrote argument parser to avoid
a read off the end of the argument array that could occur when
executing something like [unset -nocomplain] was executed. Improved
the error message given when too few arguments are given (-nocomplain
the error message given when not enough arguments are given (-nocomplain
should obviously be *before* --, not after it) and also modified the
test suite to take account of that and the documentation to use the
same improvement. [Bug 405769]
+1 -1
View File
@@ -1753,7 +1753,7 @@
2002-07-05 Reinhard Max <max@suse.de>
* generic/tclClock.c (FormatClock): Convert the format string to UTF8
* generic/tclClock.c (FormatClock): Convert the format string to utf-8
before calling TclpStrftime, so that non-ASCII characters don't get
mangled when the result string is being converted back.
* tests/clock.test: Added a test for that.
+2 -2
View File
@@ -2302,7 +2302,7 @@
934511].
* doc/CrtCommand.3: Added note that the arguments given to the command
proc of a Tcl_CreateCommand are in utf8 since Tcl 8.1. Closing [Patch
proc of a Tcl_CreateCommand are in utf-8 since Tcl 8.1. Closing [Patch
414778].
* doc/ChnlStack.3: Removed the declaration that the interp argument to
@@ -2873,7 +2873,7 @@
2004-06-02 Jeff Hobbs <jeffh@ActiveState.com>
* win/tclWinFile.c (TclpFindExecutable): when using GetModuleFileNameA
(Win9x), convert from CP_ACP to WCHAR then convert back to utf8.
(Win9x), convert from CP_ACP to WCHAR then convert back to utf-8.
Adjunct to 2004-04-07 fix.
2004-06-02 David Gravereaux <davygrvy@pobox.com>
+1 -1
View File
@@ -2913,7 +2913,7 @@
* generic/tclCompCmds.c: Updated callers to call new routine.
* generic/tclDictObj.c: Updated callers to call new routine.
* tests/obj.test: Corrected bad tests that actually expected
values like "47" and "0xac" to be accepted as booleans.
values like "47" and "0xAC" to be accepted as booleans.
* generic/tclLiteral.c: Disabled the code that forces some literals
into the "int" Tcl_ObjType during registration. We can re-enable it if
+1 -1
View File
@@ -1426,7 +1426,7 @@
initialization assumptions of the TIP 280 code in CompileWord().
* generic/tclCompExpr.c: Suppress the attempt to convert to
numeric when pre-compiling a constant expresion indicates an error.
numeric when pre-compiling a constant expression indicates an error.
2007-08-22 Miguel Sofer <msofer@users.sf.net>
-185
View File
@@ -1,185 +0,0 @@
README: Tcl
This is the Tcl 8.7a2 source distribution.
http://sourceforge.net/projects/tcl/files/Tcl/
You can get any source release of Tcl from the URL above.
Contents
--------
1. Introduction
2. Documentation
3. Compiling and installing Tcl
4. Development tools
5. Tcl newsgroup
6. The Tcler's Wiki
7. Mailing lists
8. Support and Training
9. Tracking Development
10. Thank You
1. Introduction
---------------
Tcl provides a powerful platform for creating integration applications that
tie together diverse applications, protocols, devices, and frameworks.
When paired with the Tk toolkit, Tcl provides the fastest and most powerful
way to create GUI applications that run on PCs, Unix, and Mac OS X.
Tcl can also be used for a variety of web-related tasks and for creating
powerful command languages for applications.
Tcl is maintained, enhanced, and distributed freely by the Tcl community.
Source code development and tracking of bug reports and feature requests
takes place at:
http://core.tcl.tk/
Tcl/Tk release and mailing list services are hosted by SourceForge:
http://sourceforge.net/projects/tcl/
with the Tcl Developer Xchange hosted at:
http://www.tcl.tk/
Tcl is a freely available open source package. You can do virtually
anything you like with it, such as modifying it, redistributing it,
and selling it either in whole or in part. See the file
"license.terms" for complete information.
2. Documentation
----------------
Extensive documentation is available at our website.
The home page for this release, including new features, is
http://www.tcl.tk/software/tcltk/8.7.html
Detailed release notes can be found at the file distributions page
by clicking on the relevant version.
http://sourceforge.net/projects/tcl/files/Tcl/
Information about Tcl itself can be found at
http://www.tcl.tk/about/
There have been many Tcl books on the market. Many are mentioned in the Wiki:
http://wiki.tcl.tk/_/ref?N=25206
To view the complete set of reference manual entries for Tcl 8.7 online,
visit the URL:
http://www.tcl.tk/man/tcl8.7/
2a. Unix Documentation
----------------------
The "doc" subdirectory in this release contains a complete set of
reference manual entries for Tcl. Files with extension ".1" are for
programs (for example, tclsh.1); files with extension ".3" are for C
library procedures; and files with extension ".n" describe Tcl
commands. The file "doc/Tcl.n" gives a quick summary of the Tcl
language syntax. To print any of the man pages on Unix, cd to the
"doc" directory and invoke your favorite variant of troff using the
normal -man macros, for example
ditroff -man Tcl.n
to print Tcl.n. If Tcl has been installed correctly and your "man" program
supports it, you should be able to access the Tcl manual entries using the
normal "man" mechanisms, such as
man Tcl
2b. Windows Documentation
-------------------------
The "doc" subdirectory in this release contains a complete set of Windows
help files for Tcl. Once you install this Tcl release, a shortcut to the
Windows help Tcl documentation will appear in the "Start" menu:
Start | Programs | Tcl | Tcl Help
3. Compiling and installing Tcl
-------------------------------
There are brief notes in the unix/README, win/README, and macosx/README about
compiling on these different platforms. There is additional information
about building Tcl from sources at
http://www.tcl.tk/doc/howto/compile.html
4. Development tools
---------------------------
ActiveState produces a high quality set of commercial quality development
tools that is available to accelerate your Tcl application development.
Tcl Dev Kit builds on the earlier TclPro toolset and provides a debugger,
static code checker, single-file wrapping utility, bytecode compiler and
more. More information can be found at
http://www.ActiveState.com/Tcl
5. Tcl newsgroup
----------------
There is a USENET news group, "comp.lang.tcl", intended for the exchange of
information about Tcl, Tk, and related applications. The newsgroup is a
great place to ask general information questions. For bug reports, please
see the "Support and bug fixes" section below.
6. Tcl'ers Wiki
---------------
A Wiki-based open community site covering all aspects of Tcl/Tk is at:
http://wiki.tcl.tk/
It is dedicated to the Tcl programming language and its extensions. A
wealth of useful information can be found there. It contains code
snippets, references to papers, books, and FAQs, as well as pointers to
development tools, extensions, and applications. You can also recommend
additional URLs by editing the wiki yourself.
7. Mailing lists
----------------
Several mailing lists are hosted at SourceForge to discuss development or
use issues (like Macintosh and Windows topics). For more information and
to subscribe, visit:
http://sourceforge.net/projects/tcl/
and go to the Mailing Lists page.
8. Support and Training
------------------------
We are very interested in receiving bug reports, patches, and suggestions
for improvements. We prefer that you send this information to us as
tickets entered into our tracker at:
http://core.tcl.tk/tcl/reportlist
We will log and follow-up on each bug, although we cannot promise a
specific turn-around time. Enhancements may take longer and may not happen
at all unless there is widespread support for them (we're trying to
slow the rate at which Tcl/Tk turns into a kitchen sink). It's very
difficult to make incompatible changes to Tcl/Tk at this point, due to
the size of the installed base.
The Tcl community is too large for us to provide much individual support
for users. If you need help we suggest that you post questions to
comp.lang.tcl. We read the newsgroup and will attempt to answer esoteric
questions for which no one else is likely to know the answer. In addition,
see the following Web site for links to other organizations that offer
Tcl/Tk training:
http://wiki.tcl.tk/training
9. Tracking Development
-----------------------
Tcl is developed in public. To keep an eye on how Tcl is changing, see
http://core.tcl.tk/
10. Thank You
-------------
We'd like to express our thanks to the Tcl community for all the
helpful suggestions, bug reports, and patches we have received.
Tcl/Tk has improved vastly and will continue to do so with your help.
+148
View File
@@ -0,0 +1,148 @@
# README: Tcl
This is the **Tcl 8.7a4** source distribution.
You can get any source release of Tcl from [our distribution
site](https://sourceforge.net/projects/tcl/files/Tcl/).
[![Build Status](https://travis-ci.org/tcltk/tcl.svg?branch=core-8-branch)](https://travis-ci.org/tcltk/tcl)
## Contents
1. [Introduction](#intro)
2. [Documentation](#doc)
3. [Compiling and installing Tcl](#build)
4. [Development tools](#devtools)
5. [Tcl newsgroup](#complangtcl)
6. [The Tcler's Wiki](#wiki)
7. [Mailing lists](#email)
8. [Support and Training](#support)
9. [Tracking Development](#watch)
10. [Thank You](#thanks)
## <a id="intro">1.</a> Introduction
Tcl provides a powerful platform for creating integration applications that
tie together diverse applications, protocols, devices, and frameworks.
When paired with the Tk toolkit, Tcl provides the fastest and most powerful
way to create GUI applications that run on PCs, Unix, and Mac OS X.
Tcl can also be used for a variety of web-related tasks and for creating
powerful command languages for applications.
Tcl is maintained, enhanced, and distributed freely by the Tcl community.
Source code development and tracking of bug reports and feature requests
takes place at [core.tcl-lang.org](https://core.tcl-lang.org/).
Tcl/Tk release and mailing list services are [hosted by
SourceForge](https://sourceforge.net/projects/tcl/)
with the Tcl Developer Xchange hosted at
[www.tcl-lang.org](https://www.tcl-lang.org).
Tcl is a freely available open source package. You can do virtually
anything you like with it, such as modifying it, redistributing it,
and selling it either in whole or in part. See the file
`license.terms` for complete information.
## <a id="doc">2.</a> Documentation
Extensive documentation is available at our website.
The home page for this release, including new features, is
[here](https://www.tcl.tk/software/tcltk/8.7.html).
Detailed release notes can be found at the
[file distributions page](https://sourceforge.net/projects/tcl/files/Tcl/)
by clicking on the relevant version.
Information about Tcl itself can be found at the [Developer
Xchange](https://www.tcl-lang.org/about/).
There have been many Tcl books on the market. Many are mentioned in
[the Wiki](https://wiki.tcl-lang.org/_/ref?N=25206).
The complete set of reference manual entries for Tcl 8.7 is [online,
here](https://www.tcl-lang.org/man/tcl8.7/).
### <a id="doc.unix">2a.</a> Unix Documentation
The `doc` subdirectory in this release contains a complete set of
reference manual entries for Tcl. Files with extension "`.1`" are for
programs (for example, `tclsh.1`); files with extension "`.3`" are for C
library procedures; and files with extension "`.n`" describe Tcl
commands. The file "`doc/Tcl.n`" gives a quick summary of the Tcl
language syntax. To print any of the man pages on Unix, cd to the
"doc" directory and invoke your favorite variant of troff using the
normal -man macros, for example
groff -man -Tpdf Tcl.n >output.pdf
to print Tcl.n to PDF. If Tcl has been installed correctly and your "man" program
supports it, you should be able to access the Tcl manual entries using the
normal "man" mechanisms, such as
man Tcl
### <a id="doc.win">2b.</a> Windows Documentation
The "doc" subdirectory in this release contains a complete set of Windows
help files for Tcl. Once you install this Tcl release, a shortcut to the
Windows help Tcl documentation will appear in the "Start" menu:
Start | Programs | Tcl | Tcl Help
## <a id="build">3.</a> Compiling and installing Tcl
There are brief notes in the `unix/README`, `win/README`, and `macosx/README`
about compiling on these different platforms. There is additional information
about building Tcl from sources
[online](https://www.tcl-lang.org/doc/howto/compile.html).
## <a id="devtools">4.</a> Development tools
ActiveState produces a high quality set of commercial quality development
tools that is available to accelerate your Tcl application development.
Tcl Dev Kit builds on the earlier TclPro toolset and provides a debugger,
static code checker, single-file wrapping utility, bytecode compiler and
more. More information can be found at
http://www.ActiveState.com/Tcl
## <a id="complangtcl">5.</a> Tcl newsgroup
There is a USENET news group, "`comp.lang.tcl`", intended for the exchange of
information about Tcl, Tk, and related applications. The newsgroup is a
great place to ask general information questions. For bug reports, please
see the "Support and bug fixes" section below.
## <a id="wiki">6.</a> Tcl'ers Wiki
There is a [wiki-based open community site](https://wiki.tcl-lang.org/)
covering all aspects of Tcl/Tk.
It is dedicated to the Tcl programming language and its extensions. A
wealth of useful information can be found there. It contains code
snippets, references to papers, books, and FAQs, as well as pointers to
development tools, extensions, and applications. You can also recommend
additional URLs by editing the wiki yourself.
## <a id="email">7.</a> Mailing lists
Several mailing lists are hosted at SourceForge to discuss development or use
issues (like Macintosh and Windows topics). For more information and to
subscribe, visit [here](https://sourceforge.net/projects/tcl/) and go to the
Mailing Lists page.
## <a id="support">8.</a> Support and Training
We are very interested in receiving bug reports, patches, and suggestions for
improvements. We prefer that you send this information to us as tickets
entered into [our issue tracker](https://core.tcl-lang.org/tcl/reportlist).
We will log and follow-up on each bug, although we cannot promise a
specific turn-around time. Enhancements may take longer and may not happen
at all unless there is widespread support for them (we're trying to
slow the rate at which Tcl/Tk turns into a kitchen sink). It's very
difficult to make incompatible changes to Tcl/Tk at this point, due to
the size of the installed base.
The Tcl community is too large for us to provide much individual support for
users. If you need help we suggest that you post questions to `comp.lang.tcl`
or ask a question on [Stack
Overflow](https://stackoverflow.com/questions/tagged/tcl). We read the
newsgroup and will attempt to answer esoteric questions for which no one else
is likely to know the answer. In addition, see the wiki for [links to other
organizations](https://wiki.tcl-lang.org/training) that offer Tcl/Tk training.
## <a id="watch">9.</a> Tracking Development
Tcl is developed in public. You can keep an eye on how Tcl is changing at
[core.tcl-lang.org](https://core.tcl-lang.org/).
## <a id="thanks">10.</a> Thank You
We'd like to express our thanks to the Tcl community for all the
helpful suggestions, bug reports, and patches we have received.
Tcl/Tk has improved vastly and will continue to do so with your help.
+276 -40
View File
@@ -2307,7 +2307,7 @@ to the standard channel, do not increment the refcount. The channel can
be NULL if there is for example no standard input. (JL)
9/6/96 (portability improvement) Changed parsing of backslash sequences
like \n to translate directly to absolute values like 0xa instead of
like \n to translate directly to absolute values like 0xA instead of
letting the compiler do the translation. This guarantees that the
translation is done the same everywhere. (JO)
@@ -8303,7 +8303,7 @@ reported usage of large expressions (porter)
Many optmizations, improvements, and tightened stack management in bytecode.
--- Released 8.6.1, September 20, 2013 --- http://core.tcl.tk/tcl/ for details
--- Released 8.6.1, September 20, 2013 --- https://core.tcl-lang.org/tcl/ for details
2013-09-27 (enhancement) improved ::env synchronization (fellows)
@@ -8451,7 +8451,7 @@ include ::oo::class (fellows)
2014-08-25 (TIP 429) New command [string cat] (leitgeb,ferrieux)
--- Released 8.6.2, August 27, 2014 --- http://core.tcl.tk/tcl/ for details
--- Released 8.6.2, August 27, 2014 --- https://core.tcl-lang.org/tcl/ for details
2014-08-28 (bug)[b9e1a3] Correct Method Search Order (nadkarni,fellows)
=> TclOO 1.0.3
@@ -8491,7 +8491,7 @@ include ::oo::class (fellows)
2014-11-06 (bug)[5adc35] Stop forcing EOF to be permanent (porter)
--- Released 8.6.3, November 12, 2014 --- http://core.tcl.tk/tcl/ for details
--- Released 8.6.3, November 12, 2014 --- https://core.tcl-lang.org/tcl/ for details
2014-11-21 (bug)[743338] Win: socket error encoding (ladayaroslav,nijtmans)
@@ -8527,7 +8527,7 @@ include ::oo::class (fellows)
2015-03-10 (enhancement) Revise OS X notifier for better Cocoa (walzer)
*** POTENTIAL INCOMPATIBILITY ***
--- Released 8.6.4, March 12, 2015 --- http://core.tcl.tk/tcl/ for details
--- Released 8.6.4, March 12, 2015 --- https://core.tcl-lang.org/tcl/ for details
2015-03-19 (bug)[e66e44] Win: Ctrl-C/Ctrl-Break in console not EOF (nadkarni)
@@ -8623,7 +8623,7 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich)
2016-02-22 (bug)[9b4702] [info exists env(missing)] kills trace (nijtmans)
--- Released 8.6.5, February 29, 2016 --- http://core.tcl.tk/tcl/ for details
--- Released 8.6.5, February 29, 2016 --- https://core.tcl-lang.org/tcl/ for details
2016-03-01 (bug)[803042] mem leak due to reference cycle (porter)
@@ -8697,7 +8697,7 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich)
2016-07-20 tzdata updated to Olson's tzdata2016f (venkat)
--- Released 8.6.6, July 27, 2016 --- http://core.tcl.tk/tcl/ for details
--- Released 8.6.6, July 27, 2016 --- https://core.tcl-lang.org/tcl/ for details
2016-09-07 (bug)[c09edf] Bad caching with custom resolver (neumann,nijtmans)
@@ -8794,7 +8794,56 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich)
2017-07-17 (bug)[fb2208] Repeatable tclIndex generation (wiedemann,nijtmans)
--- Released 8.6.7, August 9, 2017 --- http://core.tcl.tk/tcl/ for details
--- Released 8.6.7, August 9, 2017 --- https://core.tcl-lang.org/tcl/ for details
Changes to 8.7a1 include all changes to the 8.6 line through 8.6.7,
plus the following, which focuses on the high-level feature changes
in this changeset (new minor version) rather than bug fixes:
2016-03-17 (bug)[0b8c38] socket accept callbacks always in global ns (porter)
*** POTENTIAL INCOMPATIBILITY ***
2016-07-01 Hack accommodations for legacy Itcl 3 disabled (porter)
2016-07-12 Make TCL_HASH_TYPE build-time configurable (nijtmans)
2016-07-19 (bug)[0363f0] Partial array search ID reform (porter)
2016-07-19 (feature removed) Tcl_ObjType "array search" unregistered (porter)
*** POTENTIAL INCOMPATIBILITY for Tcl_GetObjType("array search") ***
2016-10-04 Server socket on port 0 chooses port supporting IPv4 * IPv6 (max)
2016-11-25 [array names -regexp] supports backrefs (goth)
2017-01-04 (TIP 456) New routine Tcl_OpenTcpServerEx() (limeboy)
2017-01-04 (TIP 459) New subcommand [package files] (nijtmans)
2017-01-16 threaded allocator initialization repair (vasiljevic,nijtmans)
2017-01-30 Add to Win shell builtins: assoc ftype move (ashok)
2017-03-31 TCL_MEM_DEBUG facilities better support 64-bit memory (nijtmans)
2017-04-13 \u escaped content in msg files converted to true utf-8 (nijtmans)
2017-05-18 (TIP 458) New epoll or kqueue notifiers are default (alborboz)
2017-05-31 Purge build support for SunOS-4.* (stu)
2017-06-22 (TIP 463) New option [regsub ... -command ...] (fellows)
2017-06-22 (TIP 470) Tcl_GetDefineContextObject();[oo::define [self]] (fellows)
=> TclOO 1.2.0
2017-06-23 (TIP 472) Support 0d as prefix of decimal numbers (iyer,griffin)
2017-08-31 (bug)[2a9465] http state 100 continue handling broken (oehlmann)
2017-09-02 (bug)[0e4d88] replace command, delete trace kills namespace (porter)
--- Released 8.7a1, September 8, 2017 --- http://core.tcl.tk/tcl/ for details
2017-08-10 [array names -regexp] supports backrefs (goth)
@@ -8829,58 +8878,245 @@ improvements to regexp engine from Postgres (lane,porter,fellows,seltenreich)
2017-12-19 (bug)[586e71] EvalObjv exception handling at level #0 (sebres,porter)
--- Released 8.6.8, December 22, 2017 --- http://core.tcl.tk/tcl/ for details
--- Released 8.6.8, December 22, 2017 --- https://core.tcl-lang.org/tcl/ for details
Changes to 8.7a1 include all changes to the 8.6 line through 8.6.7,
2018-02-11 (enhance) stop blocking conversion of object to/from class (coulter)
2018-02-12 (enhance) NR-enable [package require] (coulter)
2018-02-14 (bug)[9fd5c6] crash in object deletion, test oo-11.5 (coulter)
2018-02-14 (bug)[3c32a3] crash deleting object with class mixed in (coulter)
2018-02-15 (platform) stop using -lieee, removed from glibc-2.27 (porter)
***POTENTIAL INCOMPATIBILITY for math programs that embed Tcl***
2018-02-23 (bug)[8e6a9a] bad binary [string match], test string-11.55 (porter)
2018-03-05 (bug)[1873ea] repair multi-thread std channel init (sebres)
2018-03-09 (bug)[db36fa] broken bytecode for index values (porter)
2018-03-13 (bug) broken compiled [string replace], test string-14.19 (porter)
2018-03-14 (bug) [string trim*] engine crashed on invalid UTF (sebres)
2018-04-17 (bug) missing trace in compiled [array set], test var-20.11 (porter)
2018-04-22 (bug)[46a241] crash in unset array with search, var-13.[23] (goth)
2018-04-30 (bug)[27b682] race made [file delete] raise "no such file" (sebres)
2018-06-04 (bug)[925643] 32/64 cleanup of filesystem DIR operations (sebres)
2018-06-18 (bug) leaks in TclSetEnv and env cache (coulter)
2018-06-24 (bug)[3592747] [yieldto] dying namespace, tailcall-14.1 (coulter)
2018-07-09 (bug)[270f78] race in [file mkdir] (sebres)
2018-07-12 (bug)[3f7af0] [file delete] raised "permission denied" (sebres)
2018-07-26 (bug)[d051b7] overflow crash in [format] (sebres)
2018-08-29 revised quoting of [exec] args in generated command line (sebres)
***POTENTIAL INCOMPATIBILITY***
2018-09-20 HTTP Keep-Alive with pipelined requests (nash)
=> http 2.9.0
2018-09-27 (new)[TIP 505] [lreplace] accepts all out of range indices (porter)
2018-10-04 (bug) Prevent crash from NULL keyName (nijtmans)
=> registry 1.3.3
2018-10-26 (enhance) advance dde version (nijtmans)
=> dde 1.4.1
2018-10-27 tzdata updated to Olson's tzdata2018g (jima)
2018-10-29 Update tcltest package for Travis support (fellows)
=> tcltest 2.5.0
2018-11-09 (bug)[35a8f1] overlong string length of some lists (owens)
2018-11-16 (bug)[00d04c] Repair [binary encode base64] (sebres)
- Released 8.6.9, November 16, 2018 - details at http://core.tcl-lang.org/tcl/ -
2018-11-22 (bug)[7a9dc5] [file normalize ~/~foo] segfault (sebres)
2018-12-30 (bug)[3cf3a9] variable 'timezone' deprecated in vc2017 (nijtmans)
2019-01-09 (bug)[cc1e91] [list [list {*}[set a " "]]] regression (sebres)
2019-02-01 (bug)[e3f481] tests var-1.2[01] (sebres)
2019-03-01 (new) Update to Unicode 12.0 (nijtmans)
2019-03-05 (new)[TIP 527] New command [timerate] (sebres)
2019-03-08 (bug)[39fed4] [package require] memory validity (hume,porter)
2019-04-23 (new) New command tcl::unsupported::corotype (fellows)
2019-05-04 (bug) memlink when namespace deletion kills linked var (porter)
2019-05-28 (new) README file converted to README.md in Markdown (nijtmans)
2019-06-17 (bug)[8b9854] [info level 0] regression with ensembles (porter)
2019-06-20 (bug)[6bdadf] crash multi-arg write-traced [lappend] (fellows,porter)
2019-06-21 (bug)[f8a33c] crash Tcl_Exit before init (brooks,sebres)
2019-08-27 (bug)[fa6bf3] Bytecode fails epoch recovery at numLevel=0 (sebres)
2019-08-29 (bug)[fec0c1] C stack overflow compiling bytecode (ade,sebres)
2019-09-12 tzdata updated to Olson's tzdata2019c (jima)
2019-09-20 (new) registry/dde no longer need -DUNICODE (nijtmans)
=> registry 1.3.4
=> dde 1.4.2
2019-10-02 (bug)[16768d] Fix [info hostname] on NetBSD (rytaro)
2019-10-23 (new) libtommath updated to release 1.2.0 (nijtmans)
2019-10-25 OSX: system Tcl deprecated. End default use of its packages. (walzer)
2019-10-28 (bug)[bcd100] bad fs cache when system encoding changes (coulter)
2019-11-15 (bug)[135804] segfault in [next] after destroy (coulter,sebres)
- Released 8.6.10, Nov 21, 2019 - details at http://core.tcl-lang.org/tcl/ -
Changes to 8.7a3 include all changes to the 8.6 line through 8.6.10,
plus the following, which focuses on the high-level feature changes
in this changeset (new minor version) rather than bug fixes:
2016-03-17 (bug)[0b8c38] socket accept callbacks always in global ns (porter)
*** POTENTIAL INCOMPATIBILITY ***
2017-11-01 (bug)[3c32a3] crash deleting class mixed into instance (coulter)
2016-07-01 Hack accommodations for legacy Itcl 3 disabled (porter)
2017-11-03 [TIP 345] eliminate the encoding 'identity' (porter)
2016-07-12 Make TCL_HASH_TYPE build-time configurable (nijtmans)
2017-11-04 (bug)[0d902e] [string first] on ASCII stored as Unicode (fellows)
2016-07-19 (bug)[0363f0] Partial array search ID reform (porter)
2017-11-17 [TIP 422] Mark all Tcl_*VA() routines deprecated. (nijtmans)
2016-07-19 (feature removed) Tcl_ObjType "array search" unregistered (porter)
*** POTENTIAL INCOMPATIBILITY for Tcl_GetObjType("array search") ***
2017-11-20 (support) Ended use of the obsolete values.h header (culler)
2016-10-04 Server socket on port 0 chooses port supporting IPv4 * IPv6 (max)
2017-11-30 (bug)[8e1e31] [lsort] ordering of U+0000 (nijtmans)
2016-11-25 [array named -regexp] supports backrefs (goth)
2017-12-07 [TIP 487] Terminate support for pre-XP Windows (nijtmans)
2017-01-04 (TIP 456) New routine Tcl_OpenTcpServerEx() (limeboy)
2017-12-08 [TIP 477] Reform of nmake build (nadkarni)
2017-01-04 (TIP 459) New subcommand [package files] (nijtmans)
2017-12-20 (bug)[ba1419] Crash: complex ensemble delete, namespace-7.8 (coulter)
2017-01-16 threaded allocator initialization repair (vasiljevic,nijtmans)
2018-01-17 [TIP 485] Removal of many deprecated features (nijtmans)
2017-01-30 Add to Win shell builtins: assoc ftype move (ashok)
2018-01-27 (bug) Crash in [join $l $l], join-4.1 (porter)
2017-03-31 TCL_MEM_DEBUG facilities better support 64-bit memory (nijtmans)
2018-02-06 [TIP 493] Cease Distribution of http 1.0 (porter)
2017-04-13 \u escaped content in msg files converted to true utf-8 (nijtmans)
2018-02-06 [TIP 484] internal rep for native ints are all 64-bit (nijtmans)
2017-05-18 (TIP 458) New epoll or kqueue notifiers are default (alborboz)
2018-02-14 [TIP 476] Scan/Printf consistency (nijtmans)
2017-05-31 Purge build support for SunOS-4.* (stu)
2018-03-05 [TIP 351] [lsearch] striding
2017-06-22 (TIP 463) New option [regsub ... -command ...] (fellows)
2018-03-05 [TIPs 330,336] tighten access to Interp fields (porter)
2017-06-22 (TIP 470) Tcl_GetDefineContextObject();[oo::define [self]] (fellows)
=> TclOO 1.2.0
2018-03-12 [TIP 462] [::tcl::process]
2017-06-23 (TIP 472) Support 0d as prefix of decimal numbers (iyer,griffin)
2018-03-12 [TIP 490] add oo support for msgcat => msgcat 1.7.0 (oehlmann)
2017-08-31 (bug)[2a9465] http state 100 continue handling broken (oehlmann)
2017-09-02 (bug)[0e4d88] replace command, delete trace kills namespace (porter)
--- Released 8.7a1, September 8, 2017 --- http://core.tcl.tk/tcl/ for details
2018-03-12 (TIP 490) add oo support for msgcat => msgcat 1.7.0 (oehlmann)
2018-03-12 (TIP 499) custom locale preference list (oehlmann)
2018-03-12 [TIP 499] custom locale preference list (oehlmann)
=> msgcat 1.7.0
2018-03-20 [TIP 503] End CONST84 support for Tcl 8.3 (porter)
2018-03-30 Refactored [lrange] (spjuth)
2018-04-20 [TIP 389] Unicode beyond BMP (nijtmans)
2018-04-20 [TIP 421] [array for]
2018-05-11 [TIP 425] Windows panic callback use of UTF-8
2018-05-17 [TIP 491] Phase out --disable-threads support
2018-06-03 [TIP 500] TclOO Private Methods and Variables
2018-07-26 (bug)[ba921a] [string cat] of bytearrays (coulter,porter)
2018-09-02 [TIP 478] Many new features in TclOO (lester,fellows)
2018-09-04 (bug)[540bed] [binary format w] from bignum (nijtmans)
2018-09-12 [TIP 430] zipfs and embedded script library (woods)
2018-09-26 [TIP 508] [array default] (bonnet,fellows)
2018-09-27 [TIP 515] level value reform (nijtmans)
2018-09-27 [TIP 516] More OO slot operations (fellows)
2018-09-27 [TIP 426] [info cmdtype] (fellows)
2018-09-28 [TIP 509] Cross platform reentrant mutex
2018-10-08 [TIP 514] native integers are 64-bit
2018-10-12 [TIP 502] index value reform (porter)
2018-11-06 [TIP 406] http cookies (fellows)
2018-11-06 [TIP 445] Tcl_ObjType utilities (migrate to Tcl 9) (porter)
2018-11-06 [TIP 501] [string is dict]
2018-11-06 [TIP 519] inline export/unexport option for [oo::define]
2018-11-06 [TIP 523] [lpop]
2018-11-06 [TIP 524] TclOO custom dialects
2018-11-06 [TIP 506] Tcl_(Incr|Decr)RefCount macros -> functions (porter)
2018-11-15 [TIP 512] No stub for Tcl_SetExitProc()
2019-04-08 (bug)[45b9fa] crash in [try] (coulter)
2019-04-14 [TIP 160] terminal and serial channel controls
2019-04-14 [TIP 312] more types for Tcl_LinkVar
2019-04-14 [TIP 367] [lremove]
2019-04-14 [TIP 504] [string insert]
2019-04-16 [TIP 342] [dict getwithdefault]
2019-05-25 [TIP 431] [file tempdir]
2019-05-25 [TIP 383] [coroinject], [coroprobe]
2019-05-31 [TIP 544] Tcl_GetIntForIndex()
2019-06-12 Replace TclOffset() with offsetof()
2019-06-15 [TIP 461] string compare operators for [expr]
2019-06-16 [TIP 521] floating point classification functions for [expr]
2019-06-20 (bug)[6bdadf] crash multi-arg traced [lappend] (fellows)
2019-06-28 [TIP 547] New encodings utf-16, ucs-2
2019-09-14 [TIP 414] Tcl_InitSubsystems()
2019-09-14 [TIP 548] wchar_t conversion functions
- Released 8.7a3, Nov 21, 2019 --- http://core.tcl-lang.org/tcl/ for details -
+3 -2
View File
@@ -73,6 +73,7 @@ int fake_getnameinfo(const struct sockaddr *sa, size_t salen, char *host,
struct sockaddr_in *sin = (struct sockaddr_in *)sa;
struct hostent *hp;
char tmpserv[16];
(void)salen;
if (sa->sa_family != AF_UNSPEC && sa->sa_family != AF_INET)
return (EAI_FAMILY);
@@ -153,7 +154,7 @@ addrinfo *malloc_ai(int port, u_long addr, const struct addrinfo *hints)
{
struct addrinfo *ai;
ai = malloc(sizeof(*ai) + sizeof(struct sockaddr_in));
ai = (struct addrinfo *)malloc(sizeof(*ai) + sizeof(struct sockaddr_in));
if (ai == NULL)
return (NULL);
@@ -217,7 +218,7 @@ fake_getaddrinfo(const char *hostname, const char *servname,
}
if (!hostname) {
*res = malloc_ai(port, htonl(0x7f000001), hints);
*res = malloc_ai(port, htonl(0x7F000001), hints);
if (*res == NULL)
return (EAI_MEMORY);
return (0);
-36
View File
@@ -1,36 +0,0 @@
/*
* fixstrtod.c --
*
* Source code for the "fixstrtod" procedure. This procedure is
* used in place of strtod under Solaris 2.4, in order to fix
* a bug where the "end" pointer gets set incorrectly.
*
* Copyright (c) 1995 Sun Microsystems, Inc.
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*/
#include <stdio.h>
#undef strtod
/*
* Declare strtod explicitly rather than including stdlib.h, since in
* somes systems (e.g. SunOS 4.1.4) stdlib.h doesn't declare strtod.
*/
extern double strtod(char *, char **);
double
fixstrtod(
char *string,
char **endPtr)
{
double d;
d = strtod(string, endPtr);
if ((endPtr != NULL) && (*endPtr != string) && ((*endPtr)[-1] == 0)) {
*endPtr -= 1;
}
return d;
}
+2 -1
View File
@@ -21,10 +21,11 @@ gettimeofday(
struct timezone *tz)
{
struct timeb t;
(void)tz;
ftime(&t);
tp->tv_sec = t.time;
tp->tv_usec = t. millitm * 1000;
tp->tv_usec = t.millitm * 1000;
return 0;
}
+7 -6
View File
@@ -13,6 +13,7 @@
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
/*
*----------------------------------------------------------------------
@@ -32,19 +33,19 @@
int
mkstemp(
char *template) /* Template for filename. */
char *tmpl) /* Template for filename. */
{
static const char alphanumerics[] =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
register char *a, *b;
char *a, *b;
int fd, count, alphanumericsLen = strlen(alphanumerics); /* == 62 */
a = template + strlen(template);
while (a > template && *(a-1) == 'X') {
a = tmpl + strlen(tmpl);
while (a > tmpl && *(a-1) == 'X') {
a--;
}
if (a == template) {
if (a == tmpl) {
errno = ENOENT;
return -1;
}
@@ -71,7 +72,7 @@ mkstemp(
* Template is now realized; try to open (with correct options).
*/
fd = open(template, O_RDWR|O_CREAT|O_EXCL, 0600);
fd = open(tmpl, O_RDWR|O_CREAT|O_EXCL, 0600);
} while (fd == -1 && errno == EEXIST && --count > 0);
return fd;
+6 -6
View File
@@ -20,9 +20,9 @@ DIR *
opendir(
char *name)
{
register DIR *dirp;
register int fd;
char *myname;
DIR *dirp;
int fd;
const char *myname;
myname = ((*name == '\0') ? "." : name);
if ((fd = open(myname, 0, 0)) == -1) {
@@ -65,9 +65,9 @@ struct olddirect {
struct dirent *
readdir(
register DIR *dirp)
DIR *dirp)
{
register struct olddirect *dp;
struct olddirect *dp;
static struct dirent dir;
for (;;) {
@@ -101,7 +101,7 @@ readdir(
void
closedir(
register DIR *dirp)
DIR *dirp)
{
close(dirp->dd_fd);
dirp->dd_fd = -1;
+919
View File
@@ -0,0 +1,919 @@
/* A portable stdint.h
****************************************************************************
* BSD License:
****************************************************************************
*
* Copyright (c) 2005-2016 Paul Hsieh
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************
*
* Version 0.1.16.0
*
* The ANSI C standard committee, for the C99 standard, specified the
* inclusion of a new standard include file called stdint.h. This is
* a very useful and long desired include file which contains several
* very precise definitions for integer scalar types that is critically
* important for making several classes of applications portable
* including cryptography, hashing, variable length integer libraries
* and so on. But for most developers its likely useful just for
* programming sanity.
*
* The problem is that some compiler vendors chose to ignore the C99
* standard and some older compilers have no opportunity to be updated.
* Because of this situation, simply including stdint.h in your code
* makes it unportable.
*
* So that's what this file is all about. It's an attempt to build a
* single universal include file that works on as many platforms as
* possible to deliver what stdint.h is supposed to. Even compilers
* that already come with stdint.h can use this file instead without
* any loss of functionality. A few things that should be noted about
* this file:
*
* 1) It is not guaranteed to be portable and/or present an identical
* interface on all platforms. The extreme variability of the
* ANSI C standard makes this an impossibility right from the
* very get go. Its really only meant to be useful for the vast
* majority of platforms that possess the capability of
* implementing usefully and precisely defined, standard sized
* integer scalars. Systems which are not intrinsically 2s
* complement may produce invalid constants.
*
* 2) There is an unavoidable use of non-reserved symbols.
*
* 3) Other standard include files are invoked.
*
* 4) This file may come in conflict with future platforms that do
* include stdint.h. The hope is that one or the other can be
* used with no real difference.
*
* 5) In the current version, if your platform can't represent
* int32_t, int16_t and int8_t, it just dumps out with a compiler
* error.
*
* 6) 64 bit integers may or may not be defined. Test for their
* presence with the test: #ifdef INT64_MAX or #ifdef UINT64_MAX.
* Note that this is different from the C99 specification which
* requires the existence of 64 bit support in the compiler. If
* this is not defined for your platform, yet it is capable of
* dealing with 64 bits then it is because this file has not yet
* been extended to cover all of your system's capabilities.
*
* 7) (u)intptr_t may or may not be defined. Test for its presence
* with the test: #ifdef PTRDIFF_MAX. If this is not defined
* for your platform, then it is because this file has not yet
* been extended to cover all of your system's capabilities, not
* because its optional.
*
* 8) The following might not been defined even if your platform is
* capable of defining it:
*
* WCHAR_MIN
* WCHAR_MAX
* (u)int64_t
* PTRDIFF_MIN
* PTRDIFF_MAX
* (u)intptr_t
*
* 9) The following have not been defined:
*
* WINT_MIN
* WINT_MAX
*
* 10) The criteria for defining (u)int_least(*)_t isn't clear,
* except for systems which don't have a type that precisely
* defined 8, 16, or 32 bit types (which this include file does
* not support anyways). Default definitions have been given.
*
* 11) The criteria for defining (u)int_fast(*)_t isn't something I
* would trust to any particular compiler vendor or the ANSI C
* committee. It is well known that "compatible systems" are
* commonly created that have very different performance
* characteristics from the systems they are compatible with,
* especially those whose vendors make both the compiler and the
* system. Default definitions have been given, but its strongly
* recommended that users never use these definitions for any
* reason (they do *NOT* deliver any serious guarantee of
* improved performance -- not in this file, nor any vendor's
* stdint.h).
*
* 12) The following macros:
*
* PRINTF_INTMAX_MODIFIER
* PRINTF_INT64_MODIFIER
* PRINTF_INT32_MODIFIER
* PRINTF_INT16_MODIFIER
* PRINTF_LEAST64_MODIFIER
* PRINTF_LEAST32_MODIFIER
* PRINTF_LEAST16_MODIFIER
* PRINTF_INTPTR_MODIFIER
*
* are strings which have been defined as the modifiers required
* for the "d", "u" and "x" printf formats to correctly output
* (u)intmax_t, (u)int64_t, (u)int32_t, (u)int16_t, (u)least64_t,
* (u)least32_t, (u)least16_t and (u)intptr_t types respectively.
* PRINTF_INTPTR_MODIFIER is not defined for some systems which
* provide their own stdint.h. PRINTF_INT64_MODIFIER is not
* defined if INT64_MAX is not defined. These are an extension
* beyond what C99 specifies must be in stdint.h.
*
* In addition, the following macros are defined:
*
* PRINTF_INTMAX_HEX_WIDTH
* PRINTF_INT64_HEX_WIDTH
* PRINTF_INT32_HEX_WIDTH
* PRINTF_INT16_HEX_WIDTH
* PRINTF_INT8_HEX_WIDTH
* PRINTF_INTMAX_DEC_WIDTH
* PRINTF_INT64_DEC_WIDTH
* PRINTF_INT32_DEC_WIDTH
* PRINTF_INT16_DEC_WIDTH
* PRINTF_UINT8_DEC_WIDTH
* PRINTF_UINTMAX_DEC_WIDTH
* PRINTF_UINT64_DEC_WIDTH
* PRINTF_UINT32_DEC_WIDTH
* PRINTF_UINT16_DEC_WIDTH
* PRINTF_UINT8_DEC_WIDTH
*
* Which specifies the maximum number of characters required to
* print the number of that type in either hexadecimal or decimal.
* These are an extension beyond what C99 specifies must be in
* stdint.h.
*
* Compilers tested (all with 0 warnings at their highest respective
* settings): Borland Turbo C 2.0, WATCOM C/C++ 11.0 (16 bits and 32
* bits), Microsoft Visual C++ 6.0 (32 bit), Microsoft Visual Studio
* .net (VC7), Intel C++ 4.0, GNU gcc v3.3.3
*
* This file should be considered a work in progress. Suggestions for
* improvements, especially those which increase coverage are strongly
* encouraged.
*
* Acknowledgements
*
* The following people have made significant contributions to the
* development and testing of this file:
*
* Chris Howie
* John Steele Scott
* Dave Thorup
* John Dill
* Florian Wobbe
* Christopher Sean Morrison
* Mikkel Fahnoe Jorgensen
*
*/
#include <stddef.h>
#include <limits.h>
#include <signal.h>
/*
* For gcc with _STDINT_H, fill in the PRINTF_INT*_MODIFIER macros, and
* do nothing else. On the Mac OS X version of gcc this is _STDINT_H_.
*/
#if ((defined(__SUNPRO_C) && __SUNPRO_C >= 0x570) || (defined(_MSC_VER) && _MSC_VER >= 1600) || (defined(__STDC__) && __STDC__ && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || (defined (__WATCOMC__) && (defined (_STDINT_H_INCLUDED) || __WATCOMC__ >= 1250)) || (defined(__GNUC__) && (__GNUC__ > 3 || defined(_STDINT_H) || defined(_STDINT_H_) || defined (__UINT_FAST64_TYPE__)) )) && !defined (_PSTDINT_H_INCLUDED)
#include <stdint.h>
#define _PSTDINT_H_INCLUDED
# if defined(__GNUC__) && (defined(__x86_64__) || defined(__ppc64__)) && !(defined(__APPLE__) && defined(__MACH__))
# ifndef PRINTF_INT64_MODIFIER
# define PRINTF_INT64_MODIFIER "l"
# endif
# ifndef PRINTF_INT32_MODIFIER
# define PRINTF_INT32_MODIFIER ""
# endif
# else
# ifndef PRINTF_INT64_MODIFIER
# define PRINTF_INT64_MODIFIER "ll"
# endif
# ifndef PRINTF_INT32_MODIFIER
# if (UINT_MAX == UINT32_MAX)
# define PRINTF_INT32_MODIFIER ""
# else
# define PRINTF_INT32_MODIFIER "l"
# endif
# endif
# endif
# ifndef PRINTF_INT16_MODIFIER
# define PRINTF_INT16_MODIFIER "h"
# endif
# ifndef PRINTF_INTMAX_MODIFIER
# define PRINTF_INTMAX_MODIFIER PRINTF_INT64_MODIFIER
# endif
# ifndef PRINTF_INT64_HEX_WIDTH
# define PRINTF_INT64_HEX_WIDTH "16"
# endif
# ifndef PRINTF_UINT64_HEX_WIDTH
# define PRINTF_UINT64_HEX_WIDTH "16"
# endif
# ifndef PRINTF_INT32_HEX_WIDTH
# define PRINTF_INT32_HEX_WIDTH "8"
# endif
# ifndef PRINTF_UINT32_HEX_WIDTH
# define PRINTF_UINT32_HEX_WIDTH "8"
# endif
# ifndef PRINTF_INT16_HEX_WIDTH
# define PRINTF_INT16_HEX_WIDTH "4"
# endif
# ifndef PRINTF_UINT16_HEX_WIDTH
# define PRINTF_UINT16_HEX_WIDTH "4"
# endif
# ifndef PRINTF_INT8_HEX_WIDTH
# define PRINTF_INT8_HEX_WIDTH "2"
# endif
# ifndef PRINTF_UINT8_HEX_WIDTH
# define PRINTF_UINT8_HEX_WIDTH "2"
# endif
# ifndef PRINTF_INT64_DEC_WIDTH
# define PRINTF_INT64_DEC_WIDTH "19"
# endif
# ifndef PRINTF_UINT64_DEC_WIDTH
# define PRINTF_UINT64_DEC_WIDTH "20"
# endif
# ifndef PRINTF_INT32_DEC_WIDTH
# define PRINTF_INT32_DEC_WIDTH "10"
# endif
# ifndef PRINTF_UINT32_DEC_WIDTH
# define PRINTF_UINT32_DEC_WIDTH "10"
# endif
# ifndef PRINTF_INT16_DEC_WIDTH
# define PRINTF_INT16_DEC_WIDTH "5"
# endif
# ifndef PRINTF_UINT16_DEC_WIDTH
# define PRINTF_UINT16_DEC_WIDTH "5"
# endif
# ifndef PRINTF_INT8_DEC_WIDTH
# define PRINTF_INT8_DEC_WIDTH "3"
# endif
# ifndef PRINTF_UINT8_DEC_WIDTH
# define PRINTF_UINT8_DEC_WIDTH "3"
# endif
# ifndef PRINTF_INTMAX_HEX_WIDTH
# define PRINTF_INTMAX_HEX_WIDTH PRINTF_UINT64_HEX_WIDTH
# endif
# ifndef PRINTF_UINTMAX_HEX_WIDTH
# define PRINTF_UINTMAX_HEX_WIDTH PRINTF_UINT64_HEX_WIDTH
# endif
# ifndef PRINTF_INTMAX_DEC_WIDTH
# define PRINTF_INTMAX_DEC_WIDTH PRINTF_UINT64_DEC_WIDTH
# endif
# ifndef PRINTF_UINTMAX_DEC_WIDTH
# define PRINTF_UINTMAX_DEC_WIDTH PRINTF_UINT64_DEC_WIDTH
# endif
/*
* Something really weird is going on with Open Watcom. Just pull some of
* these duplicated definitions from Open Watcom's stdint.h file for now.
*/
# if defined (__WATCOMC__) && __WATCOMC__ >= 1250
# if !defined (INT64_C)
# define INT64_C(x) (x + (INT64_MAX - INT64_MAX))
# endif
# if !defined (UINT64_C)
# define UINT64_C(x) (x + (UINT64_MAX - UINT64_MAX))
# endif
# if !defined (INT32_C)
# define INT32_C(x) (x + (INT32_MAX - INT32_MAX))
# endif
# if !defined (UINT32_C)
# define UINT32_C(x) (x + (UINT32_MAX - UINT32_MAX))
# endif
# if !defined (INT16_C)
# define INT16_C(x) (x)
# endif
# if !defined (UINT16_C)
# define UINT16_C(x) (x)
# endif
# if !defined (INT8_C)
# define INT8_C(x) (x)
# endif
# if !defined (UINT8_C)
# define UINT8_C(x) (x)
# endif
# if !defined (UINT64_MAX)
# define UINT64_MAX 18446744073709551615ULL
# endif
# if !defined (INT64_MAX)
# define INT64_MAX 9223372036854775807LL
# endif
# if !defined (UINT32_MAX)
# define UINT32_MAX 4294967295UL
# endif
# if !defined (INT32_MAX)
# define INT32_MAX 2147483647L
# endif
# if !defined (INTMAX_MAX)
# define INTMAX_MAX INT64_MAX
# endif
# if !defined (INTMAX_MIN)
# define INTMAX_MIN INT64_MIN
# endif
# endif
#endif
/*
* I have no idea what is the truly correct thing to do on older Solaris.
* From some online discussions, this seems to be what is being
* recommended. For people who actually are developing on older Solaris,
* what I would like to know is, does this define all of the relevant
* macros of a complete stdint.h? Remember, in pstdint.h 64 bit is
* considered optional.
*/
#if (defined(__SUNPRO_C) && __SUNPRO_C >= 0x420) && !defined(_PSTDINT_H_INCLUDED)
#include <sys/inttypes.h>
#define _PSTDINT_H_INCLUDED
#endif
#ifndef _PSTDINT_H_INCLUDED
#define _PSTDINT_H_INCLUDED
#ifndef SIZE_MAX
# define SIZE_MAX ((size_t)-1)
#endif
/*
* Deduce the type assignments from limits.h under the assumption that
* integer sizes in bits are powers of 2, and follow the ANSI
* definitions.
*/
#ifndef UINT8_MAX
# define UINT8_MAX 0xff
#endif
#if !defined(uint8_t) && !defined(_UINT8_T) && !defined(vxWorks)
# if (UCHAR_MAX == UINT8_MAX) || defined (S_SPLINT_S)
typedef unsigned char uint8_t;
# define UINT8_C(v) ((uint8_t) v)
# else
# error "Platform not supported"
# endif
#endif
#ifndef INT8_MAX
# define INT8_MAX 0x7f
#endif
#ifndef INT8_MIN
# define INT8_MIN INT8_C(0x80)
#endif
#if !defined(int8_t) && !defined(_INT8_T) && !defined(vxWorks)
# if (SCHAR_MAX == INT8_MAX) || defined (S_SPLINT_S)
typedef signed char int8_t;
# define INT8_C(v) ((int8_t) v)
# else
# error "Platform not supported"
# endif
#endif
#ifndef UINT16_MAX
# define UINT16_MAX 0xffff
#endif
#if !defined(uint16_t) && !defined(_UINT16_T) && !defined(vxWorks)
#if (UINT_MAX == UINT16_MAX) || defined (S_SPLINT_S)
typedef unsigned int uint16_t;
# ifndef PRINTF_INT16_MODIFIER
# define PRINTF_INT16_MODIFIER ""
# endif
# define UINT16_C(v) ((uint16_t) (v))
#elif (USHRT_MAX == UINT16_MAX)
typedef unsigned short uint16_t;
# define UINT16_C(v) ((uint16_t) (v))
# ifndef PRINTF_INT16_MODIFIER
# define PRINTF_INT16_MODIFIER "h"
# endif
#else
#error "Platform not supported"
#endif
#endif
#ifndef INT16_MAX
# define INT16_MAX 0x7fff
#endif
#ifndef INT16_MIN
# define INT16_MIN INT16_C(0x8000)
#endif
#if !defined(int16_t) && !defined(_INT16_T) && !defined(vxWorks)
#if (INT_MAX == INT16_MAX) || defined (S_SPLINT_S)
typedef signed int int16_t;
# define INT16_C(v) ((int16_t) (v))
# ifndef PRINTF_INT16_MODIFIER
# define PRINTF_INT16_MODIFIER ""
# endif
#elif (SHRT_MAX == INT16_MAX)
typedef signed short int16_t;
# define INT16_C(v) ((int16_t) (v))
# ifndef PRINTF_INT16_MODIFIER
# define PRINTF_INT16_MODIFIER "h"
# endif
#else
#error "Platform not supported"
#endif
#endif
#ifndef UINT32_MAX
# define UINT32_MAX (0xffffffffUL)
#endif
#if !defined(uint32_t) && !defined(_UINT32_T) && !defined(vxWorks)
#if (ULONG_MAX == UINT32_MAX) || defined (S_SPLINT_S)
typedef unsigned long uint32_t;
# define UINT32_C(v) v ## UL
# ifndef PRINTF_INT32_MODIFIER
# define PRINTF_INT32_MODIFIER "l"
# endif
#elif (UINT_MAX == UINT32_MAX)
typedef unsigned int uint32_t;
# ifndef PRINTF_INT32_MODIFIER
# define PRINTF_INT32_MODIFIER ""
# endif
# define UINT32_C(v) v ## U
#elif (USHRT_MAX == UINT32_MAX)
typedef unsigned short uint32_t;
# define UINT32_C(v) ((unsigned short) (v))
# ifndef PRINTF_INT32_MODIFIER
# define PRINTF_INT32_MODIFIER ""
# endif
#else
#error "Platform not supported"
#endif
#endif
#ifndef INT32_MAX
# define INT32_MAX (0x7fffffffL)
#endif
#ifndef INT32_MIN
# define INT32_MIN INT32_C(0x80000000)
#endif
#if !defined(int32_t) && !defined(_INT32_T) && !defined(vxWorks)
#if (LONG_MAX == INT32_MAX) || defined (S_SPLINT_S)
typedef signed long int32_t;
# define INT32_C(v) v ## L
# ifndef PRINTF_INT32_MODIFIER
# define PRINTF_INT32_MODIFIER "l"
# endif
#elif (INT_MAX == INT32_MAX)
typedef signed int int32_t;
# define INT32_C(v) v
# ifndef PRINTF_INT32_MODIFIER
# define PRINTF_INT32_MODIFIER ""
# endif
#elif (SHRT_MAX == INT32_MAX)
typedef signed short int32_t;
# define INT32_C(v) ((short) (v))
# ifndef PRINTF_INT32_MODIFIER
# define PRINTF_INT32_MODIFIER ""
# endif
#else
#error "Platform not supported"
#endif
#endif
/*
* The macro stdint_int64_defined is temporarily used to record
* whether or not 64 integer support is available. It must be
* defined for any 64 integer extensions for new platforms that are
* added.
*/
#undef stdint_int64_defined
#if (defined(__STDC__) && defined(__STDC_VERSION__)) || defined (S_SPLINT_S)
# if (__STDC__ && __STDC_VERSION__ >= 199901L) || defined (S_SPLINT_S)
# define stdint_int64_defined
typedef long long int64_t;
typedef unsigned long long uint64_t;
# define UINT64_C(v) v ## ULL
# define INT64_C(v) v ## LL
# ifndef PRINTF_INT64_MODIFIER
# define PRINTF_INT64_MODIFIER "ll"
# endif
# endif
#endif
#if !defined (stdint_int64_defined)
# if defined(__GNUC__) && !defined(vxWorks)
# define stdint_int64_defined
__extension__ typedef long long int64_t;
__extension__ typedef unsigned long long uint64_t;
# define UINT64_C(v) v ## ULL
# define INT64_C(v) v ## LL
# ifndef PRINTF_INT64_MODIFIER
# define PRINTF_INT64_MODIFIER "ll"
# endif
# elif defined(__MWERKS__) || defined (__SUNPRO_C) || defined (__SUNPRO_CC) || defined (__APPLE_CC__) || defined (_LONG_LONG) || defined (_CRAYC) || defined (S_SPLINT_S)
# define stdint_int64_defined
typedef long long int64_t;
typedef unsigned long long uint64_t;
# define UINT64_C(v) v ## ULL
# define INT64_C(v) v ## LL
# ifndef PRINTF_INT64_MODIFIER
# define PRINTF_INT64_MODIFIER "ll"
# endif
# elif (defined(__WATCOMC__) && defined(__WATCOM_INT64__)) || (defined(_MSC_VER) && _INTEGRAL_MAX_BITS >= 64) || (defined (__BORLANDC__) && __BORLANDC__ > 0x460) || defined (__alpha) || defined (__DECC)
# define stdint_int64_defined
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
# define UINT64_C(v) v ## UI64
# define INT64_C(v) v ## I64
# ifndef PRINTF_INT64_MODIFIER
# define PRINTF_INT64_MODIFIER "I64"
# endif
# endif
#endif
#if !defined (LONG_LONG_MAX) && defined (INT64_C)
# define LONG_LONG_MAX INT64_C (9223372036854775807)
#endif
#ifndef ULONG_LONG_MAX
# define ULONG_LONG_MAX UINT64_C (18446744073709551615)
#endif
#if !defined (INT64_MAX) && defined (INT64_C)
# define INT64_MAX INT64_C (9223372036854775807)
#endif
#if !defined (INT64_MIN) && defined (INT64_C)
# define INT64_MIN INT64_C (-9223372036854775808)
#endif
#if !defined (UINT64_MAX) && defined (INT64_C)
# define UINT64_MAX UINT64_C (18446744073709551615)
#endif
/*
* Width of hexadecimal for number field.
*/
#ifndef PRINTF_INT64_HEX_WIDTH
# define PRINTF_INT64_HEX_WIDTH "16"
#endif
#ifndef PRINTF_INT32_HEX_WIDTH
# define PRINTF_INT32_HEX_WIDTH "8"
#endif
#ifndef PRINTF_INT16_HEX_WIDTH
# define PRINTF_INT16_HEX_WIDTH "4"
#endif
#ifndef PRINTF_INT8_HEX_WIDTH
# define PRINTF_INT8_HEX_WIDTH "2"
#endif
#ifndef PRINTF_INT64_DEC_WIDTH
# define PRINTF_INT64_DEC_WIDTH "19"
#endif
#ifndef PRINTF_INT32_DEC_WIDTH
# define PRINTF_INT32_DEC_WIDTH "10"
#endif
#ifndef PRINTF_INT16_DEC_WIDTH
# define PRINTF_INT16_DEC_WIDTH "5"
#endif
#ifndef PRINTF_INT8_DEC_WIDTH
# define PRINTF_INT8_DEC_WIDTH "3"
#endif
#ifndef PRINTF_UINT64_DEC_WIDTH
# define PRINTF_UINT64_DEC_WIDTH "20"
#endif
#ifndef PRINTF_UINT32_DEC_WIDTH
# define PRINTF_UINT32_DEC_WIDTH "10"
#endif
#ifndef PRINTF_UINT16_DEC_WIDTH
# define PRINTF_UINT16_DEC_WIDTH "5"
#endif
#ifndef PRINTF_UINT8_DEC_WIDTH
# define PRINTF_UINT8_DEC_WIDTH "3"
#endif
/*
* Ok, lets not worry about 128 bit integers for now. Moore's law says
* we don't need to worry about that until about 2040 at which point
* we'll have bigger things to worry about.
*/
#ifdef stdint_int64_defined
typedef int64_t intmax_t;
typedef uint64_t uintmax_t;
# define INTMAX_MAX INT64_MAX
# define INTMAX_MIN INT64_MIN
# define UINTMAX_MAX UINT64_MAX
# define UINTMAX_C(v) UINT64_C(v)
# define INTMAX_C(v) INT64_C(v)
# ifndef PRINTF_INTMAX_MODIFIER
# define PRINTF_INTMAX_MODIFIER PRINTF_INT64_MODIFIER
# endif
# ifndef PRINTF_INTMAX_HEX_WIDTH
# define PRINTF_INTMAX_HEX_WIDTH PRINTF_INT64_HEX_WIDTH
# endif
# ifndef PRINTF_INTMAX_DEC_WIDTH
# define PRINTF_INTMAX_DEC_WIDTH PRINTF_INT64_DEC_WIDTH
# endif
#else
typedef int32_t intmax_t;
typedef uint32_t uintmax_t;
# define INTMAX_MAX INT32_MAX
# define UINTMAX_MAX UINT32_MAX
# define UINTMAX_C(v) UINT32_C(v)
# define INTMAX_C(v) INT32_C(v)
# ifndef PRINTF_INTMAX_MODIFIER
# define PRINTF_INTMAX_MODIFIER PRINTF_INT32_MODIFIER
# endif
# ifndef PRINTF_INTMAX_HEX_WIDTH
# define PRINTF_INTMAX_HEX_WIDTH PRINTF_INT32_HEX_WIDTH
# endif
# ifndef PRINTF_INTMAX_DEC_WIDTH
# define PRINTF_INTMAX_DEC_WIDTH PRINTF_INT32_DEC_WIDTH
# endif
#endif
/*
* Because this file currently only supports platforms which have
* precise powers of 2 as bit sizes for the default integers, the
* least definitions are all trivial. Its possible that a future
* version of this file could have different definitions.
*/
#ifndef stdint_least_defined
typedef int8_t int_least8_t;
typedef uint8_t uint_least8_t;
typedef int16_t int_least16_t;
typedef uint16_t uint_least16_t;
typedef int32_t int_least32_t;
typedef uint32_t uint_least32_t;
# define PRINTF_LEAST32_MODIFIER PRINTF_INT32_MODIFIER
# define PRINTF_LEAST16_MODIFIER PRINTF_INT16_MODIFIER
# define UINT_LEAST8_MAX UINT8_MAX
# define INT_LEAST8_MAX INT8_MAX
# define UINT_LEAST16_MAX UINT16_MAX
# define INT_LEAST16_MAX INT16_MAX
# define UINT_LEAST32_MAX UINT32_MAX
# define INT_LEAST32_MAX INT32_MAX
# define INT_LEAST8_MIN INT8_MIN
# define INT_LEAST16_MIN INT16_MIN
# define INT_LEAST32_MIN INT32_MIN
# ifdef stdint_int64_defined
typedef int64_t int_least64_t;
typedef uint64_t uint_least64_t;
# define PRINTF_LEAST64_MODIFIER PRINTF_INT64_MODIFIER
# define UINT_LEAST64_MAX UINT64_MAX
# define INT_LEAST64_MAX INT64_MAX
# define INT_LEAST64_MIN INT64_MIN
# endif
#endif
#undef stdint_least_defined
/*
* The ANSI C committee has defined *int*_fast*_t types as well. This,
* of course, defies rationality -- you can't know what will be fast
* just from the type itself. Even for a given architecture, compatible
* implementations might have different performance characteristics.
* Developers are warned to stay away from these types when using this
* or any other stdint.h.
*/
typedef int_least8_t int_fast8_t;
typedef uint_least8_t uint_fast8_t;
typedef int_least16_t int_fast16_t;
typedef uint_least16_t uint_fast16_t;
typedef int_least32_t int_fast32_t;
typedef uint_least32_t uint_fast32_t;
#define UINT_FAST8_MAX UINT_LEAST8_MAX
#define INT_FAST8_MAX INT_LEAST8_MAX
#define UINT_FAST16_MAX UINT_LEAST16_MAX
#define INT_FAST16_MAX INT_LEAST16_MAX
#define UINT_FAST32_MAX UINT_LEAST32_MAX
#define INT_FAST32_MAX INT_LEAST32_MAX
#define INT_FAST8_MIN INT_LEAST8_MIN
#define INT_FAST16_MIN INT_LEAST16_MIN
#define INT_FAST32_MIN INT_LEAST32_MIN
#ifdef stdint_int64_defined
typedef int_least64_t int_fast64_t;
typedef uint_least64_t uint_fast64_t;
# define UINT_FAST64_MAX UINT_LEAST64_MAX
# define INT_FAST64_MAX INT_LEAST64_MAX
# define INT_FAST64_MIN INT_LEAST64_MIN
#endif
#undef stdint_int64_defined
/*
* Whatever piecemeal, per compiler thing we can do about the wchar_t
* type limits.
*/
#if defined(__WATCOMC__) || defined(_MSC_VER) || defined (__GNUC__) && !defined(vxWorks)
# include <wchar.h>
# ifndef WCHAR_MIN
# define WCHAR_MIN 0
# endif
# ifndef WCHAR_MAX
# define WCHAR_MAX ((wchar_t)-1)
# endif
#endif
/*
* Whatever piecemeal, per compiler/platform thing we can do about the
* (u)intptr_t types and limits.
*/
#if (defined (_MSC_VER) && defined (_UINTPTR_T_DEFINED)) || defined (_UINTPTR_T)
# define STDINT_H_UINTPTR_T_DEFINED
#endif
#ifndef STDINT_H_UINTPTR_T_DEFINED
# if defined (__alpha__) || defined (__ia64__) || defined (__x86_64__) || defined (_WIN64) || defined (__ppc64__)
# define stdint_intptr_bits 64
# elif defined (__WATCOMC__) || defined (__TURBOC__)
# if defined(__TINY__) || defined(__SMALL__) || defined(__MEDIUM__)
# define stdint_intptr_bits 16
# else
# define stdint_intptr_bits 32
# endif
# elif defined (__i386__) || defined (_WIN32) || defined (WIN32) || defined (__ppc64__)
# define stdint_intptr_bits 32
# elif defined (__INTEL_COMPILER)
/* TODO -- what did Intel do about x86-64? */
# else
/* #error "This platform might not be supported yet" */
# endif
# ifdef stdint_intptr_bits
# define stdint_intptr_glue3_i(a,b,c) a##b##c
# define stdint_intptr_glue3(a,b,c) stdint_intptr_glue3_i(a,b,c)
# ifndef PRINTF_INTPTR_MODIFIER
# define PRINTF_INTPTR_MODIFIER stdint_intptr_glue3(PRINTF_INT,stdint_intptr_bits,_MODIFIER)
# endif
# ifndef PTRDIFF_MAX
# define PTRDIFF_MAX stdint_intptr_glue3(INT,stdint_intptr_bits,_MAX)
# endif
# ifndef PTRDIFF_MIN
# define PTRDIFF_MIN stdint_intptr_glue3(INT,stdint_intptr_bits,_MIN)
# endif
# ifndef UINTPTR_MAX
# define UINTPTR_MAX stdint_intptr_glue3(UINT,stdint_intptr_bits,_MAX)
# endif
# ifndef INTPTR_MAX
# define INTPTR_MAX stdint_intptr_glue3(INT,stdint_intptr_bits,_MAX)
# endif
# ifndef INTPTR_MIN
# define INTPTR_MIN stdint_intptr_glue3(INT,stdint_intptr_bits,_MIN)
# endif
# ifndef INTPTR_C
# define INTPTR_C(x) stdint_intptr_glue3(INT,stdint_intptr_bits,_C)(x)
# endif
# ifndef UINTPTR_C
# define UINTPTR_C(x) stdint_intptr_glue3(UINT,stdint_intptr_bits,_C)(x)
# endif
typedef stdint_intptr_glue3(uint,stdint_intptr_bits,_t) uintptr_t;
typedef stdint_intptr_glue3( int,stdint_intptr_bits,_t) intptr_t;
# else
/* TODO -- This following is likely wrong for some platforms, and does
nothing for the definition of uintptr_t. */
typedef ptrdiff_t intptr_t;
# endif
# define STDINT_H_UINTPTR_T_DEFINED
#endif
/*
* Assumes sig_atomic_t is signed and we have a 2s complement machine.
*/
#ifndef SIG_ATOMIC_MAX
# define SIG_ATOMIC_MAX ((((sig_atomic_t) 1) << (sizeof (sig_atomic_t)*CHAR_BIT-1)) - 1)
#endif
#endif
#if defined (__TEST_PSTDINT_FOR_CORRECTNESS)
/*
* Please compile with the maximum warning settings to make sure macros are
* not defined more than once.
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define glue3_aux(x,y,z) x ## y ## z
#define glue3(x,y,z) glue3_aux(x,y,z)
#define DECLU(bits) glue3(uint,bits,_t) glue3(u,bits,) = glue3(UINT,bits,_C) (0);
#define DECLI(bits) glue3(int,bits,_t) glue3(i,bits,) = glue3(INT,bits,_C) (0);
#define DECL(us,bits) glue3(DECL,us,) (bits)
#define TESTUMAX(bits) glue3(u,bits,) = ~glue3(u,bits,); if (glue3(UINT,bits,_MAX) != glue3(u,bits,)) printf ("Something wrong with UINT%d_MAX\n", bits)
#define REPORTERROR(msg) { err_n++; if (err_first <= 0) err_first = __LINE__; printf msg; }
#define X_SIZE_MAX ((size_t)-1)
int main () {
int err_n = 0;
int err_first = 0;
DECL(I,8)
DECL(U,8)
DECL(I,16)
DECL(U,16)
DECL(I,32)
DECL(U,32)
#ifdef INT64_MAX
DECL(I,64)
DECL(U,64)
#endif
intmax_t imax = INTMAX_C(0);
uintmax_t umax = UINTMAX_C(0);
char str0[256], str1[256];
sprintf (str0, "%" PRINTF_INT32_MODIFIER "d", INT32_C(2147483647));
if (0 != strcmp (str0, "2147483647")) REPORTERROR (("Something wrong with PRINTF_INT32_MODIFIER : %s\n", str0));
if (atoi(PRINTF_INT32_DEC_WIDTH) != (int) strlen(str0)) REPORTERROR (("Something wrong with PRINTF_INT32_DEC_WIDTH : %s\n", PRINTF_INT32_DEC_WIDTH));
sprintf (str0, "%" PRINTF_INT32_MODIFIER "u", UINT32_C(4294967295));
if (0 != strcmp (str0, "4294967295")) REPORTERROR (("Something wrong with PRINTF_INT32_MODIFIER : %s\n", str0));
if (atoi(PRINTF_UINT32_DEC_WIDTH) != (int) strlen(str0)) REPORTERROR (("Something wrong with PRINTF_UINT32_DEC_WIDTH : %s\n", PRINTF_UINT32_DEC_WIDTH));
#ifdef INT64_MAX
sprintf (str1, "%" PRINTF_INT64_MODIFIER "d", INT64_C(9223372036854775807));
if (0 != strcmp (str1, "9223372036854775807")) REPORTERROR (("Something wrong with PRINTF_INT32_MODIFIER : %s\n", str1));
if (atoi(PRINTF_INT64_DEC_WIDTH) != (int) strlen(str1)) REPORTERROR (("Something wrong with PRINTF_INT64_DEC_WIDTH : %s, %d\n", PRINTF_INT64_DEC_WIDTH, (int) strlen(str1)));
sprintf (str1, "%" PRINTF_INT64_MODIFIER "u", UINT64_C(18446744073709550591));
if (0 != strcmp (str1, "18446744073709550591")) REPORTERROR (("Something wrong with PRINTF_INT32_MODIFIER : %s\n", str1));
if (atoi(PRINTF_UINT64_DEC_WIDTH) != (int) strlen(str1)) REPORTERROR (("Something wrong with PRINTF_UINT64_DEC_WIDTH : %s, %d\n", PRINTF_UINT64_DEC_WIDTH, (int) strlen(str1)));
#endif
sprintf (str0, "%d %x\n", 0, ~0);
sprintf (str1, "%d %x\n", i8, ~0);
if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with i8 : %s\n", str1));
sprintf (str1, "%u %x\n", u8, ~0);
if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with u8 : %s\n", str1));
sprintf (str1, "%d %x\n", i16, ~0);
if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with i16 : %s\n", str1));
sprintf (str1, "%u %x\n", u16, ~0);
if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with u16 : %s\n", str1));
sprintf (str1, "%" PRINTF_INT32_MODIFIER "d %x\n", i32, ~0);
if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with i32 : %s\n", str1));
sprintf (str1, "%" PRINTF_INT32_MODIFIER "u %x\n", u32, ~0);
if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with u32 : %s\n", str1));
#ifdef INT64_MAX
sprintf (str1, "%" PRINTF_INT64_MODIFIER "d %x\n", i64, ~0);
if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with i64 : %s\n", str1));
#endif
sprintf (str1, "%" PRINTF_INTMAX_MODIFIER "d %x\n", imax, ~0);
if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with imax : %s\n", str1));
sprintf (str1, "%" PRINTF_INTMAX_MODIFIER "u %x\n", umax, ~0);
if (0 != strcmp (str0, str1)) REPORTERROR (("Something wrong with umax : %s\n", str1));
TESTUMAX(8);
TESTUMAX(16);
TESTUMAX(32);
#ifdef INT64_MAX
TESTUMAX(64);
#endif
#define STR(v) #v
#define Q(v) printf ("sizeof " STR(v) " = %u\n", (unsigned) sizeof (v));
if (err_n) {
printf ("pstdint.h is not correct. Please use sizes below to correct it:\n");
}
Q(int)
Q(unsigned)
Q(long int)
Q(short int)
Q(int8_t)
Q(int16_t)
Q(int32_t)
#ifdef INT64_MAX
Q(int64_t)
#endif
#if UINT_MAX < X_SIZE_MAX
printf ("UINT_MAX < X_SIZE_MAX\n");
#else
printf ("UINT_MAX >= X_SIZE_MAX\n");
#endif
printf ("%" PRINTF_INT64_MODIFIER "u vs %" PRINTF_INT64_MODIFIER "u\n", UINT_MAX, X_SIZE_MAX);
return EXIT_SUCCESS;
}
#endif
+1 -2
View File
@@ -5,7 +5,7 @@
* This file isn't complete in the ANSI-C sense; it only declares things
* that are needed by Tcl. This file is needed even on many systems with
* their own stdlib.h (e.g. SunOS) because not all stdlib.h files declare
* all the procedures needed here (such as strtod).
* all the procedures needed here (such as strtol/strtoul).
*
* Copyright (c) 1991 The Regents of the University of California.
* Copyright (c) 1994-1998 Sun Microsystems, Inc.
@@ -29,7 +29,6 @@ extern char * malloc(unsigned int numBytes);
extern void qsort(void *base, int n, int size, int (*compar)(
const void *element1, const void *element2));
extern char * realloc(char *ptr, unsigned int numBytes);
extern double strtod(const char *string, char **endPtr);
extern long strtol(const char *string, char **endPtr, int base);
extern unsigned long strtoul(const char *string, char **endPtr, int base);
+2 -6
View File
@@ -21,19 +21,15 @@
#include <sys/types.h>
#ifdef __APPLE__
extern void * memchr(const void *s, int c, size_t n);
#else
extern char * memchr(const void *s, int c, size_t n);
#endif
extern int memcmp(const void *s1, const void *s2, size_t n);
extern char * memcpy(void *t, const void *f, size_t n);
extern void * memcpy(void *t, const void *f, size_t n);
#ifdef NO_MEMMOVE
#define memmove(d,s,n) (bcopy((s), (d), (n)))
#else
extern char * memmove(void *t, const void *f, size_t n);
#endif
extern char * memset(void *s, int c, size_t n);
extern void * memset(void *s, int c, size_t n);
extern int strcasecmp(const char *s1, const char *s2);
extern char * strcat(char *dst, const char *src);
+5 -5
View File
@@ -36,10 +36,10 @@
char *
strstr(
register char *string, /* String to search. */
char *substring) /* Substring to try to find in string. */
const char *string, /* String to search. */
const char *substring) /* Substring to try to find in string. */
{
register char *a, *b;
const char *a, *b;
/*
* First scan quickly through the two strings looking for a
@@ -49,7 +49,7 @@ strstr(
b = substring;
if (*b == 0) {
return string;
return (char *)string;
}
for ( ; *string != 0; string += 1) {
if (*string != *b) {
@@ -58,7 +58,7 @@ strstr(
a = string;
while (1) {
if (*b == 0) {
return string;
return (char *)string;
}
if (*a++ != *b++) {
break;
-252
View File
@@ -1,252 +0,0 @@
/*
* strtod.c --
*
* Source code for the "strtod" library procedure.
*
* Copyright (c) 1988-1993 The Regents of the University of California.
* Copyright (c) 1994 Sun Microsystems, Inc.
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*/
#include "tclInt.h"
#ifndef TRUE
#define TRUE 1
#define FALSE 0
#endif
#ifndef NULL
#define NULL 0
#endif
static const int maxExponent = 511; /* Largest possible base 10 exponent. Any
* exponent larger than this will already
* produce underflow or overflow, so there's
* no need to worry about additional digits.
*/
static const double powersOf10[] = { /* Table giving binary powers of 10. Entry */
10., /* is 10^2^i. Used to convert decimal */
100., /* exponents into floating-point numbers. */
1.0e4,
1.0e8,
1.0e16,
1.0e32,
1.0e64,
1.0e128,
1.0e256
};
/*
*----------------------------------------------------------------------
*
* strtod --
*
* This procedure converts a floating-point number from an ASCII
* decimal representation to internal double-precision format.
*
* Results:
* The return value is the double-precision floating-point
* representation of the characters in string. If endPtr isn't
* NULL, then *endPtr is filled in with the address of the
* next character after the last one that was part of the
* floating-point number.
*
* Side effects:
* None.
*
*----------------------------------------------------------------------
*/
double
strtod(
const char *string, /* A decimal ASCII floating-point number,
* optionally preceded by white space. Must
* have form "-I.FE-X", where I is the integer
* part of the mantissa, F is the fractional
* part of the mantissa, and X is the
* exponent. Either of the signs may be "+",
* "-", or omitted. Either I or F may be
* omitted, or both. The decimal point isn't
* necessary unless F is present. The "E" may
* actually be an "e". E and X may both be
* omitted (but not just one). */
char **endPtr) /* If non-NULL, store terminating character's
* address here. */
{
int sign, expSign = FALSE;
double fraction, dblExp;
const double *d;
register const char *p;
register int c;
int exp = 0; /* Exponent read from "EX" field. */
int fracExp = 0; /* Exponent that derives from the fractional
* part. Under normal circumstatnces, it is
* the negative of the number of digits in F.
* However, if I is very long, the last digits
* of I get dropped (otherwise a long I with a
* large negative exponent could cause an
* unnecessary overflow on I alone). In this
* case, fracExp is incremented one for each
* dropped digit. */
int mantSize; /* Number of digits in mantissa. */
int decPt; /* Number of mantissa digits BEFORE decimal
* point. */
const char *pExp; /* Temporarily holds location of exponent in
* string. */
/*
* Strip off leading blanks and check for a sign.
*/
p = string;
while (isspace(UCHAR(*p))) {
p += 1;
}
if (*p == '-') {
sign = TRUE;
p += 1;
} else {
if (*p == '+') {
p += 1;
}
sign = FALSE;
}
/*
* Count the number of digits in the mantissa (including the decimal
* point), and also locate the decimal point.
*/
decPt = -1;
for (mantSize = 0; ; mantSize += 1)
{
c = *p;
if (!isdigit(c)) {
if ((c != '.') || (decPt >= 0)) {
break;
}
decPt = mantSize;
}
p += 1;
}
/*
* Now suck up the digits in the mantissa. Use two integers to collect 9
* digits each (this is faster than using floating-point). If the mantissa
* has more than 18 digits, ignore the extras, since they can't affect the
* value anyway.
*/
pExp = p;
p -= mantSize;
if (decPt < 0) {
decPt = mantSize;
} else {
mantSize -= 1; /* One of the digits was the point. */
}
if (mantSize > 18) {
fracExp = decPt - 18;
mantSize = 18;
} else {
fracExp = decPt - mantSize;
}
if (mantSize == 0) {
fraction = 0.0;
p = string;
goto done;
} else {
int frac1, frac2;
frac1 = 0;
for ( ; mantSize > 9; mantSize -= 1) {
c = *p;
p += 1;
if (c == '.') {
c = *p;
p += 1;
}
frac1 = 10*frac1 + (c - '0');
}
frac2 = 0;
for (; mantSize > 0; mantSize -= 1) {
c = *p;
p += 1;
if (c == '.') {
c = *p;
p += 1;
}
frac2 = 10*frac2 + (c - '0');
}
fraction = (1.0e9 * frac1) + frac2;
}
/*
* Skim off the exponent.
*/
p = pExp;
if ((*p == 'E') || (*p == 'e')) {
p += 1;
if (*p == '-') {
expSign = TRUE;
p += 1;
} else {
if (*p == '+') {
p += 1;
}
expSign = FALSE;
}
if (!isdigit(UCHAR(*p))) {
p = pExp;
goto done;
}
while (isdigit(UCHAR(*p))) {
exp = exp * 10 + (*p - '0');
p += 1;
}
}
if (expSign) {
exp = fracExp - exp;
} else {
exp = fracExp + exp;
}
/*
* Generate a floating-point number that represents the exponent. Do this
* by processing the exponent one bit at a time to combine many powers of
* 2 of 10. Then combine the exponent with the fraction.
*/
if (exp < 0) {
expSign = TRUE;
exp = -exp;
} else {
expSign = FALSE;
}
if (exp > maxExponent) {
exp = maxExponent;
errno = ERANGE;
}
dblExp = 1.0;
for (d = powersOf10; exp != 0; exp >>= 1, ++d) {
if (exp & 01) {
dblExp *= *d;
}
}
if (expSign) {
fraction /= dblExp;
} else {
fraction *= dblExp;
}
done:
if (endPtr != NULL) {
*endPtr = (char *) p;
}
if (sign) {
return -fraction;
}
return fraction;
}
+1 -1
View File
@@ -45,7 +45,7 @@ strtol(
* hex, "0" means octal, anything else means
* decimal. */
{
register const char *p;
const char *p;
long result;
/*
+3 -3
View File
@@ -62,9 +62,9 @@ strtoul(
* hex, "0" means octal, anything else means
* decimal. */
{
register const char *p;
register unsigned long int result = 0;
register unsigned digit;
const char *p;
unsigned long int result = 0;
unsigned digit;
int anyDigits = 0;
int negative=0;
int overflow=0;
-76
View File
@@ -1,76 +0,0 @@
/*
* unistd.h --
*
* Macros, constants and prototypes for Posix conformance.
*
* Copyright 1989 Regents of the University of California Permission to use,
* copy, modify, and distribute this software and its documentation for any
* purpose and without fee is hereby granted, provided that the above
* copyright notice appear in all copies. The University of California makes
* no representations about the suitability of this software for any purpose.
* It is provided "as is" without express or implied warranty.
*/
#ifndef _UNISTD
#define _UNISTD
#include <sys/types.h>
#ifndef NULL
#define NULL 0
#endif
/*
* Strict POSIX stuff goes here. Extensions go down below, in the ifndef
* _POSIX_SOURCE section.
*/
extern void _exit(int status);
extern int access(const char *path, int mode);
extern int chdir(const char *path);
extern int chown(const char *path, uid_t owner, gid_t group);
extern int close(int fd);
extern int dup(int oldfd);
extern int dup2(int oldfd, int newfd);
extern int execl(const char *path, ...);
extern int execle(const char *path, ...);
extern int execlp(const char *file, ...);
extern int execv(const char *path, char **argv);
extern int execve(const char *path, char **argv, char **envp);
extern int execvpw(const char *file, char **argv);
extern pid_t fork(void);
extern char * getcwd(char *buf, size_t size);
extern gid_t getegid(void);
extern uid_t geteuid(void);
extern gid_t getgid(void);
extern int getgroups(int bufSize, int *buffer);
extern pid_t getpid(void);
extern uid_t getuid(void);
extern int isatty(int fd);
extern long lseek(int fd, long offset, int whence);
extern int pipe(int *fildes);
extern int read(int fd, char *buf, size_t size);
extern int setgid(gid_t group);
extern int setuid(uid_t user);
extern unsigned sleep(unsigned seconds);
extern char * ttyname(int fd);
extern int unlink(const char *path);
extern int write(int fd, const char *buf, size_t size);
#ifndef _POSIX_SOURCE
extern char * crypt(const char *, const char *);
extern int fchown(int fd, uid_t owner, gid_t group);
extern int flock(int fd, int operation);
extern int ftruncate(int fd, unsigned long length);
extern int ioctl(int fd, int request, ...);
extern int readlink(const char *path, char *buf, int bufsize);
extern int setegid(gid_t group);
extern int seteuidw(uid_t user);
extern int setreuid(int ruid, int euid);
extern int symlink(const char *, const char *);
extern int ttyslot(void);
extern int truncate(const char *path, unsigned long length);
extern int vfork(void);
#endif /* _POSIX_SOURCE */
#endif /* _UNISTD */
+1 -1
View File
@@ -70,7 +70,7 @@ waitpid(
int options) /* OR'ed combination of WNOHANG and
* WUNTRACED. */
{
register WaitInfo *waitPtr, *prevPtr;
WaitInfo *waitPtr, *prevPtr;
pid_t result;
WAIT_STATUS_TYPE status;
+2 -1
View File
@@ -37,6 +37,7 @@ static int decrypt_byte(unsigned long* pkeys, const z_crc_t* pcrc_32_tab)
unsigned temp; /* POTENTIAL BUG: temp*(temp^1) may overflow in an
* unpredictable manner on 16-bit systems; not a problem
* with any known compiler so far, though */
(void)pcrc_32_tab;
temp = ((unsigned)(*(pkeys+2)) & 0xffff) | 2;
return (int)(((temp * (temp ^ 1)) >> 8) & 0xff);
@@ -51,7 +52,7 @@ static int update_keys(unsigned long* pkeys,const z_crc_t* pcrc_32_tab,int c)
(*(pkeys+1)) += (*(pkeys+0)) & 0xff;
(*(pkeys+1)) = (*(pkeys+1)) * 134775813L + 1;
{
register int keyshift = (int)((*(pkeys+1)) >> 24);
int keyshift = (int)((*(pkeys+1)) >> 24);
(*(pkeys+2)) = CRC32((*(pkeys+2)), keyshift);
}
return c;
+5 -1
View File
@@ -14,7 +14,11 @@
#define _CRT_SECURE_NO_WARNINGS
#endif
#if defined(__APPLE__) || defined(IOAPI_NO_64)
#if defined(_WIN32)
#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
#define FTELLO_FUNC(stream) _ftelli64(stream)
#define FSEEKO_FUNC(stream, offset, origin) _fseeki64(stream, offset, origin)
#elif defined(__APPLE__) || defined(IOAPI_NO_64)
// In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions
#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
#define FTELLO_FUNC(stream) ftello(stream)
+1 -1
View File
@@ -97,7 +97,7 @@ void change_file_date(filename,dosdate,tmu_date)
SetFileTime(hFile,&ftm,&ftLastAcc,&ftm);
CloseHandle(hFile);
#else
#ifdef unix || __APPLE__
#if defined(unix) || defined(__APPLE__)
struct utimbuf ut;
struct tm newdate;
newdate.tm_sec = tmu_date.tm_sec;
+12 -8
View File
@@ -27,7 +27,11 @@
#endif
#endif
#ifdef __APPLE__
#if defined(_WIN32)
#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
#define FTELLO_FUNC(stream) _ftelli64(stream)
#define FSEEKO_FUNC(stream, offset, origin) _fseeki64(stream, offset, origin)
#elif defined(__APPLE__) || defined(IOAPI_NO_64)
// In darwin and perhaps other BSD variants off_t is a 64 bit value, hence no need for specific 64 bit functions
#define FOPEN_FUNC(filename, mode) fopen(filename, mode)
#define FTELLO_FUNC(stream) ftello(stream)
@@ -70,8 +74,8 @@
#ifdef _WIN32
uLong filetime(f, tmzip, dt)
char *f; /* name of file to get info on */
tm_zip *tmzip; /* return value: access, modific. and creation times */
const char *f; /* name of file to get info on */
tm_zip *tmzip; /* return value: access, modific. and creation times */
uLong *dt; /* dostime */
{
int ret = 0;
@@ -92,9 +96,9 @@ uLong filetime(f, tmzip, dt)
return ret;
}
#else
#ifdef unix || __APPLE__
#if defined(unix) || defined(__APPLE__)
uLong filetime(f, tmzip, dt)
char *f; /* name of file to get info on */
const char *f; /* name of file to get info on */
tm_zip *tmzip; /* return value: access, modific. and creation times */
uLong *dt; /* dostime */
{
@@ -136,8 +140,8 @@ uLong filetime(f, tmzip, dt)
}
#else
uLong filetime(f, tmzip, dt)
char *f; /* name of file to get info on */
tm_zip *tmzip; /* return value: access, modific. and creation times */
const char *f; /* name of file to get info on */
tm_zip *tmzip; /* return value: access, modific. and creation times */
uLong *dt; /* dostime */
{
return 0;
@@ -359,7 +363,7 @@ void addFileToZip(zipFile zf, const char *filenameinzip, const char *password, i
void addPathToZip(zipFile zf, const char *filenameinzip, const char *password, int opt_exclude_path,int opt_compress_level) {
tinydir_dir dir;
int i;
char *newname[512];
char newname[512];
tinydir_open_sorted(&dir, filenameinzip);
+1 -1
View File
@@ -1,4 +1,4 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibvc", "zlibvc.vcxproj", "{8FD826F8-3739-44E6-8CC8-997122E53B8D}"
+1 -1
View File
@@ -1,4 +1,4 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibvc", "zlibvc.vcxproj", "{8FD826F8-3739-44E6-8CC8-997122E53B8D}"
+119 -119
View File
@@ -1,119 +1,119 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibvc", "zlibvc.vcxproj", "{8FD826F8-3739-44E6-8CC8-997122E53B8D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibstat", "zlibstat.vcxproj", "{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlib", "testzlib.vcxproj", "{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlibdll", "testzlibdll.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694366A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minizip", "minizip.vcxproj", "{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "miniunz", "miniunz.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694382A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Itanium = Debug|Itanium
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Itanium = Release|Itanium
Release|Win32 = Release|Win32
Release|x64 = Release|x64
ReleaseWithoutAsm|Itanium = ReleaseWithoutAsm|Itanium
ReleaseWithoutAsm|Win32 = ReleaseWithoutAsm|Win32
ReleaseWithoutAsm|x64 = ReleaseWithoutAsm|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Itanium.ActiveCfg = Debug|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.ActiveCfg = Debug|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.Build.0 = Debug|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.ActiveCfg = Debug|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.Build.0 = Debug|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.ActiveCfg = Release|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.ActiveCfg = Release|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.Build.0 = Release|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = Release|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = Release|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Itanium.ActiveCfg = Debug|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.ActiveCfg = Debug|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.Build.0 = Debug|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.ActiveCfg = Debug|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.Build.0 = Debug|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Itanium.ActiveCfg = Release|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.ActiveCfg = Release|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.Build.0 = Release|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.ActiveCfg = Release|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.Build.0 = Release|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Itanium.ActiveCfg = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.ActiveCfg = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.Build.0 = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.ActiveCfg = Debug|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.Build.0 = Debug|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Itanium.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.Build.0 = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.ActiveCfg = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.Build.0 = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.ActiveCfg = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.ActiveCfg = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.Build.0 = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.ActiveCfg = Debug|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.Build.0 = Debug|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Itanium.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.Build.0 = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.ActiveCfg = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.Build.0 = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibvc", "zlibvc.vcxproj", "{8FD826F8-3739-44E6-8CC8-997122E53B8D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibstat", "zlibstat.vcxproj", "{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlib", "testzlib.vcxproj", "{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlibdll", "testzlibdll.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694366A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minizip", "minizip.vcxproj", "{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "miniunz", "miniunz.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694382A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Itanium = Debug|Itanium
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Itanium = Release|Itanium
Release|Win32 = Release|Win32
Release|x64 = Release|x64
ReleaseWithoutAsm|Itanium = ReleaseWithoutAsm|Itanium
ReleaseWithoutAsm|Win32 = ReleaseWithoutAsm|Win32
ReleaseWithoutAsm|x64 = ReleaseWithoutAsm|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Itanium.ActiveCfg = Debug|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.ActiveCfg = Debug|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.Build.0 = Debug|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.ActiveCfg = Debug|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.Build.0 = Debug|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.ActiveCfg = Release|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.ActiveCfg = Release|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.Build.0 = Release|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = Release|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = Release|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Itanium.ActiveCfg = Debug|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.ActiveCfg = Debug|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.Build.0 = Debug|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.ActiveCfg = Debug|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.Build.0 = Debug|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Itanium.ActiveCfg = Release|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.ActiveCfg = Release|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.Build.0 = Release|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.ActiveCfg = Release|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.Build.0 = Release|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Itanium.ActiveCfg = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.ActiveCfg = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.Build.0 = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.ActiveCfg = Debug|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.Build.0 = Debug|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Itanium.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.Build.0 = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.ActiveCfg = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.Build.0 = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.ActiveCfg = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.ActiveCfg = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.Build.0 = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.ActiveCfg = Debug|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.Build.0 = Debug|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Itanium.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.Build.0 = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.ActiveCfg = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.Build.0 = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
+119 -119
View File
@@ -1,119 +1,119 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibvc", "zlibvc.vcxproj", "{8FD826F8-3739-44E6-8CC8-997122E53B8D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibstat", "zlibstat.vcxproj", "{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlib", "testzlib.vcxproj", "{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlibdll", "testzlibdll.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694366A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minizip", "minizip.vcxproj", "{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "miniunz", "miniunz.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694382A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Itanium = Debug|Itanium
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Itanium = Release|Itanium
Release|Win32 = Release|Win32
Release|x64 = Release|x64
ReleaseWithoutAsm|Itanium = ReleaseWithoutAsm|Itanium
ReleaseWithoutAsm|Win32 = ReleaseWithoutAsm|Win32
ReleaseWithoutAsm|x64 = ReleaseWithoutAsm|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Itanium.ActiveCfg = Debug|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.ActiveCfg = Debug|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.Build.0 = Debug|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.ActiveCfg = Debug|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.Build.0 = Debug|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.ActiveCfg = Release|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.ActiveCfg = Release|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.Build.0 = Release|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = Release|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = Release|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Itanium.ActiveCfg = Debug|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.ActiveCfg = Debug|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.Build.0 = Debug|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.ActiveCfg = Debug|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.Build.0 = Debug|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Itanium.ActiveCfg = Release|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.ActiveCfg = Release|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.Build.0 = Release|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.ActiveCfg = Release|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.Build.0 = Release|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Itanium.ActiveCfg = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.ActiveCfg = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.Build.0 = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.ActiveCfg = Debug|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.Build.0 = Debug|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Itanium.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.Build.0 = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.ActiveCfg = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.Build.0 = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.ActiveCfg = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.ActiveCfg = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.Build.0 = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.ActiveCfg = Debug|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.Build.0 = Debug|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Itanium.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.Build.0 = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.ActiveCfg = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.Build.0 = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibvc", "zlibvc.vcxproj", "{8FD826F8-3739-44E6-8CC8-997122E53B8D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibstat", "zlibstat.vcxproj", "{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlib", "testzlib.vcxproj", "{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testzlibdll", "testzlibdll.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694366A}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minizip", "minizip.vcxproj", "{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "miniunz", "miniunz.vcxproj", "{C52F9E7B-498A-42BE-8DB4-85A15694382A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Itanium = Debug|Itanium
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Itanium = Release|Itanium
Release|Win32 = Release|Win32
Release|x64 = Release|x64
ReleaseWithoutAsm|Itanium = ReleaseWithoutAsm|Itanium
ReleaseWithoutAsm|Win32 = ReleaseWithoutAsm|Win32
ReleaseWithoutAsm|x64 = ReleaseWithoutAsm|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Itanium.ActiveCfg = Debug|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.ActiveCfg = Debug|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|Win32.Build.0 = Debug|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.ActiveCfg = Debug|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Debug|x64.Build.0 = Debug|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Itanium.ActiveCfg = Release|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.ActiveCfg = Release|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|Win32.Build.0 = Release|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.ActiveCfg = Release|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.Release|x64.Build.0 = Release|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
{8FD826F8-3739-44E6-8CC8-997122E53B8D}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Itanium.ActiveCfg = Debug|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.ActiveCfg = Debug|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|Win32.Build.0 = Debug|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.ActiveCfg = Debug|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Debug|x64.Build.0 = Debug|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Itanium.ActiveCfg = Release|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.ActiveCfg = Release|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|Win32.Build.0 = Release|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.ActiveCfg = Release|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.Release|x64.Build.0 = Release|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
{745DEC58-EBB3-47A9-A9B8-4C6627C01BF8}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = ReleaseWithoutAsm|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = ReleaseWithoutAsm|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.Build.0 = ReleaseWithoutAsm|Win32
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = ReleaseWithoutAsm|x64
{AA6666AA-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.Build.0 = ReleaseWithoutAsm|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Itanium.ActiveCfg = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.ActiveCfg = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|Win32.Build.0 = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.ActiveCfg = Debug|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Debug|x64.Build.0 = Debug|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Itanium.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|Win32.Build.0 = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.ActiveCfg = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.Release|x64.Build.0 = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694366A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Itanium.ActiveCfg = Debug|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.ActiveCfg = Debug|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|Win32.Build.0 = Debug|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.ActiveCfg = Debug|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Debug|x64.Build.0 = Debug|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Itanium.ActiveCfg = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.ActiveCfg = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|Win32.Build.0 = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.ActiveCfg = Release|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.Release|x64.Build.0 = Release|x64
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{48CDD9DC-E09F-4135-9C0C-4FE50C3C654B}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Itanium.ActiveCfg = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.ActiveCfg = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|Win32.Build.0 = Debug|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.ActiveCfg = Debug|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Debug|x64.Build.0 = Debug|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Itanium.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|Win32.Build.0 = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.ActiveCfg = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.Release|x64.Build.0 = Release|x64
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Itanium.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|Win32.ActiveCfg = Release|Win32
{C52F9E7B-498A-42BE-8DB4-85A15694382A}.ReleaseWithoutAsm|x64.ActiveCfg = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
+1 -1
View File
@@ -1,4 +1,4 @@
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "zlibvc", "zlibvc.vcproj", "{8FD826F8-3739-44E6-8CC8-997122E53B8D}"
Executable → Regular
View File
File mode changed.
+3
View File
@@ -247,6 +247,9 @@ record instead of a value. Otherwise, it is similar to
.PP
\fBTcl_SetErrorCodeVA\fR is the same as \fBTcl_SetErrorCode\fR except that
instead of taking a variable number of arguments it takes an argument list.
Interfaces using argument lists have been found to be nonportable in practice.
This function is deprecated and will be removed in Tcl 9.0.
.PP
The procedure \fBTcl_GetErrorLine\fR is used to read the integer value
of the \fB\-errorline\fR return option without the overhead of a full
+16 -2
View File
@@ -79,7 +79,9 @@ The number of elements in the \fIobjv\fR array.
The arguments to the command to create the instance of the class.
.AP int skip in
The number of arguments at the start of the argument array, \fIobjv\fR, that
are not arguments to any constructors.
are not arguments to any constructors. This allows the generation of correct
error messages even when complicated calling patterns are used (e.g., via the
\fBnext\fR command).
.AP Tcl_ObjectMetadataType *metaTypePtr in
The type of \fImetadata\fR being set with \fBTcl_ClassSetMetadata\fR or
retrieved with \fBTcl_ClassGetMetadata\fR.
@@ -109,7 +111,9 @@ may be retrieved using the \fBTcl_GetObjectCommand\fR function, the name of
the object (and hence the name of the command) with \fBTcl_GetObjectName\fR,
and the namespace may be retrieved using the \fBTcl_GetObjectNamespace\fR
function. Note that the Tcl_Obj reference returned by \fBTcl_GetObjectName\fR
is a shared reference.
is a shared reference. You can also get whether the object has been marked for
deletion with \fBTcl_ObjectDeleted\fR (it returns true if deletion of the
object has begun); this can be useful during the processing of methods.
.PP
Instances of classes are created using \fBTcl_NewObjectInstance\fR, which
creates an object from any class (and which is internally called by both
@@ -121,6 +125,16 @@ created object, or NULL if the creation failed (when an error message will be
left in the interpreter result). In addition, objects may be copied by using
\fBTcl_CopyObjectInstance\fR which creates a copy of an object without running
any constructors.
.PP
Note that the lifetime management of objects is handled internally within
TclOO, and does not use \fBTcl_Preserve\fR. \fIIt is not safe to put a
Tcl_Object handle in a C structure with a lifespan different to the object;\fR
you should use the object's command name (as retrieved with
\fBTcl_GetObjectName\fR) instead. It is safe to use a Tcl_Object handle for
the lifespan of a call of a method on that object; handles do not become
invalid while there is an outstanding call on their object (even if the only
operation guaranteed to be safe on them is \fBTcl_ObjectDeleted\fR; the other
operations are only guaranteed to work on non-deleted objects).
.SH "OBJECT AND CLASS METADATA"
.PP
Every object and every class may have arbitrary amounts of metadata attached
+68 -53
View File
@@ -4,11 +4,11 @@
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tcl_CreateSlave 3 7.6 Tcl "Tcl Library Procedures"
.TH Tcl_CreateAlias 3 7.6 Tcl "Tcl Library Procedures"
.so man.macros
.BS
.SH NAME
Tcl_IsSafe, Tcl_MakeSafe, Tcl_CreateSlave, Tcl_GetSlave, Tcl_GetMaster, Tcl_GetInterpPath, Tcl_CreateAlias, Tcl_CreateAliasObj, Tcl_GetAlias, Tcl_GetAliasObj, Tcl_ExposeCommand, Tcl_HideCommand \- manage multiple Tcl interpreters, aliases and hidden commands
Tcl_IsSafe, Tcl_MakeSafe, Tcl_CreateChild, Tcl_CreateSlave, Tcl_GetChild, Tcl_GetSlave, Tcl_GetParent, Tcl_GetMaster, Tcl_GetInterpPath, Tcl_CreateAlias, Tcl_CreateAliasObj, Tcl_GetAlias, Tcl_GetAliasObj, Tcl_ExposeCommand, Tcl_HideCommand \- manage multiple Tcl interpreters, aliases and hidden commands
.SH SYNOPSIS
.nf
\fB#include <tcl.h>\fR
@@ -20,31 +20,40 @@ int
\fBTcl_MakeSafe\fR(\fIinterp\fR)
.sp
Tcl_Interp *
\fBTcl_CreateSlave\fR(\fIinterp, slaveName, isSafe\fR)
\fBTcl_CreateChild\fR(\fIinterp, name, isSafe\fR)
.sp
Tcl_Interp *
\fBTcl_GetSlave\fR(\fIinterp, slaveName\fR)
\fBTcl_CreateSlave\fR(\fIinterp, name, isSafe\fR)
.sp
Tcl_Interp *
\fBTcl_GetSlave\fR(\fIinterp, name\fR)
.sp
Tcl_Interp *
\fBTcl_GetChild\fR(\fIinterp, name\fR)
.sp
Tcl_Interp *
\fBTcl_GetMaster\fR(\fIinterp\fR)
.sp
int
\fBTcl_GetInterpPath\fR(\fIaskingInterp, slaveInterp\fR)
Tcl_Interp *
\fBTcl_GetParent\fR(\fIinterp\fR)
.sp
int
\fBTcl_CreateAlias\fR(\fIslaveInterp, slaveCmd, targetInterp, targetCmd,
\fBTcl_GetInterpPath\fR(\fIinterp, childInterp\fR)
.sp
int
\fBTcl_CreateAlias\fR(\fIchildInterp, childCmd, targetInterp, targetCmd,
argc, argv\fR)
.sp
int
\fBTcl_CreateAliasObj\fR(\fIslaveInterp, slaveCmd, targetInterp, targetCmd,
\fBTcl_CreateAliasObj\fR(\fIchildInterp, childCmd, targetInterp, targetCmd,
objc, objv\fR)
.sp
int
\fBTcl_GetAlias\fR(\fIinterp, slaveCmd, targetInterpPtr, targetCmdPtr,
\fBTcl_GetAlias\fR(\fIinterp, childCmd, targetInterpPtr, targetCmdPtr,
argcPtr, argvPtr\fR)
.sp
int
\fBTcl_GetAliasObj\fR(\fIinterp, slaveCmd, targetInterpPtr, targetCmdPtr,
\fBTcl_GetAliasObj\fR(\fIinterp, childCmd, targetInterpPtr, targetCmdPtr,
objcPtr, objvPtr\fR)
.sp
int
@@ -56,17 +65,17 @@ int
.AS "const char *const" **targetInterpPtr out
.AP Tcl_Interp *interp in
Interpreter in which to execute the specified command.
.AP "const char" *slaveName in
Name of slave interpreter to create or manipulate.
.AP "const char" *name in
Name of child interpreter to create or manipulate.
.AP int isSafe in
If non-zero, a
.QW safe
slave that is suitable for running untrusted code
is created, otherwise a trusted slave is created.
.AP Tcl_Interp *slaveInterp in
child that is suitable for running untrusted code
is created, otherwise a trusted child is created.
.AP Tcl_Interp *childInterp in
Interpreter to use for creating the source command for an alias (see
below).
.AP "const char" *slaveCmd in
.AP "const char" *childCmd in
Name of source command for alias.
.AP Tcl_Interp *targetInterp in
Interpreter that contains the target command for an alias.
@@ -119,19 +128,21 @@ in a hierarchical relationship, and the management of aliases, commands
that when invoked in one interpreter execute a command in another
interpreter. The return value for those procedures that return an \fBint\fR
is either \fBTCL_OK\fR or \fBTCL_ERROR\fR. If \fBTCL_ERROR\fR is returned
then the \fBresult\fR field of the interpreter contains an error message.
then the interpreter's result contains an error message.
.PP
\fBTcl_CreateSlave\fR creates a new interpreter as a slave of \fIinterp\fR.
It also creates a slave command named \fIslaveName\fR in \fIinterp\fR which
allows \fIinterp\fR to manipulate the new slave.
If \fIisSafe\fR is zero, the command creates a trusted slave in which Tcl
\fBTcl_CreateChild\fR creates a new interpreter as a child of \fIinterp\fR.
It also creates a child command named \fIname\fR in \fIinterp\fR which
allows \fIinterp\fR to manipulate the new child.
If \fIisSafe\fR is zero, the command creates a trusted child in which Tcl
code has access to all the Tcl commands.
If it is \fB1\fR, the command creates a
.QW safe
slave in which Tcl code has access only to set of Tcl commands defined as
child in which Tcl code has access only to set of Tcl commands defined as
.QW "Safe Tcl" ;
see the manual entry for the Tcl \fBinterp\fR command for details.
If the creation of the new slave interpreter failed, \fBNULL\fR is returned.
If the creation of the new child interpreter failed, \fBNULL\fR is returned.
.PP
\fBTcl_CreateSlave\fR is a synonym for \fBTcl_CreateChild\fR.
.PP
\fBTcl_IsSafe\fR returns \fB1\fR if \fIinterp\fR is
.QW safe
@@ -147,34 +158,38 @@ from \fIinterp\fR. However, it cannot know what parts of an extension
or application are safe and does not make any attempt to remove those
parts, so safety is not guaranteed after calling \fBTcl_MakeSafe\fR.
Callers will want to take care with their use of \fBTcl_MakeSafe\fR
to avoid false claims of safety. For many situations, \fBTcl_CreateSlave\fR
to avoid false claims of safety. For many situations, \fBTcl_CreateChild\fR
may be a better choice, since it creates interpreters in a known-safe state.
.PP
\fBTcl_GetSlave\fR returns a pointer to a slave interpreter of
\fIinterp\fR. The slave interpreter is identified by \fIslaveName\fR.
If no such slave interpreter exists, \fBNULL\fR is returned.
\fBTcl_GetChild\fR returns a pointer to a child interpreter of
\fIinterp\fR. The child interpreter is identified by \fIname\fR.
If no such child interpreter exists, \fBNULL\fR is returned.
.PP
\fBTcl_GetMaster\fR returns a pointer to the master interpreter of
\fIinterp\fR. If \fIinterp\fR has no master (it is a
\fBTcl_GetSlave\fR is a synonym for \fBTcl_GetChild\fR.
.PP
\fBTcl_GetParent\fR returns a pointer to the parent interpreter of
\fIinterp\fR. If \fIinterp\fR has no parent (it is a
top-level interpreter) then \fBNULL\fR is returned.
.PP
\fBTcl_GetInterpPath\fR sets the \fIresult\fR field in \fIaskingInterp\fR
to the relative path between \fIaskingInterp\fR and \fIslaveInterp\fR;
\fIslaveInterp\fR must be a slave of \fIaskingInterp\fR. If the computation
of the relative path succeeds, \fBTCL_OK\fR is returned, else
\fBTCL_ERROR\fR is returned and the \fIresult\fR field in
\fIaskingInterp\fR contains the error message.
\fBTcl_GetMaster\fR is a synonym for \fBTcl_GetParent\fR.
.PP
\fBTcl_CreateAlias\fR creates a command named \fIslaveCmd\fR in
\fIslaveInterp\fR that when invoked, will cause the command \fItargetCmd\fR
\fBTcl_GetInterpPath\fR stores in the result of \fIinterp\fR
the relative path between \fIinterp\fR and \fIchildInterp\fR;
\fIchildInterp\fR must be a child of \fIinterp\fR. If the computation
of the relative path succeeds, \fBTCL_OK\fR is returned, else
\fBTCL_ERROR\fR is returned and an error message is stored as the
result of \fIinterp\fR.
.PP
\fBTcl_CreateAlias\fR creates a command named \fIchildCmd\fR in
\fIchildInterp\fR that when invoked, will cause the command \fItargetCmd\fR
to be invoked in \fItargetInterp\fR. The arguments specified by the strings
contained in \fIargv\fR are always prepended to any arguments supplied in the
invocation of \fIslaveCmd\fR and passed to \fItargetCmd\fR.
invocation of \fIchildCmd\fR and passed to \fItargetCmd\fR.
This operation returns \fBTCL_OK\fR if it succeeds, or \fBTCL_ERROR\fR if
it fails; in that case, an error message is left in the value result
of \fIslaveInterp\fR.
of \fIchildInterp\fR.
Note that there are no restrictions on the ancestry relationship (as
created by \fBTcl_CreateSlave\fR) between \fIslaveInterp\fR and
created by \fBTcl_CreateChild\fR) between \fIchildInterp\fR and
\fItargetInterp\fR. Any two interpreters can be used, without any
restrictions on how they are related.
.PP
@@ -198,33 +213,33 @@ the set of hidden commands to the set of exposed commands, putting
it under the name
\fIcmdName\fR.
\fIHiddenCmdName\fR must be the name of an existing hidden
command, or the operation will return \fBTCL_ERROR\fR and leave an error
message in the \fIresult\fR field in \fIinterp\fR.
command, or the operation will return \fBTCL_ERROR\fR and
leave an error message as the result of \fIinterp\fR.
If an exposed command named \fIcmdName\fR already exists,
the operation returns \fBTCL_ERROR\fR and leaves an error message in the
value result of \fIinterp\fR.
the operation returns \fBTCL_ERROR\fR and leaves an error message as
the result of \fIinterp\fR.
If the operation succeeds, it returns \fBTCL_OK\fR.
After executing this command, attempts to use \fIcmdName\fR in a call to
\fBTcl_Eval\fR or with the Tcl \fBeval\fR command will again succeed.
After executing this command, attempts to use \fIcmdName\fR in any
script evaluation mechanism will again succeed.
.PP
\fBTcl_HideCommand\fR moves the command named \fIcmdName\fR from the set of
exposed commands to the set of hidden commands, under the name
\fIhiddenCmdName\fR.
\fICmdName\fR must be the name of an existing exposed
command, or the operation will return \fBTCL_ERROR\fR and leave an error
message in the value result of \fIinterp\fR.
message as the result of \fIinterp\fR.
Currently both \fIcmdName\fR and \fIhiddenCmdName\fR must not contain
namespace qualifiers, or the operation will return \fBTCL_ERROR\fR and
leave an error message in the value result of \fIinterp\fR.
leave an error message as the result of \fIinterp\fR.
The \fICmdName\fR will be looked up in the global namespace, and not
relative to the current namespace, even if the current namespace is not the
global one.
If a hidden command whose name is \fIhiddenCmdName\fR already
exists, the operation also returns \fBTCL_ERROR\fR and the \fIresult\fR
field in \fIinterp\fR contains an error message.
exists, the operation also returns \fBTCL_ERROR\fR and an error
message is left as the result of \fIinterp\fR.
If the operation succeeds, it returns \fBTCL_OK\fR.
After executing this command, attempts to use \fIcmdName\fR in a call to
\fBTcl_Eval\fR or with the Tcl \fBeval\fR command will fail.
After executing this command, attempts to use \fIcmdName\fR in
any script evaluation mechanism will fail.
.PP
For a description of the Tcl interface to multiple interpreters, see
\fIinterp(n)\fR.
@@ -233,4 +248,4 @@ interp
.SH KEYWORDS
alias, command, exposed commands, hidden commands, interpreter, invoke,
master, slave
parent, child
+2 -2
View File
@@ -648,8 +648,8 @@ It should call \fBTcl_BadChannelOption\fR which itself returns
unrecognized.
If \fInewValue\fR specifies a value for the option that
is not supported or if a system call error occurs,
the function should leave an error message in the
\fIresult\fR field of \fIinterp\fR if \fIinterp\fR is not NULL. The
the function should leave an error message in the result
of \fIinterp\fR if \fIinterp\fR is not NULL. The
function should also call \fBTcl_SetErrno\fR to store an appropriate POSIX
error code.
.PP
-6
View File
@@ -22,10 +22,8 @@ Tcl_Interp *
int
\fBTcl_InterpDeleted\fR(\fIinterp\fR)
.sp
.VS 8.6
int
\fBTcl_InterpActive\fR(\fIinterp\fR)
.VE 8.6
.SH ARGUMENTS
.AS Tcl_Interp *interp
.AP Tcl_Interp *interp in
@@ -70,14 +68,12 @@ deleted and when the whole interpreter is being deleted. In the former case
the callback may recreate the data being deleted, but this would lead to an
infinite loop if the interpreter were being deleted.
.PP
.VS 8.6
\fBTcl_InterpActive\fR is useful for determining whether there is any
execution of scripts ongoing in an interpreter, which is a useful piece of
information when Tcl is embedded in a garbage-collected environment and it
becomes necessary to determine whether the interpreter is a candidate for
deletion. The function returns a true value if the interpreter has at least
one active execution running inside it, and a false value otherwise.
.VE 8.6
.SH "INTERPRETERS AND MEMORY MANAGEMENT"
.PP
\fBTcl_DeleteInterp\fR can be called at any time on an interpreter that may
@@ -138,12 +134,10 @@ All uses of interpreters in Tcl and Tk have already been protected.
Extension writers should ensure that their code also properly protects any
additional interpreters used, as described above.
.PP
.VS 8.6
Note that the protection mechanisms do not work well with conventional garbage
collection systems. When in such a managed environment, \fBTcl_InterpActive\fR
should be used to determine when an interpreter is a candidate for deletion
due to inactivity.
.VE 8.6
.SH "SEE ALSO"
Tcl_Preserve(3), Tcl_Release(3)
.SH KEYWORDS
+1 -1
View File
@@ -8,7 +8,7 @@
.so man.macros
.BS
.SH NAME
Tcl_CreateObjCommand, Tcl_DeleteCommand, Tcl_DeleteCommandFromToken, Tcl_GetCommandInfo, Tcl_GetCommandInfoFromToken, Tcl_SetCommandInfo, Tcl_SetCommandInfoFromToken, Tcl_GetCommandName, Tcl_GetCommandFullName, Tcl_GetCommandFromObj Tcl_RegisterCommandTypeName, Tcl_GetCommandTypeName \- implement new commands in C
Tcl_CreateObjCommand, Tcl_DeleteCommand, Tcl_DeleteCommandFromToken, Tcl_GetCommandInfo, Tcl_GetCommandInfoFromToken, Tcl_SetCommandInfo, Tcl_SetCommandInfoFromToken, Tcl_GetCommandName, Tcl_GetCommandFullName, Tcl_GetCommandFromObj, Tcl_RegisterCommandTypeName, Tcl_GetCommandTypeName \- implement new commands in C
.SH SYNOPSIS
.nf
\fB#include <tcl.h>\fR
+12 -6
View File
@@ -8,7 +8,7 @@
.so man.macros
.BS
.SH NAME
Tcl_GetEncoding, Tcl_FreeEncoding, Tcl_GetEncodingFromObj, Tcl_ExternalToUtfDString, Tcl_ExternalToUtf, Tcl_UtfToExternalDString, Tcl_UtfToExternal, Tcl_WinTCharToUtf, Tcl_WinUtfToTChar, Tcl_GetEncodingName, Tcl_SetSystemEncoding, Tcl_GetEncodingNameFromEnvironment, Tcl_GetEncodingNames, Tcl_CreateEncoding, Tcl_GetEncodingSearchPath, Tcl_SetEncodingSearchPath, Tcl_GetDefaultEncodingDir, Tcl_SetDefaultEncodingDir \- procedures for creating and using encodings
Tcl_GetEncoding, Tcl_FreeEncoding, Tcl_GetEncodingFromObj, Tcl_ExternalToUtfDString, Tcl_ExternalToUtf, Tcl_UtfToExternalDString, Tcl_UtfToExternal, Tcl_GetEncodingName, Tcl_SetSystemEncoding, Tcl_GetEncodingNameFromEnvironment, Tcl_GetEncodingNames, Tcl_CreateEncoding, Tcl_GetEncodingSearchPath, Tcl_SetEncodingSearchPath, Tcl_GetDefaultEncodingDir, Tcl_SetDefaultEncodingDir \- procedures for creating and using encodings
.SH SYNOPSIS
.nf
\fB#include <tcl.h>\fR
@@ -255,11 +255,17 @@ is filled with the corresponding number of bytes that were stored in
\fIdst\fR. The return values are the same as the return values for
\fBTcl_ExternalToUtf\fR.
.PP
\fBTcl_WinUtfToTChar\fR and \fBTcl_WinTCharToUtf\fR are
Windows-only convenience
functions for converting between UTF-8 and Windows strings
based on the TCHAR type which is by convention
a Unicode character on Windows NT.
\fBTcl_WinUtfToTChar\fR and \fBTcl_WinTCharToUtf\fR are Windows-only
convenience functions for converting between UTF-8 and Windows strings
based on the TCHAR type which is by convention a Unicode character on
Windows NT. Those functions are deprecated. You can use
\fBTcl_UtfToWCharDString\fR resp. \fBTcl_WCharToUtfDString\fR as replacement.
If you want compatibility with earlier Tcl releases than 8.7, use
\fBTcl_UtfToUniCharDString\fR resp. \fBTcl_UniCharToUtfDString\fR as
replacement, and make sure you compile your extension with -DTCL_UTF_MAX=3.
Beware: Those replacement functions don't initialize their Tcl_DString (you'll
have to do that yourself), and \fBTcl_UniCharToUtfDString\fR from Tcl 8.6
doesn't accept -1 as length parameter.
.PP
\fBTcl_GetEncodingName\fR is roughly the inverse of \fBTcl_GetEncoding\fR.
Given an \fIencoding\fR, the return value is the \fIname\fR argument that
-4
View File
@@ -36,13 +36,11 @@ int
int
\fBTcl_SetEnsembleMappingDict\fR(\fIinterp, token, dictObj\fR)
.sp
.VS 8.6
int
\fBTcl_GetEnsembleParameterList\fR(\fIinterp, token, listObjPtr\fR)
.sp
int
\fBTcl_SetEnsembleParameterList\fR(\fIinterp, token, listObj\fR)
.VE 8.6
.sp
int
\fBTcl_GetEnsembleSubcommandList\fR(\fIinterp, token, listObjPtr\fR)
@@ -163,7 +161,6 @@ All command names in prefixes set via \fBTcl_SetEnsembleMappingDict\fR
must be fully qualified.
.TP
\fBformal pre-subcommand parameter list\fR (read-write)
.VS 8.6
A list of formal parameter names (the names only being used when generating
error messages) that come at invocation of the ensemble between the name of
the ensemble and the subcommand argument. NULL (the default) is equivalent to
@@ -174,7 +171,6 @@ respectively. The result of both of those functions is a Tcl result code
ensemble) and the
dictionary obtained from \fBTcl_GetEnsembleParameterList\fR should always be
treated as immutable even if it is unshared.
.VE 8.6
.TP
\fBsubcommand list\fR (read-write)
.
+3 -2
View File
@@ -150,13 +150,14 @@ equivalent to using the \fBTCL_EVAL_GLOBAL\fR flag (see below).
of any length, concatenates them into a single string,
then calls \fBTcl_Eval\fR to execute that string as a Tcl command.
It returns the result of the command and also modifies
\fIinterp->result\fR in the same way as \fBTcl_Eval\fR.
the interpreter result in the same way as \fBTcl_Eval\fR.
The last argument to \fBTcl_VarEval\fR must be NULL to indicate the end
of arguments. \fBTcl_VarEval\fR is now deprecated.
.PP
\fBTcl_VarEvalVA\fR is the same as \fBTcl_VarEval\fR except that
instead of taking a variable number of arguments it takes an argument
list. Like \fBTcl_VarEval\fR, \fBTcl_VarEvalVA\fR is deprecated.
list. Interfaces using argument lists have been found to be nonportable
in practice. This function is deprecated and will be removed in Tcl 9.0.
.SH "FLAG BITS"
.PP
+3
View File
@@ -134,6 +134,9 @@ finalization of Tcl's subsystems via \fBTcl_Finalize\fR at an
appropriate time. The argument passed to \fIproc\fR when it is
invoked will be the exit status code (as passed to \fBTcl_Exit\fR)
cast to a ClientData value.
.PP
\fBTcl_SetExitProc\fR can not be used in stub-enabled extensions. Its symbol
entry in the stub table is deprecated and it will be removed in Tcl 9.0.
.SH "SEE ALSO"
exit(n)
.SH KEYWORDS
+4 -14
View File
@@ -63,10 +63,8 @@ int
\fBTcl_FSLoadFile\fR(\fIinterp, pathPtr, sym1, sym2, proc1Ptr, proc2Ptr,
loadHandlePtr, unloadProcPtr\fR)
.sp
.VS 8.6
int
\fBTcl_FSUnloadFile\fR(\fIinterp, loadHandle\fR)
.VE 8.6
.sp
int
\fBTcl_FSMatchInDirectory\fR(\fIinterp, resultPtr, pathPtr, pattern, types\fR)
@@ -146,7 +144,6 @@ Tcl_Obj *
Tcl_StatBuf *
\fBTcl_AllocStatBuf\fR()
.sp
.VS 8.6
Tcl_WideInt
\fBTcl_GetAccessTimeFromStat\fR(\fIstatPtr\fR)
.sp
@@ -185,7 +182,6 @@ Tcl_WideUInt
.sp
int
\fBTcl_GetUserIdFromStat\fR(\fIstatPtr\fR)
.VE 8.6
.SH ARGUMENTS
.AS Tcl_GlobTypeData **srcPathPtr out
.AP "const Tcl_Filesystem" *fsPtr in
@@ -418,7 +414,7 @@ caller (with a reference count of 0).
the encoding identified by \fIencodingName\fR and evaluates
its contents as a Tcl script. It returns the same information as
\fBTcl_EvalObjEx\fR.
If \fIencodingName\fR is NULL, the system encoding is used for
If \fIencodingName\fR is NULL, the utf-8 encoding is used for
reading the file contents.
If the file could not be read then a Tcl error is returned to describe
why the file could not be read.
@@ -434,7 +430,7 @@ or
which will be safely substituted by the Tcl interpreter into
.QW ^Z .
\fBTcl_FSEvalFile\fR is a simpler version of
\fBTcl_FSEvalFileEx\fR that always uses the system encoding
\fBTcl_FSEvalFileEx\fR that always uses the utf-8 encoding
when reading the file.
.PP
\fBTcl_FSLoadFile\fR dynamically loads a binary code file into memory and
@@ -444,20 +440,16 @@ belongs will be called. If that filesystem does not implement this
function (most virtual filesystems will not, because of OS limitations
in dynamically loading binary code), Tcl will attempt to copy the file
to a temporary directory and load that temporary file.
.VS 8.6
\fBTcl_FSUnloadFile\fR reverses the operation, asking for the library
indicated by the \fIloadHandle\fR to be removed from the process. Note that,
unlike with the \fBunload\fR command, this does not give the library any
opportunity to clean up.
.VE 8.6
.PP
Both the above functions return a standard Tcl completion code. If an error
occurs, an error message is left in the \fIinterp\fR's result.
.PP
.VS 8.6
The token provided via the variable indicated by \fIloadHandlePtr\fR may be
used with \fBTcl_FindSymbol\fR.
.VE 8.6
.PP
\fBTcl_FSMatchInDirectory\fR is used by the globbing code to search a
directory for all files which match a given pattern. The appropriate
@@ -795,7 +787,6 @@ may be deallocated by being passed to \fBckfree\fR). This allows extensions to
invoke \fBTcl_FSStat\fR and \fBTcl_FSLstat\fR without being dependent on the
size of the buffer. That in turn depends on the flags used to build Tcl.
.PP
.VS 8.6
The portable fields of a \fITcl_StatBuf\fR may be read using the following
functions, each of which returns the value of the corresponding field listed
in the table below. Note that on some platforms there may be other fields in
@@ -819,7 +810,6 @@ for a full description of these fields.
\fBTcl_GetBlocksFromStat\fR st_blocks
\fBTcl_GetBlockSizeFromStat\fR st_blksize
.DE
.VE 8.6
.SH "THE VIRTUAL FILESYSTEM API"
.PP
A filesystem provides a \fBTcl_Filesystem\fR structure that contains
@@ -1350,11 +1340,11 @@ is considered to be owned by the filesystem (not by Tcl's core), but
should be given a reference count for Tcl. Tcl will use the contents of the
list and then decrement that reference count. This allows filesystems to
choose whether they actually want to retain a
.QW "master list"
.QW "global list"
of volumes
or not (if not, they generate the list on the fly and pass it to Tcl
with a reference count of 1 and then forget about the list, if yes, then
they simply increment the reference count of their master list and pass it
they simply increment the reference count of their global list and pass it
to Tcl which will copy the contents and then decrement the count back
to where it was).
.PP
+3 -1
View File
@@ -58,6 +58,8 @@ internal full path name of the executable file as computed by
equivalent to the \fBinfo nameofexecutable\fR command. NULL
is returned if the internal full path name has not been
computed or unknown.
.PP
\fBTcl_FindExecutable\fR can not be used in stub-enabled extensions. Its symbol
entry in the stub table is deprecated and it will be removed in Tcl 9.0.
.SH KEYWORDS
binary, executable file
+13 -6
View File
@@ -27,19 +27,22 @@ Interpreter to use for error reporting; if NULL, then no message is
provided on errors.
.AP Tcl_Obj *objPtr in/out
The string value of this value is used to search through \fItablePtr\fR.
The internal representation is modified to hold the index of the matching
If the \fBTCL_INDEX_TEMP_TABLE\fR flag is not specified,
the internal representation is modified to hold the index of the matching
table entry.
.AP "const char *const" *tablePtr in
An array of null-terminated strings. The end of the array is marked
by a NULL string pointer.
Note that references to the \fItablePtr\fR may be retained in the
Note that, unless the \fBTCL_INDEX_TEMP_TABLE\fR flag is specified,
references to the \fItablePtr\fR may be retained in the
internal representation of \fIobjPtr\fR, so this should represent the
address of a statically-allocated array.
.AP "const void" *structTablePtr in
An array of arbitrary type, typically some \fBstruct\fR type.
The first member of the structure must be a null-terminated string.
The size of the structure is given by \fIoffset\fR.
Note that references to the \fIstructTablePtr\fR may be retained in the
Note that, unless the \fBTCL_INDEX_TEMP_TABLE\fR flag is specified,
references to the \fIstructTablePtr\fR may be retained in the
internal representation of \fIobjPtr\fR, so this should represent the
address of a statically-allocated array of structures.
.AP int offset in
@@ -50,7 +53,8 @@ Null-terminated string describing what is being looked up, such as
\fBoption\fR. This string is included in error messages.
.AP int flags in
OR-ed combination of bits providing additional information for
operation. The only bit that is currently defined is \fBTCL_EXACT\fR.
operation. The only bits that are currently defined are \fBTCL_EXACT\fR
and \fBTCL_INDEX_TEMP_TABLE\fR.
.AP int *indexPtr out
The index of the string in \fItablePtr\fR that matches the value of
\fIobjPtr\fR is returned here.
@@ -76,7 +80,8 @@ error message to indicate what was being looked up. For example,
if \fImsg\fR is \fBoption\fR the error message will have a form like
.QW "\fBbad option \N'34'firt\N'34': must be first, second, or third\fR" .
.PP
If \fBTcl_GetIndexFromObj\fR completes successfully it modifies the
If the \fBTCL_INDEX_TEMP_TABLE\fR was not specified, when
\fBTcl_GetIndexFromObj\fR completes successfully it modifies the
internal representation of \fIobjPtr\fR to hold the address of
the table and the index of the matching entry. If \fBTcl_GetIndexFromObj\fR
is invoked again with the same \fIobjPtr\fR and \fItablePtr\fR
@@ -84,7 +89,9 @@ arguments (e.g. during a reinvocation of a Tcl command), it returns
the matching index immediately without having to redo the lookup
operation. Note: \fBTcl_GetIndexFromObj\fR assumes that the entries
in \fItablePtr\fR are static: they must not change between
invocations. If the value of \fIobjPtr\fR is the empty string,
invocations. This caching mechanism can be disallowed by specifying
the \fBTCL_INDEX_TEMP_TABLE\fR flag.
If the value of \fIobjPtr\fR is the empty string,
\fBTcl_GetIndexFromObj\fR will treat it as a non-matching value
and return \fBTCL_ERROR\fR.
.PP
+31
View File
@@ -0,0 +1,31 @@
'\"
'\" Copyright (c) 2018 Tcl Core Team
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.so man.macros
.TH Tcl_InitSubsystems 3 8.7 Tcl "Tcl Library Procedures"
.BS
.SH NAME
Tcl_InitSubsystems \- initialize the Tcl library.
.SH SYNOPSIS
.nf
\fB#include <tcl.h>\fR
.sp
void
\fBTcl_InitSubsystems\fR(\fIvoid\fR)
.SH DESCRIPTION
.PP
The \fBTcl_InitSubsystems\fR procedure initializes the Tcl
library. This procedure is typically invoked as the very
first thing in the application's main program.
.PP
\fBTcl_InitSubsystems\fR is very similar in use to
\fBTcl_FindExecutable\fR. It can be used when Tcl is
used as utility library, no other encodings than utf8,
iso8859-1 or unicode are used, and no interest exists in the
value of \fBinfo nameofexecutable\fR. The system encoding will not
be extracted from the environment, but falls back to iso8859-1.
.SH KEYWORDS
binary, executable file
+16 -1
View File
@@ -8,7 +8,7 @@
.so man.macros
.BS
.SH NAME
Tcl_NewIntObj, Tcl_NewLongObj, Tcl_NewWideIntObj, Tcl_SetIntObj, Tcl_SetLongObj, Tcl_SetWideIntObj, Tcl_GetIntFromObj, Tcl_GetLongFromObj, Tcl_GetWideIntFromObj, Tcl_NewBignumObj, Tcl_SetBignumObj, Tcl_GetBignumFromObj, Tcl_TakeBignumFromObj \- manipulate Tcl values as integers
Tcl_NewIntObj, Tcl_NewLongObj, Tcl_NewWideIntObj, Tcl_SetIntObj, Tcl_SetLongObj, Tcl_SetWideIntObj, Tcl_GetIntFromObj, Tcl_GetIntForIndex, Tcl_GetLongFromObj, Tcl_GetWideIntFromObj, Tcl_NewBignumObj, Tcl_SetBignumObj, Tcl_GetBignumFromObj, Tcl_TakeBignumFromObj \- manipulate Tcl values as integers
.SH SYNOPSIS
.nf
\fB#include <tcl.h>\fR
@@ -32,6 +32,9 @@ int
\fBTcl_GetIntFromObj\fR(\fIinterp, objPtr, intPtr\fR)
.sp
int
\fBTcl_GetIntForIndex\fR(\fIinterp, objPtr, endValue, intPtr\fR)
.sp
int
\fBTcl_GetLongFromObj\fR(\fIinterp, objPtr, longPtr\fR)
.sp
int
@@ -55,6 +58,8 @@ int
\fBTcl_InitBignumFromDouble\fR(\fIinterp, doubleValue, bigValue\fR)
.SH ARGUMENTS
.AS Tcl_WideInt doubleValue in/out
.AP int endValue in
\fBTcl_GetIntForIndex\fR will return this when the input value is "end".
.AP int intValue in
Integer value used to initialize or set a Tcl value.
.AP long longValue in
@@ -115,6 +120,16 @@ violates Tcl's copy-on-write policy. Any existing string representation
or internal representation in the unshared Tcl value will be freed
as a consequence of setting the new value.
.PP
The \fBTcl_GetIntForIndex\fR routine attempts to retrieve an index
value from the Tcl value \fIobjPtr\fR. If the attempt succeeds,
then \fBTCL_OK\fR is returned, and the value is written to the
storage provided by the caller. The attempt might fail if
\fIobjPtr\fR does not hold an index value. If the attempt fails,
then \fBTCL_ERROR\fR is returned, and if \fIinterp\fR is non-NULL,
an error message is left in \fIinterp\fR. The \fBTcl_ObjType\fR
of \fIobjPtr\fR may be changed to make subsequent calls to the
same routine more efficient.
.PP
The \fBTcl_GetIntFromObj\fR, \fBTcl_GetLongFromObj\fR,
\fBTcl_GetWideIntFromObj\fR, \fBTcl_GetBignumFromObj\fR, and
\fBTcl_TakeBignumFromObj\fR routines attempt to retrieve an integral
+13 -106
View File
@@ -5,7 +5,7 @@
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tcl_Interp 3 7.5 Tcl "Tcl Library Procedures"
.TH Tcl_Interp 3 8.7 Tcl "Tcl Library Procedures"
.so man.macros
.BS
.SH NAME
@@ -15,9 +15,9 @@ Tcl_Interp \- client-visible fields of interpreter structures
\fB#include <tcl.h>\fR
.sp
typedef struct {
char *\fIresult\fR;
Tcl_FreeProc *\fIfreeProc\fR;
int \fIerrorLine\fR;
char *\fIresult\fR; /* NO LONGER AVAILABLE */
Tcl_FreeProc *\fIfreeProc\fR; /* NO LONGER AVAILABLE */
int \fIerrorLine\fR; /* NO LONGER AVAILABLE */
} \fBTcl_Interp\fR;
typedef void \fBTcl_FreeProc\fR(
@@ -25,110 +25,17 @@ typedef void \fBTcl_FreeProc\fR(
.BE
.SH DESCRIPTION
.PP
The \fBTcl_CreateInterp\fR procedure returns a pointer to a Tcl_Interp
The \fBTcl_CreateInterp\fR procedure returns a pointer to a \fBTcl_Interp\fR
structure. Callers of \fBTcl_CreateInterp\fR should use this pointer
as an opaque token, suitable for nothing other than passing back to
other routines in the Tcl interface. Accessing fields directly through
the pointer as described below is no longer supported. The supported
public routines \fBTcl_SetResult\fR, \fBTcl_GetResult\fR,
\fBTcl_SetErrorLine\fR, \fBTcl_GetErrorLine\fR must be used instead.
other routines in the Tcl interface from the same thread that called
\fBTcl_CreateInterp\fR. The \fBTcl_Interp\fR struct no longer has any
supported client-visible fields. Supported public routines such as
\fBTcl_SetResult\fR, \fBTcl_GetResult\fR, \fBTcl_SetErrorLine\fR,
\fBTcl_GetErrorLine\fR must be used instead.
.PP
For legacy programs and extensions no longer being maintained, compiles
against the Tcl 8.6 header files are only possible with the compiler
directives
.CS
#define USE_INTERP_RESULT
.CE
and/or
.CS
#define USE_INTERP_ERRORLINE
.CE
depending on which fields of the \fBTcl_Interp\fR struct are accessed.
These directives may be embedded in code or supplied via compiler options.
.PP
The \fIresult\fR and \fIfreeProc\fR fields are used to return
results or error messages from commands.
This information is returned by command procedures back to \fBTcl_Eval\fR,
and by \fBTcl_Eval\fR back to its callers.
The \fIresult\fR field points to the string that represents the
result or error message, and the \fIfreeProc\fR field tells how
to dispose of the storage for the string when it is not needed anymore.
The easiest way for command procedures to manipulate these
fields is to call procedures like \fBTcl_SetResult\fR
or \fBTcl_AppendResult\fR; they
will hide all the details of managing the fields.
The description below is for those procedures that manipulate the
fields directly.
.PP
Whenever a command procedure returns, it must ensure
that the \fIresult\fR field of its interpreter points to the string
being returned by the command.
The \fIresult\fR field must always point to a valid string.
If a command wishes to return no result then \fIinterp->result\fR
should point to an empty string.
Normally, results are assumed to be statically allocated,
which means that the contents will not change before the next time
\fBTcl_Eval\fR is called or some other command procedure is invoked.
In this case, the \fIfreeProc\fR field must be zero.
Alternatively, a command procedure may dynamically
allocate its return value (e.g. using \fBTcl_Alloc\fR)
and store a pointer to it in \fIinterp->result\fR.
In this case, the command procedure must also set \fIinterp->freeProc\fR
to the address of a procedure that can free the value, or \fBTCL_DYNAMIC\fR
if the storage was allocated directly by Tcl or by a call to
\fBTcl_Alloc\fR.
If \fIinterp->freeProc\fR is non-zero, then Tcl will call \fIfreeProc\fR
to free the space pointed to by \fIinterp->result\fR before it
invokes the next command.
If a client procedure overwrites \fIinterp->result\fR when
\fIinterp->freeProc\fR is non-zero, then it is responsible for calling
\fIfreeProc\fR to free the old \fIinterp->result\fR (the \fBTcl_FreeResult\fR
macro should be used for this purpose).
.PP
\fIFreeProc\fR should have arguments and result that match the
\fBTcl_FreeProc\fR declaration above: it receives a single
argument which is a pointer to the result value to free.
In most applications \fBTCL_DYNAMIC\fR is the only non-zero value ever
used for \fIfreeProc\fR.
However, an application may store a different procedure address
in \fIfreeProc\fR in order to use an alternate memory allocator
or in order to do other cleanup when the result memory is freed.
.PP
As part of processing each command, \fBTcl_Eval\fR initializes
\fIinterp->result\fR
and \fIinterp->freeProc\fR just before calling the command procedure for
the command. The \fIfreeProc\fR field will be initialized to zero,
and \fIinterp->result\fR will point to an empty string. Commands that
do not return any value can simply leave the fields alone.
Furthermore, the empty string pointed to by \fIresult\fR is actually
part of an array of approximately 200 characters.
If a command wishes to return a short string, it can simply copy
it to the area pointed to by \fIinterp->result\fR. Or, it can use
the sprintf procedure to generate a short result string at the location
pointed to by \fIinterp->result\fR.
.PP
It is a general convention in Tcl-based applications that the result
of an interpreter is normally in the initialized state described
in the previous paragraph.
Procedures that manipulate an interpreter's result (e.g. by
returning an error) will generally assume that the result
has been initialized when the procedure is called.
If such a procedure is to be called after the result has been
changed, then \fBTcl_ResetResult\fR should be called first to
reset the result to its initialized state. The direct use of
\fIinterp->result\fR is strongly deprecated (see \fBTcl_SetResult\fR).
.PP
The \fIerrorLine\fR
field is valid only after \fBTcl_Eval\fR returns
a \fBTCL_ERROR\fR return code. In this situation the \fIerrorLine\fR
field identifies the line number of the command being executed when
the error occurred. The line numbers are relative to the command
being executed: 1 means the first line of the command passed to
\fBTcl_Eval\fR, 2 means the second line, and so on.
The \fIerrorLine\fR field is typically used in conjunction with
\fBTcl_AddErrorInfo\fR to report information about where an error
occurred.
\fIErrorLine\fR should not normally be modified except by \fBTcl_Eval\fR.
Any legacy programs and extensions trying to access the fields above
in their source code will need conversion to compile for Tcl 8.7 and later.
.SH KEYWORDS
free, initialized, interpreter, malloc, result
interpreter, result
+1 -1
View File
@@ -116,7 +116,7 @@ execution of the callbacks is unspecified) execution in the limited
interpreter is stopped by raising an error and setting a flag that
prevents the \fBcatch\fR command in that interpreter from trapping
that error. It is up to the context that started execution in that
interpreter (typically a master interpreter) to handle the error.
interpreter (typically the main interpreter) to handle the error.
.SH "LIMIT CHECKING API"
.PP
To check the resource limits for an interpreter, call
+111 -35
View File
@@ -9,7 +9,7 @@
.so man.macros
.BS
.SH NAME
Tcl_LinkVar, Tcl_UnlinkVar, Tcl_UpdateLinkedVar \- link Tcl variable to C variable
Tcl_LinkArray, Tcl_LinkVar, Tcl_UnlinkVar, Tcl_UpdateLinkedVar \- link Tcl variable to C variable
.SH SYNOPSIS
.nf
\fB#include <tcl.h>\fR
@@ -17,27 +17,52 @@ Tcl_LinkVar, Tcl_UnlinkVar, Tcl_UpdateLinkedVar \- link Tcl variable to C variab
int
\fBTcl_LinkVar\fR(\fIinterp, varName, addr, type\fR)
.sp
.VS "TIP 312"
int
\fBTcl_LinkArray\fR(\fIinterp, varName, addr, type, size\fR)
.VE "TIP 312"
.sp
\fBTcl_UnlinkVar\fR(\fIinterp, varName\fR)
.sp
\fBTcl_UpdateLinkedVar\fR(\fIinterp, varName\fR)
.SH ARGUMENTS
.AS Tcl_Interp writable
.AS Tcl_Interp varName in
.AP Tcl_Interp *interp in
Interpreter that contains \fIvarName\fR.
Also used by \fBTcl_LinkVar\fR to return error messages.
.AP "const char" *varName in
Name of global variable.
.AP char *addr in
.AP void *addr in
Address of C variable that is to be linked to \fIvarName\fR.
.sp
.VS "TIP 312"
In \fBTcl_LinkArray\fR, may be NULL to tell Tcl to create the storage
for the array in the variable.
.VE "TIP 312"
.AP int type in
Type of C variable. Must be one of \fBTCL_LINK_INT\fR,
Type of C variable for \fBTcl_LinkVar\fR or type of array element for
\fBTcl_LinkArray\fR. Must be one of \fBTCL_LINK_INT\fR,
\fBTCL_LINK_UINT\fR, \fBTCL_LINK_CHAR\fR, \fBTCL_LINK_UCHAR\fR,
\fBTCL_LINK_SHORT\fR, \fBTCL_LINK_USHORT\fR, \fBTCL_LINK_LONG\fR,
\fBTCL_LINK_ULONG\fR, \fBTCL_LINK_WIDE_INT\fR,
\fBTCL_LINK_WIDE_UINT\fR, \fBTCL_LINK_FLOAT\fR,
\fBTCL_LINK_DOUBLE\fR, \fBTCL_LINK_BOOLEAN\fR, or
\fBTCL_LINK_STRING\fR, optionally OR'ed with \fBTCL_LINK_READ_ONLY\fR
to make Tcl variable read-only.
\fBTCL_LINK_WIDE_UINT\fR, \fBTCL_LINK_FLOAT\fR, \fBTCL_LINK_DOUBLE\fR,
\fBTCL_LINK_BOOLEAN\fR, or one of the extra ones listed below.
.sp
In \fBTcl_LinkVar\fR, the additional linked type \fBTCL_LINK_STRING\fR may be
used.
.sp
.VS "TIP 312"
In \fBTcl_LinkArray\fR, the additional linked types \fBTCL_LINK_CHARS\fR and
\fBTCL_LINK_BYTES\fR may be used.
.VE "TIP 312"
.sp
All the above for both functions may be
optionally OR'ed with \fBTCL_LINK_READ_ONLY\fR to make the Tcl
variable read-only.
.AP int size in
.VS "TIP 312"
The number of elements in the C array. Must be greater than zero.
.VE "TIP 312"
.BE
.SH DESCRIPTION
.PP
@@ -52,130 +77,179 @@ while setting up the link (e.g. because \fIvarName\fR is the
name of array) then \fBTCL_ERROR\fR is returned and the interpreter's result
contains an error message.
.PP
.VS "TIP 312"
\fBTcl_LinkArray\fR is similar, but for arrays of fixed size (given by
the \fIsize\fR argument). When asked to allocate the backing C array
storage (via the \fIaddr\fR argument being NULL), it writes the
address that it allocated to the Tcl interpreter result.
.VE "TIP 312"
.PP
The \fItype\fR argument specifies the type of the C variable,
or the type of the elements of the C array,
and must have one of the following values, optionally OR'ed with
\fBTCL_LINK_READ_ONLY\fR:
.TP
\fBTCL_LINK_INT\fR
The C variable is of type \fBint\fR.
.
The C variable, or each element of the C array, is of type \fBint\fR.
Any value written into the Tcl variable must have a proper integer
form acceptable to \fBTcl_GetIntFromObj\fR; attempts to write
non-integer values into \fIvarName\fR will be rejected with
Tcl errors. Incomplete integer representations (like the empty
string, '+', '-' or the hex/octal/binary prefix) are accepted
string, '+', '-' or the hex/octal/decimal/binary prefix) are accepted
as if they are valid too.
.TP
\fBTCL_LINK_UINT\fR
The C variable is of type \fBunsigned int\fR.
.
The C variable, or each element of the C array, is of type \fBunsigned int\fR.
Any value written into the Tcl variable must have a proper unsigned
integer form acceptable to \fBTcl_GetWideIntFromObj\fR and in the
platform's defined range for the \fBunsigned int\fR type; attempts to
write non-integer values (or values outside the range) into
\fIvarName\fR will be rejected with Tcl errors. Incomplete integer
representations (like the empty string, '+', '-' or the hex/octal/binary
representations (like the empty string, '+', '-' or the hex/octal/decimal/binary
prefix) are accepted as if they are valid too.
.TP
\fBTCL_LINK_CHAR\fR
The C variable is of type \fBchar\fR.
.
The C variable, or each element of the C array, is of type \fBchar\fR.
Any value written into the Tcl variable must have a proper integer
form acceptable to \fBTcl_GetIntFromObj\fR and be in the range of the
\fBchar\fR datatype; attempts to write non-integer or out-of-range
values into \fIvarName\fR will be rejected with Tcl errors. Incomplete
integer representations (like the empty string, '+', '-' or the
hex/octal/binary prefix) are accepted as if they are valid too.
hex/octal/decimal/binary prefix) are accepted as if they are valid too.
.RS
.PP
.VS "TIP 312"
If using an array of these, consider using \fBTCL_LINK_CHARS\fR instead.
.VE "TIP 312"
.RE
.TP
\fBTCL_LINK_CHARS\fR
.VS "TIP 312"
The C array is of type \fBchar *\fR and is mapped into Tcl as a string.
Any value written into the Tcl variable must have the same length as
the underlying storage. Only supported with \fBTcl_LinkArray\fR.
.VE "TIP 312"
.TP
\fBTCL_LINK_UCHAR\fR
The C variable is of type \fBunsigned char\fR.
.
The C variable, or each element of the C array, is of type \fBunsigned char\fR.
Any value written into the Tcl variable must have a proper unsigned
integer form acceptable to \fBTcl_GetIntFromObj\fR and in the
platform's defined range for the \fBunsigned char\fR type; attempts to
write non-integer values (or values outside the range) into
\fIvarName\fR will be rejected with Tcl errors. Incomplete integer
representations (like the empty string, '+', '-' or the hex/octal/binary
representations (like the empty string, '+', '-' or the hex/octal/decimal/binary
prefix) are accepted as if they are valid too.
.RS
.PP
.VS "TIP 312"
If using an array of these, consider using \fBTCL_LINK_BYTES\fR instead.
.VE "TIP 312"
.RE
.TP
\fBTCL_LINK_BYTES\fR
.VS "TIP 312"
The C array is of type \fBunsigned char *\fR and is mapped into Tcl
as a bytearray.
Any value written into the Tcl variable must have the same length as
the underlying storage. Only supported with \fBTcl_LinkArray\fR.
.VE "TIP 312"
.TP
\fBTCL_LINK_SHORT\fR
The C variable is of type \fBshort\fR.
.
The C variable, or each element of the C array, is of type \fBshort\fR.
Any value written into the Tcl variable must have a proper integer
form acceptable to \fBTcl_GetIntFromObj\fR and be in the range of the
\fBshort\fR datatype; attempts to write non-integer or out-of-range
values into \fIvarName\fR will be rejected with Tcl errors. Incomplete
integer representations (like the empty string, '+', '-' or the
hex/octal/binary prefix) are accepted as if they are valid too.
hex/octal/decimal/binary prefix) are accepted as if they are valid too.
.TP
\fBTCL_LINK_USHORT\fR
The C variable is of type \fBunsigned short\fR.
.
The C variable, or each element of the C array, is of type \fBunsigned short\fR.
Any value written into the Tcl variable must have a proper unsigned
integer form acceptable to \fBTcl_GetIntFromObj\fR and in the
platform's defined range for the \fBunsigned short\fR type; attempts to
write non-integer values (or values outside the range) into
\fIvarName\fR will be rejected with Tcl errors. Incomplete integer
representations (like the empty string, '+', '-' or the hex/octal/binary
representations (like the empty string, '+', '-' or the hex/octal/decimal/binary
prefix) are accepted as if they are valid too.
.TP
\fBTCL_LINK_LONG\fR
The C variable is of type \fBlong\fR.
.
The C variable, or each element of the C array, is of type \fBlong\fR.
Any value written into the Tcl variable must have a proper integer
form acceptable to \fBTcl_GetLongFromObj\fR; attempts to write
non-integer or out-of-range
values into \fIvarName\fR will be rejected with Tcl errors. Incomplete
integer representations (like the empty string, '+', '-' or the
hex/octal/binary prefix) are accepted as if they are valid too.
hex/octal/decimal/binary prefix) are accepted as if they are valid too.
.TP
\fBTCL_LINK_ULONG\fR
The C variable is of type \fBunsigned long\fR.
.
The C variable, or each element of the C array, is of type \fBunsigned long\fR.
Any value written into the Tcl variable must have a proper unsigned
integer form acceptable to \fBTcl_GetWideIntFromObj\fR and in the
platform's defined range for the \fBunsigned long\fR type; attempts to
write non-integer values (or values outside the range) into
\fIvarName\fR will be rejected with Tcl errors. Incomplete integer
representations (like the empty string, '+', '-' or the hex/octal/binary
representations (like the empty string, '+', '-' or the hex/octal/decimal/binary
prefix) are accepted as if they are valid too.
.TP
\fBTCL_LINK_DOUBLE\fR
The C variable is of type \fBdouble\fR.
.
The C variable, or each element of the C array, is of type \fBdouble\fR.
Any value written into the Tcl variable must have a proper real
form acceptable to \fBTcl_GetDoubleFromObj\fR; attempts to write
non-real values into \fIvarName\fR will be rejected with
Tcl errors. Incomplete integer or real representations (like the
empty string, '.', '+', '-' or the hex/octal/binary prefix) are
empty string, '.', '+', '-' or the hex/octal/decimal/binary prefix) are
accepted as if they are valid too.
.TP
\fBTCL_LINK_FLOAT\fR
The C variable is of type \fBfloat\fR.
.
The C variable, or each element of the C array, is of type \fBfloat\fR.
Any value written into the Tcl variable must have a proper real
form acceptable to \fBTcl_GetDoubleFromObj\fR and must be within the
range acceptable for a \fBfloat\fR; attempts to
write non-real values (or values outside the range) into
\fIvarName\fR will be rejected with Tcl errors. Incomplete integer
or real representations (like the empty string, '.', '+', '-' or
the hex/octal/binary prefix) are accepted as if they are valid too.
the hex/octal/decimal/binary prefix) are accepted as if they are valid too.
.TP
\fBTCL_LINK_WIDE_INT\fR
The C variable is of type \fBTcl_WideInt\fR (which is an integer type
.
The C variable, or each element of the C array, is of type \fBTcl_WideInt\fR
(which is an integer type
at least 64-bits wide on all platforms that can support it.)
Any value written into the Tcl variable must have a proper integer
form acceptable to \fBTcl_GetWideIntFromObj\fR; attempts to write
non-integer values into \fIvarName\fR will be rejected with
Tcl errors. Incomplete integer representations (like the empty
string, '+', '-' or the hex/octal/binary prefix) are accepted
string, '+', '-' or the hex/octal/decimal/binary prefix) are accepted
as if they are valid too.
.TP
\fBTCL_LINK_WIDE_UINT\fR
The C variable is of type \fBTcl_WideUInt\fR (which is an unsigned
integer type at least 64-bits wide on all platforms that can support
it.)
.
The C variable, or each element of the C array, is of type \fBTcl_WideUInt\fR
(which is an unsigned integer type at least 64-bits wide on all platforms that
can support it.)
Any value written into the Tcl variable must have a proper unsigned
integer form acceptable to \fBTcl_GetWideIntFromObj\fR (it will be
cast to unsigned);
.\" FIXME! Use bignums instead.
attempts to write non-integer values into \fIvarName\fR will be
rejected with Tcl errors. Incomplete integer representations (like
the empty string, '+', '-' or the hex/octal/binary prefix) are accepted
the empty string, '+', '-' or the hex/octal/decimal/binary prefix) are accepted
as if they are valid too.
.TP
\fBTCL_LINK_BOOLEAN\fR
The C variable is of type \fBint\fR.
.
The C variable, or each element of the C array, is of type \fBint\fR.
If its value is zero then it will read from Tcl as
.QW 0 ;
otherwise it will read from Tcl as
@@ -188,6 +262,7 @@ non-boolean values into \fIvarName\fR will be rejected with
Tcl errors.
.TP
\fBTCL_LINK_STRING\fR
.
The C variable is of type \fBchar *\fR.
If its value is not NULL then it must be a pointer to a string
allocated with \fBTcl_Alloc\fR or \fBckalloc\fR.
@@ -197,6 +272,7 @@ new value.
If the C variable contains a NULL pointer then the Tcl variable
will read as
.QW NULL .
This is only supported by \fBTcl_LinkVar\fR.
.PP
If the \fBTCL_LINK_READ_ONLY\fR flag is present in \fItype\fR then the
variable will be read-only from Tcl, so that its value can only be
+3 -1
View File
@@ -138,7 +138,9 @@ create a new value or modify an existing value to hold
the \fIobjc\fR elements of the array referenced by \fIobjv\fR
where each element is a pointer to a Tcl value.
If \fIobjc\fR is less than or equal to zero,
they return an empty value.
they return an empty value. If \fIobjv\fR is NULL, the resulting list
contains 0 elements, with reserved space in an internal representation
for \fIobjc\fR more elements (to avoid its reallocation later).
The new value's string representation is left invalid.
The two procedures increment the reference counts
of the elements in \fIobjc\fR since the list value now refers to them.
+11 -21
View File
@@ -132,22 +132,17 @@ higher-level software that they have occurred. The procedures
and \fBTcl_SetMaxBlockTime\fR, \fBTcl_QueueEvent\fR, and
\fBTcl_DeleteEvents\fR are used primarily by event sources.
.IP [2]
The event queue: for non-threaded applications,
there is a single queue for the whole application,
containing events that have been detected but not yet serviced. Event
sources place events onto the queue so that they may be processed in
order at appropriate times during the event loop. The event queue
guarantees a fair discipline of event handling, so that no event
source can starve the others. It also allows events to be saved for
servicing at a future time. Threaded applications work in a
similar manner, except that there is a separate event queue for
each thread containing a Tcl interpreter.
The event queue: there is a single queue for each thread containing
a Tcl interpreter, containing events that have been detected but not
yet serviced. Event sources place events onto the queue so that they
may be processed in order at appropriate times during the event loop.
The event queue guarantees a fair discipline of event handling, so that
no event source can starve the others. It also allows events to be
saved for servicing at a future time.
\fBTcl_QueueEvent\fR is used (primarily
by event sources) to add events to the event queue and
by event sources) to add events to the current thread's event queue and
\fBTcl_DeleteEvents\fR is used to remove events from the queue without
processing them. In a threaded application, \fBTcl_QueueEvent\fR adds
an event to the current thread's queue, and \fBTcl_ThreadQueueEvent\fR
adds an event to a queue in a specific thread.
processing them.
.IP [3]
The event loop: in order to detect and process events, the application
enters a loop that waits for events to occur, places them on the event
@@ -403,11 +398,7 @@ the event source (using \fBTcl_Alloc\fR or the Tcl macro \fBckalloc\fR)
before calling \fBTcl_QueueEvent\fR, but it
will be freed by \fBTcl_ServiceEvent\fR, not by the event source.
.PP
Threaded applications work in a
similar manner, except that there is a separate event queue for
each thread containing a Tcl interpreter.
Calling \fBTcl_QueueEvent\fR in a multithreaded application adds
an event to the current thread's queue.
Calling \fBTcl_QueueEvent\fR adds an event to the current thread's queue.
To add an event to another thread's queue, use \fBTcl_ThreadQueueEvent\fR.
\fBTcl_ThreadQueueEvent\fR accepts as an argument a Tcl_ThreadId argument,
which uniquely identifies a thread in a Tcl application. To obtain the
@@ -498,8 +489,7 @@ under Unix it happens when \fBTcl_WaitForEvent\fR would have waited
forever because there were no active event sources and the timeout was
infinite.
.PP
\fBTcl_AlertNotifier\fR is used in multithreaded applications to allow
any thread to
\fBTcl_AlertNotifier\fR is used to allow any thread to
.QW "wake up"
the notifier to alert it to new events on its
queue. \fBTcl_AlertNotifier\fR requires as an argument the notifier
-2
View File
@@ -85,14 +85,12 @@ unless \fIinterp\fR is NULL.
Otherwise, it returns \fBTCL_OK\fR.
Passing a NULL \fIinterp\fR allows this procedure to be used
as a test whether the conversion can be done (and in fact was done).
.VS 8.5
.PP
In many cases, the \fItypePtr->setFromAnyProc\fR routine will
set \fIobjPtr->typePtr\fR to the argument value \fItypePtr\fR,
but that is no longer guaranteed. The \fIsetFromAnyProc\fR is
free to set the internal representation for \fIobjPtr\fR to make
use of another related Tcl_ObjType, if it sees fit.
.VE 8.5
.SH "THE TCL_OBJTYPE STRUCTURE"
.PP
Extension writers can define new value types by defining four
+1 -1
View File
@@ -277,7 +277,7 @@ If an error occurs while opening the channel, \fBTcl_OpenCommandChannel\fR
returns NULL and records a POSIX error code that can be retrieved with
\fBTcl_GetErrno\fR.
In addition, \fBTcl_OpenCommandChannel\fR leaves an error message in
the interpreter's result if \fIinterp\fR is not NULL.
the interpreter's result. \fIinterp\fR cannot be NULL.
.PP
The newly created channel is not registered in the supplied interpreter; to
register it, use \fBTcl_RegisterChannel\fR, described below.
+8 -3
View File
@@ -53,13 +53,13 @@ In a freshly loaded Tcl library, \fBTcl_Panic\fR prints the formatted
error message to the standard error file of the process, and then
calls \fBabort\fR to terminate the process. \fBTcl_Panic\fR does not
return. On Windows, when a debugger is running, the formatted error
message is sent to the debugger in stead. If the windows executable
message is sent to the debugger instead. If the windows executable
does not have a stderr channel (e.g. \fBwish.exe\fR), then a
system dialog box is used to display the panic message.
.PP
If your application doesn't use \fBTcl_Main\fR or \fBTk_Main\fR
and you want to implicitly use the stderr channel of your
application's C runtime (in stead of the stderr channel of the
application's C runtime (instead of the stderr channel of the
C runtime used by Tcl), you can call \fBTcl_SetPanicProc\fR
with \fBTcl_ConsolePanic\fR as its argument. On platforms which
only have one C runtime (almost all platforms except Windows)
@@ -86,6 +86,9 @@ The typical use of \fBTcl_SetPanicProc\fR arranges for the error message
to be displayed or reported in a manner more suitable for the
application or the platform.
.PP
\fBTcl_SetPanicProc\fR can not be used in stub-enabled extensions. Its symbol
entry in the stub table is deprecated and it will be removed in Tcl 9.0.
.PP
Although the primary callers of \fBTcl_Panic\fR are the procedures of
the Tcl library, \fBTcl_Panic\fR is a public function and may be called
by any extension or application that wishes to abort the process and
@@ -93,7 +96,9 @@ have a panic message displayed the same way that panic messages from Tcl
will be displayed.
.PP
\fBTcl_PanicVA\fR is the same as \fBTcl_Panic\fR except that instead of
taking a variable number of arguments it takes an argument list.
taking a variable number of arguments it takes an argument list. Interfaces
using argument lists have been found to be nonportable in practice. This
function is deprecated and will be removed in Tcl 9.0.
.SH "SEE ALSO"
abort(3), printf(3), exec(n), format(n)
.SH KEYWORDS
+2 -2
View File
@@ -103,8 +103,8 @@ the argument's value. The following values are acceptable values for
\fBTCL_ARGV_CONSTANT\fR
.
The argument does not take any following value argument. If this argument is
present, the int pointed to by the \fIsrcPtr\fR field is copied to the
\fIdstPtr\fR field. The \fIclientData\fR field is ignored.
present, the (integer) value of the \fIsrcPtr\fR field is copied to the variable
pointed to by the \fIdstPtr\fR field. The \fIclientData\fR field is ignored.
.TP
\fBTCL_ARGV_END\fR
.
+1 -1
View File
@@ -302,7 +302,7 @@ The \fInumComponents\fR field is always 0.
.TP
\fBTCL_TOKEN_BS\fR
.
The token describes a backslash sequence such as \fB\en\fR or \fB\e0xa3\fR.
The token describes a backslash sequence such as \fB\en\fR or \fB\e0xA3\fR.
The \fInumComponents\fR field is always 0.
.TP
\fBTCL_TOKEN_COMMAND\fR
+19 -28
View File
@@ -5,7 +5,7 @@
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tcl_SetResult 3 8.0 Tcl "Tcl Library Procedures"
.TH Tcl_SetResult 3 8.7 Tcl "Tcl Library Procedures"
.so man.macros
.BS
.SH NAME
@@ -30,9 +30,7 @@ const char *
.sp
\fBTcl_ResetResult\fR(\fIinterp\fR)
.sp
.VS 8.6
\fBTcl_TransferResult\fR(\fIsourceInterp, result, targetInterp\fR)
.VE 8.6
\fBTcl_TransferResult\fR(\fIsourceInterp, code, targetInterp\fR)
.sp
\fBTcl_AppendElement\fR(\fIinterp, element\fR)
.sp
@@ -57,18 +55,11 @@ Address of procedure to call to release storage at
An argument list which must have been initialized using
\fBva_start\fR, and cleared using \fBva_end\fR.
.AP Tcl_Interp *sourceInterp in
.VS 8.6
Interpreter that the result and error information should be copied from.
.VE 8.6
Interpreter that the result and return options should be transferred from.
.AP Tcl_Interp *targetInterp in
.VS 8.6
Interpreter that the result and error information should be copied to.
.VE 8.6
.AP int result in
.VS 8.6
If \fBTCL_OK\fR, only copy the result. If \fBTCL_ERROR\fR, copy the error
information as well.
.VE 8.6
Interpreter that the result and return options should be transferred to.
.AP int code in
Return code value that controls transfer of return options.
.BE
.SH DESCRIPTION
.PP
@@ -154,13 +145,17 @@ call; the last argument in the list must be a NULL pointer.
.PP
\fBTcl_AppendResultVA\fR is the same as \fBTcl_AppendResult\fR except that
instead of taking a variable number of arguments it takes an argument list.
Interfaces using argument lists have been found to be nonportable in practice.
This function is deprecated and will be removed in Tcl 9.0.
.PP
.VS 8.6
\fBTcl_TransferResult\fR moves a result from one interpreter to another,
optionally (dependent on the \fIresult\fR parameter) including the error
information dictionary as well. The interpreters must be in the same thread.
The source interpreter will have its result reset by this operation.
.VE 8.6
\fBTcl_TransferResult\fR transfers interpreter state from \fIsourceInterp\fR
to \fItargetInterp\fR. The two interpreters must have been created in the
same thread. If \fIsourceInterp\fR and \fItargetInterp\fR are the same,
nothing is done. Otherwise, \fBTcl_TransferResult\fR moves the result
from \fIsourceInterp\fR to \fItargetInterp\fR, and resets the result
in \fIsourceInterp\fR. It also moves the return options dictionary as
controlled by the return code value \fIcode\fR in the same manner
as \fBTcl_GetReturnOptions\fR.
.SH "DEPRECATED INTERFACES"
.SS "OLD STRING PROCEDURES"
.PP
@@ -202,14 +197,9 @@ is about to replace one result value with another.
It used to be legal for programs to
directly read and write \fIinterp->result\fR
to manipulate the interpreter result. The Tcl headers no longer
permit this access by default, and C code still doing this must
permit this access. C code still doing this must
be updated to use supported routines \fBTcl_GetObjResult\fR,
\fBTcl_GetStringResult\fR, \fBTcl_SetObjResult\fR, and \fBTcl_SetResult\fR.
As a migration aid, access can be restored with the compiler directive
.CS
#define USE_INTERP_RESULT
.CE
but this is meant only to offer life support to otherwise dead code.
.SH "THE TCL_FREEPROC ARGUMENT TO TCL_SETRESULT"
.PP
\fBTcl_SetResult\fR's \fIfreeProc\fR argument specifies how
@@ -250,6 +240,7 @@ typedef void \fBTcl_FreeProc\fR(
When \fIfreeProc\fR is called, its \fIblockPtr\fR will be set to
the value of \fIresult\fR passed to \fBTcl_SetResult\fR.
.SH "SEE ALSO"
Tcl_AddErrorInfo, Tcl_CreateObjCommand, Tcl_SetErrorCode, Tcl_Interp
Tcl_AddErrorInfo, Tcl_CreateObjCommand, Tcl_SetErrorCode, Tcl_Interp,
Tcl_GetReturnOptions
.SH KEYWORDS
append, command, element, list, value, result, return value, interpreter
+4 -2
View File
@@ -22,8 +22,7 @@ already been loaded (i.e., the caller has already invoked the
appropriate initialization procedure). NULL means the package
has not yet been incorporated into any interpreter.
.AP "const char" *pkgName in
Name of the package; should be properly capitalized (first letter
upper-case, all others lower-case).
Name of the package.
.AP Tcl_PackageInitProc *initProc in
Procedure to invoke to incorporate this package into a trusted
interpreter.
@@ -64,6 +63,9 @@ the event of an error it should set the interpreter's result to point to an
error message. The result or error from the initialization procedure will
be returned as the result of the \fBload\fR command that caused the
initialization procedure to be invoked.
.PP
\fBTcl_StaticPackage\fR can not be used in stub-enabled extensions. Its symbol
entry in the stub table is deprecated and it will be removed in Tcl 9.0.
.SH KEYWORDS
initialization procedure, package, static linking
.SH "SEE ALSO"
+4 -2
View File
@@ -91,7 +91,7 @@ Points to the first byte of an array of UTF-8-encoded bytes
used to set or append to a string value.
This byte array may contain embedded null characters
unless \fInumChars\fR is negative. (Applications needing null bytes
should represent them as the two-byte sequence \fI\e700\e600\fR, use
should represent them as the two-byte sequence \fI\e300\e200\fR, use
\fBTcl_ExternalToUtf\fR to convert, or \fBTcl_NewByteArrayObj\fR if
the string is a collection of uninterpreted bytes.)
.AP int length in
@@ -249,7 +249,9 @@ must be a NULL pointer to indicate the end of the list.
.PP
\fBTcl_AppendStringsToObjVA\fR is the same as \fBTcl_AppendStringsToObj\fR
except that instead of taking a variable number of arguments it takes an
argument list.
argument list. Interfaces using argument lists have been found to be
nonportable in practice. This function is deprecated and will be removed
in Tcl 9.0.
.PP
\fBTcl_AppendLimitedToObj\fR is similar to \fBTcl_AppendToObj\fR
except that it imposes a limit on how many bytes are appended.
+8 -5
View File
@@ -28,10 +28,10 @@ First, the Tcl interpreter breaks the command into \fIwords\fR
and performs substitutions as described below.
These substitutions are performed in the same way for all
commands.
Secondly, the first word is used to locate a command procedure to
carry out the command, then all of the words of the command are
passed to the command procedure.
The command procedure is free to interpret each of its words
Secondly, the first word is used to locate a routine to
carry out the command, and the remaining words of the command are
passed to that routine.
The routine is free to interpret each of its words
in any way it likes, such as an integer, variable name, list,
or Tcl script.
Different commands interpret their words differently.
@@ -223,7 +223,10 @@ before this range overflows, or when the maximum of eight digits
is reached. The upper bits of the Unicode character will be 0.
.RS
.PP
The range U+010000\(enU+10FFFD is reserved for the future.
The range U+00D800\(enU+00DFFF is reserved for surrogates, which
are illegal on its own. Therefore, such sequences will result in
the replacement character U+FFFD. Surrogate pairs should be
encoded as single \e\fBU\fIhhhhhhhh\fR character.
.RE
.PP
Backslash substitution is not performed on words enclosed in braces,
+8 -6
View File
@@ -79,7 +79,7 @@ against the standard Tcl library. Extensions (stub-enabled or
not) are not intended to call \fBTcl_Main\fR.
.PP
\fBTcl_Main\fR is not thread-safe. It should only be called by
a single master thread of a multi-threaded application. This
a single main thread of a multi-threaded application. This
restriction is not a problem with normal use described above.
.PP
\fBTcl_Main\fR and therefore all applications based upon it, like
@@ -112,7 +112,7 @@ The file name and encoding values managed by the routines
\fBTcl_SetStartupScript\fR and \fBTcl_GetStartupScript\fR
are stored per-thread. Although the storage and retrieval
functions of these routines work in any thread, only those
calls in the same master thread as \fBTcl_Main\fR can have
calls in the same main thread as \fBTcl_Main\fR can have
any influence on it.
.PP
The caller of \fBTcl_Main\fR may call \fBTcl_SetStartupScript\fR
@@ -126,7 +126,7 @@ a \fIstartup script\fR, and \fIname\fR is taken to be the name
of the encoding of the contents of that file. \fBTcl_Main\fR
then calls \fBTcl_SetStartupScript\fR with these values.
.PP
\fBTcl_Main\fR then defines in its master interpreter
\fBTcl_Main\fR then defines in its main interpreter
the Tcl variables \fIargc\fR, \fIargv\fR, \fIargv0\fR, and
\fItcl_interactive\fR, as described in the documentation for \fBtclsh\fR.
.PP
@@ -154,9 +154,9 @@ When the \fIappInitProc\fR is finished, \fBTcl_Main\fR calls
been requested, if any. If a startup script has been provided,
\fBTcl_Main\fR attempts to evaluate it. Otherwise, interactive
mode begins with examination of the variable \fItcl_rcFileName\fR
in the master interpreter. If that variable exists and holds the
in the main interpreter. If that variable exists and holds the
name of a readable file, the contents of that file are evaluated
in the master interpreter. Then interactive operations begin,
in the main interpreter. Then interactive operations begin,
with prompts and command evaluation results written to the standard
output channel, and commands read from the standard input channel
and then evaluated. The prompts written to the standard output
@@ -164,7 +164,7 @@ channel may be customized by defining the Tcl variables \fItcl_prompt1\fR
and \fItcl_prompt2\fR as described in the documentation for \fBtclsh\fR.
The prompts and command evaluation results are written to the standard
output channel only if the Tcl variable \fItcl_interactive\fR in the
master interpreter holds a non-zero integer value.
main interpreter holds a non-zero integer value.
.PP
\fBTcl_SetMainLoop\fR allows setting an event loop procedure to be run.
This allows, for example, Tk to be dynamically loaded and set its event
@@ -189,6 +189,8 @@ procedure (if any) returns. In non-interactive mode, after
\fBTcl_Main\fR evaluates the startup script, and the main loop
procedure (if any) returns, \fBTcl_Main\fR will also evaluate
the \fBexit\fR command.
.PP
\fBTcl_Main\fR can not be used in stub-enabled extensions.
.SH "SEE ALSO"
tclsh(1), Tcl_GetStdChannel(3), Tcl_StandardChannels(3), Tcl_AppInit(3),
exit(n), encoding(n)
+9 -3
View File
@@ -45,7 +45,9 @@ int
.AP Tcl_Condition *condPtr in
A condition variable, which must be associated with a mutex lock.
.AP Tcl_Mutex *mutexPtr in
A mutex lock.
.VS TIP509
A recursive mutex lock.
.VE TIP509
.AP "const Tcl_Time" *timePtr in
A time limit on the condition wait. NULL to wait forever.
Note that a polling value of 0 seconds does not make much sense.
@@ -140,8 +142,12 @@ of code by calling \fBTcl_MutexLock\fR and \fBTcl_MutexUnlock\fR.
If one thread holds a mutex, any other thread calling \fBTcl_MutexLock\fR will
block until \fBTcl_MutexUnlock\fR is called.
A mutex can be destroyed after its use by calling \fBTcl_MutexFinalize\fR.
The result of locking a mutex twice from the same thread is undefined.
On some platforms it will result in a deadlock.
.VS TIP509
Mutexes are reentrant: they can be locked several times from the same
thread. However there must be exactly one call to
\fBTcl_MutexUnlock\fR for each call to \fBTcl_MutexLock\fR in order
for a thread to release a mutex completely.
.VE TIP509
The \fBTcl_MutexLock\fR, \fBTcl_MutexUnlock\fR and \fBTcl_MutexFinalize\fR
procedures are defined as empty macros if not compiling with threads enabled.
For declaration of mutexes the \fBTCL_DECLARE_MUTEX\fR macro should be used.
-6
View File
@@ -78,11 +78,5 @@ turns each character in the string into its lower-case equivalent.
turns the first character in the string into its title-case equivalent
and all following characters into their lower-case equivalents.
.SH BUGS
.PP
At this time, the case conversions are only defined for the ISO8859-1
characters. Unicode characters above 0x00ff are not modified by these
routines.
.SH KEYWORDS
utf, unicode, toupper, tolower, totitle, case
+15 -26
View File
@@ -5,7 +5,7 @@
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH Tcl_TraceVar 3 7.4 Tcl "Tcl Library Procedures"
.TH Tcl_TraceVar 3 8.7 Tcl "Tcl Library Procedures"
.so man.macros
.BS
.SH NAME
@@ -95,7 +95,7 @@ Invoke \fIproc\fR whenever an attempt is made to modify the variable.
Invoke \fIproc\fR whenever the variable is unset.
A variable may be unset either explicitly by an \fBunset\fR command,
or implicitly when a procedure returns (its local variables are
automatically unset) or when the interpreter is deleted (all
automatically unset) or when the interpreter or namespace is deleted (all
variables are automatically unset).
.TP
\fBTCL_TRACE_ARRAY\fR
@@ -160,10 +160,6 @@ The bit \fBTCL_TRACE_DESTROYED\fR will be set in \fIflags\fR if the trace is
about to be destroyed; this information may be useful to \fIproc\fR
so that it can clean up its own internal data structures (see
the section \fBTCL_TRACE_DESTROYED\fR below for more details).
Lastly, the bit \fBTCL_INTERP_DESTROYED\fR will be set if the entire
interpreter is being destroyed.
When this bit is set, \fIproc\fR must be especially careful in
the things it does (see the section \fBTCL_INTERP_DESTROYED\fR below).
The trace procedure's return value should normally be NULL; see
\fBERROR RETURNS\fR below for information on other possibilities.
.PP
@@ -330,12 +326,21 @@ During unset traces, the return value is ignored and all relevant
trace procedures will always be invoked.
.SH "RESTRICTIONS"
.PP
Because operations on variables may take place as part of the deletion
of the interp that contains them, \fIproc\fR must be careful about checking
what the \fIinterp\fR parameter can be used to do.
The routine \fBTcl_InterpDeleted\fR is an important tool for this.
When \fBTcl_InterpDeleted\fR returns 1, \fIproc\fR will not be able
to invoke any scripts in \fIinterp\fR. You may encounter old code using
a deprecated flag value \fBTCL_INTERP_DESTROYED\fR to signal this
condition, but any supported code should be converted to stop using it.
.PP
A trace procedure can be called at any time, even when there
is a partially formed result in the interpreter's result area. If
are partially formed results stored in the interpreter. If
the trace procedure does anything that could damage this result (such
as calling \fBTcl_Eval\fR) then it must save the original values of
the interpreter's \fBresult\fR and \fBfreeProc\fR fields and restore
them before it returns.
as calling \fBTcl_Eval\fR) then it must use the \fBTcl_SaveInterpState\fR
and related routines to save and restore the original state of
the interpreter before it returns.
.SH "UNDEFINED VARIABLES"
.PP
It is legal to set a trace on an undefined variable.
@@ -354,24 +359,8 @@ Traces on a variable are always removed whenever the variable
is deleted; the only time \fBTCL_TRACE_DESTROYED\fR is not set is for
a whole-array trace invoked when only a single element of an
array is unset.
.SH "TCL_INTERP_DESTROYED"
.PP
When an interpreter is destroyed, unset traces are called for
all of its variables.
The \fBTCL_INTERP_DESTROYED\fR bit will be set in the \fIflags\fR
argument passed to the trace procedures.
Trace procedures must be extremely careful in what they do if
the \fBTCL_INTERP_DESTROYED\fR bit is set.
It is not safe for the procedures to invoke any Tcl procedures
on the interpreter, since its state is partially deleted.
All that trace procedures should do under these circumstances is
to clean up and free their own internal data structures.
.SH BUGS
.PP
Tcl does not do any error checking to prevent trace procedures
from misusing the interpreter during traces with \fBTCL_INTERP_DESTROYED\fR
set.
.PP
Array traces are not yet integrated with the Tcl \fBinfo exists\fR command,
nor is there Tcl-level access to array traces.
.SH "SEE ALSO"
+79 -31
View File
@@ -8,7 +8,7 @@
.so man.macros
.BS
.SH NAME
Tcl_UniChar, Tcl_UniCharToUtf, Tcl_UtfToUniChar, Tcl_UniCharToUtfDString, Tcl_UtfToUniCharDString, Tcl_UniCharLen, Tcl_UniCharNcmp, Tcl_UniCharNcasecmp, Tcl_UniCharCaseMatch, Tcl_UtfNcmp, Tcl_UtfNcasecmp, Tcl_UtfCharComplete, Tcl_NumUtfChars, Tcl_UtfFindFirst, Tcl_UtfFindLast, Tcl_UtfNext, Tcl_UtfPrev, Tcl_UniCharAtIndex, Tcl_UtfAtIndex, Tcl_UtfBackslash \- routines for manipulating UTF-8 strings
Tcl_UniChar, Tcl_UniCharToUtf, Tcl_UtfToUniChar, Tcl_UtfToChar16, Tcl_UtfToWChar, Tcl_UniCharToUtfDString, Tcl_UtfToUniCharDString, Tcl_Char16ToUtfDString, Tcl_UtfToWCharDString, Tcl_UtfToChar16DString, Tcl_UniCharLen, Tcl_UniCharNcmp, Tcl_UniCharNcasecmp, Tcl_UniCharCaseMatch, Tcl_UtfNcmp, Tcl_UtfNcasecmp, Tcl_UtfCharComplete, Tcl_NumUtfChars, Tcl_UtfFindFirst, Tcl_UtfFindLast, Tcl_UtfNext, Tcl_UtfPrev, Tcl_UniCharAtIndex, Tcl_UtfAtIndex, Tcl_UtfBackslash \- routines for manipulating UTF-8 strings
.SH SYNOPSIS
.nf
\fB#include <tcl.h>\fR
@@ -21,12 +21,30 @@ int
int
\fBTcl_UtfToUniChar\fR(\fIsrc, chPtr\fR)
.sp
int
\fBTcl_UtfToChar16\fR(\fIsrc, uPtr\fR)
.sp
int
\fBTcl_UtfToWChar\fR(\fIsrc, wPtr\fR)
.sp
char *
\fBTcl_UniCharToUtfDString\fR(\fIuniStr, uniLength, dsPtr\fR)
.sp
char *
\fBTcl_Char16ToUtfDString\fR(\fIuStr, uniLength, dsPtr\fR)
.sp
char *
\fBTcl_WCharToUtfDString\fR(\fIwStr, uniLength, dsPtr\fR)
.sp
Tcl_UniChar *
\fBTcl_UtfToUniCharDString\fR(\fIsrc, length, dsPtr\fR)
.sp
unsigned short *
\fBTcl_UtfToChar16DString\fR(\fIsrc, length, dsPtr\fR)
.sp
wchar_t *
\fBTcl_UtfToWCharDString\fR(\fIsrc, length, dsPtr\fR)
.sp
int
\fBTcl_UniCharLen\fR(\fIuniStr\fR)
.sp
@@ -75,11 +93,15 @@ int
.AS "const Tcl_UniChar" *uniPattern in/out
.AP char *buf out
Buffer in which the UTF-8 representation of the Tcl_UniChar is stored. At most
\fBTCL_UTF_MAX\fR bytes are stored in the buffer.
4 bytes are stored in the buffer.
.AP int ch in
The Unicode character to be converted or examined.
.AP Tcl_UniChar *chPtr out
Filled with the Tcl_UniChar represented by the head of the UTF-8 string.
.AP unsigned short *uPtr out
Filled with the utf-16 represented by the head of the UTF-8 string.
.AP wchar_t *wPtr out
Filled with the wchar_t represented by the head of the UTF-8 string.
.AP "const char" *src in
Pointer to a UTF-8 string.
.AP "const char" *cs in
@@ -94,12 +116,21 @@ A null-terminated Unicode string.
A null-terminated Unicode string.
.AP "const Tcl_UniChar" *uniPattern in
A null-terminated Unicode string.
.AP "const unsigned short" *uStr in
A null-terminated UTF-16 string.
.AP "const wchar_t" *wStr in
A null-terminated wchar_t string.
.AP "const unsigned short" *utf16s in
A null-terminated utf-16 string.
.AP "const unsigned short" *utf16t in
A null-terminated utf-16 string.
.AP "const unsigned short" *utf16Pattern in
A null-terminated utf-16 string.
.AP int length in
The length of the UTF-8 string in bytes (not UTF-8 characters). If
negative, all bytes up to the first null byte are used.
.AP int uniLength in
The length of the Unicode string in characters. Must be greater than or
equal to 0.
The length of the Unicode string in characters.
.AP "Tcl_DString" *dsPtr in/out
A pointer to a previously initialized \fBTcl_DString\fR.
.AP "unsigned long" numChars in
@@ -113,7 +144,7 @@ If non-NULL, filled with the number of bytes in the backslash sequence,
including the backslash character.
.AP char *dst out
Buffer in which the bytes represented by the backslash sequence are stored.
At most \fBTCL_UTF_MAX\fR bytes are stored in the buffer.
At most 4 bytes are stored in the buffer.
.AP int nocase in
Specifies whether the match should be done case-sensitive (0) or
case-insensitive (1).
@@ -121,21 +152,21 @@ case-insensitive (1).
.SH DESCRIPTION
.PP
These routines convert between UTF-8 strings and Unicode characters. An
Unicode character represented as an unsigned, fixed-size
quantity. A UTF-8 character is a Unicode character represented as
a varying-length sequence of up to \fBTCL_UTF_MAX\fR bytes. A multibyte UTF-8
sequence consists of a lead byte followed by some number of trail bytes.
These routines convert between UTF-8 strings and Unicode/Utf-16 characters.
A UTF-8 character is a Unicode character represented as a varying-length
sequence of up to \fB4\fR bytes. A multibyte UTF-8 sequence
consists of a lead byte followed by some number of trail bytes.
.PP
\fBTCL_UTF_MAX\fR is the maximum number of bytes that it takes to
represent one Unicode character in the UTF-8 representation.
\fBTCL_UTF_MAX\fR is the maximum number of bytes that \fBTcl_UtfToUniChar\fR
can consume in a single call.
.PP
\fBTcl_UniCharToUtf\fR stores the character \fIch\fR as a UTF-8 string
in starting at \fIbuf\fR. The return value is the number of bytes stored
in \fIbuf\fR. If ch is an upper surrogate (range U+D800 - U+DBFF), then
the return value will be 0 and nothing will be stored. If you still
want to produce UTF-8 output for it (even though knowing it's an illegal
code-point on its own), just call \fBTcl_UniCharToUtf\fR again using ch = -1.
in \fIbuf\fR. If ch is a high surrogate (range U+D800 - U+DBFF), then
the return value will be 1 and a single byte in the range 0xF0 - 0xF4
will be stored. If you still want to produce UTF-8 output for it (even
though knowing it's an illegal code-point on its own), just call
\fBTcl_UniCharToUtf\fR again specifying ch = -1.
.PP
\fBTcl_UtfToUniChar\fR reads one UTF-8 character starting at \fIsrc\fR
and stores it as a Tcl_UniChar in \fI*chPtr\fR. The return value is the
@@ -147,12 +178,11 @@ a byte in the range 0x80 - 0x9F, \fBTcl_UtfToUniChar\fR assumes the
cp1252 encoding, stores the corresponding Tcl_UniChar in \fI*chPtr\fR
and returns 1. If the input is otherwise
not in proper UTF-8 format, \fBTcl_UtfToUniChar\fR will store the first
byte of \fIsrc\fR in \fI*chPtr\fR as a Tcl_UniChar between 0x0000 and
0x00ff and return 1.
byte of \fIsrc\fR in \fI*chPtr\fR as a Tcl_UniChar between 0x00A0 and
0x00FF and return 1.
.PP
\fBTcl_UniCharToUtfDString\fR converts the given Unicode string
to UTF-8, storing the result in a previously initialized \fBTcl_DString\fR.
You must specify \fIuniLength\fR, the length of the given Unicode string.
The return value is a pointer to the UTF-8 representation of the
Unicode string. Storage for the return value is appended to the
end of the \fBTcl_DString\fR.
@@ -229,30 +259,48 @@ string. The caller must not ask for the next character after the last
character in the string if the string is not terminated by a null
character.
.PP
Given \fIsrc\fR, a pointer to some location in a UTF-8 string (or to a
null byte immediately following such a string), \fBTcl_UtfPrev\fR
returns a pointer to the closest preceding byte that starts a UTF-8
character.
This function will not back up to a position before \fIstart\fR,
the start of the UTF-8 string. If \fIsrc\fR was already at \fIstart\fR, the
return value will be \fIstart\fR.
\fBTcl_UtfPrev\fR is used to step backward through but not beyond the
UTF-8 string that begins at \fIstart\fR. If the UTF-8 string is made
up entirely of complete and well-formed characters, and \fIsrc\fR points
to the lead byte of one of those characters (or to the location one byte
past the end of the string), then repeated calls of \fBTcl_UtfPrev\fR will
return pointers to the lead bytes of each character in the string, one
character at a time, terminating when it returns \fIstart\fR.
.PP
When the conditions of completeness and well-formedness may not be satisfied,
a more precise description of the function of \fBTcl_UtfPrev\fR is necessary.
It always returns a pointer greater than or equal to \fIstart\fR; that is,
always a pointer to a location in the string. It always returns a pointer to
a byte that begins a character when scanning for characters beginning
from \fIstart\fR. When \fIsrc\fR is greater than \fIstart\fR, it
always returns a pointer less than \fIsrc\fR and greater than or
equal to (\fIsrc\fR - \fBTCL_UTF_MAX\fR). The character that begins
at the returned pointer is the first one that either includes the
byte \fIsrc[-1]\fR, or might include it if the right trail bytes are
present at \fIsrc\fR and greater. \fBTcl_UtfPrev\fR never reads the
byte \fIsrc[0]\fR nor the byte \fIstart[-1]\fR nor the byte
\fIsrc[-\fBTCL_UTF_MAX\fI-1]\fR.
.PP
\fBTcl_UniCharAtIndex\fR corresponds to a C string array dereference or the
Pascal Ord() function. It returns the Tcl_UniChar represented at the
Pascal Ord() function. It returns the Unicode character represented at the
specified character (not byte) \fIindex\fR in the UTF-8 string
\fIsrc\fR. The source string must contain at least \fIindex\fR
characters. Behavior is undefined if a negative \fIindex\fR is given.
characters. If a negative \fIindex\fR is given or \fIindex\fR points
to the second half of a surrogate pair, it returns -1.
.PP
\fBTcl_UtfAtIndex\fR returns a pointer to the specified character (not
byte) \fIindex\fR in the UTF-8 string \fIsrc\fR. The source string must
contain at least \fIindex\fR characters. This is equivalent to calling
\fBTcl_UtfNext\fR \fIindex\fR times. If a negative \fIindex\fR is given,
the return pointer points to the first character in the source string.
\fBTcl_UtfToUniChar\fR \fIindex\fR times, except if that would return
a pointer to the second byte of a valid 4-byte UTF-8 sequence, in which
case, \fBTcl_UtfToUniChar\fR will be called once more to find the end
of the sequence. If a negative \fIindex\fR is given, the returned pointer
points to the first character in the source string.
.PP
\fBTcl_UtfBackslash\fR is a utility procedure used by several of the Tcl
commands. It parses a backslash sequence and stores the properly formed
UTF-8 character represented by the backslash sequence in the output
buffer \fIdst\fR. At most \fBTCL_UTF_MAX\fR bytes are stored in the buffer.
buffer \fIdst\fR. At most 4 bytes are stored in the buffer.
\fBTcl_UtfBackslash\fR modifies \fI*readPtr\fR to contain the number
of bytes in the backslash sequence, including the backslash character.
The return value is the number of bytes stored in the output buffer.
+1 -1
View File
@@ -40,7 +40,7 @@ has been completed.
.VS TIP508
Manages the default value of the array. Arrays initially have no default
value, but this command allows you to set one; the default value will be
returned when reading from an element of the array \farrayName\fR if the read
returned when reading from an element of the array \fIarrayName\fR if the read
would otherwise result in an error. Note that this may cause the \fBappend\fR,
\fBdict\fR, \fBincr\fR and \fBlappend\fR commands to change their behavior in
relation to non-existing array elements.
+290 -101
View File
@@ -12,12 +12,10 @@
.SH NAME
binary \- Insert and extract fields from binary strings
.SH SYNOPSIS
.VS 8.6
\fBbinary decode \fIformat\fR ?\fI\-option value ...\fR? \fIdata\fR
.br
\fBbinary encode \fIformat\fR ?\fI\-option value ...\fR? \fIdata\fR
.br
.VE 8.6
\fBbinary format \fIformatString \fR?\fIarg arg ...\fR?
.br
\fBbinary scan \fIstring formatString \fR?\fIvarName varName ...\fR?
@@ -31,11 +29,9 @@ architecture, it might produce an 8-byte binary string consisting of
two 4-byte integers, one for each of the numbers. The subcommand
\fBbinary scan\fR, does the opposite: it extracts data
from a binary string and returns it as ordinary Tcl string values.
.VS 8.6
The \fBbinary encode\fR and \fBbinary decode\fR subcommands convert
binary data to or from string encodings such as base64 (used in MIME
messages for example).
.VE 8.6
.PP
Note that other operations on binary data, such as taking a subsequence of it,
getting its length, or reinterpreting it as a string in some encoding, are
@@ -44,7 +40,6 @@ done by other Tcl commands (respectively \fBstring range\fR,
binary string in Tcl is merely one where all the characters it contains are in
the range \eu0000\-\eu00FF.
.SH "BINARY ENCODE AND DECODE"
.VS 8.6
.PP
When encoding binary data as a readable string, the starting binary data is
passed to the \fBbinary encode\fR command, together with the name of the
@@ -78,7 +73,9 @@ During decoding, the following options are supported:
.TP
\fB\-strict\fR
.
Instructs the decoder to throw an error if it encounters whitespace characters. Otherwise it ignores them.
Instructs the decoder to throw an error if it encounters any characters
that are not strictly part of the encoding itself. Otherwise it ignores them.
RFC 2045 calls for base64 decoders to be non-strict.
.RE
.TP
\fBhex\fR
@@ -92,7 +89,8 @@ options are supported:
.TP
\fB\-strict\fR
.
Instructs the decoder to throw an error if it encounters whitespace characters. Otherwise it ignores them.
Instructs the decoder to throw an error if it encounters whitespace characters.
Otherwise it ignores them.
.RE
.TP
\fBuuencode\fR
@@ -107,28 +105,31 @@ produce files that other implementations of decoders cannot process):
.TP
\fB\-maxlen \fIlength\fR
.
Indicates that the output should be split into lines of no more than
\fIlength\fR characters. By default, lines are split every 61 characters, and
this must be in the range 3 to 85 due to limitations in the encoding.
Indicates the maximum number of characters to produce for each encoded line.
The valid range is 5 to 85. Line lengths outside that range cannot be
accommodated by the encoding format. The default value is 61.
.TP
\fB\-wrapchar \fIcharacter\fR
.
Indicates that, when lines are split because of the \fB\-maxlen\fR option,
\fIcharacter\fR should be used to separate lines. By default, this is a
newline character,
.QW \en .
Indicates the character(s) to use to mark the end of each encoded line.
Acceptable values are a sequence of zero or more characters from the
set { \\x09 (TAB), \\x0B (VT), \\x0C (FF), \\x0D (CR) } followed
by zero or one newline \\x0A (LF). Any other values are rejected because
they would generate encoded text that could not be decoded. The default value
is a single newline.
.PP
During decoding, the following options are supported:
.TP
\fB\-strict\fR
.
Instructs the decoder to throw an error if it encounters unexpected whitespace
characters. Otherwise it ignores them.
Instructs the decoder to throw an error if it encounters anything
outside of the standard encoding format. Without this option, the
decoder tolerates some deviations, mostly to forgive reflows of lines
between the encoder and decoder.
.PP
Note that neither the encoder nor the decoder handle the header and footer of
the uuencode format.
.RE
.VE 8.6
.SH "BINARY FORMAT"
.PP
The \fBbinary format\fR command generates a binary string whose layout
@@ -143,7 +144,9 @@ Most field specifiers consume one argument to obtain the value to be
formatted. The type character specifies how the value is to be
formatted. The \fIcount\fR typically indicates how many items of the
specified type are taken from the value. If present, the \fIcount\fR
is a non-negative decimal integer or \fB*\fR, which normally indicates
is a non-negative decimal integer or
.QW \fB*\fR ,
which normally indicates
that all of the items in the value are to be used. If the number of
arguments does not match the number of fields in the format string
that consume arguments, then an error is generated. The flag character
@@ -151,6 +154,7 @@ is ignored for \fBbinary format\fR.
.PP
Here is a small example to clarify the relation between the field
specifiers and the arguments:
.PP
.CS
\fBbinary format\fR d3d {1.0 2.0 3.0 4.0} 0.1
.CE
@@ -178,29 +182,63 @@ not part of the ISO 8859\-1 character set.)
If \fIarg\fR has fewer than \fIcount\fR bytes, then additional zero
bytes are used to pad out the field. If \fIarg\fR is longer than the
specified length, the extra characters will be ignored. If
\fIcount\fR is \fB*\fR, then all of the bytes in \fIarg\fR will be
\fIcount\fR is
.QW \fB*\fR ,
then all of the bytes in \fIarg\fR will be
formatted. If \fIcount\fR is omitted, then one character will be
formatted. For example,
formatted. For example, the command:
.RS
.PP
.CS
\fBbinary format\fR a7a*a alpha bravo charlie
.CE
will return a string equivalent to \fBalpha\e000\e000bravoc\fR,
.PP
will return a binary string equivalent to:
.PP
.CS
\fBalpha\e000\e000bravoc\fR
.CE
.PP
the command:
.PP
.CS
\fBbinary format\fR a* [encoding convertto utf-8 \eu20ac]
.CE
will return a string equivalent to \fB\e342\e202\e254\fR (which is the
UTF-8 byte sequence for a Euro-currency character) and
.PP
will return a binary string equivalent to:
.PP
.CS
\fB\e342\e202\e254\fR
.CE
.PP
(which is the
UTF-8 byte sequence for a Euro-currency character), and the command:
.PP
.CS
\fBbinary format\fR a* [encoding convertto iso8859-15 \eu20ac]
.CE
will return a string equivalent to \fB\e244\fR (which is the ISO
.PP
will return a binary string equivalent to:
.PP
.CS
\fB\e244\fR
.CE
.PP
(which is the ISO
8859\-15 byte sequence for a Euro-currency character). Contrast these
last two with:
.PP
.CS
\fBbinary format\fR a* \eu20ac
.CE
which returns a string equivalent to \fB\e254\fR (i.e. \fB\exac\fR) by
.PP
which returns a binary string equivalent to:
.PP
.CS
\fB\e254\fR
.CE
.PP
(i.e. \fB\exac\fR) by
truncating the high-bits of the character, and which is probably not
what is desired.
.RE
@@ -208,42 +246,62 @@ what is desired.
This form is the same as \fBa\fR except that spaces are used for
padding instead of nulls. For example,
.RS
.PP
.CS
\fBbinary format\fR A6A*A alpha bravo charlie
.CE
will return \fBalpha bravoc\fR.
.PP
will return
.PP
.CS
\fBalpha bravoc\fR
.CE
.RE
.IP \fBb\fR 5
Stores a string of \fIcount\fR binary digits in low-to-high order
within each byte in the output string. \fIArg\fR must contain a
within each byte in the output binary string. \fIArg\fR must contain a
sequence of \fB1\fR and \fB0\fR characters. The resulting bytes are
emitted in first to last order with the bits being formatted in
low-to-high order within each byte. If \fIarg\fR has fewer than
\fIcount\fR digits, then zeros will be used for the remaining bits.
If \fIarg\fR has more than the specified number of digits, the extra
digits will be ignored. If \fIcount\fR is \fB*\fR, then all of the
digits will be ignored. If \fIcount\fR is
.QW \fB*\fR ,
then all of the
digits in \fIarg\fR will be formatted. If \fIcount\fR is omitted,
then one digit will be formatted. If the number of bits formatted
does not end at a byte boundary, the remaining bits of the last byte
will be zeros. For example,
.RS
.PP
.CS
\fBbinary format\fR b5b* 11100 111000011010
.CE
will return a string equivalent to \fB\ex07\ex87\ex05\fR.
.PP
will return a binary string equivalent to:
.PP
.CS
\fB\ex07\ex87\ex05\fR
.CE
.RE
.IP \fBB\fR 5
This form is the same as \fBb\fR except that the bits are stored in
high-to-low order within each byte. For example,
.RS
.PP
.CS
\fBbinary format\fR B5B* 11100 111000011010
.CE
will return a string equivalent to \fB\exe0\exe1\exa0\fR.
.PP
will return a binary string equivalent to:
.PP
.CS
\fB\exe0\exe1\exa0\fR
.CE
.RE
.IP \fBH\fR 5
Stores a string of \fIcount\fR hexadecimal digits in high-to-low
within each byte in the output string. \fIArg\fR must contain a
within each byte in the output binary string. \fIArg\fR must contain a
sequence of characters in the set
.QW 0123456789abcdefABCDEF .
The resulting bytes are emitted in first to last order with the hex digits
@@ -251,43 +309,66 @@ being formatted in high-to-low order within each byte. If \fIarg\fR
has fewer than \fIcount\fR digits, then zeros will be used for the
remaining digits. If \fIarg\fR has more than the specified number of
digits, the extra digits will be ignored. If \fIcount\fR is
\fB*\fR, then all of the digits in \fIarg\fR will be formatted. If
.QW \fB*\fR ,
then all of the digits in \fIarg\fR will be formatted. If
\fIcount\fR is omitted, then one digit will be formatted. If the
number of digits formatted does not end at a byte boundary, the
remaining bits of the last byte will be zeros. For example,
.RS
.PP
.CS
\fBbinary format\fR H3H*H2 ab DEF 987
.CE
will return a string equivalent to \fB\exab\ex00\exde\exf0\ex98\fR.
.PP
will return a binary string equivalent to:
.PP
.CS
\fB\exab\ex00\exde\exf0\ex98\fR
.CE
.RE
.IP \fBh\fR 5
This form is the same as \fBH\fR except that the digits are stored in
low-to-high order within each byte. This is seldom required. For example,
.RS
.PP
.CS
\fBbinary format\fR h3h*h2 AB def 987
.CE
will return a string equivalent to \fB\exba\ex00\exed\ex0f\ex89\fR.
.PP
will return a binary string equivalent to:
.PP
.CS
\fB\exba\ex00\exed\ex0f\ex89\fR
.CE
.RE
.IP \fBc\fR 5
Stores one or more 8-bit integer values in the output string. If no
\fIcount\fR is specified, then \fIarg\fR must consist of an integer
value. If \fIcount\fR is specified, \fIarg\fR must consist of a list
containing at least that many integers. The low-order 8 bits of each integer
are stored as a one-byte value at the cursor position. If \fIcount\fR
is \fB*\fR, then all of the integers in the list are formatted. If the
are stored as a one-byte value at the cursor position. If \fIcount\fR is
.QW \fB*\fR ,
then all of the integers in the list are formatted. If the
number of elements in the list is greater
than \fIcount\fR, then the extra elements are ignored. For example,
.RS
.PP
.CS
\fBbinary format\fR c3cc* {3 -3 128 1} 260 {2 5}
.CE
will return a string equivalent to
\fB\ex03\exfd\ex80\ex04\ex02\ex05\fR, whereas
.PP
will return a binary string equivalent to:
.PP
.CS
\fB\ex03\exfd\ex80\ex04\ex02\ex05\fR
.CE
.PP
whereas:
.PP
.CS
\fBbinary format\fR c {2 5}
.CE
.PP
will generate an error.
.RE
.IP \fBs\fR 5
@@ -297,22 +378,32 @@ low-order 16-bits of each integer are stored as a two-byte value at
the cursor position with the least significant byte stored first. For
example,
.RS
.PP
.CS
\fBbinary format\fR s3 {3 -3 258 1}
.CE
will return a string equivalent to
\fB\ex03\ex00\exfd\exff\ex02\ex01\fR.
.PP
will return a binary string equivalent to:
.PP
.CS
\fB\ex03\ex00\exfd\exff\ex02\ex01\fR
.CE
.RE
.IP \fBS\fR 5
This form is the same as \fBs\fR except that it stores one or more
16-bit integers in big-endian byte order in the output string. For
example,
.RS
.PP
.CS
\fBbinary format\fR S3 {3 -3 258 1}
.CE
will return a string equivalent to
\fB\ex00\ex03\exff\exfd\ex01\ex02\fR.
.PP
will return a binary string equivalent to:
.PP
.CS
\fB\ex00\ex03\exff\exfd\ex01\ex02\fR
.CE
.RE
.IP \fBt\fR 5
This form (mnemonically \fItiny\fR) is the same as \fBs\fR and \fBS\fR
@@ -327,22 +418,32 @@ low-order 32-bits of each integer are stored as a four-byte value at
the cursor position with the least significant byte stored first. For
example,
.RS
.PP
.CS
\fBbinary format\fR i3 {3 -3 65536 1}
.CE
will return a string equivalent to
.PP
will return a binary string equivalent to:
.PP
.CS
\fB\ex03\ex00\ex00\ex00\exfd\exff\exff\exff\ex00\ex00\ex01\ex00\fR
.CE
.RE
.IP \fBI\fR 5
This form is the same as \fBi\fR except that it stores one or more one
or more 32-bit integers in big-endian byte order in the output string.
For example,
.RS
.PP
.CS
\fBbinary format\fR I3 {3 -3 65536 1}
.CE
will return a string equivalent to
.PP
will return a binary string equivalent to:
.PP
.CS
\fB\ex00\ex00\ex00\ex03\exff\exff\exff\exfd\ex00\ex01\ex00\ex00\fR
.CE
.RE
.IP \fBn\fR 5
This form (mnemonically \fInumber\fR or \fInormal\fR) is the same as
@@ -358,20 +459,24 @@ low-order 64-bits of each integer are stored as an eight-byte value at
the cursor position with the least significant byte stored first. For
example,
.RS
.PP
.CS
\fBbinary format\fR w 7810179016327718216
.CE
will return the string \fBHelloTcl\fR
.PP
will return the binary string \fBHelloTcl\fR.
.RE
.IP \fBW\fR 5
This form is the same as \fBw\fR except that it stores one or more one
or more 64-bit integers in big-endian byte order in the output string.
For example,
.RS
.PP
.CS
\fBbinary format\fR Wc 4785469626960341345 110
.CE
will return the string \fBBigEndian\fR
.PP
will return the binary string \fBBigEndian\fR
.RE
.IP \fBm\fR 5
This form (mnemonically the mirror of \fBw\fR) is the same as \fBw\fR
@@ -394,11 +499,16 @@ double-precision floating point numbers internally, there may be some
loss of precision in the conversion to single-precision. For example,
on a Windows system running on an Intel Pentium processor,
.RS
.PP
.CS
\fBbinary format\fR f2 {1.6 3.4}
.CE
will return a string equivalent to
\fB\excd\excc\excc\ex3f\ex9a\ex99\ex59\ex40\fR.
.PP
will return a binary string equivalent to:
.PP
.CS
\fB\excd\excc\excc\ex3f\ex9a\ex99\ex59\ex40\fR
.CE
.RE
.IP \fBr\fR 5
This form (mnemonically \fIreal\fR) is the same as \fBf\fR except that
@@ -415,11 +525,16 @@ or more double-precision floating point numbers in the machine's native
representation in the output string. For example, on a
Windows system running on an Intel Pentium processor,
.RS
.PP
.CS
\fBbinary format\fR d1 {1.6}
.CE
will return a string equivalent to
\fB\ex9a\ex99\ex99\ex99\ex99\ex99\exf9\ex3f\fR.
.PP
will return a binary string equivalent to:
.PP
.CS
\fB\ex9a\ex99\ex99\ex99\ex99\ex99\exf9\ex3f\fR
.CE
.RE
.IP \fBq\fR 5
This form (mnemonically the mirror of \fBd\fR) is the same as \fBd\fR
@@ -432,26 +547,37 @@ This form is the same as \fBq\fR except that it stores the
double-precision floating point numbers in big-endian order.
.IP \fBx\fR 5
Stores \fIcount\fR null bytes in the output string. If \fIcount\fR is
not specified, stores one null byte. If \fIcount\fR is \fB*\fR,
not specified, stores one null byte. If \fIcount\fR is
.QW \fB*\fR ,
generates an error. This type does not consume an argument. For
example,
.RS
.PP
.CS
\fBbinary format\fR a3xa3x2a3 abc def ghi
.CE
will return a string equivalent to \fBabc\e000def\e000\e000ghi\fR.
.PP
will return a binary string equivalent to:
.PP
.CS
\fBabc\e000def\e000\e000ghi\fR
.CE
.RE
.IP \fBX\fR 5
Moves the cursor back \fIcount\fR bytes in the output string. If
\fIcount\fR is \fB*\fR or is larger than the current cursor position,
\fIcount\fR is
.QW \fB*\fR
or is larger than the current cursor position,
then the cursor is positioned at location 0 so that the next byte
stored will be the first byte in the result string. If \fIcount\fR is
omitted then the cursor is moved back one byte. This type does not
consume an argument. For example,
.RS
.PP
.CS
\fBbinary format\fR a3X*a3X2a3 abc def ghi
.CE
.PP
will return \fBdghi\fR.
.RE
.IP \fB@\fR 5
@@ -460,14 +586,22 @@ specified by \fIcount\fR. Position 0 refers to the first byte in the
output string. If \fIcount\fR refers to a position beyond the last
byte stored so far, then null bytes will be placed in the uninitialized
locations and the cursor will be placed at the specified location. If
\fIcount\fR is \fB*\fR, then the cursor is moved to the current end of
\fIcount\fR is
.QW \fB*\fR ,
then the cursor is moved to the current end of
the output string. If \fIcount\fR is omitted, then an error will be
generated. This type does not consume an argument. For example,
.RS
.PP
.CS
\fBbinary format\fR a5@2a1@*a3@10a1 abcde f ghi j
.CE
will return \fBabfdeghi\e000\e000j\fR.
.PP
will return
.PP
.CS
\fBabfdeghi\e000\e000j\fR
.CE
.RE
.SH "BINARY SCAN"
.PP
@@ -489,8 +623,9 @@ argument to obtain the variable into which the scanned values should
be placed. The type character specifies how the binary data is to be
interpreted. The \fIcount\fR typically indicates how many items of
the specified type are taken from the data. If present, the
\fIcount\fR is a non-negative decimal integer or \fB*\fR, which
normally indicates that all of the remaining items in the data are to
\fIcount\fR is a non-negative decimal integer or
.QW \fB*\fR ,
which normally indicates that all of the remaining items in the data are to
be used. If there are not enough bytes left after the current cursor
position to satisfy the current field specifier, then the
corresponding variable is left untouched and \fBbinary scan\fR returns
@@ -504,6 +639,7 @@ is accepted for all field types but is ignored for non-integer fields.
A similar example as with \fBbinary format\fR should explain the
relation between field specifiers and arguments in case of the binary
scan subcommand:
.PP
.CS
\fBbinary scan\fR $bytes s3s first second
.CE
@@ -515,12 +651,15 @@ If \fIbytes\fR contains fewer than 8 bytes (i.e. four 2-byte
integers), no assignment to \fIsecond\fR will be made, and if
\fIbytes\fR contains fewer than 6 bytes (i.e. three 2-byte integers),
no assignment to \fIfirst\fR will be made. Hence:
.PP
.CS
puts [\fBbinary scan\fR abcdefg s3s first second]
puts $first
puts $second
.CE
.PP
will print (assuming neither variable is set previously):
.PP
.CS
1
25185 25699 26213
@@ -532,14 +671,17 @@ It is \fIimportant\fR to note that the \fBc\fR, \fBs\fR, and \fBS\fR
long data size values. In doing this, values that have their high
bit set (0x80 for chars, 0x8000 for shorts, 0x80000000 for ints),
will be sign extended. Thus the following will occur:
.PP
.CS
set signShort [\fBbinary format\fR s1 0x8000]
\fBbinary scan\fR $signShort s1 val; \fI# val == 0xFFFF8000\fR
.CE
.PP
If you require unsigned values you can include the
.QW u
flag character following
the field type. For example, to read an unsigned short value:
.PP
.CS
set signShort [\fBbinary format\fR s1 0x8000]
\fBbinary scan\fR $signShort su1 val; \fI# val == 0x00008000\fR
@@ -550,8 +692,9 @@ reading bytes from the current position. The cursor is initially
at position 0 at the beginning of the data. The type may be any one of
the following characters:
.IP \fBa\fR 5
The data is a byte string of length \fIcount\fR. If \fIcount\fR
is \fB*\fR, then all of the remaining bytes in \fIstring\fR will be
The data is a byte string of length \fIcount\fR. If \fIcount\fR is
.QW \fB*\fR ,
then all of the remaining bytes in \fIstring\fR will be
scanned into the variable. If \fIcount\fR is omitted, then one
byte will be scanned.
All bytes scanned will be interpreted as being characters in the
@@ -560,24 +703,30 @@ needed if the string is not a binary string or a string encoded in ISO
8859\-1.
For example,
.RS
.PP
.CS
\fBbinary scan\fR abcde\e000fghi a6a10 var1 var2
.CE
.PP
will return \fB1\fR with the string equivalent to \fBabcde\e000\fR
stored in \fIvar1\fR and \fIvar2\fR left unmodified, and
.PP
.CS
\fBbinary scan\fR \e342\e202\e254 a* var1
set var2 [encoding convertfrom utf-8 $var1]
.CE
.PP
will store a Euro-currency character in \fIvar2\fR.
.RE
.IP \fBA\fR 5
This form is the same as \fBa\fR, except trailing blanks and nulls are stripped from
the scanned value before it is stored in the variable. For example,
.RS
.PP
.CS
\fBbinary scan\fR "abc efghi \e000" A* var1
.CE
.PP
will return \fB1\fR with \fBabc efghi\fR stored in \fIvar1\fR.
.RE
.IP \fBb\fR 5
@@ -588,13 +737,16 @@ and
.QW 0
characters. The data bytes are scanned in first to last order with
the bits being taken in low-to-high order within each byte. Any extra
bits in the last byte are ignored. If \fIcount\fR is \fB*\fR, then
all of the remaining bits in \fIstring\fR will be scanned. If
bits in the last byte are ignored. If \fIcount\fR is
.QW \fB*\fR ,
then all of the remaining bits in \fIstring\fR will be scanned. If
\fIcount\fR is omitted, then one bit will be scanned. For example,
.RS
.PP
.CS
\fBbinary scan\fR \ex07\ex87\ex05 b5b* var1 var2
.CE
.PP
will return \fB2\fR with \fB11100\fR stored in \fIvar1\fR and
\fB1110000110100000\fR stored in \fIvar2\fR.
.RE
@@ -602,9 +754,11 @@ will return \fB2\fR with \fB11100\fR stored in \fIvar1\fR and
This form is the same as \fBb\fR, except the bits are taken in
high-to-low order within each byte. For example,
.RS
.PP
.CS
\fBbinary scan\fR \ex70\ex87\ex05 B5B* var1 var2
.CE
.PP
will return \fB2\fR with \fB01110\fR stored in \fIvar1\fR and
\fB1000011100000101\fR stored in \fIvar2\fR.
.RE
@@ -615,13 +769,16 @@ high-to-low order represented as a sequence of characters in the set
The data bytes are scanned in first to last
order with the hex digits being taken in high-to-low order within each
byte. Any extra bits in the last byte are ignored. If \fIcount\fR is
\fB*\fR, then all of the remaining hex digits in \fIstring\fR will be
.QW \fB*\fR ,
then all of the remaining hex digits in \fIstring\fR will be
scanned. If \fIcount\fR is omitted, then one hex digit will be
scanned. For example,
.RS
.PP
.CS
\fBbinary scan\fR \ex07\exC6\ex05\ex1f\ex34 H3H* var1 var2
.CE
.PP
will return \fB2\fR with \fB07c\fR stored in \fIvar1\fR and
\fB051f34\fR stored in \fIvar2\fR.
.RE
@@ -629,9 +786,11 @@ will return \fB2\fR with \fB07c\fR stored in \fIvar1\fR and
This form is the same as \fBH\fR, except the digits are taken in
reverse (low-to-high) order within each byte. For example,
.RS
.PP
.CS
\fBbinary scan\fR \ex07\ex86\ex05\ex12\ex34 h3h* var1 var2
.CE
.PP
will return \fB2\fR with \fB706\fR stored in \fIvar1\fR and
\fB502143\fR stored in \fIvar2\fR.
.PP
@@ -640,135 +799,151 @@ multiple bytes in order should use the \fBH\fR format.
.RE
.IP \fBc\fR 5
The data is turned into \fIcount\fR 8-bit signed integers and stored
in the corresponding variable as a list. If \fIcount\fR is \fB*\fR,
in the corresponding variable as a list, or as unsigned if \fBu\fR is placed
immediately after the \fBc\fR. If \fIcount\fR is
.QW \fB*\fR ,
then all of the remaining bytes in \fIstring\fR will be scanned. If
\fIcount\fR is omitted, then one 8-bit integer will be scanned. For
example,
.RS
.PP
.CS
\fBbinary scan\fR \ex07\ex86\ex05 c2c* var1 var2
.CE
.PP
will return \fB2\fR with \fB7 -122\fR stored in \fIvar1\fR and \fB5\fR
stored in \fIvar2\fR. Note that the integers returned are signed, but
they can be converted to unsigned 8-bit quantities using an expression
like:
.CS
set num [expr { $num & 0xff }]
.CE
stored in \fIvar2\fR. Note that the integers returned are signed unless
\fBcu\fR in place of \fBc\fR.
.RE
.IP \fBs\fR 5
The data is interpreted as \fIcount\fR 16-bit signed integers
represented in little-endian byte order. The integers are stored in
the corresponding variable as a list. If \fIcount\fR is \fB*\fR, then
all of the remaining bytes in \fIstring\fR will be scanned. If
represented in little-endian byte order, or as unsigned if \fBu\fR is placed
immediately after the \fBs\fR. The integers are stored in
the corresponding variable as a list. If \fIcount\fR is
.QW \fB*\fR ,
then all of the remaining bytes in \fIstring\fR will be scanned. If
\fIcount\fR is omitted, then one 16-bit integer will be scanned. For
example,
.RS
.PP
.CS
\fBbinary scan\fR \ex05\ex00\ex07\ex00\exf0\exff s2s* var1 var2
.CE
.PP
will return \fB2\fR with \fB5 7\fR stored in \fIvar1\fR and \fB\-16\fR
stored in \fIvar2\fR. Note that the integers returned are signed, but
they can be converted to unsigned 16-bit quantities using an expression
like:
.CS
set num [expr { $num & 0xffff }]
.CE
stored in \fIvar2\fR. Note that the integers returned are signed unless
\fBsu\fR is used in place of \fBs\fR.
.RE
.IP \fBS\fR 5
This form is the same as \fBs\fR except that the data is interpreted
as \fIcount\fR 16-bit signed integers represented in big-endian byte
as \fIcount\fR 16-bit integers represented in big-endian byte
order. For example,
.RS
.PP
.CS
\fBbinary scan\fR \ex00\ex05\ex00\ex07\exff\exf0 S2S* var1 var2
.CE
.PP
will return \fB2\fR with \fB5 7\fR stored in \fIvar1\fR and \fB\-16\fR
stored in \fIvar2\fR.
.RE
.IP \fBt\fR 5
The data is interpreted as \fIcount\fR 16-bit signed integers
represented in the native byte order of the machine running the Tcl
script. It is otherwise identical to \fBs\fR and \fBS\fR.
script, or as unsigned if \fBu\fR is placed
immediately after the \fBt\fR. It is otherwise identical to \fBs\fR and \fBS\fR.
To determine what the native byte order of the machine is, refer to
the \fBbyteOrder\fR element of the \fBtcl_platform\fR array.
.IP \fBi\fR 5
The data is interpreted as \fIcount\fR 32-bit signed integers
represented in little-endian byte order. The integers are stored in
the corresponding variable as a list. If \fIcount\fR is \fB*\fR, then
all of the remaining bytes in \fIstring\fR will be scanned. If
represented in little-endian byte order, or as unsigned if \fBu\fR is placed
immediately after the \fBi\fR. The integers are stored in
the corresponding variable as a list. If \fIcount\fR is
.QW \fB*\fR ,
then all of the remaining bytes in \fIstring\fR will be scanned. If
\fIcount\fR is omitted, then one 32-bit integer will be scanned. For
example,
.RS
.PP
.CS
set str \ex05\ex00\ex00\ex00\ex07\ex00\ex00\ex00\exf0\exff\exff\exff
\fBbinary scan\fR $str i2i* var1 var2
.CE
.PP
will return \fB2\fR with \fB5 7\fR stored in \fIvar1\fR and \fB\-16\fR
stored in \fIvar2\fR. Note that the integers returned are signed, but
they can be converted to unsigned 32-bit quantities using an expression
like:
.CS
set num [expr { $num & 0xffffffff }]
.CE
stored in \fIvar2\fR. Note that the integers returned are signed unless
\fBiu\fR is used in place of \fBi\fR.
.RE
.IP \fBI\fR 5
This form is the same as \fBI\fR except that the data is interpreted
as \fIcount\fR 32-bit signed integers represented in big-endian byte
order. For example,
order, or as unsigned if \fBu\fR is placed
immediately after the \fBI\fR. For example,
.RS
.PP
.CS
set str \ex00\ex00\ex00\ex05\ex00\ex00\ex00\ex07\exff\exff\exff\exf0
\fBbinary scan\fR $str I2I* var1 var2
.CE
.PP
will return \fB2\fR with \fB5 7\fR stored in \fIvar1\fR and \fB\-16\fR
stored in \fIvar2\fR.
.RE
.IP \fBn\fR 5
The data is interpreted as \fIcount\fR 32-bit signed integers
represented in the native byte order of the machine running the Tcl
script. It is otherwise identical to \fBi\fR and \fBI\fR.
script, or as unsigned if \fBu\fR is placed
immediately after the \fBn\fR. It is otherwise identical to \fBi\fR and \fBI\fR.
To determine what the native byte order of the machine is, refer to
the \fBbyteOrder\fR element of the \fBtcl_platform\fR array.
.IP \fBw\fR 5
The data is interpreted as \fIcount\fR 64-bit signed integers
represented in little-endian byte order. The integers are stored in
the corresponding variable as a list. If \fIcount\fR is \fB*\fR, then
all of the remaining bytes in \fIstring\fR will be scanned. If
represented in little-endian byte order, or as unsigned if \fBu\fR is placed
immediately after the \fBw\fR. The integers are stored in
the corresponding variable as a list. If \fIcount\fR is
.QW \fB*\fR ,
then all of the remaining bytes in \fIstring\fR will be scanned. If
\fIcount\fR is omitted, then one 64-bit integer will be scanned. For
example,
.RS
.PP
.CS
set str \ex05\ex00\ex00\ex00\ex07\ex00\ex00\ex00\exf0\exff\exff\exff
\fBbinary scan\fR $str wi* var1 var2
.CE
.PP
will return \fB2\fR with \fB30064771077\fR stored in \fIvar1\fR and
\fB\-16\fR stored in \fIvar2\fR. Note that the integers returned are
signed and cannot be represented by Tcl as unsigned values.
\fB\-16\fR stored in \fIvar2\fR.
.RE
.IP \fBW\fR 5
This form is the same as \fBw\fR except that the data is interpreted
as \fIcount\fR 64-bit signed integers represented in big-endian byte
order. For example,
order, or as unsigned if \fBu\fR is placed
immediately after the \fBW\fR. For example,
.RS
.PP
.CS
set str \ex00\ex00\ex00\ex05\ex00\ex00\ex00\ex07\exff\exff\exff\exf0
\fBbinary scan\fR $str WI* var1 var2
.CE
.PP
will return \fB2\fR with \fB21474836487\fR stored in \fIvar1\fR and \fB\-16\fR
stored in \fIvar2\fR.
.RE
.IP \fBm\fR 5
The data is interpreted as \fIcount\fR 64-bit signed integers
represented in the native byte order of the machine running the Tcl
script. It is otherwise identical to \fBw\fR and \fBW\fR.
script, or as unsigned if \fBu\fR is placed
immediately after the \fBm\fR. It is otherwise identical to \fBw\fR and \fBW\fR.
To determine what the native byte order of the machine is, refer to
the \fBbyteOrder\fR element of the \fBtcl_platform\fR array.
.IP \fBf\fR 5
The data is interpreted as \fIcount\fR single-precision floating point
numbers in the machine's native representation. The floating point
numbers are stored in the corresponding variable as a list. If
\fIcount\fR is \fB*\fR, then all of the remaining bytes in
\fIcount\fR is
.QW \fB*\fR ,
then all of the remaining bytes in
\fIstring\fR will be scanned. If \fIcount\fR is omitted, then one
single-precision floating point number will be scanned. The size of a
floating point number may vary across architectures, so the number of
@@ -777,9 +952,11 @@ valid floating point number, the resulting value is undefined and
compiler dependent. For example, on a Windows system running on an
Intel Pentium processor,
.RS
.PP
.CS
\fBbinary scan\fR \ex3f\excc\excc\excd f var1
.CE
.PP
will return \fB1\fR with \fB1.6000000238418579\fR stored in
\fIvar1\fR.
.RE
@@ -799,9 +976,11 @@ as \fIcount\fR double-precision floating point numbers in the
machine's native representation. For example, on a Windows system
running on an Intel Pentium processor,
.RS
.PP
.CS
\fBbinary scan\fR \ex9a\ex99\ex99\ex99\ex99\ex99\exf9\ex3f d var1
.CE
.PP
will return \fB1\fR with \fB1.6000000000000001\fR
stored in \fIvar1\fR.
.RE
@@ -817,28 +996,36 @@ order. This conversion is not portable to the minority of systems not
using IEEE floating point representations.
.IP \fBx\fR 5
Moves the cursor forward \fIcount\fR bytes in \fIstring\fR. If
\fIcount\fR is \fB*\fR or is larger than the number of bytes after the
\fIcount\fR is
.QW \fB*\fR
or is larger than the number of bytes after the
current cursor position, then the cursor is positioned after
the last byte in \fIstring\fR. If \fIcount\fR is omitted, then the
cursor is moved forward one byte. Note that this type does not
consume an argument. For example,
.RS
.PP
.CS
\fBbinary scan\fR \ex01\ex02\ex03\ex04 x2H* var1
.CE
.PP
will return \fB1\fR with \fB0304\fR stored in \fIvar1\fR.
.RE
.IP \fBX\fR 5
Moves the cursor back \fIcount\fR bytes in \fIstring\fR. If
\fIcount\fR is \fB*\fR or is larger than the current cursor position,
\fIcount\fR is
.QW \fB*\fR
or is larger than the current cursor position,
then the cursor is positioned at location 0 so that the next byte
scanned will be the first byte in \fIstring\fR. If \fIcount\fR
is omitted then the cursor is moved back one byte. Note that this
type does not consume an argument. For example,
.RS
.PP
.CS
\fBbinary scan\fR \ex01\ex02\ex03\ex04 c2XH* var1 var2
.CE
.PP
will return \fB2\fR with \fB1 2\fR stored in \fIvar1\fR and \fB020304\fR
stored in \fIvar2\fR.
.RE
@@ -849,9 +1036,11 @@ by \fIcount\fR. Note that position 0 refers to the first byte in
\fIstring\fR, then the cursor is positioned after the last byte. If
\fIcount\fR is omitted, then an error will be generated. For example,
.RS
.PP
.CS
\fBbinary scan\fR \ex01\ex02\ex03\ex04 c2@1H* var1 var2
.CE
.PP
will return \fB2\fR with \fB1 2\fR stored in \fIvar1\fR and \fB020304\fR
stored in \fIvar2\fR.
.RE
-6
View File
@@ -56,9 +56,7 @@ When the return code from evaluation of \fIscript\fR is
\fBTCL_ERROR\fR, four additional entries are defined in the dictionary
of return options stored in \fIoptionsVarName\fR: \fB\-errorinfo\fR,
\fB\-errorcode\fR, \fB\-errorline\fR, and
.VS 8.6
\fB\-errorstack\fR.
.VE 8.6
The value of the \fB\-errorinfo\fR entry is a formatted stack trace containing
more information about the context in which the error happened. The formatted
stack trace is meant to be read by a person. The value of the
@@ -67,7 +65,6 @@ list. The \fB\-errorcode\fR value is meant to be further processed by
programs, and may not be particularly readable by people. The value of the
\fB\-errorline\fR entry is an integer indicating which line of \fIscript\fR
was being evaluated when the error occurred.
.VS 8.6
The value of the \fB\-errorstack\fR entry is an
even-sized list made of token-parameter pairs accumulated while
unwinding the stack. The token may be
@@ -87,14 +84,11 @@ the static text of the calling sites, and
.IP [3]
it is coarser-grained, with only one element per stack frame (like procs; no
separate elements for \fBforeach\fR constructs for example).
.VE 8.6
.PP
The values of the \fB\-errorinfo\fR and \fB\-errorcode\fR entries of
the most recent error are also available as values of the global
variables \fB::errorInfo\fR and \fB::errorCode\fR respectively.
.VS 8.6
The value of the \fB\-errorstack\fR entry surfaces as \fBinfo errorstack\fR.
.VE 8.6
.PP
Tcl packages may provide commands that set other entries in the
dictionary of return options, and the \fBreturn\fR command may be
+5 -1
View File
@@ -22,7 +22,7 @@ home directory (as specified in the HOME environment variable) if
Returns an empty string.
Note that the current working directory is a per-process resource; the
\fBcd\fR command changes the working directory for all interpreters
and (in a threaded environment) all threads.
and all threads.
.SH EXAMPLES
.PP
Change to the home directory of the user \fBfred\fR:
@@ -41,3 +41,7 @@ current one:
filename(n), glob(n), pwd(n)
.SH KEYWORDS
working directory
'\" Local Variables:
'\" mode: nroff
'\" fill-column: 78
'\" End:
+1 -11
View File
@@ -35,7 +35,6 @@ turned on by default.
.
Close and destroy the channel called \fIchannelId\fR. Note that this
deletes all existing file-events registered on the channel.
.VS 8.6
If the \fIdirection\fR argument (which must be \fBread\fR or \fBwrite\fR or
any unique abbreviation of them) is present, the channel will only be
half-closed, so that it can go from being read-write to write-only or
@@ -45,7 +44,6 @@ write-only channels. Without the \fIdirection\fR argument, the channel is
closed for both reading and writing (but only if those directions are
currently open). It is an error to close a read-only channel for writing, or a
write-only channel for reading.
.VE 8.6
.RS
.PP
As part of closing the channel, all buffered output is flushed to the
@@ -83,12 +81,10 @@ an error occurs while flushing output. If a command in a command
pipeline created with \fBopen\fR returns an error, \fBchan close\fR
generates an error (similar to the \fBexec\fR command.)
.PP
.VS 8.6
Note that half-closes of sockets and command pipelines can have important side
effects because they result in a shutdown() or close() of the underlying
system resource, which can change how other processes or systems respond to
the Tcl program.
.VE 8.6
.RE
.TP
\fBchan configure \fIchannelId\fR ?\fIoptionName\fR? ?\fIvalue\fR? ?\fIoptionName value\fR?...
@@ -540,7 +536,6 @@ an extremely long line that exceeds the available memory to buffer it).
Returns -1 if the channel was not opened for the mode in question.
.TP
\fBchan pipe\fR
.VS 8.6
Creates a standalone pipe whose read- and write-side channels are
returned as a 2-element list, the first element being the read side and
the second the write side. Can be useful e.g. to redirect
@@ -561,16 +556,13 @@ is most likely to show up when using pipelines for testing; care should be
taken to ensure that deadlocks do not occur and that potential short reads are
allowed for.
.RE
.VE 8.6
.TP
\fBchan pop \fIchannelId\fR
.VS 8.6
Removes the topmost transformation from the channel \fIchannelId\fR, if there
is any. If there are no transformations added to \fIchannelId\fR, this is
equivalent to \fBchan close\fR of that channel. The result is normally the
empty string, but can be an error in some situations (i.e. where the
underlying system stream is closed and that results in an error).
.VE 8.6
.TP
\fBchan postevent \fIchannelId eventSpec\fR
.
@@ -609,7 +601,6 @@ executed in the interpreter that set them up.
.RE
.TP
\fBchan push \fIchannelId cmdPrefix\fR
.VS 8.6
Adds a new transformation on top of the channel \fIchannelId\fR. The
\fIcmdPrefix\fR argument describes a list of one or more words which represent
a handler that will be used to implement the transformation. The command
@@ -618,7 +609,6 @@ The result of this subcommand is a handle to the transformation. Note that it
is important to make sure that the transformation is capable of supporting the
channel mode that it is used with or this can make the channel neither
readable nor writable.
.VE 8.6
.TP
\fBchan puts\fR ?\fB\-nonewline\fR? ?\fIchannelId\fR? \fIstring\fR
.
@@ -782,7 +772,7 @@ set offset 0
\fI# Search for string "FOOBAR" in the file\fR
while {[\fBchan gets\fR $f line] >= 0} {
set idx [string first FOOBAR $line]
if {$idx > -1} {
if {$idx >= 0} {
\fI# Found it; rewrite line\fR
\fBchan seek\fR $f [expr {$offset + $idx}]
+25 -18
View File
@@ -471,36 +471,36 @@ The following format groups are recognized by the \fBclock scan\fR and
\fBclock format\fR commands.
.TP
\fB%a\fR
On output, receives an abbreviation (\fIe.g.,\fR \fBMon\fR) for the day
On output, produces an abbreviation (\fIe.g.,\fR \fBMon\fR) for the day
of the week in the given locale. On input, matches the name of the day
of the week in the given locale (in either abbreviated or full form, or
any unique prefix of either form).
.TP
\fB%A\fR
On output, receives the full name (\fIe.g.,\fR \fBMonday\fR) of the day
On output, produces the full name (\fIe.g.,\fR \fBMonday\fR) of the day
of the week in the given locale. On input, matches the name of the day
of the week in the given locale (in either abbreviated or full form, or
any unique prefix of either form).
.TP
\fB%b\fR
On output, receives an abbreviation (\fIe.g.,\fR \fBJan\fR) for the name
On output, produces an abbreviation (\fIe.g.,\fR \fBJan\fR) for the name
of the month in the given locale. On input, matches the name of the month
in the given locale (in either abbreviated or full form, or
any unique prefix of either form).
.TP
\fB%B\fR
On output, receives the full name (\fIe.g.,\fR \fBJanuary\fR)
On output, produces the full name (\fIe.g.,\fR \fBJanuary\fR)
of the month in the given locale. On input, matches the name of the month
in the given locale (in either abbreviated or full form, or
any unique prefix of either form).
.TP
\fB%c\fR
On output, receives a localized representation of date and time of day;
On output, produces a localized representation of date and time of day;
the localized representation is expected to use the Gregorian calendar.
On input, matches whatever \fB%c\fR produces.
.TP
\fB%C\fR
On output, receives the number of the century in Indo-Arabic numerals.
On output, produces the number of the century in Indo-Arabic numerals.
On input, matches one or two digits, possibly with leading whitespace,
that are expected to be the number of the century.
.TP
@@ -886,40 +886,47 @@ The \fIinputString\fR argument consists of zero or more specifications of the
following form:
.TP
\fItime\fR
A time of day, which is of the form: \fBhh?:mm?:ss?? ?meridian? ?zone?\fR
or \fBhhmm ?meridian? ?zone?\fR
If no meridian is specified, \fBhh\fR is interpreted on
.
A time of day, which is of the form:
.QW "\fIhh\fR?\fB:\fImm\fR?\fB:\fIss\fR?? ?\fImeridian\fR? ?\fIzone\fR?"
or
.QW "\fBhhmm \fR?\fBmeridian\fR? ?\fBzone\fR?" .
If no \fImeridian\fR is specified, \fIhh\fR is interpreted on
a 24-hour clock.
.TP
\fIdate\fR
.
A specific month and day with optional year. The
acceptable formats are
.QW "\fBmm/dd\fR?\fB/yy\fR?" ,
.QW "\fBmonthname dd\fR?\fB, yy\fR?" ,
.QW "\fBday, dd monthname \fR?\fByy\fR?" ,
.QW "\fBdd monthname yy\fR" ,
.QW "?\fBCC\fR?\fByymmdd\fR" ,
.QW "\fImm\fB/\fIdd\fR?\fB/\fIyy\fR?" ,
.QW "\fImonthname dd\fR?\fB, \fIyy\fR?" ,
.QW "\fIday\fB, \fIdd monthname \fR?\fIyy\fR?" ,
.QW "\fIdd monthname yy\fR" ,
.QW "?\fICC\fR?\fIyymmdd\fR" ,
and
.QW "\fBdd-monthname-\fR?\fBCC\fR?\fByy\fR" .
.QW "\fIdd\fB-\fImonthname\fB-\fR?\fICC\fR?\fIyy\fR" .
The default year is the current year. If the year is less
than 100, we treat the years 00-68 as 2000-2068 and the years 69-99
as 1969-1999. Not all platforms can represent the years 38-70, so
an error may result if these years are used.
.TP
\fIISO 8601 point-in-time\fR
.
An ISO 8601 point-in-time specification, such as
.QW \fICCyymmdd\fBT\fIhhmmss\fR,
.QW "\fICCyymmdd\fBT\fIhhmmss\fR",
where \fBT\fR is the literal
.QW T ,
.QW "\fICCyymmdd hhmmss\fR" ,
.QW "\fICCyymmdd\fBT\fIhh:mm:ss\fR" ,
or
.QW \fICCyymmdd\fBT\fIhh:mm:ss\fR .
Note that only these three formats are accepted.
.QW "\fICCyy-mm-dd\fBT\fIhh\fB:\fImm\fB:\fIss\fR".
Note that only these four formats are accepted.
The command does \fInot\fR accept the full range of point-in-time
specifications specified in ISO8601. Other formats can be recognized by
giving an explicit \fB\-format\fR option to the \fBclock scan\fR command.
.TP
\fIrelative time\fR
.
A specification relative to the current time. The format is \fBnumber
unit\fR. Acceptable units are \fByear\fR, \fBfortnight\fR,
\fBmonth\fR, \fBweek\fR, \fBday\fR,
-4
View File
@@ -49,16 +49,13 @@ When the last interpreter in which the channel is registered invokes
.PP
Channels are automatically closed when an interpreter is destroyed and
when the process exits.
.VS 8.6
From 8.6 on (TIP#398), nonblocking channels are no longer switched to blocking mode when exiting; this guarantees a timely exit even when the peer or a communication channel is stalled. To ensure proper flushing of stalled nonblocking channels on exit, one must now either (a) actively switch them back to blocking or (b) use the environment variable TCL_FLUSH_NONBLOCKING_ON_EXIT, which when set and not equal to "0" restores the previous behavior.
.VE 8.6
.PP
The command returns an empty string, and may generate an error if
an error occurs while flushing output. If a command in a command
pipeline created with \fBopen\fR returns an error, \fBclose\fR
generates an error (similar to the \fBexec\fR command.)
.PP
.VS 8.6
The two-argument form is a
.QW "half-close" :
given a bidirectional channel like a
@@ -80,7 +77,6 @@ abnormal exit error.
.PP
Currently only sockets and command pipelines support half-close. A future
extension will allow reflected and stacked channels to do so.
.VE 8.6
.SH EXAMPLE
.PP
This illustrates how you can use Tcl to ensure that files get closed
+217
View File
@@ -0,0 +1,217 @@
'\"
'\" Copyright (c) 2014-2018 Donal K. Fellows.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH "cookiejar" n 0.1 http "Tcl Bundled Packages"
.so man.macros
.BS
'\" Note: do not modify the .SH NAME line immediately below!
.SH NAME
cookiejar \- Implementation of the Tcl http package cookie jar protocol
.SH SYNOPSIS
.nf
\fBpackage require\fR \fBcookiejar\fR ?\fB0.1\fR?
\fB::http::cookiejar configure\fR ?\fIoptionName\fR? ?\fIoptionValue\fR?
\fB::http::cookiejar create\fR \fIname\fR ?\fIfilename\fR?
\fB::http::cookiejar new\fR ?\fIfilename\fR?
\fIcookiejar\fR \fBdestroy\fR
\fIcookiejar\fR \fBforceLoadDomainData\fR
\fIcookiejar\fR \fBgetCookies\fR \fIprotocol host path\fR
\fIcookiejar\fR \fBstoreCookie\fR \fIoptions\fR
\fIcookiejar\fR \fBlookup\fR ?\fIhost\fR? ?\fIkey\fR?
.fi
.SH DESCRIPTION
.PP
The cookiejar package provides an implementation of the http package's cookie
jar protocol using an SQLite database. It provides one main command,
\fB::http::cookiejar\fR, which is a TclOO class that should be instantiated to
create a cookie jar that manages a particular HTTP session.
.PP
The database management policy can be controlled at the package level by the
\fBconfigure\fR method on the \fB::http::cookiejar\fR class object:
.TP
\fB::http::cookiejar configure\fR ?\fIoptionName\fR? ?\fIoptionValue\fR?
.
If neither \fIoptionName\fR nor \fIoptionValue\fR are supplied, this returns a
copy of the configuration as a Tcl dictionary. If just \fIoptionName\fR is
supplied, just the value of the named option is returned. If both
\fIoptionName\fR and \fIoptionValue\fR are given, the named option is changed
to be the given value.
.RS
.PP
Supported options are:
.TP
\fB\-domainfile \fIfilename\fR
.
A file (defaulting to within the cookiejar package) with a description of the
list of top-level domains (e.g., \fB.com\fR or \fB.co.jp\fR). Such domains
\fImust not\fR accept cookies set upon them. Note that the list of such
domains is both security-sensitive and \fInot\fR constant and should be
periodically refetched. Cookie jars maintain their own cache of the domain
list.
.TP
\fB\-domainlist \fIurl\fR
.
A URL to fetch the list of top-level domains (e.g., \fB.com\fR or
\fB.co.jp\fR) from. Such domains \fImust not\fR accept cookies set upon
them. Note that the list of such domains is both security-sensitive and
\fInot\fR constant and should be periodically refetched. Cookie jars maintain
their own cache of the domain list.
.TP
\fB\-domainrefresh \fIintervalMilliseconds\fR
.
The number of milliseconds between checks of the \fI\-domainlist\fR for new
domains.
.TP
\fB\-loglevel \fIlevel\fR
.
The logging level of this package. The logging level must be (in order of
decreasing verbosity) one of \fBdebug\fR, \fBinfo\fR, \fBwarn\fR, or
\fBerror\fR.
.TP
\fB\-offline \fIflag\fR
.
Allows the cookie managment engine to be placed into offline mode. In offline
mode, the list of domains is read immediately from the file configured in the
\fB\-domainfile\fR option, and the \fB\-domainlist\fR option is not used; it
also makes the \fB\-domainrefresh\fR option be effectively ignored.
.TP
\fB\-purgeold \fIintervalMilliseconds\fR
.
The number of milliseconds between checks of the database for expired
cookies; expired cookies are deleted.
.TP
\fB\-retain \fIcookieCount\fR
.
The maximum number of cookies to retain in the database.
.TP
\fB\-vacuumtrigger \fIdeletionCount\fR
.
A count of the number of persistent cookie deletions to go between vacuuming
the database.
.RE
.PP
Cookie jar instances may be made with any of the standard TclOO instance
creation methods (\fBcreate\fR or \fBnew\fR).
.TP
\fB::http::cookiejar new\fR ?\fIfilename\fR?
.
If a \fIfilename\fR argument is provided, it is the name of a file containing
an SQLite database that will contain the persistent cookies maintained by the
cookie jar; the database will be created if the file does not already
exist. If \fIfilename\fR is not supplied, the database will be held entirely within
memory, which effectively forces all cookies within it to be session cookies.
.SS "INSTANCE METHODS"
.PP
The following methods are supported on the instances:
.TP
\fIcookiejar\fR \fBdestroy\fR
.
This is the standard TclOO destruction method. It does \fInot\fR delete the
SQLite database if it is written to disk. Callers are responsible for ensuring
that the cookie jar is not in use by the http package at the time of
destruction.
.TP
\fIcookiejar\fR \fBforceLoadDomainData\fR
.
This method causes the cookie jar to immediately load (and cache) the domain
list data. The domain list will be loaded from the \fB\-domainlist\fR
configured a the package level if that is enabled, and otherwise will be
obtained from the \fB\-domainfile\fR configured at the package level.
.TP
\fIcookiejar\fR \fBgetCookies\fR \fIprotocol host path\fR
.
This method obtains the cookies for a particular HTTP request. \fIThis
implements the http cookie jar protocol.\fR
.TP
\fIcookiejar\fR \fBpolicyAllow\fR \fIoperation domain path\fR
.
This method is called by the \fBstoreCookie\fR method to get a decision on
whether to allow \fIoperation\fR to be performed for the \fIdomain\fR and
\fIpath\fR. This is checked immediately before the database is updated but
after the built-in security checks are done, and should return a boolean
value; if the value is false, the operation is rejected and the database is
not modified. The supported \fIoperation\fRs are:
.RS
.TP
\fBdelete\fR
.
The \fIdomain\fR is seeking to delete a cookie.
.TP
\fBsession\fR
.
The \fIdomain\fR is seeking to create or update a session cookie.
.TP
\fBset\fR
.
The \fIdomain\fR is seeking to create or update a persistent cookie (with a
defined lifetime).
.PP
The default implementation of this method just returns true, but subclasses of
this class may impose their own rules.
.RE
.TP
\fIcookiejar\fR \fBstoreCookie\fR \fIoptions\fR
.
This method stores a single cookie from a particular HTTP response. Cookies
that fail security checks are ignored. \fIThis implements the http cookie jar
protocol.\fR
.TP
\fIcookiejar\fR \fBlookup\fR ?\fIhost\fR? ?\fIkey\fR?
.
This method looks a cookie by exact host (or domain) matching. If neither
\fIhost\fR nor \fIkey\fR are supplied, the list of hosts for which a cookie is
stored is returned. If just \fIhost\fR (which may be a hostname or a domain
name) is supplied, the list of cookie keys stored for that host is returned.
If both \fIhost\fR and \fIkey\fR are supplied, the value for that key is
returned; it is an error if no such host or key match exactly.
.SH "EXAMPLES"
.PP
The simplest way of using a cookie jar is to just permanently configure it at
the start of the application.
.PP
.CS
package require http
\fBpackage require cookiejar\fR
set cookiedb ~/.tclcookies.db
http::configure -cookiejar [\fBhttp::cookiejar new\fR $cookiedb]
# No further explicit steps are required to use cookies
set tok [http::geturl http://core.tcl.tk/]
.CE
.PP
To only allow a particular domain to use cookies, perhaps because you only
want to enable a particular host to create and manipulate sessions, create a
subclass that imposes that policy.
.PP
.CS
package require http
\fBpackage require cookiejar\fR
oo::class create MyCookieJar {
superclass \fBhttp::cookiejar\fR
method \fBpolicyAllow\fR {operation domain path} {
return [expr {$domain eq "my.example.com"}]
}
}
set cookiedb ~/.tclcookies.db
http::configure -cookiejar [MyCookieJar new $cookiedb]
# No further explicit steps are required to use cookies
set tok [http::geturl http://core.tcl.tk/]
.CE
.SH "SEE ALSO"
http(n), oo::class(n), sqlite3(n)
.SH KEYWORDS
cookie, internet, security policy, www
'\" Local Variables:
'\" mode: nroff
'\" fill-column: 78
'\" End:
+98 -10
View File
@@ -9,15 +9,18 @@
.BS
'\" Note: do not modify the .SH NAME line immediately below!
.SH NAME
coroutine, yield, yieldto \- Create and produce values from coroutines
coroutine, yield, yieldto, coroinject, coroprobe \- Create and produce values from coroutines
.SH SYNOPSIS
.nf
\fBcoroutine \fIname command\fR ?\fIarg...\fR?
\fByield\fR ?\fIvalue\fR?
.VS TIP396
\fByieldto\fR \fIcommand\fR ?\fIarg...\fR?
\fIname\fR ?\fIvalue...\fR?
.VE TIP396
.sp
.VS "8.7, TIP383"
\fBcoroinject \fIcoroName command\fR ?\fIarg...\fR?
\fBcoroprobe \fIcoroName command\fR ?\fIarg...\fR?
.VE "8.7, TIP383"
.fi
.BE
.SH DESCRIPTION
@@ -39,7 +42,6 @@ the context to be suspended. If the coroutine context never yields and instead
returns conventionally, the result of the \fBcoroutine\fR command will be the
result of the evaluation of the context.
.PP
.VS TIP396
The coroutine may also suspend its execution by use of the \fByieldto\fR
command, which instead of returning, cedes execution to some command called
\fIcommand\fR (resolved in the context of the coroutine) and to which \fIany
@@ -58,11 +60,10 @@ with multiple arguments is by using \fByieldto\fR and the \fBreturn\fR
command, like this:
.PP
.CS
proc yieldm {value} {
\fByieldto\fR return -level 0 $value
proc yieldMultiple {value} {
tailcall \fByieldto\fR string cat $value
}
.CE
.VE TIP396
.PP
The coroutine can also be deleted by destroying the command \fIname\fR, and
the name of the current coroutine can be retrieved by using
@@ -75,6 +76,51 @@ At the point when \fIcommand\fR is called, the current namespace will be the
global namespace and there will be no stack frames above it (in the sense of
\fBupvar\fR and \fBuplevel\fR). However, which command to call will be
determined in the namespace that the \fBcoroutine\fR command was called from.
.PP
.VS "8.7, TIP383"
A suspended coroutine (i.e., one that has \fByield\fRed or \fByieldto\fR-d)
may have its state inspected (or modified) at that point by using
\fBcoroprobe\fR to run a command at the point where the coroutine is at. The
command takes the name of the coroutine to run the command in, \fIcoroName\fR,
and the name of a command (any any arguments it requires) to immediately run
at that point. The result of that command is the result of the \fBcoroprobe\fR
command, and the gross state of the coroutine remains the same afterwards
(i.e., the coroutine is still expecting the results of a \fByield\fR or
\fByieldto\fR as before) though variables may have been changed.
.PP
Similarly, the \fBcoroinject\fR command may be used to place a command to be
run inside a suspended coroutine (when it is resumed) to process arguments,
with quite a bit of similarity to \fBcoroprobe\fR. However, with
\fBcoroinject\fR there are several key differences:
.VE "8.7, TIP383"
.IP \(bu
.VS "8.7, TIP383"
The coroutine is not immediately resumed after the injection has been done. A
consequence of this is that multiple injections may be done before the
coroutine is resumed. There injected commands are performed in \fIreverse
order of definition\fR (that is, they are internally stored on a stack).
.VE "8.7, TIP383"
.IP \(bu
.VS "8.7, TIP383"
An additional two arguments are appended to the list of arguments to be run
(that is, the \fIcommand\fR and its \fIargs\fR are extended by two elements).
The first is the name of the command that suspended the coroutine (\fByield\fR
or \fByieldto\fR), and the second is the argument (or list of arguments, in
the case of \fByieldto\fR) that is the current resumption value.
.VE "8.7, TIP383"
.IP \(bu
.VS "8.7, TIP383"
The result of the injected command is used as the result of the \fByield\fR or
\fByieldto\fR that caused the coroutine to become suspended. Where there are
multiple injected commands, the result of one becomes the resumption value
processed by the next.
.PP
The injection is a one-off. It is not retained once it has been executed. It
may \fByield\fR or \fByieldto\fR as part of its execution.
.PP
Note that running coroutines may be neither probed nor injected; the
operations may only be applied to
.VE "8.7, TIP383"
.SH EXAMPLES
.PP
This example shows a coroutine that will produce an infinite sequence of
@@ -138,7 +184,6 @@ for {set i 1} {$i <= 20} {incr i} {
}
.CE
.PP
.VS TIP396
This example shows how a value can be passed around a group of three
coroutines that yield to each other:
.PP
@@ -150,14 +195,57 @@ proc juggler {name target {value ""}} {
while {$value ne ""} {
puts "$name : $value"
set value [string range $value 0 end-1]
lassign [\fByieldto\fR $target $value] value
lassign [\fByieldto\fR \fI$target\fR $value] value
}
}
\fBcoroutine\fR j1 juggler Larry [
\fBcoroutine\fR j2 juggler Curly [
\fBcoroutine\fR j3 juggler Moe j1]] "Nyuck!Nyuck!Nyuck!"
.CE
.VE TIP396
.PP
.VS "8.7, TIP383"
This example shows a simple coroutine that collects non-empty values and
returns a list of them when not given an argument. It also shows how we can
look inside the coroutine to find out what it is doing, and how we can modify
the input on a one-off basis.
.PP
.CS
proc collectorImpl {} {
set me [info coroutine]
set accumulator {}
for {set val [\fByield\fR $me]} {$val ne ""} {set val [\fByield\fR]} {
lappend accumulator $val
}
return $accumulator
}
\fBcoroutine\fR collect collectorImpl
\fIcollect\fR 123
\fIcollect\fR "abc def"
\fIcollect\fR 456
puts [\fBcoroprobe \fIcollect\fR set accumulator]
# ==> 123 {abc def} 456
\fIcollect\fR "pqr"
\fBcoroinject \fIcollect\fR apply {{type value} {
puts "Received '$value' at a $type in [info coroutine]"
return [string toupper $value]
}}
\fIcollect\fR rst
# ==> Received 'rst' at a yield in ::collect
\fIcollect\fR xyz
puts [\fIcollect\fR]
# ==> 123 {abc def} 456 pqr RST xyz
.CE
.PP
This example shows a simple coroutine that collects non-empty values and
returns a list of them when not given an argument. It also shows how we can
look inside the coroutine to find out what it is doing.
.VE "8.7, TIP383"
.SS "DETAILED SEMANTICS"
.PP
This example demonstrates that coroutines start from the global namespace, and
-6
View File
@@ -17,11 +17,9 @@ dde \- Execute a Dynamic Data Exchange command
.sp
\fBdde servername\fR ?\fB\-force\fR? ?\fB\-handler \fIproc\fR? ?\fB\-\|\-\fR? ?\fItopic\fR?
.sp
.VS 8.6
\fBdde execute\fR ?\fB\-async\fR? ?\fB\-binary\fR? \fIservice topic data\fR
.sp
\fBdde poke\fR ?\fB\-binary\fR? \fIservice topic item data\fR
.VE 8.6
.sp
\fBdde request\fR ?\fB\-binary\fR? \fIservice topic item\fR
.sp
@@ -82,13 +80,11 @@ script is run in the application. The \fB\-async\fR option requests
asynchronous invocation. The command returns an error message if the
script did not run, unless the \fB\-async\fR flag was used, in which case
the command returns immediately with no error.
.VS 8.6
Without the \fB\-binary\fR option all data will be sent in unicode. For
dde clients which don't implement the CF_UNICODE clipboard format, this
will automatically be translated to the system encoding. You can use
the \fB\-binary\fR option in combination with the result of
\fBencoding convertto\fR to send data in any other encoding.
.VE 8.6
.TP
\fBdde poke\fR ?\fB\-binary\fR? \fIservice topic item data\fR
.
@@ -99,13 +95,11 @@ specific but can be a command to the server or the name of a file to work
on. The \fIitem\fR is also application specific and is often not used, but
it must always be non-null. The \fIdata\fR field is given to the remote
application.
.VS 8.6
Without the \fB\-binary\fR option all data will be sent in unicode. For
dde clients which don't implement the CF_UNICODE clipboard format, this
will automatically be translated to the system encoding. You can use
the \fB\-binary\fR option in combination with the result of
\fBencoding convertto\fR to send data in any other encoding.
.VE 8.6
.TP
\fBdde request\fR ?\fB\-binary\fR? \fIservice topic item\fR
.
+194 -80
View File
@@ -34,7 +34,11 @@ either the \fIdefScript\fR argument or by the \fIsubcommand\fR and following
\fIarg\fR arguments; when the second is present, it is exactly as if all the
arguments from \fIsubcommand\fR onwards are made into a list and that list is
used as the \fIdefScript\fR argument.
.SS "CONFIGURING CLASSES"
.PP
Note that the constructor for \fBoo::class\fR will call \fBoo::define\fR on
the script argument that it is provided. This is a convenient way to create
and define a class in one step.
.SH "CONFIGURING CLASSES"
.PP
The following commands are supported in the \fIdefScript\fR for
\fBoo::define\fR, each of which may also be used in the \fIsubcommand\fR form:
@@ -48,7 +52,7 @@ the \fBmethod\fR definition, below.
.RS
.PP
Class methods can be called on either the class itself or on the instances of
that class. When they are called, the current object (see the \fBself\R and
that class. When they are called, the current object (see the \fBsel\fR and
\fBmy\fR commands) is the class on which they are called or the class of the
instance on which they are called, depending on whether they are called on the
class or an instance of the class, respectively. If called on a subclass or
@@ -70,13 +74,11 @@ namespace of the constructor will be a namespace that is unique to the object
being constructed. Within the constructor, the \fBnext\fR command should be
used to call the superclasses' constructors. If \fIbodyScript\fR is the empty
string, the constructor will be deleted.
.TP
\fBdeletemethod\fI name\fR ?\fIname ...\fR?
.
This deletes each of the methods called \fIname\fR from a class. The methods
must have previously existed in that class. Does not affect the superclasses
of the class, nor does it affect the subclasses or instances of the class
(except when they have a call chain through the class being modified).
.RS
.PP
Classes do not need to have a constructor defined. If none is specified, the
superclass's constructor will be used instead.
.RE
.TP
\fBdestructor\fI bodyScript\fR
.
@@ -102,16 +104,6 @@ class being defined. Note that the methods themselves may be actually defined
by a superclass; subclass exports override superclass visibility, and may in
turn be overridden by instances.
.TP
\fBfilter\fR ?\fI\-slotOperation\fR? ?\fImethodName ...\fR?
.
This slot (see \fBSLOTTED DEFINITIONS\fR below)
sets or updates the list of method names that are used to guard whether
method call to instances of the class may be called and what the method's
results are. Each \fImethodName\fR names a single filtering method (which may
be exposed or not exposed); it is not an error for a non-existent method to be
named since they may be defined by subclasses.
By default, this slot works by appending.
.TP
\fBforward\fI name cmdName \fR?\fIarg ...\fR?
.
This creates or updates a forwarded method called \fIname\fR. The method is
@@ -140,7 +132,7 @@ where the current namespace is the instance namespace of the class object
itself. This is useful for setting up, e.g., class-scoped variables.
.VE TIP478
.TP
\fBmethod\fI name argList bodyScript\fR
\fBmethod\fI name \fR?\fIoption\fR? \fIargList bodyScript\fR
.
This creates or updates a method that is implemented as a procedure-like
script. The name of the method is \fIname\fR, the formal arguments to the
@@ -150,23 +142,20 @@ the body of the method is evaluated, the current namespace of the method will
be a namespace that is unique to the current object. The method will be
exported if \fIname\fR starts with a lower-case letter, and non-exported
otherwise; this behavior can be overridden via \fBexport\fR and
\fBunexport\fR.
\fBunexport\fR
.VS TIP519
or by specifying \fB\-export\fR, \fB\-private\fR or \fB\-unexport\fR in the
optional parameter \fIoption\fR.
.VE TIP519
.RS
.PP
.VS TIP500
If in a private definition context (see the \fBprivate\fR definition command,
below), this command creates private procedure-like methods.
below) or if the \fB\-private\fR flag is given for \fIoption\fR, this command
creates private procedure-like methods.
.VE TIP500
.RE
.TP
\fBmixin\fR ?\fI\-slotOperation\fR? ?\fIclassName ...\fR?
.
This slot (see \fBSLOTTED DEFINITIONS\fR below)
sets or updates the list of additional classes that are to be mixed into
all the instances of the class being defined. Each \fIclassName\fR argument
names a single class that is to be mixed in.
By default, this slot works by replacement.
.TP
\fBprivate \fIcmd arg...\fR
.TP
\fBprivate \fIscript\fR
@@ -186,16 +175,6 @@ context.
.RE
.VE TIP500
.TP
\fBrenamemethod\fI fromName toName\fR
.
This renames the method called \fIfromName\fR in a class to \fItoName\fR. The
method must have previously existed in the class, and \fItoName\fR must not
previously refer to a method in that class. Does not affect the superclasses
of the class, nor does it affect the subclasses or instances of the class
(except when they have a call chain through the class being modified). Does
not change the export status of the method; if it was exported before, it will
be afterwards.
.TP
\fBself\fI subcommand arg ...\fR
.TP
\fBself\fI script\fR
@@ -269,24 +248,79 @@ namespace has a unique prefix that makes accidental use from other classes
extremely unlikely.
.VE TIP500
.RE
.SS "CONFIGURING OBJECTS"
.SS "ADVANCED CLASS CONFIGURATION OPTIONS"
.PP
The following definitions are also supported, but are not required in simple
programs:
.TP
\fBdefinitionnamespace\fR ?\fIkind\fR? \fInamespaceName\fR
.VS TIP524
This allows control over what namespace will be used by the \fBoo::define\fR
and \fBoo::objdefine\fR commands to look up the definition commands they
use. When any object has a definition operation applied to it, \fIthe class that
it is an instance of\fR (and its superclasses and mixins) is consulted for
what definition namespace to use. \fBoo::define\fR gets the class definition
namespace, and \fB::oo::objdefine\fR gets the instance definition namespace,
but both otherwise use the identical lookup operation.
.RS
.PP
This sets the definition namespace of kind \fIkind\fR provided by the current
class to \fInamespaceName\fR. The \fInamespaceName\fR must refer to a
currently existing namespace, or must be the empty string (to stop the current
class from having such a namespace connected). The \fIkind\fR, if supplied,
must be either \fB\-class\fR (the default) or \fB\-instance\fR to specify the
whether the namespace for use with \fBoo::define\fR or \fBoo::objdefine\fR
respectively is being set.
.PP
The class \fBoo::object\fR has its instance namespace locked to
\fB::oo::objdefine\fR, and the class \fBoo::class\fR has its class namespace
locked to \fB::oo::define\fR. A consequence of this is that effective use of
this feature for classes requires the definition of a metaclass.
.RE
.VE TIP524
.TP
\fBdeletemethod\fI name\fR ?\fIname ...\fR?
.
This deletes each of the methods called \fIname\fR from a class. The methods
must have previously existed in that class. Does not affect the superclasses
of the class, nor does it affect the subclasses or instances of the class
(except when they have a call chain through the class being modified) or the
class object itself.
.TP
\fBfilter\fR ?\fI\-slotOperation\fR? ?\fImethodName ...\fR?
.
This slot (see \fBSLOTTED DEFINITIONS\fR below)
sets or updates the list of method names that are used to guard whether
method call to instances of the class may be called and what the method's
results are. Each \fImethodName\fR names a single filtering method (which may
be exposed or not exposed); it is not an error for a non-existent method to be
named since they may be defined by subclasses.
By default, this slot works by appending.
.TP
\fBmixin\fR ?\fI\-slotOperation\fR? ?\fIclassName ...\fR?
.
This slot (see \fBSLOTTED DEFINITIONS\fR below)
sets or updates the list of additional classes that are to be mixed into
all the instances of the class being defined. Each \fIclassName\fR argument
names a single class that is to be mixed in.
By default, this slot works by replacement.
.TP
\fBrenamemethod\fI fromName toName\fR
.
This renames the method called \fIfromName\fR in a class to \fItoName\fR. The
method must have previously existed in the class, and \fItoName\fR must not
previously refer to a method in that class. Does not affect the superclasses
of the class, nor does it affect the subclasses or instances of the class
(except when they have a call chain through the class being modified), or the
class object itself. Does
not change the export status of the method; if it was exported before, it will
be afterwards.
.SH "CONFIGURING OBJECTS"
.PP
The following commands are supported in the \fIdefScript\fR for
\fBoo::objdefine\fR, each of which may also be used in the \fIsubcommand\fR
form:
.TP
\fBclass\fI className\fR
.
This allows the class of an object to be changed after creation. Note that the
class's constructors are not called when this is done, and so the object may
well be in an inconsistent state unless additional configuration work is done.
.TP
\fBdeletemethod\fI name\fR ?\fIname ...\fR
.
This deletes each of the methods called \fIname\fR from an object. The methods
must have previously existed in that object. Does not affect the classes that
the object is an instance of.
.TP
\fBexport\fI name \fR?\fIname ...\fR?
.
This arranges for each of the named methods, \fIname\fR, to be exported
@@ -294,17 +328,6 @@ This arranges for each of the named methods, \fIname\fR, to be exported
being defined. Note that the methods themselves may be actually defined by a
class or superclass; object exports override class visibility.
.TP
\fBfilter\fR ?\fI\-slotOperation\fR? ?\fImethodName ...\fR?
.
This slot (see \fBSLOTTED DEFINITIONS\fR below)
sets or updates the list of method names that are used to guard whether a
method call to the object may be called and what the method's results are.
Each \fImethodName\fR names a single filtering method (which may be exposed or
not exposed); it is not an error for a non-existent method to be named. Note
that the actual list of filters also depends on the filters set upon any
classes that the object is an instance of.
By default, this slot works by appending.
.TP
\fBforward\fI name cmdName \fR?\fIarg ...\fR?
.
This creates or updates a forwarded object method called \fIname\fR. The
@@ -321,7 +344,7 @@ below), this command creates private forwarded methods.
.VE TIP500
.RE
.TP
\fBmethod\fI name argList bodyScript\fR
\fBmethod\fI name \fR?\fIoption\fR? \fIargList bodyScript\fR
.
This creates, updates or deletes an object method. The name of the method is
\fIname\fR, the formal arguments to the method (defined using the same format
@@ -329,12 +352,18 @@ as for the Tcl \fBproc\fR command) will be \fIargList\fR, and the body of the
method will be \fIbodyScript\fR. When the body of the method is evaluated, the
current namespace of the method will be a namespace that is unique to the
object. The method will be exported if \fIname\fR starts with a lower-case
letter, and non-exported otherwise.
letter, and non-exported otherwise;
.VS TIP519
this can be overridden by specifying \fB\-export\fR, \fB\-private\fR or
\fB\-unexport\fR in the optional parameter \fIoption\fR, or via the
\fBexport\fR and \fBunexport\fR definitions.
.VE TIP519
.RS
.PP
.VS TIP500
If in a private definition context (see the \fBprivate\fR definition command,
below), this command creates private procedure-like methods.
below) or if the \fB\-private\fR flag is given for \fIoption\fR, this command
creates private procedure-like methods.
.VE TIP500
.RE
.TP
@@ -363,19 +392,6 @@ difference in behavior when used in a private definition context.
.RE
.VE TIP500
.TP
\fBrenamemethod\fI fromName toName\fR
.
This renames the method called \fIfromName\fR in an object to \fItoName\fR.
The method must have previously existed in the object, and \fItoName\fR must
not previously refer to a method in that object. Does not affect the classes
that the object is an instance of. Does not change the export status of the
method; if it was exported before, it will be afterwards.
.TP
\fBself \fR
.VS TIP470
This gives the name of the object currently being configured.
.VE TIP470
.TP
\fBunexport\fI name \fR?\fIname ...\fR?
.
This arranges for each of the named methods, \fIname\fR, to be not exported
@@ -408,6 +424,50 @@ instance namespace has a unique prefix that makes accidental use from
superclass methods extremely unlikely.
.VE TIP500
.RE
.SS "ADVANCED OBJECT CONFIGURATION OPTIONS"
.PP
The following definitions are also supported, but are not required in simple
programs:
.TP
\fBclass\fI className\fR
.
This allows the class of an object to be changed after creation. Note that the
class's constructors are not called when this is done, and so the object may
well be in an inconsistent state unless additional configuration work is done.
.TP
\fBdeletemethod\fI name\fR ?\fIname ...\fR
.
This deletes each of the methods called \fIname\fR from an object. The methods
must have previously existed in that object (e.g., because it was created
through \fBoo::objdefine method\fR). Does not affect the classes that the
object is an instance of, or remove the exposure of those class-provided
methods in the instance of that class.
.TP
\fBfilter\fR ?\fI\-slotOperation\fR? ?\fImethodName ...\fR?
.
This slot (see \fBSLOTTED DEFINITIONS\fR below)
sets or updates the list of method names that are used to guard whether a
method call to the object may be called and what the method's results are.
Each \fImethodName\fR names a single filtering method (which may be exposed or
not exposed); it is not an error for a non-existent method to be named. Note
that the actual list of filters also depends on the filters set upon any
classes that the object is an instance of.
By default, this slot works by appending.
.TP
\fBrenamemethod\fI fromName toName\fR
.
This renames the method called \fIfromName\fR in an object to \fItoName\fR.
The method must have previously existed in the object, and \fItoName\fR must
not previously refer to a method in that object. Does not affect the classes
that the object is an instance of and cannot rename in an instance object the
methods provided by those classes (though a \fBoo::objdefine forward\fRed
method may provide an equivalent capability). Does not change the export
status of the method; if it was exported before, it will be afterwards.
.TP
\fBself \fR
.VS TIP470
This gives the name of the object currently being configured.
.VE TIP470
.SH "PRIVATE METHODS"
.VS TIP500
When a class or instance has a private method, that private method can only be
@@ -659,6 +719,60 @@ $g update "emailaddress=admins"
\fI\(-> DB: update row ::oo::Obj125 with emailaddress=admins\fR
.CE
.VE TIP478
.PP
.VS TIP524
This example shows how to make a custom definition for a class. Note that it
explicitly includes delegation to the existing definition commands via
\fBnamespace path\fR.
.PP
.CS
namespace eval myDefinitions {
# Delegate to existing definitions where not overridden
namespace path \fB::oo::define\fR
# A custom type of method
proc exprmethod {name arguments body} {
tailcall \fBmethod\fR $name $arguments [list expr $body]
}
# A custom way of building a constructor
proc parameters args {
uplevel 1 [list \fBvariable\fR {*}$args]
set body [join [lmap a $args {
string map [list VAR $a] {
set [my varname VAR] [expr {double($VAR)}]
}
}] ";"]
tailcall \fBconstructor\fR $args $body
}
}
# Bind the namespace into a (very simple) metaclass for use
oo::class create exprclass {
\fBsuperclass\fR oo::class
\fBdefinitionnamespace\fR myDefinitions
}
# Use the custom definitions
exprclass create quadratic {
parameters a b c
exprmethod evaluate {x} {
($a * $x**2) + ($b * $x) + $c
}
}
# Showing the resulting class and object in action
quadratic create quad 1 2 3
for {set x 0} {$x <= 4} {incr x} {
puts [format "quad(%d) = %.2f" $x [quad evaluate $x]]
}
\fI\(-> quad(0) = 3.00\fR
\fI\(-> quad(1) = 6.00\fR
\fI\(-> quad(2) = 11.00\fR
\fI\(-> quad(3) = 18.00\fR
\fI\(-> quad(4) = 27.00\fR
.CE
.VE TIP524
.SH "SEE ALSO"
next(n), oo::class(n), oo::object(n)
.SH KEYWORDS
+23 -11
View File
@@ -28,7 +28,7 @@ writing the resulting dictionary value back to that variable.
Non-existent keys are treated as if they map to an empty string. The
updated dictionary value is returned.
.VS TIP508
If \fIdictionaryVarable\fR indicates an element that does not exist of an
If \fIdictionaryVariable\fR indicates an element that does not exist of an
array that has a default value set, the default value and will be used as the
value of the dictionary prior to the appending operation.
.VE TIP508
@@ -54,10 +54,8 @@ type (which may be abbreviated.) Supported filter types are:
.RS
.TP
\fBdict filter \fIdictionaryValue \fBkey\fR ?\fIglobPattern ...\fR?
.VS 8.6
The key rule only matches those key/value pairs whose keys match any
of the given patterns (in the style of \fBstring match\fR.)
.VE 8.6
.TP
\fBdict filter \fIdictionaryValue \fBscript {\fIkeyVariable valueVariable\fB} \fIscript\fR
.
@@ -74,10 +72,8 @@ result. The key/value pairs are tested in the order in which the keys
were inserted into the dictionary.
.TP
\fBdict filter \fIdictionaryValue \fBvalue \fR?\fIglobPattern ...\fR?
.VS 8.6
The value rule only matches those key/value pairs whose values match any
of the given patterns (in the style of \fBstring match\fR.)
.VE 8.6
.RE
.TP
\fBdict for {\fIkeyVariable valueVariable\fB} \fIdictionaryValue body\fR
@@ -120,6 +116,22 @@ It is an error to attempt to retrieve a value for a key that is not
present in the dictionary.
.RE
.TP
\fBdict getdef \fIdictionaryValue \fR?\fIkey ...\fR? \fIkey default\fR
.TP
\fBdict getwithdefault \fIdictionaryValue \fR?\fIkey ...\fR? \fIkey default\fR
.VS "8.7, TIP342"
This behaves the same as \fBdict get\fR (with at least one \fIkey\fR
argument), returning the value that the key path maps to in the
dictionary \fIdictionaryValue\fR, except that instead of producing an
error because the \fIkey\fR (or one of the \fIkey\fRs on the key path)
is absent, it returns the \fIdefault\fR argument instead.
.RS
.PP
Note that there must always be at least one \fIkey\fR provided, and that
\fBdict getdef\fR and \fBdict getwithdefault\fR are aliases for each other.
.RE
.VE "8.7, TIP342"
.TP
\fBdict incr \fIdictionaryVariable key \fR?\fIincrement\fR?
.
This adds the given increment value (an integer that defaults to 1 if
@@ -130,7 +142,7 @@ are treated as if they map to 0. It is an error to increment a value
for an existing key if that value is not an integer. The updated
dictionary value is returned.
.VS TIP508
If \fIdictionaryVarable\fR indicates an element that does not exist of an
If \fIdictionaryVariable\fR indicates an element that does not exist of an
array that has a default value set, the default value and will be used as the
value of the dictionary prior to the incrementing operation.
.VE TIP508
@@ -160,7 +172,7 @@ there to be no items to append to the list. It is an error for the
value that the key maps to to not be representable as a list. The
updated dictionary value is returned.
.VS TIP508
If \fIdictionaryVarable\fR indicates an element that does not exist of an
If \fIdictionaryVariable\fR indicates an element that does not exist of an
array that has a default value set, the default value and will be used as the
value of the dictionary prior to the list-appending operation.
.VE TIP508
@@ -222,7 +234,7 @@ containing a mapping from the given key to the given value. When
multiple keys are present, this operation creates or updates a chain
of nested dictionaries. The updated dictionary value is returned.
.VS TIP508
If \fIdictionaryVarable\fR indicates an element that does not exist of an
If \fIdictionaryVariable\fR indicates an element that does not exist of an
array that has a default value set, the default value and will be used as the
value of the dictionary prior to the value insert/update operation.
.VE TIP508
@@ -242,7 +254,7 @@ must be specified, but the last key on the key-path need not exist.
All other components on the path must exist. The updated dictionary
value is returned.
.VS TIP508
If \fIdictionaryVarable\fR indicates an element that does not exist of an
If \fIdictionaryVariable\fR indicates an element that does not exist of an
array that has a default value set, the default value and will be used as the
value of the dictionary prior to the value remove operation.
.VE TIP508
@@ -262,7 +274,7 @@ or some other kind of exceptional exit. The result of \fBdict
update\fR is (unless some kind of error occurs) the result of the
evaluation of \fIbody\fR.
.VS TIP508
If \fIdictionaryVarable\fR indicates an element that does not exist of an
If \fIdictionaryVariable\fR indicates an element that does not exist of an
array that has a default value set, the default value and will be used as the
value of the dictionary prior to the update operation.
.VE TIP508
@@ -301,7 +313,7 @@ dictionaries no longer exists. The result of \fBdict with\fR is
(unless some kind of error occurs) the result of the evaluation of
\fIbody\fR.
.VS TIP508
If \fIdictionaryVarable\fR indicates an element that does not exist of an
If \fIdictionaryVariable\fR indicates an element that does not exist of an
array that has a default value set, the default value and will be used as the
value of the dictionary prior to the updating operation.
.VE TIP508
+4
View File
@@ -59,3 +59,7 @@ while {1} {
file(n), open(n), close(n), fblocked(n), Tcl_StandardChannels(3)
.SH KEYWORDS
channel, end of file
'\" Local Variables:
'\" mode: nroff
'\" fill-column: 78
'\" End:
-2
View File
@@ -338,7 +338,6 @@ if {[catch {\fBexec\fR grep foo bar.txt} results options]} {
}
}
.CE
.VS 8.6
.PP
This is more easily written using the \fBtry\fR command, as that makes
it simpler to trap specific types of errors. This is
@@ -352,7 +351,6 @@ try {
set status [lindex [dict get $options -errorcode] 2]
}
.CE
.VE 8.6
.SS "WORKING WITH QUOTED ARGUMENTS"
.PP
When translating a command from a Unix shell invocation, care should
+4
View File
@@ -49,3 +49,7 @@ if {[catch {main} msg options]} {
exec(n)
.SH KEYWORDS
abort, exit, process
'\" Local Variables:
'\" mode: nroff
'\" fill-column: 78
'\" End:
+116 -35
View File
@@ -17,7 +17,7 @@ expr \- Evaluate an expression
.BE
.SH DESCRIPTION
.PP
Concatenates \fIarg\fRs, separated by a space, into an expression, and evaluates
The \fIexpr\fR command concatenates \fIarg\fRs, separated by a space, into an expression, and evaluates
that expression, returning its value.
The operators permitted in an expression include a subset of
the operators permitted in C expressions. For those operators
@@ -46,22 +46,6 @@ value is the form produced by the \fB%g\fR format specifier of Tcl's
An expression consists of a combination of operands, operators, parentheses and
commas, possibly with whitespace between any of these elements, which is
ignored.
An integer operand may be specified in decimal (the normal case, the optional
first two characters are \fB0d\fR), binary
(the first two characters are \fB0b\fR), octal
(the first two characters are \fB0o\fR), or hexadecimal
(the first two characters are \fB0x\fR) form. For
compatibility with older Tcl releases, an operand that begins with \fB0\fR is
interpreted as an octal integer even if the second character is not \fBo\fR.
A floating-point number may be specified in any of several
common decimal formats, and may use the decimal point \fB.\fR,
\fBe\fR or \fBE\fR for scientific notation, and
the sign characters \fB+\fR and \fB\-\fR. The
following are all valid floating-point numbers: 2.1, 3., 6e4, 7.91e+16.
The strings \fBInf\fR
and \fBNaN\fR, in any combination of case, are also recognized as floating point
values. An operand that doesn't have a numeric interpretation must be quoted
with either braces or with double quotes.
.PP
An operand may be specified in any of the following ways:
.IP [1]
@@ -97,12 +81,55 @@ and the value of \fBb\fR is 6. The command on the left side of each line
produces the value on the right side.
.PP
.CS
.ta 6c
\fBexpr\fR 3.1 + $a \fI6.1\fR
\fBexpr\fR 2 + "$a.$b" \fI5.6\fR
\fBexpr\fR 4*[llength "6 2"] \fI8\fR
.ta 9c
\fBexpr\fR {3.1 + $a} \fI6.1\fR
\fBexpr\fR {2 + "$a.$b"} \fI5.6\fR
\fBexpr\fR {4*[llength "6 2"]} \fI8\fR
\fBexpr\fR {{word one} < "word $a"} \fI0\fR
.CE
.PP
\fBInteger value\fR
.PP
An integer operand may be specified in decimal (the normal case, the optional
first two characters are \fB0d\fR), binary
(the first two characters are \fB0b\fR), octal
(the first two characters are \fB0o\fR), or hexadecimal
(the first two characters are \fB0x\fR) form. For
compatibility with older Tcl releases, an operand that begins with \fB0\fR is
interpreted as an octal integer even if the second character is not \fBo\fR.
.PP
\fBFloating-point value\fR
.PP
A floating-point number may be specified in any of several
common decimal formats, and may use the decimal point \fB.\fR,
\fBe\fR or \fBE\fR for scientific notation, and
the sign characters \fB+\fR and \fB\-\fR. The
following are all valid floating-point numbers: 2.1, 3., 6e4, 7.91e+16.
The strings \fBInf\fR
and \fBNaN\fR, in any combination of case, are also recognized as floating point
values. An operand that doesn't have a numeric interpretation must be quoted
with either braces or with double quotes.
.PP
\fBBoolean value\fR
.PP
A boolean value may be represented by any of the values \fB0\fR, \fBfalse\fR, \fBno\fR,
or \fBoff\fR and any of the values \fB1\fR, \fBtrue\fR, \fByes\fR, or \fBon\fR.
.PP
\fBDigit Separator\fR
.PP
Digits in any numeric value may be separated with one or more underscore
characters, "\fB_\fR", to improve readability. These separators may only
appear between digits. The separator may not appear at the start of a
numeric value, between the leading 0 and radix specifier, or at the
end of a numeric value. Here are some examples:
.PP
.CS
.ta 9c
\fBexpr\fR 100_000_000 \fI100000000\fR
\fBexpr\fR 0xffff_ffff \fI4294967295\fR
\fBformat\fR 0x%x 0b1111_1110_1101_1011 \fI0xfedb\fR
.CE
.PP
.SS OPERATORS
.PP
For operators having both a numeric mode and a string mode, the numeric mode is
@@ -126,7 +153,8 @@ applied to integers.
.TP 20
\fB**\fR
.
Exponentiation. Valid for numeric operands.
Exponentiation. Valid for numeric operands. The maximum exponent value
that Tcl can handle if the first number is an integer > 1 is 268435455.
.TP 20
\fB*\0\0/\0\0%\fR
.
@@ -158,7 +186,18 @@ A right shift always propagates the sign bit.
.TP 20
\fB<\0\0>\0\0<=\0\0>=\fR
.
Boolean less than, greater than, less than or equal, and greater than or equal.
Boolean numeric-preferring comparisons: less than, greater than, less than or
equal, and greater than or equal. If either argument is not numeric, the
comparison is done using UNICODE string comparison, as with the string
comparison operators below, which have the same precedence.
.TP 20
\fBlt\0\0gt\0\0le\0\0ge\fR
.VS "8.7, TIP461"
Boolean string comparisons: less than, greater than, less than or equal, and
greater than or equal. These always compare values using their UNICODE strings
(also see \fBstring compare\fR), unlike with the numeric-preferring
comparisons abov, which have the same precedence.
.VE "8.7, TIP461"
.TP 20
\fB==\0\0!=\fR
.
@@ -189,16 +228,22 @@ Bit-wise OR. Valid for integer operands.
\fB&&\fR
.
Logical AND. If both operands are true, the result is 1, or 0 otherwise.
This operator evaluates lazily; it only evaluates its second operand if it
must in order to determine its result.
This operator evaluates lazily; it only evaluates its second operand if it
must in order to determine its result.
.TP 20
\fB||\fR
.
Logical OR. If both operands are false, the result is 0, or 1 otherwise.
This operator evaluates lazily; it only evaluates its second operand if it
must in order to determine its result.
.TP 20
\fIx\fB?\fIy\fB:\fIz\fR
\fIx \fB?\fI y \fB:\fI z\fR
.
If-then-else, as in C. If \fIx\fR is false , the result is the value of
\fIy\fR. Otherwise the result is the value of \fIz\fR.
This operator evaluates lazily; it evaluates only one of \fIy\fR or \fIz\fR.
.PP
The exponentiation operator promotes types in the same way that the multiply
and divide operators do, and the result is is the same as the result of
@@ -206,6 +251,7 @@ and divide operators do, and the result is is the same as the result of
Exponentiation groups right-to-left within a precedence level. Other binary
operators group left-to-right. For example, the value of
.PP
.PP
.CS
\fBexpr\fR {4*2 < 7}
.CE
@@ -224,7 +270,7 @@ which means that operands are not evaluated if they are
not needed to determine the outcome. For example, in
.PP
.CS
\fBexpr\fR {$v ? [a] : [b]}
\fBexpr\fR {$v?[a]:[b]}
.CE
.PP
only one of \fB[a]\fR or \fB[b]\fR is evaluated,
@@ -336,39 +382,73 @@ This also avoids issues that can arise if Tcl is allowed to perform
substitution on the value before \fBexpr\fR is called.
.PP
In the following example, the value of the expression is 11 because the Tcl parser first
substitutes \fB$b\fR and \fBexpr\fR then substitutes \fB$a\fR. Enclosing the
expression in braces would result in a syntax error.
substitutes \fB$b\fR and \fBexpr\fR then substitutes \fB$a\fR as part
of evaluating the expression
.QW "$a + 2*4" .
Enclosing the
expression in braces would result in a syntax error as \fB$b\fR does
not evaluate to a numeric value.
.PP
.CS
set a 3
set b {$a + 2}
\fBexpr\fR $b*4
.CE
.PP
When an expression is generated at runtime, like the one above is, the bytcode
When an expression is generated at runtime, like the one above is, the bytecode
compiler must ensure that new code is generated each time the expression
is evaluated. This is the most costly kind of expression from a performance
perspective. In such cases, consider directly using the commands described in
the \fBmathfunc\fR(n) or \fBmathop\fR(n) documentation instead of \fBexpr\fR.
.PP
Most expressions are not formed at runtime, but are literal strings or contain
substitutions that don't introduce other substitutions. To allow the bytecode
compiler to work with an expression as a string literal at compilation time,
ensure that it contains no substitutions or that it is enclosed in braces or
otherwise quoted to prevent Tcl from performing substitutions, allowing
\fBexpr\fR to perform them instead.
.PP
If it is necessary to include a non-constant expression string within the
wider context of an otherwise-constant expression, the most efficient
technique is to put the varying part inside a recursive \fBexpr\fR, as this at
least allows for the compilation of the outer part, though it does mean that
the varying part must itself be evaluated as a separate expression. Thus, in
this example the result is 20 and the outer expression benefits from fully
cached bytecode compilation.
.PP
.CS
set a 3
set b {$a + 2}
\fBexpr\fR {[\fBexpr\fR $b] * 4}
.CE
.PP
In general, you should enclose your expression in braces wherever possible,
and where not possible, the argument to \fBexpr\fR should be an expression
defined elsewhere as simply as possible. It is usually more efficient and
safer to use other techniques (e.g., the commands in the \fBtcl::mathop\fR
namespace) than it is to do complex expression generation.
.SH EXAMPLES
.PP
A numeric comparison whose result is 1:
.PP
.CS
\fBexpr\fR {"0x03" > "2"}
.CE
.PP
A string comparison whose result is 1:
.PP
.CS
\fBexpr\fR {"0y" > "0x12"}
.CE
.PP
.VS "8.7, TIP461"
A forced string comparison whose result is 0:
.PP
.CS
\fBexpr\fR {"0x03" gt "2"}
.CE
.VE "8.7, TIP461"
.PP
Define a procedure that computes an
.QW interesting
mathematical function:
@@ -421,13 +501,14 @@ set randNum [\fBexpr\fR { int(100 * rand()) }]
array(n), for(n), if(n), mathfunc(n), mathop(n), namespace(n), proc(n),
string(n), Tcl(n), while(n)
.SH KEYWORDS
arithmetic, boolean, compare, expression, fuzzy comparison
arithmetic, boolean, compare, expression, fuzzy comparison, integer value
.SH COPYRIGHT
.nf
Copyright (c) 1993 The Regents of the University of California.
Copyright (c) 1994-2000 Sun Microsystems Incorporated.
Copyright (c) 2005 by Kevin B. Kenny <kennykb@acm.org>. All rights reserved.
Copyright \(co 1993 The Regents of the University of California.
Copyright \(co 1994-2000 Sun Microsystems Incorporated.
Copyright \(co 2005 by Kevin B. Kenny <kennykb@acm.org>. All rights reserved.
.fi
'\" Local Variables:
'\" mode: nroff
'\" fill-column: 78
'\" End:
+4
View File
@@ -65,3 +65,7 @@ vwait forever
gets(n), open(n), read(n), socket(n), Tcl_StandardChannels(3)
.SH KEYWORDS
blocking, nonblocking
'\" Local Variables:
'\" mode: nroff
'\" fill-column: 78
'\" End:
+30 -2
View File
@@ -433,9 +433,38 @@ If \fIname\fR contains no separators then returns \fIname\fR. So,
\fBfile tail a/b\fR, \fBfile tail a/b/\fR and \fBfile tail b\fR all
return \fBb\fR.
.TP
\fBfile tempdir\fR ?\fItemplate\fR?
.VS "8.7, TIP 431"
Creates a temporary directory (guaranteed to be newly created and writable by
the current script) and returns its name. If \fItemplate\fR is given, it
specifies one of or both of the existing directory (on a filesystem controlled
by the operating system) to contain the temporary directory, and the base part
of the directory name; it is considered to have the location of the directory
if there is a directory separator in the name, and the base part is everything
after the last directory separator (if non-empty). The default containing
directory is determined by system-specific operations, and the default base
name prefix is
.QW \fBtcl\fR .
.RS
.PP
The following output is typical and illustrative; the actual output will vary
between platforms:
.PP
.CS
% \fBfile tempdir\fR
/var/tmp/tcl_u0kuy5
% \fBfile tempdir\fR /tmp/myapp
/tmp/myapp_8o7r9L
% \fBfile tempdir\fR /tmp/
/tmp/tcl_1mOJHD
% \fBfile tempdir\fR myapp
/var/tmp/myapp_0ihS0n
.CE
.RE
.VE "8.7, TIP 431"
.TP
\fBfile tempfile\fR ?\fInameVar\fR? ?\fItemplate\fR?
'\" TIP #210
.VS 8.6
Creates a temporary file and returns a read-write channel opened on that file.
If the \fInameVar\fR is given, it specifies a variable that the name of the
temporary file will be written into; if absent, Tcl will attempt to arrange
@@ -450,7 +479,6 @@ Note that temporary files are \fIonly\fR ever created on the native
filesystem. As such, they can be relied upon to be used with operating-system
native APIs and external programs that require a filename.
.RE
.VE 8.6
.TP
\fBfile type \fIname\fR
.
+4
View File
@@ -154,3 +154,7 @@ fconfigure(n), gets(n), interp(n), puts(n), read(n), Tcl_StandardChannels(3)
.SH KEYWORDS
asynchronous I/O, blocking, channel, event handler, nonblocking, readable,
script, writable.
'\" Local Variables:
'\" mode: nroff
'\" fill-column: 78
'\" End:
+4
View File
@@ -176,3 +176,7 @@ file(n), glob(n)
.SH KEYWORDS
current directory, absolute file name, relative file name,
volume-relative file name, portability
'\" Local Variables:
'\" mode: nroff
'\" fill-column: 78
'\" End:
+4
View File
@@ -43,3 +43,7 @@ puts "Hello there, $name!"
file(n), open(n), socket(n), Tcl_StandardChannels(3)
.SH KEYWORDS
blocking, buffer, channel, flush, nonblocking, output
'\" Local Variables:
'\" mode: nroff
'\" fill-column: 78
'\" End:
+4
View File
@@ -102,3 +102,7 @@ for(n), while(n), break(n), continue(n)
.SH KEYWORDS
foreach, iteration, list, loop
'\" Local Variables:
'\" mode: nroff
'\" fill-column: 78
'\" End:
+83
View File
@@ -0,0 +1,83 @@
'\"
'\" Copyright (c) 2018 by Kevin B. Kenny <kennykb@acm.org>. All rights reserved
'\" Copyright (c) 2019 by Donal Fellows
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\"
.TH fpclassify n 8.7 Tcl "Tcl Float Classifier"
.so man.macros
.BS
'\" Note: do not modify the .SH NAME line immediately below!
.SH NAME
fpclassify \- Floating point number classification of Tcl values
.SH SYNOPSIS
package require \fBTcl 8.7\fR
.sp
\fBfpclassify \fIvalue\fR
.BE
.SH DESCRIPTION
The \fBfpclassify\fR command takes a floating point number, \fIvalue\fR, and
returns one of the following strings that describe it:
.TP
\fBzero\fR
.
\fIvalue\fR is a floating point zero.
.TP
\fBsubnormal\fR
.
\fIvalue\fR is the result of a gradual underflow.
.TP
\fBnormal\fR
.
\fIvalue\fR is an ordinary floating-point number (not zero, subnormal,
infinite, nor NaN).
.TP
\fBinfinite\fR
.
\fIvalue\fR is a floating-point infinity.
.TP
\fBnan\fR
.
\fIvalue\fR is Not-a-Number.
.PP
The \fBfpclassify\fR command throws an error if value is not a floating-point
value and cannot be converted to one.
.SH EXAMPLE
.PP
This shows how to check whether the result of a computation is numerically
safe or not. (Note however that it does not guard against numerical errors;
just against representational problems.)
.PP
.CS
set value [command-that-computes-a-value]
switch [\fBfpclassify\fR $value] {
normal - zero {
puts "Result is $value"
}
infinite {
puts "Result is infinite"
}
subnormal {
puts "Result is $value - WARNING! precision lost"
}
nan {
puts "Computation completely failed"
}
}
.CE
.SH "SEE ALSO"
expr(n), mathfunc(n)
.SH KEYWORDS
floating point
.SH STANDARDS
This command depends on the \fBfpclassify\fR() C macro conforming to
.QW "ISO C99"
(i.e., to ISO/IEC 9899:1999).
.SH COPYRIGHT
.nf
Copyright \(co 2018 by Kevin B. Kenny <kennykb@acm.org>. All rights reserved
.fi
'\" Local Variables:
'\" mode: nroff
'\" End:
+4
View File
@@ -56,3 +56,7 @@ proc accum {string} {
namespace(n), upvar(n), variable(n)
.SH KEYWORDS
global, namespace, procedure, variable
'\" Local Variables:
'\" mode: nroff
'\" fill-column: 78
'\" End:
Loaded 100 of 875 files, more files were not shown because too many files have changed in this diff. Show more