From 3129864cc27566ec6c62c86299d366812f9ce82c Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Thu, 16 Mar 2023 20:12:23 +0000 Subject: If TCL_UTF_MAX=4, don't set 'exact' to 1 --- generic/tcl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generic/tcl.h b/generic/tcl.h index 7a8c8a8..82430ba 100644 --- a/generic/tcl.h +++ b/generic/tcl.h @@ -2425,7 +2425,7 @@ const char * TclTomMathInitializeStubs(Tcl_Interp *interp, # else # define Tcl_InitStubs(interp, version, exact) \ (Tcl_InitStubs)(interp, TCL_PATCH_LEVEL, \ - 1|(TCL_MAJOR_VERSION<<8)|(TCL_MINOR_VERSION<<16), \ + (exact)|(TCL_MAJOR_VERSION<<8)|(TCL_MINOR_VERSION<<16), \ TCL_STUB_MAGIC) # endif #else -- cgit v0.12 From 9c8a1292c0c8aba0cd2c718d12e953c86af6cd7d Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 17 Mar 2023 07:57:14 +0000 Subject: Don't introduce size_t in a header-file which didn't use it before. Make more clear that those are unsupported internal functions. --- generic/tcl.decls | 13 ++++++------- generic/tclDecls.h | 12 ++++++------ generic/tclStubInit.c | 14 ++++++++------ 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/generic/tcl.decls b/generic/tcl.decls index 7f734c6..b50f775 100644 --- a/generic/tcl.decls +++ b/generic/tcl.decls @@ -2326,24 +2326,23 @@ declare 630 { # ----- BASELINE -- FOR -- 8.6.0 ----- # -# TIP #481 (undocumented stub entries) +# (unsupported in Tcl 8.6) declare 651 { - char *TclGetStringFromObj_(Tcl_Obj *objPtr, size_t *lengthPtr) + char *TclGetStringFromObj_(Tcl_Obj *objPtr, void *lengthPtr) } declare 652 { - unsigned short *TclGetUnicodeFromObj_(Tcl_Obj *objPtr, size_t *lengthPtr) + unsigned short *TclGetUnicodeFromObj_(Tcl_Obj *objPtr, void *lengthPtr) } -# Only available in Tcl 8.x, NULL in Tcl 9.0 declare 653 { - unsigned char *TclGetByteArrayFromObj_(Tcl_Obj *objPtr, size_t *numBytesPtr) + unsigned char *TclGetByteArrayFromObj_(Tcl_Obj *objPtr, void *numBytesPtr) } +# ----- BASELINE -- FOR -- 8.7.0 / 9.0.0 ----- # + declare 687 { void TclUnusedStubEntry(void) } -# ----- BASELINE -- FOR -- 8.7.0 / 9.0.0 ----- # - ############################################################################## # Define the platform specific public Tcl interface. These functions are only diff --git a/generic/tclDecls.h b/generic/tclDecls.h index 551a5b6..078974c 100644 --- a/generic/tclDecls.h +++ b/generic/tclDecls.h @@ -1837,13 +1837,13 @@ EXTERN void Tcl_ZlibStreamSetCompressionDictionary( /* Slot 650 is reserved */ /* 651 */ EXTERN char * TclGetStringFromObj_(Tcl_Obj *objPtr, - size_t *lengthPtr); + void *lengthPtr); /* 652 */ EXTERN unsigned short * TclGetUnicodeFromObj_(Tcl_Obj *objPtr, - size_t *lengthPtr); + void *lengthPtr); /* 653 */ EXTERN unsigned char * TclGetByteArrayFromObj_(Tcl_Obj *objPtr, - size_t *numBytesPtr); + void *numBytesPtr); /* Slot 654 is reserved */ /* Slot 655 is reserved */ /* Slot 656 is reserved */ @@ -2565,9 +2565,9 @@ typedef struct TclStubs { void (*reserved648)(void); void (*reserved649)(void); void (*reserved650)(void); - char * (*tclGetStringFromObj_) (Tcl_Obj *objPtr, size_t *lengthPtr); /* 651 */ - unsigned short * (*tclGetUnicodeFromObj_) (Tcl_Obj *objPtr, size_t *lengthPtr); /* 652 */ - unsigned char * (*tclGetByteArrayFromObj_) (Tcl_Obj *objPtr, size_t *numBytesPtr); /* 653 */ + char * (*tclGetStringFromObj_) (Tcl_Obj *objPtr, void *lengthPtr); /* 651 */ + unsigned short * (*tclGetUnicodeFromObj_) (Tcl_Obj *objPtr, void *lengthPtr); /* 652 */ + unsigned char * (*tclGetByteArrayFromObj_) (Tcl_Obj *objPtr, void *numBytesPtr); /* 653 */ void (*reserved654)(void); void (*reserved655)(void); void (*reserved656)(void); diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index 565dd8c..ff3a099 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -139,15 +139,17 @@ static const char *TclGetStartupScriptFileName(void) return Tcl_GetString(path); } +# (unsupported in Tcl 8.6) + #define TclGetStringFromObj_ getStringFromObj static char * TclGetStringFromObj_( Tcl_Obj *objPtr, - size_t *lengthPtr) + void *lengthPtr) { int length; char *result = Tcl_GetStringFromObj(objPtr, &length); - *lengthPtr = (size_t)length; + *(size_t *)lengthPtr = (size_t)length; return result; } @@ -155,11 +157,11 @@ TclGetStringFromObj_( static unsigned short * TclGetUnicodeFromObj_( Tcl_Obj *objPtr, - size_t *lengthPtr) + void *lengthPtr) { int length; Tcl_UniChar *result = Tcl_GetUnicodeFromObj(objPtr, &length); - *lengthPtr = (size_t)length; + *(size_t *)lengthPtr = (size_t)length; return result; } @@ -167,11 +169,11 @@ TclGetUnicodeFromObj_( static unsigned char * TclGetByteArrayFromObj_( Tcl_Obj *objPtr, - size_t *numBytesPtr) + void *numBytesPtr) { int numBytes; unsigned char *result = Tcl_GetByteArrayFromObj(objPtr, &numBytes); - *numBytesPtr = (size_t)numBytes; + *(size_t *)numBytesPtr = (size_t)numBytes; return result; } -- cgit v0.12 From 4aa63fcc254f450717aba4c135f87fedcfdd38cc Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 17 Mar 2023 08:24:59 +0000 Subject: Don't return from a void function --- generic/tclStubInit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index ff3a099..1ef7f17 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -187,7 +187,7 @@ static unsigned short TclWinNToHS(unsigned short ns) { #define TclWinConvertError_ winConvertError static void TclWinConvertError_(unsigned errCode) { - return TclWinConvertError(errCode); + TclWinConvertError(errCode); } #endif -- cgit v0.12 From 87b64566847ce5fda7292ec8b2d2de3739e7e680 Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 17 Mar 2023 12:35:51 +0000 Subject: unbreak the build --- generic/tclStubInit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generic/tclStubInit.c b/generic/tclStubInit.c index 1ef7f17..c504586 100644 --- a/generic/tclStubInit.c +++ b/generic/tclStubInit.c @@ -139,7 +139,7 @@ static const char *TclGetStartupScriptFileName(void) return Tcl_GetString(path); } -# (unsupported in Tcl 8.6) +/* (unsupported in Tcl 8.6) */ #define TclGetStringFromObj_ getStringFromObj static char * -- cgit v0.12 From 13b1529c7b6f4da55532170ee08ac047581b6300 Mon Sep 17 00:00:00 2001 From: dgp Date: Fri, 17 Mar 2023 14:22:44 +0000 Subject: Clean up after events to avoid errors in later tests that use an event loop. --- tests/ioTrans.test | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/ioTrans.test b/tests/ioTrans.test index 3a23e61..44e7d64 100644 --- a/tests/ioTrans.test +++ b/tests/ioTrans.test @@ -643,6 +643,9 @@ namespace eval reflector { proc finalize {_ chan} { + foreach id [after info] { + after cancel $id + } namespace delete $_ } -- cgit v0.12 From e9ccf557eb23f66c28210e967e344a61fef2ed58 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 17 Mar 2023 16:12:23 +0000 Subject: Fix [6390566ecd]: Testcase cmdAH-4.3.13.00DC0000.tail.utf-32.tcl8.a fails sometimes --- generic/tclEncoding.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/generic/tclEncoding.c b/generic/tclEncoding.c index f15b479..5a89644 100644 --- a/generic/tclEncoding.c +++ b/generic/tclEncoding.c @@ -2635,9 +2635,12 @@ Utf32ToUtfProc( * unsigned short-size data. */ - if ((ch > 0) && (ch < 0x80)) { + if ((unsigned)ch - 1 < 0x7F) { *dst++ = (ch & 0xFF); } else { + if (((prev & ~0x3FF) != 0xD800) && ((ch & ~0x3FF) == 0xDC00)) { + *dst = 0; /* In case of lower surrogate, don't try to combine */ + } dst += Tcl_UniCharToUtf(ch, dst); } src += sizeof(unsigned int); @@ -2856,7 +2859,7 @@ Utf16ToUtfProc( } if (((prev & ~0x3FF) == 0xD800) && ((ch & ~0x3FF) != 0xDC00)) { if (((flags & TCL_ENCODING_STRICT) == TCL_ENCODING_STRICT)) { - result = TCL_CONVERT_UNKNOWN; + result = TCL_CONVERT_SYNTAX; src -= 2; /* Go back to beginning of high surrogate */ dst--; /* Also undo writing a single byte too much */ numChars--; @@ -2877,7 +2880,7 @@ Utf16ToUtfProc( dst += Tcl_UniCharToUtf(ch, dst); } else if (((ch & ~0x3FF) == 0xDC00) && ((flags & TCL_ENCODING_STRICT) == TCL_ENCODING_STRICT)) { /* Lo surrogate not preceded by Hi surrogate */ - result = TCL_CONVERT_UNKNOWN; + result = TCL_CONVERT_SYNTAX; break; } else { *dst = 0; /* In case of lower surrogate, don't try to combine */ @@ -2888,7 +2891,7 @@ Utf16ToUtfProc( if ((ch & ~0x3FF) == 0xD800) { if ((flags & TCL_ENCODING_STRICT) == TCL_ENCODING_STRICT) { - result = TCL_CONVERT_UNKNOWN; + result = TCL_CONVERT_SYNTAX; src -= 2; dst--; numChars--; -- cgit v0.12 From 453c27a88e9da3cb50fefe2c4a5fb7a7d09b8afc Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 17 Mar 2023 20:04:48 +0000 Subject: arm64e -> arm64, since arm64e is not available yet on MacOS (Thanks to Stefan Sobernig) --- unix/configure | 24 ++++++++++++------------ unix/tcl.m4 | 16 ++++++++-------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/unix/configure b/unix/configure index 2ebb2ea..16210e6 100755 --- a/unix/configure +++ b/unix/configure @@ -7669,15 +7669,15 @@ echo "${ECHO_T}$tcl_cv_cc_arch_x86_64" >&6 fi ;; - arm64|arm64e) - echo "$as_me:$LINENO: checking if compiler accepts -arch arm64e flag" >&5 -echo $ECHO_N "checking if compiler accepts -arch arm64e flag... $ECHO_C" >&6 -if test "${tcl_cv_cc_arch_arm64e+set}" = set; then + arm64) + echo "$as_me:$LINENO: checking if compiler accepts -arch arm64 flag" >&5 +echo $ECHO_N "checking if compiler accepts -arch arm64 flag... $ECHO_C" >&6 +if test "${tcl_cv_cc_arch_arm64+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else hold_cflags=$CFLAGS - CFLAGS="$CFLAGS -arch arm64e" + CFLAGS="$CFLAGS -arch arm64" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF @@ -7715,22 +7715,22 @@ if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - tcl_cv_cc_arch_arm64e=yes + tcl_cv_cc_arch_arm64=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -tcl_cv_cc_arch_arm64e=no +tcl_cv_cc_arch_arm64=no fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS=$hold_cflags fi -echo "$as_me:$LINENO: result: $tcl_cv_cc_arch_arm64e" >&5 -echo "${ECHO_T}$tcl_cv_cc_arch_arm64e" >&6 - if test $tcl_cv_cc_arch_arm64e = yes; then +echo "$as_me:$LINENO: result: $tcl_cv_cc_arch_arm64" >&5 +echo "${ECHO_T}$tcl_cv_cc_arch_arm64" >&6 + if test $tcl_cv_cc_arch_arm64 = yes; then - CFLAGS="$CFLAGS -arch arm64e" + CFLAGS="$CFLAGS -arch arm64" do64bit_ok=yes fi @@ -7743,7 +7743,7 @@ echo "$as_me: WARNING: Don't know how enable 64-bit on architecture \`arch\`" >& else # Check for combined 32-bit and 64-bit fat build - if echo "$CFLAGS " |grep -E -q -- '-arch (ppc64|x86_64|arm64e) ' \ + if echo "$CFLAGS " |grep -E -q -- '-arch (ppc64|x86_64|arm64) ' \ && echo "$CFLAGS " |grep -E -q -- '-arch (ppc|i386) '; then fat_32_64=yes diff --git a/unix/tcl.m4 b/unix/tcl.m4 index d9d0a71..0ef9f3d 100644 --- a/unix/tcl.m4 +++ b/unix/tcl.m4 @@ -1541,16 +1541,16 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ CFLAGS="$CFLAGS -arch x86_64" do64bit_ok=yes ]);; - arm64|arm64e) - AC_CACHE_CHECK([if compiler accepts -arch arm64e flag], - tcl_cv_cc_arch_arm64e, [ + arm64) + AC_CACHE_CHECK([if compiler accepts -arch arm64 flag], + tcl_cv_cc_arch_arm64, [ hold_cflags=$CFLAGS - CFLAGS="$CFLAGS -arch arm64e" + CFLAGS="$CFLAGS -arch arm64" AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])], - [tcl_cv_cc_arch_arm64e=yes],[tcl_cv_cc_arch_arm64e=no]) + [tcl_cv_cc_arch_arm64=yes],[tcl_cv_cc_arch_arm64=no]) CFLAGS=$hold_cflags]) - AS_IF([test $tcl_cv_cc_arch_arm64e = yes], [ - CFLAGS="$CFLAGS -arch arm64e" + AS_IF([test $tcl_cv_cc_arch_arm64 = yes], [ + CFLAGS="$CFLAGS -arch arm64" do64bit_ok=yes ]);; *) @@ -1558,7 +1558,7 @@ AC_DEFUN([SC_CONFIG_CFLAGS], [ esac ], [ # Check for combined 32-bit and 64-bit fat build - AS_IF([echo "$CFLAGS " |grep -E -q -- '-arch (ppc64|x86_64|arm64e) ' \ + AS_IF([echo "$CFLAGS " |grep -E -q -- '-arch (ppc64|x86_64|arm64) ' \ && echo "$CFLAGS " |grep -E -q -- '-arch (ppc|i386) '], [ fat_32_64=yes]) ]) -- cgit v0.12 From bdad96ab6988802901289f1b4d1f366a2002f023 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Fri, 17 Mar 2023 20:10:29 +0000 Subject: Few more arm64e -> arm64 --- macosx/Tcl.xcodeproj/project.pbxproj | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/macosx/Tcl.xcodeproj/project.pbxproj b/macosx/Tcl.xcodeproj/project.pbxproj index 4143128..68b9418 100644 --- a/macosx/Tcl.xcodeproj/project.pbxproj +++ b/macosx/Tcl.xcodeproj/project.pbxproj @@ -2132,7 +2132,7 @@ baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Tcl-Release.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CFLAGS = "-arch x86_64 -arch arm64e $(CFLAGS)"; + CFLAGS = "-arch x86_64 -arch arm64 $(CFLAGS)"; MACOSX_DEPLOYMENT_TARGET = 10.6; PREBINDING = NO; }; @@ -2517,7 +2517,7 @@ baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Tcl-Release.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CFLAGS = "-arch x86_64 -arch arm64e $(CFLAGS)"; + CFLAGS = "-arch x86_64 -arch arm64 $(CFLAGS)"; GCC_VERSION = 4.0; MACOSX_DEPLOYMENT_TARGET = 10.6; PREBINDING = NO; @@ -2555,7 +2555,7 @@ baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Tcl-Release.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CFLAGS = "-arch x86_64 -arch arm64e $(CFLAGS)"; + CFLAGS = "-arch x86_64 -arch arm64 $(CFLAGS)"; DEBUG_INFORMATION_FORMAT = dwarf; GCC = "llvm-gcc"; GCC_OPTIMIZATION_LEVEL = 4; @@ -2695,7 +2695,7 @@ ARCHS = ( "$(NATIVE_ARCH_64_BIT)", ); - CFLAGS = "-arch x86_64 -arch arm64e $(CFLAGS)"; + CFLAGS = "-arch x86_64 -arch arm64 $(CFLAGS)"; DEBUG_INFORMATION_FORMAT = dwarf; GCC = clang; GCC_OPTIMIZATION_LEVEL = 4; @@ -2762,7 +2762,7 @@ baseConfigurationReference = F97AE82B0B65C69B00310EA2 /* Tcl-Release.xcconfig */; buildSettings = { ARCHS = "$(ARCHS_STANDARD_64_BIT)"; - CFLAGS = "-arch x86_64 -arch arm64e $(CFLAGS)"; + CFLAGS = "-arch x86_64 -arch arm64 $(CFLAGS)"; CPPFLAGS = "-isysroot $(SDKROOT) $(CPPFLAGS)"; MACOSX_DEPLOYMENT_TARGET = 10.5; PREBINDING = NO; -- cgit v0.12