Ticket UUID: | 16bf24d70b875e15d9bbde64f090eef1dae943a6 | |||
Title: | Installed Thread for Tcl 8.7 breaks availability of Thread in 8.6 | |||
Type: | Bug | Version: | 2.8.8 | |
Submitter: | dgp | Created on: | 2022-11-18 18:37:35 | |
Subsystem: | - New Builtin Commands | Assigned To: | jan.nijtmans | |
Priority: | 5 Medium | Severity: | Important | |
Status: | Closed | Last Modified: | 2022-11-18 19:57:31 | |
Resolution: | Fixed | Closed By: | jan.nijtmans | |
Closed on: | 2022-11-18 19:57:31 | |||
Description: |
In any scenario where builds against both 8.6 and 8.7 are getting installed, this can happen. $ ./tclsh % info patch 8.6.12 % package require Thread version conflict for package "Tcl": have 8.6.12, need 8.7a6 % package versions Thread 2.6.6 2.6.7 2.7.0 2.7b1 2.7.1 2.7.3 2.8.0 2.8.1 2.8.4 2.8.5 2.8.7 2.8.8 % package require -exact Thread 2.8.7 2.8.7 If the [load] is going to fail when attempted in an 8.6 interpreter, then the pkgIndex.tcl script needs to prevent [package ifneeded] from being called in an 8.6 interpreter. | |||
User Comments: |
jan.nijtmans added on 2022-11-18 19:57:31:
This is not a problem in Thread 2.8.8, it's built-in in Tcl 8.7's header-file on purpose: Whenever Tcl API's are unstable, we don't want extensions compiled against such header-files to be used in stable builds. Whenever the Tcl version changes (e.g. vrom a2 to a3) we want all extensions to be re-compiled otherwise crashes could occur due to API changes (we have seen that happen!) Now, 8.7 is quite stable, approaching b1. Therefore, this protection is no longer necessary (it hurts in case of Thread 2.8.8). So, I removed it now: 52902124b815667a |