Tcl Source Code

View Ticket
Login
Ticket UUID: 3f6bb3bb46f4c2840dde85cc890c4716fab636a6
Title: Http 2.10a4 doesn't work with Tcl 8.6
Type: Bug Version: 8.6
Submitter: jan.nijtmans Created on: 2022-11-15 15:02:12
Subsystem: 29. http Package Assigned To: jan.nijtmans
Priority: 5 Medium Severity: Important
Status: Closed Last Modified: 2022-11-15 23:27:10
Resolution: Fixed Closed By: kjnash
    Closed on: 2022-11-15 23:27:10
Description:

Allthough the http package version 2.10a4 advertises to work with Tcl 8.6 (package require Tcl 8.6-), it doesn't work. Testcases in http11.test hang.

The http package should either do a "package require Tcl 8.7-" or it should be fixed to run fine with Tcl 8.6 too. Otherwise, when someone installs both Tcl 8.6 and 8.7, the http package will be broken with Tcl 8.6.

User Comments: kjnash added on 2022-11-15 23:27:10:
Yes, agreed, I would have worked in a separate branch but you've done it first.

I hope that when Tcl 8.7 is released, Tcl 8.6 will adopt http 2.10 and anything else that can easily be backported, but those decisions will be for the Core Team!

jan.nijtmans added on 2022-11-15 21:54:37:

Thanks! So, it was a problem in the testcase, not in the http code itself.

Good to know! Please don't backport it to 8.6 yet, it's better to leave it in Tcl 8.7 first until 8.7 reaches the stable version.

Anyway, since the problem is solved, closing!


kjnash added on 2022-11-15 21:39:22:
I had a go at the backport recently, but I did not upload the code to fossil because I had not yet tested it on Windows.

My procedure was:

1. Start with 8.6.13rc0
2. Copy these files from 8.7:

library/http/http.tcl
library/http/pkgIndex.tcl
library/cookiejar/cookiejar.tcl
library/cookiejar/idna.tcl
library/cookiejar/pkgIndex.tcl
library/cookiejar/public_suffix_list.dat.gz
doc/http.n
doc/cookiejar.n
doc/idna.n
tests/http11.test
tests/httpcookie.test
tests/httpd
tests/httpd11.tcl
tests/httpPipeline.test
tests/httpProxySquidConfigForEL8.tar.gz
tests/httpProxy.test
tests/http.test
tests/httpTestScript.tcl
tests/httpTest.tcl

3. Apply the patch supplied below as a file.  This applies the "package require Tcl" fix mentioned below and adds a lpop command to tests/httpd11.tcl so that the tests themselves are unchanged.  It also patches the makefile.*.  The makefile patches for Windows are untested.

kjnash added on 2022-11-15 21:24:43:
Commit [2bac0bed17] fixes the issues with http11.test.  The simple httpd used for testing silently fails because it has "package require tcl" not "package require Tcl".

jan.nijtmans added on 2022-11-15 15:03:07:

The hang happens on all platforms. See: https://github.com/tcltk/tcl/actions/runs/3459694409


Attachments: